--- name: codenote-skill-creator description: 创建或更新 CodeNote Helper 项目本地 `.agents/skills` 下的 Codex skills。用于把高频协作流程、prompt 生成流程、审查流程或项目专项流程沉淀为可复用 skill;不替代一次性任务 prompt、普通开发实现或万能规则汇总。 --- # CodeNote Helper 本地 Skill Creator ## 技能定位 本 skill 服务于 CodeNote Helper 仓库内 `.agents/skills` 的创建和更新。它帮助后续把稳定、可复用、有明确输入输出的协作流程沉淀成本地 skill。 适合沉淀为 skill 的流程: - 高频出现,读取顺序、边界判断和输出格式相对稳定。 - 有明确触发场景、不适用场景和最终产物。 - 需要专属模板、审查清单、prompt 骨架或项目专项流程。 - 比 `AGENTS.md` 更具体,比一次性 prompt 更可复用。 不适合创建 skill 的情况: - 只有一次性需求,用 `$codenote-fix-prompt` 生成普通执行 prompt 更合适。 - 只是先计划后执行,用 `$codenote-plan-mode-prompt`。 - 只是生成审查任务 prompt,用 `$codenote-code-review-prompt`。 - 只是普通开发实现,不应包装成长期 skill。 - 想把所有 `AGENTS.md` 规则粗暴塞进单个万能 skill。 ## 必读文件 触发本 skill 后,先读取: 1. `AGENTS.md` 2. 仅当 `AGENTS.override.md` 存在时读取它。 3. `DEVLOG.md` 4. `README.md` 5. `.agents/skills` 当前真实结构。 6. 与目标流程直接相关的现有 skill、模板、报告或项目文件。 不要修改根目录 `references/` 的非项目代码;`.agents/skills/*/references/` 属于本地 skill 资产,可在确有用途时创建或修改。 ## 命名与结构要求 - skill 名称使用小写字母、数字和连字符。 - 名称避免和系统 skill、插件 skill、`vibe-coding-template` skill 以及 `.agents/skills` 既有名称撞名。 - `SKILL.md` 必须存在,frontmatter 只写必要字段,必须包含 `name` 和 `description`。 - `description` 必须写清用途、触发场景和边界,不写空泛口号。 - `agents/openai.yaml` 只写必要 UI 字段:`display_name`、`short_description`、`default_prompt`。 - `default_prompt` 必须明确包含 `$skill-name`。 - 如果 `SKILL.md`、模板或生成出的 prompt 需要交叉引用其他 skill,必须使用 `$skill-name` 形式;不要只写反引号包裹的 skill 名称。 - `references/` 仅用于较长模板、固定输出骨架、检查清单或示例 prompt。 - `scripts/` 仅用于可重复运行的校验、生成、迁移或格式化脚本;如果创建讲解类 skill,必须复用本 skill 的讲解类专项校验脚本。 - 不创建空目录、空模板、未来可能用得上的占位文件。 ## 讲解类 skill 的硬校验 创建或改写技术原理、八股讲解、从零补课、面试口述、项目追问类 skill 时,必须先读取 `$knowledge-explainer` 源模板,再生成目标 skill。 不得削弱 `$knowledge-explainer` 的最高约束、1000 / 3000 字硬门槛、未达字数视为输出失败、输出结构、质量门槛、自检项、公式解释、案例、比喻、记忆抓手和“未实现不能说成已实现”的边界。确实需要裁剪时,必须逐条说明裁剪原因、影响范围和后续补偿方式。 生成后必须运行讲解类专项校验脚本: ```powershell python -X utf8 .agents/skills/codenote-skill-creator/scripts/validate_knowledge_explainer.py .agents/skills/knowledge-explainer/SKILL.md ``` 如果脚本失败,必须继续修改目标 `SKILL.md` 并复跑,直到通过。该脚本只校验结构和关键质量规则是否保留,不判断最终讲解内容是否真的写得好。 ## 创建或更新流程 1. 明确目标流程: - 谁会使用。 - 什么时候触发。 - 不适用于什么场景。 - 输入信息是什么。 - 最终产物是什么。 - 需要读取哪些项目材料。 - 哪些边界必须禁止。 2. 核对 `.agents/skills` 当前结构和目标名称是否冲突。 3. 读取 `references/skill-template.md`,按 CodeNote Helper 本地语境裁剪。 4. 只创建当前需要的文件: - `SKILL.md` - 按需创建 `references/具体模板.md` - 按需创建 `agents/openai.yaml` 5. 写完后通读所有新增或修改文件,清理占位字段、空标题、一次性任务残留和模板腔废话。 6. 执行结构、UTF-8、frontmatter、引用存在性、YAML 文本结构和 git 范围检查。 ## CodeNote Helper 专属边界 创建或更新 skill 时,按需保留这些项目背景: - 简体中文输出、Windows 与 UTF-8 编码。 - 默认保持当前版本;本地 skill 治理通常不修改 `manifest.json`、popup 版本或 README 版本徽章。 - 涉及协作资产结构调整时,通常需要 `DEVLOG.md` 同版本记录和 docs 修复报告;如果生成报告,必须按 CodeNote Helper 语境写清楚 skill / prompt 资产变化对后续任务、版本记录和维护流程的影响,不要只堆路径、英文 skill 名或模板字段。 - 涉及浏览器扩展运行时代码、权限、远程请求或用户数据时,必须继承 Chrome Web Store 审核友好约束。 - 禁止无依据保护逻辑和吞异常。 - 用户可见文案必须自然中文。 不要把这些规则无差别复制进每个新 skill。只保留目标流程需要的最小上下文,并把较长模板放入 `references/`。 ## 验证要求 创建或更新 skill 后,至少验证: - `rg --files .agents/skills` 核对结构。 - 所有新增或修改的 Markdown / YAML 文件可用 `Get-Content -Encoding UTF8` 读取。 - 每个新增或修改的 `SKILL.md` 有 `name` 和 `description`。 - skill 名称符合小写字母、数字和连字符规则。 - `SKILL.md` 中提到的 `references/`、`agents/openai.yaml` 和模板文件真实存在。 - `agents/openai.yaml` 文本结构包含必要字段;没有 YAML 解析器时说明使用文本结构校验。 - 没有残留空标题、英文占位说明、临时任务句、无用目录或未引用文件。 - 如果创建或改写讲解类 skill,运行 `python -X utf8 .agents/skills/codenote-skill-creator/scripts/validate_knowledge_explainer.py .agents/skills/knowledge-explainer/SKILL.md`,失败时继续修改并复跑。 - `git status --short` 确认没有误改运行时代码、根目录 `references/` 或参考模板目录。 ## 自检 输出或交付前检查: 1. 新 skill 是否职责单一、触发清楚、边界明确。 2. 是否没有把一次性任务包装成长期 skill。 3. 是否没有把普通开发、Plan mode、code review 和 skill creator 混成一个万能 skill。 4. 是否没有复制其他项目的私有路径、版本号、测试命令或发布规则。 5. 如果交叉引用其他 skill,是否统一使用 `$skill-name` 形式。 6. 是否所有引用文件真实存在,并通过 UTF-8 读取和基础结构检查。 7. 如果目标是讲解类 skill,是否已通过讲解类专项校验脚本。