3.8 KiB
你是一名资深软件架构师,同时熟悉 Anthropic AgentSkills 的设计规范。 请帮我生成一个完整的自定义 AgentSkill,名称为 doc-sync-skill。
背景与目标
该 Skill 用于在软件开发流程中,当 PRD 文档从旧版本更新到新版本时:
- 自动分析两个 PRD 版本之间的差异,生成结构化的 Change Intent
- 基于 Change Intent,对 DDS(详细设计文档)进行增量更新(只改受影响章节)
- 基于 DDS 变更,对相关 AgentSkills 的 SKILL.md 文件进行增量更新
- 生成 VERSION_MATRIX.md 版本归档记录
AgentSkill 文件规范(严格遵守)
每个 Skill 必须是一个目录,包含以下结构:
- SKILL.md(必须含 YAML frontmatter,字段 name 和 description)
- scripts/(可选,放可执行脚本)
- references/(可选,放辅助 Prompt 模板和参考文档)
- assets/(可选,放归档模板)
YAML frontmatter 规则:
- name:只含小写字母、数字和连字符,最长64字符
- description:非空,最长1024字符,说明 Skill 的功能和触发时机
请输出以下所有文件的完整内容
文件1:doc-sync-skill/SKILL.md
包含:
- YAML frontmatter(name, description, version, author)
- 工作流总览(四个 Phase)
- 每个 Phase 的详细执行步骤
- 调用 scripts/ 和 references/ 的时机
- 异常处理规则(如文件不存在时的 fallback 行为)
- 输出格式规范
文件2:doc-sync-skill/references/CHANGE_INTENT_TEMPLATE.md
包含:Change Intent 的标准 Markdown 模板,字段包括: 变更版本、变更日期、变更范围、新增需求列表、修改需求列表、 废弃需求列表、影响模块列表、变更摘要
文件3:doc-sync-skill/references/DDS_UPDATE_PROMPT.md
包含:一份完整的、可直接发给大模型的 Prompt,用于驱动 DDS 增量更新。 Prompt 中需包含:
- 角色设定(高级架构师)
- 输入变量占位符:{{CHANGE_INTENT}} 和 {{CURRENT_DDS}}
- 输出格式要求:[NEW] / MODIFIED / [DEPRECATED] 标注规则
- 约束:未提及的章节绝对不修改
- 输出结束后追加版本号建议
文件4:doc-sync-skill/references/SKILL_UPDATE_PROMPT.md
包含:一份完整的、可直接发给大模型的 Prompt,用于驱动单个 AgentSkill 的增量更新。 Prompt 中需包含:
- 输入变量占位符:{{DDS_DIFF}}、{{SKILL_NAME}}、{{CURRENT_SKILL_MD}}
- 输出要求:只更新 SKILL.md 中受影响的部分
- 约束:version 字段升 patch,输出完整的新 SKILL.md 内容
文件5:doc-sync-skill/scripts/diff_prd.py
包含:一个 Python 脚本,接受 --old 和 --new 两个参数(Markdown 文件路径), 按章节(##标题)级别对比差异,输出结构化的 JSON,格式为: { "added_sections": [...], "modified_sections": [{"title": "...", "old": "...", "new": "..."}], "removed_sections": [...], "summary": "..." } 脚本需要有完善的错误处理和 UTF-8 编码支持。
文件6:doc-sync-skill/scripts/sync_check.py
包含:一个 Python 脚本,接受 --dds 和 --skills-dir 两个参数, 扫描 DDS 中所有接口/模块名称,检查在 skills-dir 下是否存在对应 SKILL.md, 输出不一致报告:哪些模块在 DDS 中定义但没有对应 Skill,哪些 Skill 已无对应 DDS 章节。
文件7:doc-sync-skill/assets/VERSION_MATRIX_TEMPLATE.md
包含:版本矩阵的 Markdown 表格模板,列为: 迭代日期 | PRD版本 | DDS版本 | 受影响Skill | 变更摘要 | Git Commit
输出格式要求
每个文件用如下格式分隔输出:
=== 文件路径:doc-sync-skill/SKILL.md === (文件内容) === END ===
所有文件均使用中文注释和说明,代码部分保持英文。 YAML frontmatter 的 description 必须包含中英文触发关键词以提高匹配率。