---
name: codenote-fix-prompt
description: 为 CodeNote Helper 生成普通开发、修复、验证、治理、文档和审核友好类中文执行 prompt。用于把一次具体任务整理成可直接交给 Codex 或 Agent 执行的 prompt；不承载 Plan mode prompt、code review prompt 或项目 skill creator 的完整职责。
---

# CodeNote Helper 普通任务 Prompt 生成

## 技能定位

本 skill 只生成普通执行 prompt。主产物是一份可复制给 Codex 或 Agent 立刻执行的中文任务 prompt，不直接开始修复，不直接审查代码，也不创建或更新 skill。

以下场景应改用独立 skill：

- 需要先进入 Plan mode、只读探索、提炼 2 到 4 个关键决策点时，使用 `$codenote-plan-mode-prompt`。
- 需要生成 code review 任务 prompt、要求 findings first 和独立审查报告时，使用 `$codenote-code-review-prompt`。
- 需要创建或更新 `.agents/skills` 下的 CodeNote Helper 本地 skill 时，使用 `$codenote-skill-creator`。

只有用户明确要求合并模式时，才在普通执行 prompt 中引用对应原则；不要把这些独立 skill 的完整规则复制进本 skill。

## Skill 交叉引用规则

当生成的 prompt 需要明确要求后续执行者调用其他 skill 时，必须使用 `$skill-name` 形式引用，例如 `$codenote-plan-mode-prompt`。不要只写反引号包裹的 skill 名称，也不要写成普通文件名或自然语言描述。

## 使用流程

1. 确认用户要的是“生成 prompt”，不是直接执行任务。
2. 读取项目材料：
   - `AGENTS.md`
   - 仅当 `AGENTS.override.md` 真实存在时读取它；不存在时不要写成必读事实。
   - `DEVLOG.md`
   - `README.md`
   - 与本轮任务直接相关的真实调用链、测试文件、报告或文档。
3. 读取 `references/prompt-template.md`，按本轮任务裁剪和填充。
4. 输出前将生成的 prompt 保存为临时草稿或逐项核对，并运行专项校验脚本：

```powershell
python -X utf8 .agents/skills/codenote-fix-prompt/scripts/validate_codenote_fix_prompt.py path/to/generated-prompt.md
```

脚本失败时，必须按缺失项继续补齐 prompt 并复跑。该脚本只检查普通执行 prompt 的关键结构和 CodeNote Helper 项目边界，不判断任务内容是否已经完全覆盖用户意图。
5. 输出一份完整、连续、可复制、可执行的中文 prompt。

## 默认补全规则

- 仓库路径默认使用当前 CodeNote Helper 仓库路径；无法确认时要求执行者现场核对。
- 当前版本必须从 `manifest.json`、`popup/popup.html`、`README.md` 现场核对；用户未要求升版时默认保持当前版本。
- 任务涉及功能修复、行为变更、UI 调整、结构调整、测试闭环或版本历史更新时，prompt 应要求同步 `DEVLOG.md` 并新增 `docs/fix-report-vX.Y.Z-YYYYMMDD-主题.md`。
- 任务不触发版本或报告时，prompt 应要求最终总结说明原因。
- 修复报告内容质量：如果 prompt 要求新增 `docs/fix-report-*.md`，必须同时要求报告通俗可读。涉及 Chrome MV3、`manifest.json`、`host_permissions`、`content_scripts.matches`、OAuth、Google Drive、WebDAV、service worker、content script、storage、Playwright 或 Node test 等英文术语、字段名和扩展概念时，要补中文解释和用户影响说明，不要只堆字段、路径和英文缩写。
- 多次验证结构：如果后续执行者进行了多次 Node 测试、静态检查、Playwright、真实浏览器或手动复测，prompt 必须要求报告用清晰 Markdown 标题区分每一次验证，并用表格汇总命令、目标、结果、证据和剩余风险；失败时要解释原因边界，不只描述现象。
- 根目录 `references/` 中标注“仅供参考，非项目代码”的内容只能参考，不得要求直接修改；`.agents/skills/*/references/` 属于本地 skill 资产，可按任务目标修改。
- 语言使用简体中文；代码、命令、报错、路径、字段名、域名、专有名词保留原文。

## CodeNote Helper 专属约束

生成 prompt 时，按任务相关性保留下列项目约束：

- Windows 与 UTF-8 编码：修改 JS、HTML、CSS、JSON、Markdown、manifest、README 等文件时保持原文件风格，新建文本默认 UTF-8。
- 最小必要改动：先理解真实入口、调用链、依赖顺序和站点隔离边界，再做修改。
- 版本策略：默认保持当前版本；只有用户明确要求升版时才升级，并同步所有版本位置。
- 文档闭环：按项目规则更新 `DEVLOG.md` 和 `docs/fix-report`，报告链接使用可跳转 Markdown 相对路径；带行号时统一使用 `[文件名](相对路径#L行号)`，不要把 `:行号` 写进链接目标。
- 报告可读性：`docs/fix-report` 不只是证据清单。必须把权限、远程请求、同步、注入顺序、用户数据、浏览器差异和测试结果讲清楚；字段名、路径和英文术语要配中文解释，原因分析要说明用户会遇到什么后果。
- 权限与审核友好：涉及 `manifest.json`、权限、host、content scripts、远程请求、README、隐私政策或商店说明时，必须做审核友好自检。
- 禁止无依据保护逻辑：不要凭空加入固定超时、长度截断、条数上限、重试上限、静默兜底或吞异常。
- 用户可见中文文案：按钮、toast、弹窗、错误提示和设置说明必须自然中文，不暴露内部变量、函数名、模块名、堆栈或调试信息。

## 常见任务加料

- 页面抓取、DOM、注入、滚动、点击、浏览器行为：要求先复现，再定位，再修复；默认使用 Playwright MCP 或等价浏览器工具留证据。
- popup、notes、options、shared 数据链路：强调真实状态结构、依赖顺序、脚本注入顺序和防回归测试。
- 题单导入、静态映射：优先内置静态映射；禁止运行时访问 GitHub README 或新增无关远程权限。
- 日志、调试、自动入库、复习链路：日志要可读、克制、结构化，不暴露到用户界面。
- 权限、manifest、远程请求、审核友好：说明为什么必须新增权限或域名、是否可收窄、是否用户触发、是否影响审核。

## 输出包裹规则

- 最终 prompt 必须整体放在一个 Markdown 文本块中，方便复制。
- 如果 prompt 内部包含三反引号，外层使用四反引号或更长围栏。
- 输出代码块前最多写一句中文引导；代码块后不要追加正文。

## 自检

输出前检查：

1. 是否明确这是生成普通执行 prompt，不是直接执行任务。
2. 是否没有把 Plan mode、code review 或 skill creator 的完整规则塞进本 prompt。
3. 如果 prompt 中交叉引用其他 skill，是否统一使用 `$skill-name` 形式。
4. 是否正确处理 `AGENTS.md` 与可选 `AGENTS.override.md`。
5. 是否没有把未验证版本、路径、测试结果或发布状态写成事实。
6. 是否保留 CodeNote Helper 的版本、报告、权限审核、编码、错误处理和用户文案边界。
7. 是否没有要求修改根目录 `references/` 的非项目代码。
8. 是否已运行 `validate_codenote_fix_prompt.py` 或对同等规则逐项校验，并根据失败项循环修改到通过。
9. 是否没有保留空标题、一次性残留或不可执行的模板句。
