@zhuan-ai/zhuanspec 2.2.4 → 2.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/zhuanspec-hook.js +3 -0
- package/dist/cli/hooks.d.ts +14 -0
- package/dist/cli/hooks.js +465 -0
- package/dist/cli/index.js +100 -0
- package/dist/commands/artifact-workflow.js +15 -34
- package/dist/commands/design.d.ts +42 -0
- package/dist/commands/design.js +337 -0
- package/dist/commands/progress.d.ts +32 -0
- package/dist/commands/progress.js +278 -0
- package/dist/commands/review.d.ts +32 -0
- package/dist/commands/review.js +472 -0
- package/dist/commands/validate.d.ts +14 -0
- package/dist/commands/validate.js +161 -10
- package/dist/core/archive.d.ts +1 -0
- package/dist/core/archive.js +45 -3
- package/dist/core/completions/command-registry.js +67 -0
- package/dist/core/configurators/slash/amazon-q.js +32 -2
- package/dist/core/configurators/slash/antigravity.js +8 -2
- package/dist/core/configurators/slash/auggie.js +16 -1
- package/dist/core/configurators/slash/base.js +1 -1
- package/dist/core/configurators/slash/claude.d.ts +4 -0
- package/dist/core/configurators/slash/claude.js +56 -1
- package/dist/core/configurators/slash/cline.js +8 -2
- package/dist/core/configurators/slash/codebuddy.js +22 -1
- package/dist/core/configurators/slash/codex.js +21 -0
- package/dist/core/configurators/slash/costrict.js +15 -0
- package/dist/core/configurators/slash/crush.js +22 -1
- package/dist/core/configurators/slash/cursor.js +22 -1
- package/dist/core/configurators/slash/factory.js +16 -1
- package/dist/core/configurators/slash/gemini.js +8 -2
- package/dist/core/configurators/slash/github-copilot.js +19 -1
- package/dist/core/configurators/slash/iflow.js +22 -1
- package/dist/core/configurators/slash/kilocode.js +4 -1
- package/dist/core/configurators/slash/opencode.js +27 -0
- package/dist/core/configurators/slash/qoder.d.ts +4 -0
- package/dist/core/configurators/slash/qoder.js +59 -1
- package/dist/core/configurators/slash/qwen.js +8 -2
- package/dist/core/configurators/slash/roocode.js +8 -2
- package/dist/core/configurators/slash/windsurf.js +8 -2
- package/dist/core/dashboard/metrics.d.ts +33 -0
- package/dist/core/dashboard/metrics.js +114 -0
- package/dist/core/hooks/collect-knowledge.d.ts +16 -0
- package/dist/core/hooks/collect-knowledge.js +203 -0
- package/dist/core/hooks/context-load-hook.d.ts +25 -0
- package/dist/core/hooks/context-load-hook.js +159 -0
- package/dist/core/hooks/deviation-check.d.ts +27 -0
- package/dist/core/hooks/deviation-check.js +403 -0
- package/dist/core/hooks/deviation-handler.d.ts +43 -0
- package/dist/core/hooks/deviation-handler.js +98 -0
- package/dist/core/hooks/init.d.ts +14 -0
- package/dist/core/hooks/init.js +244 -0
- package/dist/core/hooks/notify-milestone.d.ts +14 -0
- package/dist/core/hooks/notify-milestone.js +170 -0
- package/dist/core/hooks/post-apply.d.ts +29 -0
- package/dist/core/hooks/post-apply.js +173 -0
- package/dist/core/hooks/post-archive.d.ts +7 -0
- package/dist/core/hooks/post-archive.js +208 -0
- package/dist/core/hooks/pre-apply.d.ts +34 -0
- package/dist/core/hooks/pre-apply.js +139 -0
- package/dist/core/hooks/pre-archive.d.ts +7 -0
- package/dist/core/hooks/pre-archive.js +50 -0
- package/dist/core/hooks/record-progress.d.ts +49 -0
- package/dist/core/hooks/record-progress.js +494 -0
- package/dist/core/hooks/review-hooks.d.ts +89 -0
- package/dist/core/hooks/review-hooks.js +345 -0
- package/dist/core/hooks/review-orchestrator.d.ts +40 -0
- package/dist/core/hooks/review-orchestrator.js +146 -0
- package/dist/core/hooks/summarize.d.ts +15 -0
- package/dist/core/hooks/summarize.js +282 -0
- package/dist/core/hooks/user-input-hook.d.ts +25 -0
- package/dist/core/hooks/user-input-hook.js +179 -0
- package/dist/core/init.d.ts +8 -0
- package/dist/core/init.js +251 -23
- package/dist/core/parsers/requirement-blocks.js +13 -10
- package/dist/core/templates/agents-template.d.ts +1 -1
- package/dist/core/templates/agents-template.js +510 -243
- package/dist/core/templates/index.d.ts +1 -0
- package/dist/core/templates/index.js +1 -0
- package/dist/core/templates/skill-templates.js +46 -152
- package/dist/core/templates/slash-command-templates.d.ts +1 -1
- package/dist/core/templates/slash-command-templates.js +352 -20
- package/dist/core/templates/tasks-template.d.ts +7 -0
- package/dist/core/templates/tasks-template.js +130 -24
- package/dist/core/templates/tdd-tasks-template.d.ts +3 -0
- package/dist/core/templates/tdd-tasks-template.js +91 -38
- package/dist/core/templates/test-cases-template.d.ts +41 -0
- package/dist/core/templates/test-cases-template.js +128 -0
- package/dist/core/validation/strict-rules.d.ts +44 -5
- package/dist/core/validation/strict-rules.js +302 -8
- package/dist/core/validation/validator.js +52 -2
- package/dist/core/view.d.ts +1 -0
- package/dist/core/view.js +60 -2
- package/dist/mcp/index.d.ts +28 -0
- package/dist/mcp/index.js +31 -0
- package/dist/utils/file-system.d.ts +1 -0
- package/dist/utils/file-system.js +11 -0
- package/dist/utils/item-discovery.js +24 -2
- package/dist/utils/phase-utils.d.ts +36 -0
- package/dist/utils/phase-utils.js +117 -0
- package/package.json +22 -23
- package/schemas/spec-driven/schema.yaml +45 -31
- package/schemas/spec-driven/templates/spec.md +142 -5
- package/schemas/spec-driven/templates/tasks.md +73 -9
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const agentsTemplate = "# ZhuanSpec \u4F7F\u7528\u8BF4\u660E\n\n\u9762\u5411\u4F7F\u7528 ZhuanSpec \u8FDB\u884C\u89C4\u8303\u9A71\u52A8\u5F00\u53D1\u7684 AI \u7F16\u7A0B\u52A9\u624B\u7684\u8BF4\u660E\u6587\u6863\u3002\n\n## \u5FEB\u901F\u68C0\u67E5\u6E05\u5355\n\n- \u641C\u7D22\u73B0\u6709\u5DE5\u4F5C\uFF1A`zhuanspec spec list --long`\u3001`zhuanspec list`\uFF08\u4EC5\u4F7F\u7528 `rg` \u8FDB\u884C\u5168\u6587\u641C\u7D22\uFF09\n- \u786E\u5B9A\u8303\u56F4\uFF1A\u65B0\u529F\u80FD vs \u4FEE\u6539\u73B0\u6709\u529F\u80FD\n- \u9009\u62E9\u552F\u4E00\u7684 `change-id`\uFF1Akebab-case \u683C\u5F0F\uFF0C\u52A8\u8BCD\u5F00\u5934\uFF08`add-`\u3001`update-`\u3001`remove-`\u3001`refactor-`\uFF09\n- \u642D\u5EFA\u7ED3\u6784\uFF1A`proposal.md`\u3001`tasks.md`\u3001`design.md`\uFF08\u4EC5\u5728\u9700\u8981\u65F6\uFF09\uFF0C\u4EE5\u53CA\u6BCF\u4E2A\u53D7\u5F71\u54CD\u529F\u80FD\u7684\u89C4\u8303\u589E\u91CF\n- \u7F16\u5199\u589E\u91CF\uFF1A\u4F7F\u7528 `## ADDED|MODIFIED|REMOVED|RENAMED Requirements`\uFF1B\u6BCF\u4E2A\u8981\u6C42\u81F3\u5C11\u5305\u542B\u4E00\u4E2A `#### Scenario:`\n- \u9A8C\u8BC1\uFF1A\u8FD0\u884C `zhuanspec validate [change-id] --strict` \u5E76\u4FEE\u590D\u95EE\u9898\n- \u8BF7\u6C42\u6279\u51C6\uFF1A\u5728\u63D0\u6848\u83B7\u5F97\u6279\u51C6\u4E4B\u524D\u4E0D\u8981\u5F00\u59CB\u5B9E\u65BD\n\n## \u4E09\u9636\u6BB5\u5DE5\u4F5C\u6D41\n\n### \u9636\u6BB5 1\uFF1A\u521B\u5EFA\u53D8\u66F4\n\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\u521B\u5EFA\u63D0\u6848\uFF1A\n- \u6DFB\u52A0\u529F\u80FD\u6216\u7279\u6027\n- \u8FDB\u884C\u7834\u574F\u6027\u66F4\u6539\uFF08API\u3001schema\uFF09\n- \u66F4\u6539\u67B6\u6784\u6216\u6A21\u5F0F\n- \u4F18\u5316\u6027\u80FD\uFF08\u6539\u53D8\u884C\u4E3A\uFF09\n- \u66F4\u65B0\u5B89\u5168\u6A21\u5F0F\n\n\u89E6\u53D1\u8BCD\u793A\u4F8B\uFF1A\n- \"\u5E2E\u6211\u521B\u5EFA\u4E00\u4E2A\u53D8\u66F4\u63D0\u6848\"\n- \"\u5E2E\u6211\u89C4\u5212\u4E00\u4E2A\u53D8\u66F4\"\n- \"\u5E2E\u6211\u521B\u5EFA\u4E00\u4E2A\u63D0\u6848\"\n- \"\u6211\u60F3\u521B\u5EFA\u4E00\u4E2A\u89C4\u8303\u63D0\u6848\"\n- \"\u6211\u60F3\u521B\u5EFA\u4E00\u4E2A\u89C4\u8303\"\n\n\u5BBD\u677E\u5339\u914D\u6307\u5BFC\uFF1A\n- \u5305\u542B\u4EE5\u4E0B\u4E4B\u4E00\uFF1A`proposal`\u3001`change`\u3001`spec`\n- \u4E0E\u4EE5\u4E0B\u4E4B\u4E00\u7EC4\u5408\uFF1A`create`\u3001`plan`\u3001`make`\u3001`start`\u3001`help`\n\n\u8DF3\u8FC7\u63D0\u6848\u7684\u60C5\u51B5\uFF1A\n- Bug \u4FEE\u590D\uFF08\u6062\u590D\u9884\u671F\u884C\u4E3A\uFF09\n- \u62FC\u5199\u9519\u8BEF\u3001\u683C\u5F0F\u3001\u6CE8\u91CA\n- \u4F9D\u8D56\u66F4\u65B0\uFF08\u975E\u7834\u574F\u6027\uFF09\n- \u914D\u7F6E\u66F4\u6539\n- \u73B0\u6709\u884C\u4E3A\u7684\u6D4B\u8BD5\n\n**\u5DE5\u4F5C\u6D41**\n0. \u5BA1\u67E5 `zhuanspec/project.md`\u3001`zhuanspec list` \u548C `zhuanspec list --specs` \u4EE5\u4E86\u89E3\u5F53\u524D\u4E0A\u4E0B\u6587\u3002\n1. **\u5F3A\u5236\u6F84\u6E05\u68C0\u67E5\uFF08\u5FC5\u987B\u9996\u5148\u6267\u884C\uFF09**\uFF1A\u5206\u6790\u7528\u6237\u8BF7\u6C42\uFF0C\u8BC6\u522B\u6240\u6709\u4E0D\u786E\u5B9A\u6216\u6A21\u7CCA\u7684\u65B9\u9762\uFF08\u8303\u56F4\u3001\u6280\u672F\u9009\u62E9\u3001\u5B9E\u73B0\u7EC6\u8282\u3001\u6570\u636E\u83B7\u53D6\u6765\u6E90\u3001\u670D\u52A1\u5206\u5C42\u3001\u4F9D\u8D56\u5173\u7CFB\u3001\u4F18\u5148\u7EA7\u3001\u9A8C\u6536\u6807\u51C6\u7B49......\uFF09\u3002\u5982\u679C\u53D1\u73B0\u4EFB\u4F55\u6A21\u7CCA\u4E4B\u5904\uFF0C\u5FC5\u987B\u505C\u6B62\u5E76\u4F7F\u7528**\u9009\u9879\u5F0F\u4EA4\u4E92**\uFF08\u5982 `AskQuestion` \u5DE5\u5177\uFF09\u63D0\u95EE\uFF0C\u83B7\u5F97\u660E\u786E\u7B54\u590D\u540E\u624D\u80FD\u7EE7\u7EED\u3002\u4E25\u7981\u5728\u4E0D\u786E\u5B9A\u7684\u60C5\u51B5\u4E0B\u81EA\u884C\u63A8\u6D4B\u6216\u521B\u5EFA\u63D0\u6848\uFF0C\u4E25\u7981\u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u5927\u6BB5\u6587\u5B57\u3002\n\n \u26A0\uFE0F **\u68C0\u67E5\u70B9 [\u5F3A\u5236\u6F84\u6E05]**\uFF1A\n \u5FC5\u987B\u5728 tasks.md \u4E2D\u8BB0\u5F55\u6F84\u6E05\u7ED3\u679C\uFF0C\u6DFB\u52A0 \"## \u6F84\u6E05\u65E5\u5FD7\" \u7AE0\u8282\uFF1A\n - \u5982\u679C\u8FDB\u884C\u4E86\u63D0\u95EE\uFF1A\u8BB0\u5F55\u6BCF\u4E2A\u95EE\u9898\u53CA\u7528\u6237\u7684\u56DE\u7B54\n - \u5982\u679C\u65E0\u9700\u6F84\u6E05\uFF1A\u5199\u660E\"\u72B6\u6001\uFF1A\u5DF2\u5B8C\u6210 - \u65E0\u9700\u6F84\u6E05\"\u5E76\u7B80\u8981\u8BF4\u660E\u7406\u7531\n - \u6B64\u7AE0\u8282\u4E0D\u80FD\u4E3A\u7A7A\u6216\u4EC5\u5305\u542B HTML \u6CE8\u91CA\n - \u672A\u5B8C\u6210\u6B64\u68C0\u67E5\u70B9\u524D\u7981\u6B62\u7EE7\u7EED\u7F16\u5199\u63D0\u6848\n\n2. \u9009\u62E9\u4E00\u4E2A\u552F\u4E00\u7684\u52A8\u8BCD\u5F00\u5934\u7684 `change-id`\uFF0C\u5E76\u5728 `zhuanspec/changes/<id>/` \u4E0B\u642D\u5EFA `proposal.md`\u3001`tasks.md`\u3001\u53EF\u9009\u7684 `design.md` \u548C\u89C4\u8303\u589E\u91CF\u3002\n3. \u4F7F\u7528 `## ADDED|MODIFIED|REMOVED Requirements` \u8D77\u8349\u89C4\u8303\u589E\u91CF\uFF0C\u6BCF\u4E2A\u8981\u6C42\u81F3\u5C11\u5305\u542B\u4E00\u4E2A `#### Scenario:`\u3002\n4. \u8FD0\u884C `zhuanspec validate <id> --strict` \u5E76\u5728\u5206\u4EAB\u63D0\u6848\u4E4B\u524D\u89E3\u51B3\u6240\u6709\u95EE\u9898\u3002\n\n### \u9636\u6BB5 2\uFF1A\u5B9E\u65BD\u53D8\u66F4\n\n\u5C06\u8FD9\u4E9B\u6B65\u9AA4\u4F5C\u4E3A\u5F85\u529E\u4E8B\u9879\u8DDF\u8E2A\uFF0C\u9010\u4E00\u5B8C\u6210\u3002\n\n1. **\u9605\u8BFB proposal.md** - \u4E86\u89E3\u8981\u6784\u5EFA\u7684\u5185\u5BB9\n2. **\u9605\u8BFB design.md**\uFF08\u5982\u679C\u5B58\u5728\uFF09 - \u5BA1\u67E5\u6280\u672F\u51B3\u7B56\n3. **\u9605\u8BFB tasks.md** - \u83B7\u53D6\u5B9E\u65BD\u6E05\u5355\n4. **\u5224\u65AD\u6267\u884C\u6A21\u5F0F** - \u6839\u636E tasks.md \u5185\u5BB9\u9009\u62E9\u6267\u884C\u7B56\u7565\uFF1A\n - **\u5982\u679C tasks.md \u5305\u542B `@depends` \u4F9D\u8D56\u58F0\u660E**\uFF08\u5B58\u5728 `<execution_plan>`\uFF09\uFF1A\n \u2192 \u6309\u3010\u4EFB\u52A1\u6267\u884C\u7F16\u6392\u3011\u89C4\u5219\u6267\u884C\uFF08\u89C1\u4E0B\u65B9\"\u4EFB\u52A1\u6267\u884C\u7F16\u6392\"\u7AE0\u8282\uFF09\n - **\u5982\u679C tasks.md \u65E0\u4F9D\u8D56\u58F0\u660E**\uFF1A\n \u2192 \u6309\u987A\u5E8F\u6267\u884C\uFF08\u89C1\u4E0B\u65B9\u6B65\u9AA4 5-7\uFF09\n5. **\u6309\u987A\u5E8F\u5B9E\u65BD\u4EFB\u52A1**\uFF08\u65E0\u4F9D\u8D56\u58F0\u660E\u65F6\uFF09- \u6309\u987A\u5E8F\u5B8C\u6210\u3002\u5982\u679C\u4EFB\u52A1\u6807\u6CE8\u4E86 `@skill:<skill-name>`\uFF0C\u76F4\u63A5\u8C03\u7528\u5BF9\u5E94 skill\n6. **\u786E\u8BA4\u5B8C\u6210** - \u5728\u66F4\u65B0\u72B6\u6001\u4E4B\u524D\u786E\u4FDD `tasks.md` \u4E2D\u7684\u6BCF\u4E2A\u9879\u76EE\u90FD\u5DF2\u5B8C\u6210\n7. **\u66F4\u65B0\u6E05\u5355** - \u6240\u6709\u5DE5\u4F5C\u5B8C\u6210\u540E\uFF0C\u5C06\u6BCF\u4E2A\u4EFB\u52A1\u8BBE\u7F6E\u4E3A `- [x]`\uFF0C\u4EE5\u4FBF\u5217\u8868\u53CD\u6620\u5B9E\u9645\u60C5\u51B5\n8. **\u4EE3\u7801\u5BA1\u67E5**\uFF08\u53EF\u9009\uFF09 - \u57FA\u4E8E\u751F\u6210\u7684\u4E0A\u4E0B\u6587\u6587\u4EF6\u5BA1\u67E5\u5DF2\u5B9E\u65BD\u7684\u4EE3\u7801\uFF0C\u68C0\u67E5\uFF1A\n - \u4EE3\u7801\u89C4\u8303\u548C\u7EA6\u5B9A\u5408\u89C4\u6027\n - \u903B\u8F91\u6B63\u786E\u6027\n - \u6027\u80FD\u95EE\u9898\u548C\u6F5C\u5728\u74F6\u9888\n - \u5B89\u5168\u6027\u95EE\u9898\n - \u6700\u4F73\u5B9E\u8DF5\u9075\u5FAA\u60C5\u51B5\n - \u5BF9\u4E8E Java \u4EE3\u7801\uFF1A\u7279\u522B\u5173\u6CE8 Java \u7279\u5B9A\u7684\u6A21\u5F0F\u3001\u7EA6\u5B9A\u548C\u6F5C\u5728\u95EE\u9898\n - \u6B64\u6B65\u9AA4\u662F\u53EF\u9009\u7684\uFF0C\u5982\u679C\u8DF3\u8FC7\u4E0D\u4F1A\u963B\u585E\u5DE5\u4F5C\u6D41\n - \u5982\u679C\u53D1\u73B0\u95EE\u9898\uFF0C\u5E94\u5728\u5F52\u6863\u4E4B\u524D\u89E3\u51B3\n9. **\u6279\u51C6\u95E8\u69DB** - \u5728\u63D0\u6848\u7ECF\u8FC7\u5BA1\u67E5\u548C\u6279\u51C6\u4E4B\u524D\u4E0D\u8981\u5F00\u59CB\u5B9E\u65BD\n\n### \u9636\u6BB5 3\uFF1A\u5F52\u6863\u53D8\u66F4\n\u90E8\u7F72\u540E\uFF0C\u521B\u5EFA\u5355\u72EC\u7684 PR\uFF1A\n- \u5C06 `changes/[name]/` \u2192 `changes/archive/YYYY-MM-DD-[name]/`\n- \u5982\u679C\u529F\u80FD\u5DF2\u66F4\u6539\uFF0C\u66F4\u65B0 `specs/`\n- \u5BF9\u4E8E\u4EC5\u5DE5\u5177\u7C7B\u7684\u53D8\u66F4\uFF0C\u4F7F\u7528 `zhuanspec archive <change-id> --skip-specs --yes`\uFF08\u59CB\u7EC8\u663E\u5F0F\u4F20\u9012\u53D8\u66F4 ID\uFF09\n- \u8FD0\u884C `zhuanspec validate --strict` \u4EE5\u786E\u8BA4\u5F52\u6863\u7684\u53D8\u66F4\u901A\u8FC7\u68C0\u67E5\n\n## \u6267\u884C\u4EFB\u4F55\u4EFB\u52A1\u4E4B\u524D\n\n**\u4E0A\u4E0B\u6587\u68C0\u67E5\u6E05\u5355\uFF1A**\n- [ ] \u5728 `specs/[capability]/spec.md` \u4E2D\u9605\u8BFB\u76F8\u5173\u89C4\u8303\n- [ ] \u68C0\u67E5 `changes/` \u4E2D\u7684\u5F85\u5904\u7406\u53D8\u66F4\u662F\u5426\u5B58\u5728\u51B2\u7A81\n- [ ] \u9605\u8BFB `zhuanspec/project.md` \u4E86\u89E3\u7EA6\u5B9A\u3001\u9879\u76EE\u7ED3\u6784\u548C\u76F8\u5173\u529F\u80FD\u6A21\u5757\uFF08\u6309\u9700\u52A0\u8F7D\uFF09\n- [ ] \u8FD0\u884C `zhuanspec list` \u67E5\u770B\u6D3B\u52A8\u53D8\u66F4\n- [ ] \u8FD0\u884C `zhuanspec list --specs` \u67E5\u770B\u73B0\u6709\u529F\u80FD\n\n**\u521B\u5EFA\u89C4\u8303\u4E4B\u524D\uFF1A**\n- \u59CB\u7EC8\u68C0\u67E5\u529F\u80FD\u662F\u5426\u5DF2\u5B58\u5728\n- \u4F18\u5148\u4FEE\u6539\u73B0\u6709\u89C4\u8303\u800C\u4E0D\u662F\u521B\u5EFA\u91CD\u590D\u9879\n- \u4F7F\u7528 `zhuanspec show [spec]` \u5BA1\u67E5\u5F53\u524D\u72B6\u6001\n- **\u5F3A\u5236\u6F84\u6E05\u8981\u6C42**\uFF1A\u5982\u679C\u8BF7\u6C42\u6709\u4EFB\u4F55\u4E0D\u660E\u786E\u3001\u6A21\u7CCA\u6216\u4E0D\u786E\u5B9A\u7684\u65B9\u9762\uFF0C\u5FC5\u987B\u505C\u6B62\u5E76\u4F7F\u7528**\u9009\u9879\u5F0F\u4EA4\u4E92**\u63D0\u95EE\u3002\u4E25\u7981\u5728\u4E0D\u786E\u5B9A\u7684\u60C5\u51B5\u4E0B\u81EA\u884C\u63A8\u6D4B\u3001\u5047\u8BBE\u6216\u7EE7\u7EED\u521B\u5EFA\u6587\u4EF6\u3002\u4E25\u7981\u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u5927\u6BB5\u6587\u5B57\u56DE\u7B54\u3002\n\n## \u5F3A\u5236\u6F84\u6E05\u5DE5\u4F5C\u6D41\n\n\u5728\u521B\u5EFA\u4EFB\u4F55\u63D0\u6848\u6587\u4EF6\u4E4B\u524D\uFF0C\u5FC5\u987B\u6267\u884C\u5F3A\u5236\u6F84\u6E05\u68C0\u67E5\u3002\u8FD9\u662F\u4E0D\u53EF\u8DF3\u8FC7\u7684\u6B65\u9AA4\u3002\n\n**\u91CD\u8981\u539F\u5219\uFF1A\u5148\u67E5\u9605\u540E\u8BE2\u95EE\uFF0C\u907F\u514D\u8FC7\u5EA6\u8BE2\u95EE**\n\n\u5728\u8BE2\u95EE\u4E4B\u524D\uFF0C\u5FC5\u987B\u5148\u67E5\u9605\u4EE5\u4E0B\u6765\u6E90\uFF0C\u53EA\u6709\u5728\u786E\u5B9E\u65E0\u6CD5\u4ECE\u8FD9\u4E9B\u6765\u6E90\u786E\u5B9A\u65F6\u624D\u8BE2\u95EE\uFF1A\n- \u73B0\u6709\u89C4\u8303\uFF08`zhuanspec/specs/`\uFF09\n- \u9879\u76EE\u7EA6\u5B9A\uFF08`zhuanspec/project.md`\uFF09\n- \u4EE3\u7801\u5E93\u7ED3\u6784\u548C\u73B0\u6709\u6A21\u5F0F\n- \u4E0A\u4E0B\u6587\u6587\u4EF6\u548C\u76F8\u5173\u53D8\u66F4\n\n### \u4F55\u65F6\u9700\u8981\u6F84\u6E05\n\n\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\uFF0C**\u4E14\u65E0\u6CD5\u4ECE\u73B0\u6709\u89C4\u8303\u3001\u9879\u76EE\u7EA6\u5B9A\u3001\u4EE3\u7801\u5E93\u7ED3\u6784\u4E2D\u786E\u5B9A\u65F6**\uFF0C\u5FC5\u987B\u505C\u6B62\u5E76\u63D0\u95EE\uFF08\u5305\u62EC\u4F46\u4E0D\u9650\u4E8E\uFF09\uFF1A\n- **\u8303\u56F4\u4E0D\u660E\u786E**\uFF1A\u7528\u6237\u8BF7\u6C42\u7684\u8303\u56F4\u8FB9\u754C\u4E0D\u6E05\u695A\uFF08\u4F8B\u5982\uFF1A\"\u6539\u8FDB\u6027\u80FD\"\u3001\"\u4F18\u5316\u4EE3\u7801\"\uFF09\n- **\u6280\u672F\u9009\u62E9\u4E0D\u660E\u786E**\uFF1A\u6709\u591A\u79CD\u5B9E\u73B0\u65B9\u5F0F\uFF0C\u4F46\u7528\u6237\u672A\u6307\u5B9A\u504F\u597D\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u73B0\u6709\u4EE3\u7801\u6A21\u5F0F\u4E2D\u786E\u5B9A\uFF08\u4F8B\u5982\uFF1A\u4F7F\u7528\u54EA\u79CD\u6570\u636E\u5E93\u3001\u54EA\u79CD\u6846\u67B6\uFF09\n- **\u4F18\u5148\u7EA7\u4E0D\u660E\u786E**\uFF1A\u591A\u4E2A\u9700\u6C42\u4F46\u672A\u8BF4\u660E\u4F18\u5148\u7EA7\u6216\u987A\u5E8F\n- **\u9A8C\u6536\u6807\u51C6\u4E0D\u660E\u786E**\uFF1A\u4E0D\u6E05\u695A\u5982\u4F55\u5224\u65AD\u5B8C\u6210\u6216\u6210\u529F\n- **\u5B9E\u73B0\u7EC6\u8282\u4E0D\u660E\u786E**\uFF1A\u4E0D\u6E05\u695A\u5982\u4F55\u5B9E\u73B0\u6216\u5B9E\u73B0\u7EC6\u8282\u4E0D\u660E\u786E\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u4EE3\u7801\u5E93\u5206\u6790\u4E2D\u786E\u5B9A\uFF08\u4F8B\u5982\uFF1A\u5982\u4F55\u83B7\u53D6\u6570\u636E\u3001\u5982\u4F55\u5904\u7406\u9519\u8BEF\u3001\u5982\u4F55\u4F18\u5316\u6027\u80FD\uFF09\n- **\u4EE3\u7801\u6539\u52A8\u4F4D\u7F6E\u4E0D\u660E\u786E**\uFF1A\u4E0D\u6E05\u695A\u9700\u8981\u4FEE\u6539\u54EA\u4E9B\u6587\u4EF6\u3001\u5728\u54EA\u4E9B\u4F4D\u7F6E\u8FDB\u884C\u4FEE\u6539\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u4EE3\u7801\u5E93\u7ED3\u6784\u5206\u6790\u4E2D\u786E\u5B9A\n- **\u4EE3\u7801\u5206\u5C42\u67B6\u6784\u4E0D\u660E\u786E**\uFF1A\u5982\u679C\u6D89\u53CA\u670D\u52A1\u5206\u5C42\uFF08\u5982 4 \u5C42\u67B6\u6784\u30013 \u5C42\u67B6\u6784\u7B49\uFF09\uFF0C\u4E0D\u6E05\u695A\u5404\u5C42\u7684\u804C\u8D23\u548C\u6539\u52A8\u4F4D\u7F6E\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u73B0\u6709\u4EE3\u7801\u7ED3\u6784\u6216\u89C4\u8303\u4E2D\u786E\u5B9A\n- **\u6570\u636E\u83B7\u53D6\u6765\u6E90\u4E0D\u660E\u786E**\uFF1A\u4E0D\u6E05\u695A\u4ECE\u54EA\u91CC\u83B7\u53D6\u6570\u636E\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u73B0\u6709\u4EE3\u7801\u6216\u89C4\u8303\u4E2D\u786E\u5B9A\uFF08\u4F8B\u5982\uFF1A\u4ECE\u6570\u636E\u5E93\u3001API\u3001\u6587\u4EF6\u3001\u5916\u90E8\u670D\u52A1\u3001\u5386\u53F2\u903B\u8F91\u590D\u7528\uFF09\n- **\u670D\u52A1\u5206\u5C42\u4E0D\u660E\u786E**\uFF1A\u4E0D\u6E05\u695A\u670D\u52A1\u5206\u5C42\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u73B0\u6709\u4EE3\u7801\u7ED3\u6784\u6216\u89C4\u8303\u4E2D\u786E\u5B9A\uFF08\u4F8B\u5982\uFF1A\u524D\u7AEF\u3001\u540E\u7AEF\u3001\u6570\u636E\u5E93\u3001API\u3001\u670D\u52A1\u30014\u5C42\u67B6\u6784\u30013\u5C42\u67B6\u6784\u30012\u5C42\u67B6\u6784\u3001\u9886\u57DF\u6A21\u578B\uFF09\n- **\u4F9D\u8D56\u5173\u7CFB\u4E0D\u660E\u786E**\uFF1A\u4E0D\u6E05\u695A\u4F9D\u8D56\u5173\u7CFB\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u4EE3\u7801\u5E93\u5206\u6790\u4E2D\u786E\u5B9A\uFF08\u4F8B\u5982\uFF1A\u4F9D\u8D56\u54EA\u4E9B\u670D\u52A1\u3001\u4F9D\u8D56\u54EA\u4E9B\u5E93\u3001\u4F9D\u8D56\u54EA\u4E9B\u7EC4\u4EF6\uFF09\n- **\u4E0A\u4E0B\u6587\u4FE1\u606F\u7F3A\u5931**\uFF1A\u7F3A\u5C11\u5FC5\u8981\u7684\u80CC\u666F\u4FE1\u606F\u6765\u7406\u89E3\u9700\u6C42\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u73B0\u6709\u89C4\u8303\u6216\u4EE3\u7801\u4E2D\u83B7\u53D6\n- **\u6B67\u4E49\u6027\u8868\u8FF0**\uFF1A\u7528\u6237\u8BF7\u6C42\u53EF\u4EE5\u7528\u591A\u79CD\u65B9\u5F0F\u7406\u89E3\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u4E0A\u4E0B\u6587\u786E\u5B9A\n- **\u5176\u4ED6\u4E0D\u660E\u786E**\uFF1A\u5176\u4ED6\u4E0D\u660E\u786E\u7684\u60C5\u51B5\uFF0C\u4E14\u65E0\u6CD5\u4ECE\u73B0\u6709\u6765\u6E90\u786E\u5B9A\n\n### \u4F55\u65F6\u4E0D\u9700\u8981\u6F84\u6E05\n\n\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\uFF0C**\u4E0D\u5E94\u8BE2\u95EE**\uFF0C\u5E94\u76F4\u63A5\u4F7F\u7528\u4ECE\u73B0\u6709\u6765\u6E90\u83B7\u53D6\u7684\u4FE1\u606F\uFF1A\n- **\u4FE1\u606F\u5DF2\u660E\u786E**\uFF1A\u7528\u6237\u8BF7\u6C42\u4E2D\u5DF2\u7ECF\u660E\u786E\u8BF4\u660E\u4E86\u76F8\u5173\u4FE1\u606F\n- **\u53EF\u4ECE\u89C4\u8303\u83B7\u53D6**\uFF1A\u4FE1\u606F\u53EF\u4EE5\u4ECE\u73B0\u6709\u89C4\u8303\uFF08`zhuanspec/specs/`\uFF09\u4E2D\u83B7\u53D6\n- **\u53EF\u4ECE\u9879\u76EE\u7EA6\u5B9A\u83B7\u53D6**\uFF1A\u4FE1\u606F\u53EF\u4EE5\u4ECE\u9879\u76EE\u7EA6\u5B9A\uFF08`zhuanspec/project.md`\uFF09\u4E2D\u83B7\u53D6\n- **\u53EF\u4ECE\u4EE3\u7801\u5E93\u5206\u6790\u83B7\u53D6**\uFF1A\u4FE1\u606F\u53EF\u4EE5\u901A\u8FC7\u5206\u6790\u4EE3\u7801\u5E93\u7ED3\u6784\u3001\u73B0\u6709\u6A21\u5F0F\u3001\u76F8\u5173\u6587\u4EF6\u83B7\u53D6\n- **\u53EF\u4ECE\u4E0A\u4E0B\u6587\u83B7\u53D6**\uFF1A\u4FE1\u606F\u53EF\u4EE5\u4ECE\u4E0A\u4E0B\u6587\u6587\u4EF6\u3001\u76F8\u5173\u53D8\u66F4\u3001\u5386\u53F2\u8BB0\u5F55\u4E2D\u83B7\u53D6\n- **\u7B26\u5408\u5E38\u89C1\u6A21\u5F0F**\uFF1A\u5B9E\u73B0\u65B9\u5F0F\u7B26\u5408\u9879\u76EE\u4E2D\u7684\u5E38\u89C1\u6A21\u5F0F\u6216\u6700\u4F73\u5B9E\u8DF5\uFF0C\u65E0\u9700\u7279\u522B\u8BE2\u95EE\n\n**\u539F\u5219**\uFF1A\u5982\u679C\u53EF\u4EE5\u901A\u8FC7\u67E5\u9605\u73B0\u6709\u6765\u6E90\u786E\u5B9A\u4FE1\u606F\uFF0C\u5C31\u4E0D\u8981\u8BE2\u95EE\u7528\u6237\uFF0C\u4EE5\u63D0\u9AD8\u6548\u7387\u3002\n\n### \u6F84\u6E05\u95EE\u9898\u683C\u5F0F\n\n**\u5FC5\u987B\u4F7F\u7528\u9009\u9879\u5F0F\u4EA4\u4E92\uFF0C\u4E25\u7981\u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u6587\u5B57\u56DE\u7B54\u3002**\n\n\u4F7F\u7528\u7F16\u8F91\u5668\u63D0\u4F9B\u7684\u7ED3\u6784\u5316\u95EE\u7B54\u5DE5\u5177\uFF08\u5982 Cursor \u7684 `AskQuestion` \u5DE5\u5177\u3001Claude Code \u7684\u4EA4\u4E92\u5F0F\u9009\u62E9\u7B49\uFF09\u5411\u7528\u6237\u63D0\u95EE\uFF0C\u5C06\u6BCF\u4E2A\u6F84\u6E05\u95EE\u9898\u8F6C\u5316\u4E3A\u5E26\u9884\u8BBE\u9009\u9879\u7684\u9009\u62E9\u9898\uFF1A\n\n**\u683C\u5F0F\u8981\u6C42\uFF1A**\n- \u6BCF\u4E2A\u95EE\u9898\u63D0\u4F9B 2-5 \u4E2A\u9884\u8BBE\u9009\u9879\n- \u6BCF\u4E2A\u95EE\u9898\u672B\u5C3E\u5305\u542B\u4E00\u4E2A\"\u5176\u4ED6\"\u9009\u9879\uFF0C\u4EE5\u8986\u76D6\u672A\u5217\u51FA\u7684\u60C5\u51B5\n- \u5141\u8BB8\u7528\u6237\u591A\u9009\uFF08\u5F53\u95EE\u9898\u53EF\u80FD\u6709\u591A\u4E2A\u7B54\u6848\u65F6\u8BBE\u7F6E `allow_multiple: true`\uFF09\n- \u9009\u9879\u6587\u672C\u8981\u7B80\u6D01\u660E\u4E86\uFF0C\u5FC5\u8981\u65F6\u9644\u5E26\u7B80\u77ED\u8BF4\u660E\n- \u5982\u679C\u6709\u591A\u4E2A\u72EC\u7ACB\u7684\u6F84\u6E05\u95EE\u9898\uFF0C\u5408\u5E76\u5230\u540C\u4E00\u6B21\u95EE\u7B54\u4EA4\u4E92\u4E2D\uFF08\u4E00\u6B21\u6027\u5C55\u793A\u591A\u4E2A\u95EE\u9898\uFF09\n\n**\u6807\u51C6\u683C\u5F0F\u6A21\u677F\uFF1A**\n\n```\n\u4F7F\u7528 AskQuestion \u5DE5\u5177\u63D0\u95EE\uFF0C\u7ED3\u6784\u5982\u4E0B\uFF1A\n\n\u95EE\u9898 1: \"\u5173\u4E8E [\u4E0D\u786E\u5B9A\u7684\u65B9\u9762]\uFF1A[\u5177\u4F53\u95EE\u9898]\"\n\u9009\u9879\uFF1A\n A) [\u9009\u98791 - \u7B80\u77ED\u8BF4\u660E]\n B) [\u9009\u98792 - \u7B80\u77ED\u8BF4\u660E]\n C) [\u9009\u98793 - \u7B80\u77ED\u8BF4\u660E]\n D) \u5176\u4ED6\uFF08\u8BF7\u5728\u540E\u7EED\u8865\u5145\u8BF4\u660E\uFF09\n\n\u95EE\u9898 2: \"\u5173\u4E8E [\u53E6\u4E00\u4E2A\u65B9\u9762]\uFF1A[\u5177\u4F53\u95EE\u9898]\"\n\u9009\u9879\uFF1A\n A) [\u9009\u98791]\n B) [\u9009\u98792]\n C) \u5176\u4ED6\n```\n\n**\u5DE5\u5177\u8C03\u7528\u793A\u4F8B\uFF08Cursor AskQuestion\uFF09\uFF1A**\n```json\n{\n \"questions\": [\n {\n \"id\": \"scope\",\n \"prompt\": \"\u5173\u4E8E\u6539\u8FDB\u8303\u56F4\uFF1A\u60A8\u5E0C\u671B\u6539\u8FDB\u54EA\u4E9B\u65B9\u9762\uFF1F\",\n \"options\": [\n {\"id\": \"security\", \"label\": \"\u5B89\u5168\u6027\uFF08\u5982\u53CC\u56E0\u7D20\u8BA4\u8BC1\uFF09\"},\n {\"id\": \"ux\", \"label\": \"\u7528\u6237\u4F53\u9A8C\uFF08\u5982\u7B80\u5316\u6D41\u7A0B\uFF09\"},\n {\"id\": \"performance\", \"label\": \"\u6027\u80FD\uFF08\u5982\u54CD\u5E94\u65F6\u95F4\u4F18\u5316\uFF09\"},\n {\"id\": \"other\", \"label\": \"\u5176\u4ED6\"}\n ],\n \"allow_multiple\": true\n },\n {\n \"id\": \"priority\",\n \"prompt\": \"\u5982\u679C\u6709\u591A\u4E2A\u6539\u8FDB\u70B9\uFF0C\u4F18\u5148\u7EA7\u5982\u4F55\uFF1F\",\n \"options\": [\n {\"id\": \"security_first\", \"label\": \"\u5B89\u5168\u6027\u4F18\u5148\"},\n {\"id\": \"ux_first\", \"label\": \"\u7528\u6237\u4F53\u9A8C\u4F18\u5148\"},\n {\"id\": \"all_equal\", \"label\": \"\u540C\u7B49\u91CD\u8981\uFF0C\u4E00\u8D77\u505A\"}\n ]\n }\n ]\n}\n```\n\n**\u539F\u5219\uFF1A**\n- \u6C38\u8FDC\u4E0D\u8981\u8BA9\u7528\u6237\u4ECE\u96F6\u5F00\u59CB\u8F93\u5165\u7B54\u6848\uFF0C\u603B\u662F\u63D0\u4F9B\u53EF\u9009\u7684\u9009\u9879\n- \u9009\u9879\u5E94\u8986\u76D6\u6700\u5E38\u89C1\u7684\u7B54\u6848\u573A\u666F\n- \"\u5176\u4ED6\"\u9009\u9879\u4F5C\u4E3A\u515C\u5E95\uFF0C\u786E\u4FDD\u4E0D\u9057\u6F0F\u7279\u6B8A\u60C5\u51B5\n- \u7528\u6237\u9009\u62E9\"\u5176\u4ED6\"\u540E\uFF0C\u518D\u9488\u5BF9\u6027\u5730\u8FFD\u95EE\u7EC6\u8282\n\n### \u7981\u6B62\u884C\u4E3A\n\n\u5728\u9047\u5230\u6A21\u7CCA\u9700\u6C42\u65F6\uFF0C**\u4E25\u7981**\u4EE5\u4E0B\u884C\u4E3A\uFF1A\n- \u274C \u81EA\u884C\u63A8\u6D4B\u7528\u6237\u610F\u56FE\n- \u274C \u57FA\u4E8E\"\u6700\u4F73\u731C\u6D4B\"\u521B\u5EFA\u63D0\u6848\n- \u274C \u5047\u8BBE\u7528\u6237\u60F3\u8981\u4EC0\u4E48\n- \u274C \u8DF3\u8FC7\u6F84\u6E05\u76F4\u63A5\u521B\u5EFA\u6587\u4EF6\n- \u274C \u4F7F\u7528\u6A21\u7CCA\u7684\u8868\u8FF0\u6765\u63A9\u76D6\u4E0D\u786E\u5B9A\u6027\n- \u274C \u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u5927\u6BB5\u6587\u5B57\u6765\u56DE\u7B54\u6F84\u6E05\u95EE\u9898\uFF08\u5FC5\u987B\u4F7F\u7528\u9009\u9879\u5F0F\u4EA4\u4E92\uFF09\n\n### \u6F84\u6E05\u6D41\u7A0B\n\n1. **\u67E5\u9605\u73B0\u6709\u6765\u6E90**\uFF1A\u9996\u5148\u67E5\u9605\u73B0\u6709\u89C4\u8303\u3001\u9879\u76EE\u7EA6\u5B9A\u3001\u4EE3\u7801\u5E93\u7ED3\u6784\u3001\u4E0A\u4E0B\u6587\u6587\u4EF6\u7B49\uFF0C\u5C1D\u8BD5\u4ECE\u8FD9\u4E9B\u6765\u6E90\u83B7\u53D6\u6240\u9700\u4FE1\u606F\n2. **\u8BC6\u522B\u6A21\u7CCA\u70B9**\uFF1A\u4ED4\u7EC6\u5206\u6790\u7528\u6237\u8BF7\u6C42\uFF0C\u5217\u51FA\u6240\u6709\u4E0D\u786E\u5B9A\u7684\u65B9\u9762\uFF0C**\u4F46\u6392\u9664\u90A3\u4E9B\u53EF\u4EE5\u4ECE\u73B0\u6709\u6765\u6E90\u786E\u5B9A\u7684\u65B9\u9762**\n3. **\u5224\u65AD\u662F\u5426\u9700\u8981\u8BE2\u95EE**\uFF1A\u5BF9\u4E8E\u6BCF\u4E2A\u4E0D\u786E\u5B9A\u7684\u65B9\u9762\uFF0C\u5224\u65AD\u662F\u5426\u53EF\u4EE5\u4ECE\u73B0\u6709\u6765\u6E90\u786E\u5B9A\uFF1A\n - \u5982\u679C\u53EF\u4EE5\u786E\u5B9A\uFF0C\u5219\u4F7F\u7528\u4ECE\u73B0\u6709\u6765\u6E90\u83B7\u53D6\u7684\u4FE1\u606F\uFF0C\u4E0D\u8BE2\u95EE\n - \u5982\u679C\u65E0\u6CD5\u786E\u5B9A\uFF0C\u5219\u6807\u8BB0\u4E3A\u9700\u8981\u8BE2\u95EE\n4. **\u6784\u9020\u9009\u9879\u5F0F\u95EE\u9898**\uFF1A\u5C06\u6240\u6709\u9700\u8981\u8BE2\u95EE\u7684\u6A21\u7CCA\u70B9\u8F6C\u5316\u4E3A\u5E26\u9884\u8BBE\u9009\u9879\u7684\u9009\u62E9\u9898\uFF0C\u5C3D\u91CF\u5408\u5E76\u5230\u4E00\u6B21\u4EA4\u4E92\u4E2D\n5. **\u4F7F\u7528\u5DE5\u5177\u63D0\u95EE**\uFF1A\u8C03\u7528\u7F16\u8F91\u5668\u7684\u7ED3\u6784\u5316\u95EE\u7B54\u5DE5\u5177\uFF08\u5982 `AskQuestion`\uFF09\u4E00\u6B21\u6027\u5C55\u793A\u6240\u6709\u95EE\u9898\u548C\u9009\u9879\uFF0C\u7B49\u5F85\u7528\u6237\u9009\u62E9\n6. **\u7B49\u5F85\u7528\u6237\u9009\u62E9**\uFF1A\u5FC5\u987B\u7B49\u5F85\u7528\u6237\u9009\u62E9\u7B54\u6848\uFF0C\u4E0D\u80FD\u7EE7\u7EED\n7. **\u5904\u7406\"\u5176\u4ED6\"\u9009\u9879**\uFF1A\u5982\u679C\u7528\u6237\u9009\u62E9\u4E86\"\u5176\u4ED6\"\uFF0C\u518D\u9488\u5BF9\u8BE5\u95EE\u9898\u8FFD\u95EE\u5177\u4F53\u7EC6\u8282\uFF08\u4ECD\u4F18\u5148\u4F7F\u7528\u9009\u9879\u5F0F\uFF0C\u5982\u786E\u5B9E\u65E0\u6CD5\u9884\u8BBE\u5219\u5141\u8BB8\u7B80\u77ED\u6587\u5B57\u8F93\u5165\uFF09\n8. **\u786E\u8BA4\u7406\u89E3**\uFF1A\u5728\u5F00\u59CB\u521B\u5EFA\u6587\u4EF6\u524D\uFF0C\u7B80\u8981\u603B\u7ED3\u7406\u89E3\u4EE5\u786E\u4FDD\u51C6\u786E\n9. **\u5F00\u59CB\u521B\u5EFA**\uFF1A\u53EA\u6709\u5728\u6240\u6709\u5FC5\u8981\u7684\u6A21\u7CCA\u70B9\u90FD\u660E\u786E\u540E\uFF0C\u624D\u80FD\u5F00\u59CB\u521B\u5EFA\u63D0\u6848\u6587\u4EF6\n\n### \u793A\u4F8B\n\n**\u7528\u6237\u8BF7\u6C42**\uFF1A\"\u6539\u8FDB\u767B\u5F55\u529F\u80FD\"\n\n**\u5206\u6790\u8FC7\u7A0B**\uFF1A\n1. \u9996\u5148\u67E5\u9605\u73B0\u6709\u89C4\u8303\uFF08`zhuanspec/specs/`\uFF09\u4E2D\u662F\u5426\u6709\u767B\u5F55\u76F8\u5173\u7684\u89C4\u8303\n2. \u67E5\u9605\u9879\u76EE\u7EA6\u5B9A\uFF08`zhuanspec/project.md`\uFF09\u4E86\u89E3\u9879\u76EE\u67B6\u6784\u548C\u7EA6\u5B9A\n3. \u5206\u6790\u4EE3\u7801\u5E93\u7ED3\u6784\uFF0C\u4E86\u89E3\u73B0\u6709\u7684\u767B\u5F55\u5B9E\u73B0\u65B9\u5F0F\n4. \u5982\u679C\u4ECE\u8FD9\u4E9B\u6765\u6E90\u65E0\u6CD5\u786E\u5B9A\u6539\u8FDB\u8303\u56F4\uFF0C\u5219\u4F7F\u7528\u9009\u9879\u5F0F\u4EA4\u4E92\u8BE2\u95EE\n\n**\u5FC5\u987B\u4F7F\u7528\u9009\u9879\u5F0F\u4EA4\u4E92\u63D0\u95EE**\uFF08\u4EC5\u5728\u65E0\u6CD5\u4ECE\u73B0\u6709\u6765\u6E90\u786E\u5B9A\u65F6\uFF09\uFF1A\n\n```json\n{\n \"questions\": [\n {\n \"id\": \"improvement_scope\",\n \"prompt\": \"\u60A8\u5E0C\u671B\u6539\u8FDB\u767B\u5F55\u529F\u80FD\u7684\u54EA\u4E9B\u65B9\u9762\uFF1F\",\n \"options\": [\n {\"id\": \"security\", \"label\": \"\u5B89\u5168\u6027\uFF08\u5982\u6DFB\u52A0\u53CC\u56E0\u7D20\u8BA4\u8BC1\uFF09\"},\n {\"id\": \"ux\", \"label\": \"\u7528\u6237\u4F53\u9A8C\uFF08\u5982\u7B80\u5316\u767B\u5F55\u6D41\u7A0B\uFF09\"},\n {\"id\": \"performance\", \"label\": \"\u6027\u80FD\uFF08\u5982\u4F18\u5316\u767B\u5F55\u54CD\u5E94\u65F6\u95F4\uFF09\"},\n {\"id\": \"other\", \"label\": \"\u5176\u4ED6\"}\n ],\n \"allow_multiple\": true\n },\n {\n \"id\": \"tech_preference\",\n \"prompt\": \"\u60A8\u6709\u7279\u5B9A\u7684\u6280\u672F\u504F\u597D\u5417\uFF1F\",\n \"options\": [\n {\"id\": \"jwt\", \"label\": \"JWT Token \u8BA4\u8BC1\"},\n {\"id\": \"session\", \"label\": \"Session \u8BA4\u8BC1\"},\n {\"id\": \"oauth\", \"label\": \"OAuth \u7B2C\u4E09\u65B9\u96C6\u6210\"},\n {\"id\": \"no_preference\", \"label\": \"\u65E0\u504F\u597D\uFF0C\u7531\u4F60\u63A8\u8350\"},\n {\"id\": \"other\", \"label\": \"\u5176\u4ED6\"}\n ]\n },\n {\n \"id\": \"priority\",\n \"prompt\": \"\u5982\u679C\u6709\u591A\u4E2A\u6539\u8FDB\u70B9\uFF0C\u4F18\u5148\u7EA7\u5982\u4F55\uFF1F\",\n \"options\": [\n {\"id\": \"security_first\", \"label\": \"\u5B89\u5168\u6027\u4F18\u5148\"},\n {\"id\": \"ux_first\", \"label\": \"\u7528\u6237\u4F53\u9A8C\u4F18\u5148\"},\n {\"id\": \"perf_first\", \"label\": \"\u6027\u80FD\u4F18\u5148\"},\n {\"id\": \"all_equal\", \"label\": \"\u540C\u7B49\u91CD\u8981\uFF0C\u4E00\u8D77\u505A\"}\n ]\n }\n ]\n}\n```\n\n**\u5B9E\u73B0\u7EC6\u8282\u76F8\u5173\u793A\u4F8B**\uFF08\u4EC5\u5728\u65E0\u6CD5\u4ECE\u4EE3\u7801\u5E93\u5206\u6790\u786E\u5B9A\u65F6\u8BE2\u95EE\uFF09\uFF1A\n\n**\u7528\u6237\u8BF7\u6C42**\uFF1A\"\u91CD\u6784\u7528\u6237\u8BA4\u8BC1\u670D\u52A1\"\n\n**\u5982\u679C\u65E0\u6CD5\u4ECE\u4EE3\u7801\u5E93\u5206\u6790\u786E\u5B9A\uFF0C\u4F7F\u7528\u9009\u9879\u5F0F\u4EA4\u4E92\u63D0\u95EE**\uFF1A\n\n```json\n{\n \"questions\": [\n {\n \"id\": \"change_scope\",\n \"prompt\": \"\u91CD\u6784\u6D89\u53CA\u54EA\u4E9B\u6539\u52A8\uFF1F\",\n \"options\": [\n {\"id\": \"modify_existing\", \"label\": \"\u4FEE\u6539\u73B0\u6709\u8BA4\u8BC1\u670D\u52A1\u7C7B\"},\n {\"id\": \"new_service\", \"label\": \"\u521B\u5EFA\u65B0\u7684\u670D\u52A1\u5C42\"},\n {\"id\": \"both\", \"label\": \"\u4E24\u8005\u90FD\u6D89\u53CA\"},\n {\"id\": \"other\", \"label\": \"\u5176\u4ED6\"}\n ]\n },\n {\n \"id\": \"layer_scope\",\n \"prompt\": \"\u6539\u52A8\u5E94\u8BE5\u5728\u54EA\u4E9B\u5C42\u8FDB\u884C\uFF1F\",\n \"options\": [\n {\"id\": \"controller\", \"label\": \"Controller \u5C42\"},\n {\"id\": \"service\", \"label\": \"Service \u5C42\"},\n {\"id\": \"repository\", \"label\": \"Repository \u5C42\"},\n {\"id\": \"all\", \"label\": \"\u5168\u90E8\u5C42\"}\n ],\n \"allow_multiple\": true\n },\n {\n \"id\": \"refactor_strategy\",\n \"prompt\": \"\u91CD\u6784\u7B56\u7565\u504F\u597D\uFF1F\",\n \"options\": [\n {\"id\": \"incremental\", \"label\": \"\u6E10\u8FDB\u5F0F\u91CD\u6784\uFF08\u9010\u6B65\u66FF\u6362\uFF09\"},\n {\"id\": \"rewrite\", \"label\": \"\u5B8C\u5168\u91CD\u5199\"},\n {\"id\": \"strangler\", \"label\": \"\u7EDE\u6740\u8005\u6A21\u5F0F\uFF08\u65B0\u65E7\u5E76\u884C\u540E\u5207\u6362\uFF09\"},\n {\"id\": \"no_preference\", \"label\": \"\u65E0\u504F\u597D\uFF0C\u7531\u4F60\u63A8\u8350\"}\n ]\n }\n ]\n}\n```\n\n**\u6CE8\u610F**\uFF1A\u5982\u679C\u53EF\u4EE5\u4ECE\u73B0\u6709\u4EE3\u7801\u7ED3\u6784\u3001\u89C4\u8303\u6216\u9879\u76EE\u7EA6\u5B9A\u4E2D\u786E\u5B9A\u8FD9\u4E9B\u4FE1\u606F\uFF0C\u5219\u4E0D\u5E94\u8BE2\u95EE\uFF0C\u76F4\u63A5\u4F7F\u7528\u4ECE\u73B0\u6709\u6765\u6E90\u83B7\u53D6\u7684\u4FE1\u606F\u3002\n\n### \u641C\u7D22\u6307\u5BFC\n- \u679A\u4E3E\u89C4\u8303\uFF1A`zhuanspec spec list --long`\uFF08\u6216\u4F7F\u7528 `--json` \u7528\u4E8E\u811A\u672C\uFF09\n- \u679A\u4E3E\u53D8\u66F4\uFF1A`zhuanspec list`\uFF08\u6216 `zhuanspec change list --json` - \u5DF2\u5F03\u7528\u4F46\u53EF\u7528\uFF09\n- \u663E\u793A\u8BE6\u7EC6\u4FE1\u606F\uFF1A\n - \u89C4\u8303\uFF1A`zhuanspec show <spec-id> --type spec`\uFF08\u4F7F\u7528 `--json` \u8FDB\u884C\u8FC7\u6EE4\uFF09\n - \u53D8\u66F4\uFF1A`zhuanspec show <change-id> --json --deltas-only`\n- \u5168\u6587\u641C\u7D22\uFF08\u4F7F\u7528 ripgrep\uFF09\uFF1A`rg -n \"Requirement:|Scenario:\" zhuanspec/specs`\n\n## \u5FEB\u901F\u5F00\u59CB\n\n### CLI \u547D\u4EE4\n\n```bash\n# \u57FA\u672C\u547D\u4EE4\nzhuanspec list # \u5217\u51FA\u6D3B\u52A8\u53D8\u66F4\nzhuanspec list --specs # \u5217\u51FA\u89C4\u8303\nzhuanspec show [item] # \u663E\u793A\u53D8\u66F4\u6216\u89C4\u8303\nzhuanspec validate [item] # \u9A8C\u8BC1\u53D8\u66F4\u6216\u89C4\u8303\nzhuanspec archive <change-id> [--yes|-y] # \u90E8\u7F72\u540E\u5F52\u6863\uFF08\u6DFB\u52A0 --yes \u7528\u4E8E\u975E\u4EA4\u4E92\u5F0F\u8FD0\u884C\uFF09\n\n# \u9879\u76EE\u7BA1\u7406\nzhuanspec init [path] # \u521D\u59CB\u5316 ZhuanSpec\nzhuanspec update [path] # \u66F4\u65B0\u8BF4\u660E\u6587\u4EF6\n\n# \u4EA4\u4E92\u6A21\u5F0F\nzhuanspec show # \u63D0\u793A\u9009\u62E9\nzhuanspec validate # \u6279\u91CF\u9A8C\u8BC1\u6A21\u5F0F\n\n# \u8C03\u8BD5\nzhuanspec show [change] --json --deltas-only\nzhuanspec validate [change] --strict\n```\n\n### \u547D\u4EE4\u6807\u5FD7\n\n- `--json` - \u673A\u5668\u53EF\u8BFB\u8F93\u51FA\n- `--type change|spec` - \u6D88\u9664\u9879\u76EE\u6B67\u4E49\n- `--strict` - \u5168\u9762\u9A8C\u8BC1\n- `--no-interactive` - \u7981\u7528\u63D0\u793A\n- `--skip-specs` - \u5F52\u6863\u65F6\u4E0D\u66F4\u65B0\u89C4\u8303\n- `--yes`/`-y` - \u8DF3\u8FC7\u786E\u8BA4\u63D0\u793A\uFF08\u975E\u4EA4\u4E92\u5F0F\u5F52\u6863\uFF09\n\n## \u76EE\u5F55\u7ED3\u6784\n\n```\nzhuanspec/\n\u251C\u2500\u2500 project.md # \u9879\u76EE\u7EA6\u5B9A\n\u251C\u2500\u2500 specs/ # \u5F53\u524D\u771F\u5B9E\u72B6\u6001 - \u5DF2\u6784\u5EFA\u7684\u5185\u5BB9\n\u2502 \u2514\u2500\u2500 [capability]/ # \u5355\u4E00\u805A\u7126\u7684\u529F\u80FD\n\u2502 \u251C\u2500\u2500 spec.md # \u8981\u6C42\u548C\u573A\u666F\n\u2502 \u2514\u2500\u2500 design.md # \u6280\u672F\u6A21\u5F0F\n\u251C\u2500\u2500 changes/ # \u63D0\u6848 - \u5E94\u8BE5\u66F4\u6539\u7684\u5185\u5BB9\n\u2502 \u251C\u2500\u2500 [change-name]/\n\u2502 \u2502 \u251C\u2500\u2500 proposal.md # \u539F\u56E0\u3001\u5185\u5BB9\u3001\u5F71\u54CD\n\u2502 \u2502 \u251C\u2500\u2500 tasks.md # \u5B9E\u65BD\u6E05\u5355\n\u2502 \u2502 \u251C\u2500\u2500 design.md # \u6280\u672F\u51B3\u7B56\uFF08\u53EF\u9009\uFF1B\u89C1\u6807\u51C6\uFF09\n\u2502 \u2502 \u2514\u2500\u2500 specs/ # \u589E\u91CF\u53D8\u66F4\n\u2502 \u2502 \u2514\u2500\u2500 [capability]/\n\u2502 \u2502 \u2514\u2500\u2500 spec.md # ADDED/MODIFIED/REMOVED\n\u2502 \u2514\u2500\u2500 archive/ # \u5DF2\u5B8C\u6210\u7684\u53D8\u66F4\n```\n\n## \u521B\u5EFA\u53D8\u66F4\u63D0\u6848\n\n### \u51B3\u7B56\u6811\n\n```\n\u65B0\u8BF7\u6C42\uFF1F\n\u251C\u2500 \u4FEE\u590D\u6062\u590D\u89C4\u8303\u884C\u4E3A\u7684 Bug\uFF1F \u2192 \u76F4\u63A5\u4FEE\u590D\n\u251C\u2500 \u62FC\u5199\u9519\u8BEF/\u683C\u5F0F/\u6CE8\u91CA\uFF1F \u2192 \u76F4\u63A5\u4FEE\u590D\n\u251C\u2500 \u65B0\u529F\u80FD/\u80FD\u529B\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\n\u251C\u2500 \u7834\u574F\u6027\u66F4\u6539\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\n\u251C\u2500 \u67B6\u6784\u66F4\u6539\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\n\u2514\u2500 \u4E0D\u660E\u786E\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\uFF08\u66F4\u5B89\u5168\uFF09\n```\n\n### \u63D0\u6848\u7ED3\u6784\n\n1. **\u521B\u5EFA\u76EE\u5F55\uFF1A** `changes/[change-id]/`\uFF08kebab-case\uFF0C\u52A8\u8BCD\u5F00\u5934\uFF0C\u552F\u4E00\uFF09\n\n2. **\u7F16\u5199 proposal.md\uFF1A**\n```markdown\n# Change: [\u53D8\u66F4\u7684\u7B80\u8981\u63CF\u8FF0]\n\n## \u53D8\u66F4\u539F\u56E0\n[\u5173\u4E8E\u95EE\u9898/\u673A\u4F1A\u7684 1-2 \u53E5\u8BDD]\n\n## \u53D8\u66F4\u5185\u5BB9\n- [\u53D8\u66F4\u7684\u8981\u70B9\u5217\u8868]\n- [\u7528 **BREAKING** \u6807\u8BB0\u7834\u574F\u6027\u66F4\u6539]\n\n## \u5F71\u54CD\u8303\u56F4\n- Affected specs: [\u5217\u51FA\u529F\u80FD]\n- Affected code: [\u5173\u952E\u6587\u4EF6/\u7CFB\u7EDF]\n```\n\n3. **\u521B\u5EFA\u89C4\u8303\u589E\u91CF\uFF1A** `specs/[capability]/spec.md`\n```markdown\n## ADDED Requirements\n### \u9700\u6C42\uFF1ANew Feature\nThe system SHALL provide...\n\n#### \u573A\u666F\uFF1ASuccess case\n- **\u5F53** user performs action\n- **\u5219** expected result\n\n## MODIFIED Requirements\n### \u9700\u6C42\uFF1AExisting Feature\n[\u5B8C\u6574\u7684\u4FEE\u6539\u540E\u8981\u6C42]\n\n## REMOVED Requirements\n### \u9700\u6C42\uFF1AOld Feature\n**Reason**: [\u79FB\u9664\u539F\u56E0]\n**Migration**: [\u5982\u4F55\u5904\u7406]\n```\n\u5982\u679C\u591A\u4E2A\u529F\u80FD\u53D7\u5230\u5F71\u54CD\uFF0C\u5728 `changes/[change-id]/specs/<capability>/spec.md` \u4E0B\u521B\u5EFA\u591A\u4E2A\u589E\u91CF\u6587\u4EF6\u2014\u2014\u6BCF\u4E2A\u529F\u80FD\u4E00\u4E2A\u3002\n\n4. **\u521B\u5EFA tasks.md\uFF1A**\n\n\u5148\u8FD0\u884C `zhuanspec skills list --json` \u53D1\u73B0\u5F53\u524D\u73AF\u5883\u4E2D\u53EF\u7528\u7684 skill \u53CA\u5176 description\uFF0C\u7136\u540E\u57FA\u4E8E\u8BED\u4E49\u5339\u914D\u5728\u4EFB\u52A1\u4E2D\u6807\u6CE8\u771F\u5B9E skill \u540D\u79F0\uFF1A\n\n```markdown\n## 1. \u5B9E\u73B0\n- [ ] 1.1 \u521B\u5EFA\u6570\u636E\u5E93\u8868\u7ED3\u6784 @skill:java-db-schema-standards\n- [ ] 1.2 \u5B9E\u73B0 RPC \u63A5\u53E3 @skill:java-scf-rpc-usage-skill\n- [ ] 1.3 \u6DFB\u52A0\u524D\u7AEF\u7EC4\u4EF6 @skill:kf-fe-frontend-dev\n- [ ] 1.4 \u7F16\u5199\u6D4B\u8BD5 @skill:generate-mockito-unit-test-skill\n```\n> **@skill \u6807\u7B7E**\uFF1A\u521B\u5EFA tasks.md \u524D\uFF0C\u8FD0\u884C `zhuanspec skills list --json` \u53D1\u73B0\u53EF\u7528 skill \u53CA\u5176 description\u3002\u57FA\u4E8E skill description \u8FDB\u884C\u8BED\u4E49\u5339\u914D\uFF1A\n> - \u4ED4\u7EC6\u9605\u8BFB\u6BCF\u4E2A skill \u7684 description\uFF0C\u7406\u89E3\u5176\u5177\u4F53\u529F\u80FD\u548C\u9002\u7528\u573A\u666F\n> - \u53EA\u6709\u5F53\u4EFB\u52A1\u529F\u80FD\u4E0E skill description \u660E\u786E\u5339\u914D\u65F6\u624D\u6807\u6CE8\n> - \u7B80\u5355\u7684\u4EE3\u7801\u4FEE\u6539\uFF08\u5982\u589E\u5220\u679A\u4E3E\u503C\uFF09\u5E94\u5339\u914D\u901A\u7528\u7F16\u7801\u89C4\u8303 skill\uFF0C\u800C\u975E\u67B6\u6784\u7EA7 skill\n> - \u907F\u514D\u4EC5\u56E0\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u5173\u952E\u8BCD\u800C\u9519\u8BEF\u5339\u914D\n> - \u4F7F\u7528\u771F\u5B9E skill \u540D\u79F0\u6807\u6CE8\uFF0C\u652F\u6301\u591A\u4E2A skill\uFF08`@skill:name1,name2`\uFF09\n> - Apply \u9636\u6BB5 AI \u6839\u636E\u6807\u7B7E\u76F4\u63A5\u8C03\u7528\u5BF9\u5E94 skill\u3002\u65E0\u53EF\u7528 skill \u65F6\u53EF\u7701\u7565\u3002\n\n\u26A0\uFE0F **\u68C0\u67E5\u70B9 [Skill \u6807\u6CE8]**\uFF1A\n1. \u5FC5\u987B\u5148\u8FD0\u884C `zhuanspec skills list` \u5E76\u5728 Skill \u6620\u5C04\u8868\u4E2D\u8BB0\u5F55\u53D1\u73B0\u7684 skill\n2. \u6BCF\u4E2A\u4EFB\u52A1\u5FC5\u987B\u6807\u6CE8 @skill:\u771F\u5B9Eskill\u540D\u79F0 \u6216 @skill:none\n3. \u5982\u679C\u4F7F\u7528 @skill:none\uFF0C\u5FC5\u987B\u63D0\u4F9B\u7406\u7531\uFF08\u4F8B\u5982\uFF1A\"\u7EAF\u914D\u7F6E\u53D8\u66F4\uFF0C\u65E0\u9700 skill\"\uFF09\n4. @skill \u540D\u79F0\u5FC5\u987B\u4E0E `zhuanspec skills list` \u8FD4\u56DE\u7684\u540D\u79F0\u5B8C\u5168\u4E00\u81F4 \u2014\u2014 \u7981\u6B62\u865A\u6784 skill \u540D\u79F0\n5. tasks.md \u4E2D\u7684 Skill \u6620\u5C04\u8868\u4E0D\u80FD\u4E3A\u7A7A\n6. validate --strict \u4F1A\u9A8C\u8BC1\u6240\u6709 @skill \u540D\u79F0\u662F\u5426\u5B58\u5728\u4E8E\u5DF2\u77E5 skill \u5217\u8868\u4E2D\n\n\u26A0\uFE0F **\u68C0\u67E5\u70B9 [\u4EFB\u52A1\u6392\u5E8F]**\uFF1A\n1. tasks.md \u4E2D\u7684\u4EFB\u52A1\u5FC5\u987B\u6309\u6CE2\u6B21\u7EC4\u7EC7\uFF08### \u6CE2\u6B21 1, ### \u6CE2\u6B21 2 \u7B49\uFF09\n2. \u6CE2\u6B21\u5206\u914D\u5FC5\u987B\u6839\u636E @depends \u4F9D\u8D56\u5173\u7CFB\u8BA1\u7B97\uFF08\u6CE2\u6B21 1 = \u65E0\u4F9D\u8D56\uFF0C\u6CE2\u6B21 N = \u4F9D\u8D56\u6CE2\u6B21 N-1\uFF09\n3. \u4EFB\u52A1\u4E0D\u80FD\u51FA\u73B0\u5728\u5176\u4F9D\u8D56\u7684\u4EFB\u52A1\u4E4B\u524D\n4. \u5FC5\u987B\u5728\u6587\u4EF6\u672B\u5C3E\u6DFB\u52A0 \"## \u4F9D\u8D56\u5206\u6790\" \u7AE0\u8282\u5E76\u6807\u660E\"\u72B6\u6001\uFF1A\u5DF2\u5B8C\u6210\"\n5. validate --strict \u4F1A\u9A8C\u8BC1\u4EFB\u52A1\u6392\u5E8F\u662F\u5426\u4E0E\u8BA1\u7B97\u7684\u6CE2\u6B21\u5339\u914D\n\n5. **\u5728\u9700\u8981\u65F6\u521B\u5EFA design.md\uFF1A**\n\u5982\u679C\u4EE5\u4E0B\u4EFB\u4F55\u60C5\u51B5\u9002\u7528\uFF0C\u5219\u521B\u5EFA `design.md`\uFF1B\u5426\u5219\u7701\u7565\uFF1A\n- \u6A2A\u5207\u53D8\u66F4\uFF08\u591A\u4E2A\u670D\u52A1/\u6A21\u5757\uFF09\u6216\u65B0\u7684\u67B6\u6784\u6A21\u5F0F\n- \u65B0\u7684\u5916\u90E8\u4F9D\u8D56\u6216\u91CD\u8981\u7684\u6570\u636E\u6A21\u578B\u66F4\u6539\n- \u5B89\u5168\u6027\u3001\u6027\u80FD\u6216\u8FC1\u79FB\u590D\u6742\u6027\n- \u5728\u7F16\u7801\u4E4B\u524D\u4ECE\u6280\u672F\u51B3\u7B56\u4E2D\u53D7\u76CA\u7684\u6A21\u7CCA\u6027\n\n\u6700\u5C0F `design.md` \u9AA8\u67B6\uFF1A\n```markdown\n## \u80CC\u666F\n[\u80CC\u666F\u3001\u7EA6\u675F\u3001\u5229\u76CA\u76F8\u5173\u8005]\n\n## \u76EE\u6807 / \u975E\u76EE\u6807\n- Goals: [...]\n- Non-Goals: [...]\n\n## \u51B3\u7B56\n- Decision: [\u5185\u5BB9\u548C\u539F\u56E0]\n- Alternatives considered: [\u9009\u9879 + \u7406\u7531]\n\n## \u98CE\u9669 / \u6743\u8861\n- [\u98CE\u9669] \u2192 \u7F13\u89E3\u63AA\u65BD\n\n## \u8FC1\u79FB\u8BA1\u5212\n[\u6B65\u9AA4\u3001\u56DE\u6EDA]\n\n## \u5F85\u89E3\u51B3\u95EE\u9898\n- [...]\n```\n\n## \u89C4\u8303\u6587\u4EF6\u683C\u5F0F\n\n### \u5173\u952E\uFF1A\u573A\u666F\u683C\u5F0F\n\n**\u6B63\u786E**\uFF08\u4F7F\u7528 #### \u6807\u9898\uFF09\uFF1A\n```markdown\n#### \u573A\u666F\uFF1A\u7528\u6237\u767B\u5F55\u6210\u529F\n- **\u5F53** \u63D0\u4F9B\u4E86\u6709\u6548\u51ED\u636E\n- **\u5219** \u8FD4\u56DE JWT token\n```\n\n**\u9519\u8BEF**\uFF08\u4E0D\u8981\u4F7F\u7528\u9879\u76EE\u7B26\u53F7\u6216\u7C97\u4F53\uFF09\uFF1A\n```markdown\n- **\u573A\u666F\uFF1A\u7528\u6237\u767B\u5F55** \u274C\n**\u573A\u666F**\uFF1A\u7528\u6237\u767B\u5F55 \u274C\n### \u573A\u666F\uFF1A\u7528\u6237\u767B\u5F55 \u274C\n```\n\n\u6BCF\u4E2A\u8981\u6C42\u5FC5\u987B\u81F3\u5C11\u6709\u4E00\u4E2A\u573A\u666F\u3002\n\n### \u8981\u6C42\u63AA\u8F9E\n- \u5BF9\u89C4\u8303\u6027\u8981\u6C42\u4F7F\u7528 SHALL/MUST\uFF08\u9664\u975E\u6709\u610F\u975E\u89C4\u8303\u6027\uFF0C\u5426\u5219\u907F\u514D\u4F7F\u7528 should/may\uFF09\n\n### \u589E\u91CF\u64CD\u4F5C\n\n- `## ADDED Requirements` - \u65B0\u529F\u80FD\n- `## MODIFIED Requirements` - \u66F4\u6539\u7684\u884C\u4E3A\n- `## REMOVED Requirements` - \u5DF2\u5F03\u7528\u7684\u529F\u80FD\n- `## RENAMED Requirements` - \u540D\u79F0\u66F4\u6539\n\n\u6807\u9898\u4F7F\u7528 `trim(header)` \u5339\u914D - \u5FFD\u7565\u7A7A\u767D\u3002\n\n#### \u4F55\u65F6\u4F7F\u7528 ADDED vs MODIFIED\n- ADDED\uFF1A\u5F15\u5165\u4E00\u4E2A\u65B0\u7684\u529F\u80FD\u6216\u5B50\u529F\u80FD\uFF0C\u53EF\u4EE5\u72EC\u7ACB\u4F5C\u4E3A\u8981\u6C42\u3002\u5F53\u66F4\u6539\u662F\u6B63\u4EA4\u7684\uFF08\u4F8B\u5982\uFF0C\u6DFB\u52A0\"\u659C\u6760\u547D\u4EE4\u914D\u7F6E\"\uFF09\u800C\u4E0D\u662F\u6539\u53D8\u73B0\u6709\u8981\u6C42\u7684\u8BED\u4E49\u65F6\uFF0C\u4F18\u5148\u4F7F\u7528 ADDED\u3002\n- MODIFIED\uFF1A\u66F4\u6539\u73B0\u6709\u8981\u6C42\u7684\u884C\u4E3A\u3001\u8303\u56F4\u6216\u9A8C\u6536\u6807\u51C6\u3002\u59CB\u7EC8\u7C98\u8D34\u5B8C\u6574\u7684\u3001\u66F4\u65B0\u7684\u8981\u6C42\u5185\u5BB9\uFF08\u6807\u9898 + \u6240\u6709\u573A\u666F\uFF09\u3002\u5F52\u6863\u5668\u5C06\u7528\u60A8\u5728\u6B64\u5904\u63D0\u4F9B\u7684\u5185\u5BB9\u66FF\u6362\u6574\u4E2A\u8981\u6C42\uFF1B\u90E8\u5206\u589E\u91CF\u5C06\u4E22\u5931\u5148\u524D\u7684\u8BE6\u7EC6\u4FE1\u606F\u3002\n- RENAMED\uFF1A\u4EC5\u5728\u540D\u79F0\u66F4\u6539\u65F6\u4F7F\u7528\u3002\u5982\u679C\u60A8\u8FD8\u66F4\u6539\u884C\u4E3A\uFF0C\u8BF7\u4F7F\u7528 RENAMED\uFF08\u540D\u79F0\uFF09\u52A0\u4E0A MODIFIED\uFF08\u5185\u5BB9\uFF09\uFF0C\u5F15\u7528\u65B0\u540D\u79F0\u3002\n\n\u5E38\u89C1\u9677\u9631\uFF1A\u4F7F\u7528 MODIFIED \u6DFB\u52A0\u65B0\u5173\u6CE8\u70B9\u800C\u4E0D\u5305\u542B\u5148\u524D\u7684\u6587\u672C\u3002\u8FD9\u4F1A\u5728\u5F52\u6863\u65F6\u5BFC\u81F4\u8BE6\u7EC6\u4FE1\u606F\u4E22\u5931\u3002\u5982\u679C\u60A8\u6CA1\u6709\u660E\u786E\u66F4\u6539\u73B0\u6709\u8981\u6C42\uFF0C\u8BF7\u5728 ADDED \u4E0B\u6DFB\u52A0\u65B0\u8981\u6C42\u3002\n\n\u6B63\u786E\u7F16\u5199 MODIFIED \u8981\u6C42\uFF1A\n1) \u5728 `zhuanspec/specs/<capability>/spec.md` \u4E2D\u627E\u5230\u73B0\u6709\u8981\u6C42\u3002\n2) \u590D\u5236\u6574\u4E2A\u8981\u6C42\u5757\uFF08\u4ECE `### Requirement: ...` \u5230\u5176\u573A\u666F\uFF09\u3002\n3) \u5C06\u5176\u7C98\u8D34\u5230 `## MODIFIED Requirements` \u4E0B\u5E76\u7F16\u8F91\u4EE5\u53CD\u6620\u65B0\u884C\u4E3A\u3002\n4) \u786E\u4FDD\u6807\u9898\u6587\u672C\u5B8C\u5168\u5339\u914D\uFF08\u5FFD\u7565\u7A7A\u767D\uFF09\u5E76\u81F3\u5C11\u4FDD\u7559\u4E00\u4E2A `#### Scenario:`\u3002\n\nRENAMED \u793A\u4F8B\uFF1A\n```markdown\n## RENAMED Requirements\n- FROM: `### \u9700\u6C42\uFF1ALogin`\n- TO: `### \u9700\u6C42\uFF1AUser Authentication`\n```\n\n## \u6545\u969C\u6392\u9664\n\n### \u5E38\u89C1\u9519\u8BEF\n\n**\"\u53D8\u66F4\u5FC5\u987B\u81F3\u5C11\u6709\u4E00\u4E2A\u589E\u91CF\"**\n- \u68C0\u67E5 `changes/[name]/specs/` \u662F\u5426\u5B58\u5728 .md \u6587\u4EF6\n- \u9A8C\u8BC1\u6587\u4EF6\u5177\u6709\u64CD\u4F5C\u524D\u7F00\uFF08## ADDED Requirements\uFF09\n\n**\"\u8981\u6C42\u5FC5\u987B\u81F3\u5C11\u6709\u4E00\u4E2A\u573A\u666F\"**\n- \u68C0\u67E5\u573A\u666F\u662F\u5426\u4F7F\u7528 `#### Scenario:` \u683C\u5F0F\uFF084 \u4E2A\u4E95\u53F7\uFF09\n- \u4E0D\u8981\u5BF9\u573A\u666F\u6807\u9898\u4F7F\u7528\u9879\u76EE\u7B26\u53F7\u6216\u7C97\u4F53\n\n**\u9759\u9ED8\u573A\u666F\u89E3\u6790\u5931\u8D25**\n- \u9700\u8981\u7CBE\u786E\u683C\u5F0F\uFF1A`#### Scenario: Name`\n- \u4F7F\u7528\u4EE5\u4E0B\u547D\u4EE4\u8C03\u8BD5\uFF1A`zhuanspec show [change] --json --deltas-only`\n\n### \u9A8C\u8BC1\u63D0\u793A\n\n```bash\n# \u59CB\u7EC8\u4F7F\u7528\u4E25\u683C\u6A21\u5F0F\u8FDB\u884C\u5168\u9762\u68C0\u67E5\nzhuanspec validate [change] --strict\n\n# \u8C03\u8BD5\u589E\u91CF\u89E3\u6790\nzhuanspec show [change] --json | jq '.deltas'\n\n# \u68C0\u67E5\u7279\u5B9A\u8981\u6C42\nzhuanspec show [spec] --json -r 1\n```\n\n## \u7406\u60F3\u8DEF\u5F84\u811A\u672C\n\n```bash\n# 1) \u63A2\u7D22\u5F53\u524D\u72B6\u6001\nzhuanspec spec list --long\nzhuanspec list\n# \u53EF\u9009\u5168\u6587\u641C\u7D22\uFF1A\n# rg -n \"Requirement:|Scenario:\" zhuanspec/specs\n# rg -n \"^#|Requirement:\" zhuanspec/changes\n\n# 2) \u9009\u62E9\u53D8\u66F4 ID \u5E76\u642D\u5EFA\nCHANGE=add-two-factor-auth\nmkdir -p zhuanspec/changes/$CHANGE/{specs/auth}\nprintf \"## \u53D8\u66F4\u539F\u56E0\\n...\\n\\n## \u53D8\u66F4\u5185\u5BB9\\n- ...\\n\\n## \u5F71\u54CD\u8303\u56F4\\n- ...\\n\" > zhuanspec/changes/\\$CHANGE/proposal.md\nprintf \"## 1. \u5B9E\u73B0\n- [ ] 1.1 ...\n\" > zhuanspec/changes/$CHANGE/tasks.md\n\n# 3) \u6DFB\u52A0\u589E\u91CF\uFF08\u793A\u4F8B\uFF09\ncat > zhuanspec/changes/$CHANGE/specs/auth/spec.md << 'EOF'\n## ADDED Requirements\n### \u9700\u6C42\uFF1A\u53CC\u56E0\u7D20\u8BA4\u8BC1\n\u7528\u6237 MUST \u5728\u767B\u5F55\u65F6\u63D0\u4F9B\u7B2C\u4E8C\u4E2A\u8BA4\u8BC1\u56E0\u7D20\u3002\n\n#### \u573A\u666F\uFF1A\u9700\u8981 OTP\n- **\u5F53** \u63D0\u4F9B\u4E86\u6709\u6548\u51ED\u636E\n- **\u5219** \u9700\u8981 OTP \u6311\u6218\nEOF\n\n# 4) \u9A8C\u8BC1\nzhuanspec validate $CHANGE --strict\n```\n\n## \u591A\u529F\u80FD\u793A\u4F8B\n\n```\nzhuanspec/changes/add-2fa-notify/\n\u251C\u2500\u2500 proposal.md\n\u251C\u2500\u2500 tasks.md\n\u2514\u2500\u2500 specs/\n \u251C\u2500\u2500 auth/\n \u2502 \u2514\u2500\u2500 spec.md # ADDED: \u53CC\u56E0\u7D20\u8BA4\u8BC1\n \u2514\u2500\u2500 notifications/\n \u2514\u2500\u2500 spec.md # ADDED: OTP \u90AE\u4EF6\u901A\u77E5\n```\n\nauth/spec.md\n```markdown\n## ADDED Requirements\n### \u9700\u6C42\uFF1A\u53CC\u56E0\u7D20\u8BA4\u8BC1\n...\n```\n\nnotifications/spec.md\n```markdown\n## ADDED Requirements\n### \u9700\u6C42\uFF1AOTP \u90AE\u4EF6\u901A\u77E5\n...\n```\n\n## \u6700\u4F73\u5B9E\u8DF5\n\n### \u7B80\u5355\u4F18\u5148\n- \u9ED8\u8BA4\u65B0\u589E\u4EE3\u7801 <100 \u884C\n- \u5355\u6587\u4EF6\u5B9E\u73B0\uFF0C\u76F4\u5230\u8BC1\u660E\u4E0D\u8DB3\n- \u907F\u514D\u6CA1\u6709\u660E\u786E\u7406\u7531\u7684\u6846\u67B6\n- \u9009\u62E9\u65E0\u804A\u4F46\u7ECF\u8FC7\u9A8C\u8BC1\u7684\u6A21\u5F0F\n\n### \u590D\u6742\u6027\u89E6\u53D1\u6761\u4EF6\n\u4EC5\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\u6DFB\u52A0\u590D\u6742\u6027\uFF1A\n- \u6027\u80FD\u6570\u636E\u8868\u660E\u5F53\u524D\u89E3\u51B3\u65B9\u6848\u592A\u6162\n- \u5177\u4F53\u7684\u89C4\u6A21\u8981\u6C42\uFF08>1000 \u7528\u6237\uFF0C>100MB \u6570\u636E\uFF09\n- \u591A\u4E2A\u7ECF\u8FC7\u9A8C\u8BC1\u7684\u7528\u4F8B\u9700\u8981\u62BD\u8C61\n\n### \u6E05\u6670\u7684\u5F15\u7528\n- \u4F7F\u7528 `file.ts:42` \u683C\u5F0F\u8868\u793A\u4EE3\u7801\u4F4D\u7F6E\n- \u5C06\u89C4\u8303\u5F15\u7528\u4E3A `specs/auth/spec.md`\n- \u94FE\u63A5\u76F8\u5173\u53D8\u66F4\u548C PR\n\n### \u529F\u80FD\u547D\u540D\n- \u4F7F\u7528\u52A8\u8BCD-\u540D\u8BCD\uFF1A`user-auth`\u3001`payment-capture`\n- \u6BCF\u4E2A\u529F\u80FD\u5355\u4E00\u76EE\u7684\n- 10 \u5206\u949F\u53EF\u7406\u89E3\u6027\u89C4\u5219\n- \u5982\u679C\u63CF\u8FF0\u9700\u8981\"AND\"\uFF0C\u5219\u62C6\u5206\n\n### \u53D8\u66F4 ID \u547D\u540D\n- \u4F7F\u7528 kebab-case\uFF0C\u7B80\u77ED\u4E14\u63CF\u8FF0\u6027\uFF1A`add-two-factor-auth`\n- \u4F18\u5148\u4F7F\u7528\u52A8\u8BCD\u5F00\u5934\u7684\u524D\u7F00\uFF1A`add-`\u3001`update-`\u3001`remove-`\u3001`refactor-`\n- \u786E\u4FDD\u552F\u4E00\u6027\uFF1B\u5982\u679C\u5DF2\u4F7F\u7528\uFF0C\u8FFD\u52A0 `-2`\u3001`-3` \u7B49\n\n## \u5DE5\u5177\u9009\u62E9\u6307\u5357\n\n| \u4EFB\u52A1 | \u5DE5\u5177 | \u539F\u56E0 |\n|------|------|-----|\n| \u6309\u6A21\u5F0F\u67E5\u627E\u6587\u4EF6 | Glob | \u5FEB\u901F\u6A21\u5F0F\u5339\u914D |\n| \u641C\u7D22\u4EE3\u7801\u5185\u5BB9 | Grep | \u4F18\u5316\u7684\u6B63\u5219\u8868\u8FBE\u5F0F\u641C\u7D22 |\n| \u8BFB\u53D6\u7279\u5B9A\u6587\u4EF6 | Read | \u76F4\u63A5\u6587\u4EF6\u8BBF\u95EE |\n| \u63A2\u7D22\u672A\u77E5\u8303\u56F4 | Task | \u591A\u6B65\u9AA4\u8C03\u67E5 |\n\n## \u9519\u8BEF\u6062\u590D\n\n### \u53D8\u66F4\u51B2\u7A81\n1. \u8FD0\u884C `zhuanspec list` \u67E5\u770B\u6D3B\u52A8\u53D8\u66F4\n2. \u68C0\u67E5\u91CD\u53E0\u7684\u89C4\u8303\n3. \u4E0E\u53D8\u66F4\u6240\u6709\u8005\u534F\u8C03\n4. \u8003\u8651\u5408\u5E76\u63D0\u6848\n\n### \u9A8C\u8BC1\u5931\u8D25\n1. \u4F7F\u7528 `--strict` \u6807\u5FD7\u8FD0\u884C\n2. \u68C0\u67E5 JSON \u8F93\u51FA\u4EE5\u83B7\u53D6\u8BE6\u7EC6\u4FE1\u606F\n3. \u9A8C\u8BC1\u89C4\u8303\u6587\u4EF6\u683C\u5F0F\n4. \u786E\u4FDD\u573A\u666F\u683C\u5F0F\u6B63\u786E\n\n### \u7F3A\u5C11\u4E0A\u4E0B\u6587\n1. \u9996\u5148\u9605\u8BFB project.md\n2. \u68C0\u67E5\u76F8\u5173\u89C4\u8303\n3. \u5BA1\u67E5\u6700\u8FD1\u7684\u5F52\u6863\n4. \u8BF7\u6C42\u6F84\u6E05\n\n## \u5FEB\u901F\u53C2\u8003\n\n### \u9636\u6BB5\u6307\u793A\u5668\n- `changes/` - \u5DF2\u63D0\u8BAE\uFF0C\u5C1A\u672A\u6784\u5EFA\n- `specs/` - \u5DF2\u6784\u5EFA\u5E76\u90E8\u7F72\n- `archive/` - \u5DF2\u5B8C\u6210\u7684\u53D8\u66F4\n\n### \u6587\u4EF6\u7528\u9014\n- `proposal.md` - \u539F\u56E0\u548C\u5185\u5BB9\n- `tasks.md` - \u5B9E\u65BD\u6B65\u9AA4\n- `design.md` - \u6280\u672F\u51B3\u7B56\n- `spec.md` - \u8981\u6C42\u548C\u884C\u4E3A\n\n### CLI \u8981\u70B9\n```bash\nzhuanspec list # \u6B63\u5728\u8FDB\u884C\u4EC0\u4E48\uFF1F\nzhuanspec show [item] # \u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F\nzhuanspec validate --strict # \u662F\u5426\u6B63\u786E\uFF1F\nzhuanspec archive <change-id> [--yes|-y] # \u6807\u8BB0\u5B8C\u6210\uFF08\u6DFB\u52A0 --yes \u7528\u4E8E\u81EA\u52A8\u5316\uFF09\n```\n\n\u8BB0\u4F4F\uFF1A\u89C4\u8303\u662F\u771F\u76F8\u3002\u53D8\u66F4\u662F\u63D0\u6848\u3002\u4FDD\u6301\u5B83\u4EEC\u540C\u6B65\u3002\n\n## \u4EFB\u52A1\u6267\u884C\u7F16\u6392\n\n\u5F53 apply \u6307\u4EE4\u4E2D\u5305\u542B `<execution_plan>`/task.md\u4E2D\u5305\u542B `@depends` \u65F6\uFF0C\u5FC5\u987B\u6309\u4EE5\u4E0B\u7B56\u7565\u6267\u884C\u4EFB\u52A1\uFF0C\u800C\u975E\u987A\u5E8F\u9010\u4E00\u6267\u884C\u3002\n\n### \u8C03\u5EA6\u89C4\u5219\n\n1. **\u6309 wave \u7F16\u53F7\u4ECE\u5C0F\u5230\u5927**\u4F9D\u6B21\u6267\u884C\uFF0Cwave \u4E4B\u95F4\u4E25\u683C\u4E32\u884C\n2. **\u540C\u4E00 wave \u5185\u7684\u591A\u4E2A task**\uFF1A\u4E3A\u6BCF\u4E2A task \u542F\u52A8\u72EC\u7ACB\u7684 subagent\uFF08Coding \u7C7B\u578B\uFF09\uFF0C\u6240\u6709 subagent \u5E76\u884C\u6267\u884C\n3. **\u7B49\u5F85\u672C wave \u6240\u6709 subagent \u5B8C\u6210\u540E**\uFF0C\u624D\u542F\u52A8\u4E0B\u4E00 wave\n4. \u540C\u4E00 wave \u5185\u4EC5\u6709\u4E00\u4E2A task \u65F6\uFF0C\u542F\u52A8\u5355\u4E2A subagent \u6267\u884C\n5. **\u53C2\u8003 `<scheduling_summary>` \u4E2D\u7684\u5177\u4F53\u8C03\u5EA6\u6307\u4EE4**\uFF0C\u660E\u786E\u6BCF\u4E2A wave \u9700\u8981\u542F\u52A8\u7684 subagent \u6570\u91CF\u548C\u6267\u884C\u65B9\u5F0F\n\n### \u8C03\u5EA6\u6307\u4EE4\u683C\u5F0F\n\n\u6267\u884C\u8BA1\u5212\u7684 `<wave>` \u5143\u7D20\u5305\u542B\u4EE5\u4E0B\u5C5E\u6027\u7528\u4E8E\u6307\u5BFC subagent \u8C03\u5EA6\uFF1A\n- `subagent_count`\uFF1A\u8BE5\u6CE2\u6B21\u9700\u8981\u542F\u52A8\u7684 subagent \u6570\u91CF\uFF08\u7B49\u4E8E wave \u5185\u7684\u4EFB\u52A1\u6570\uFF09\n- `execution_mode`\uFF1A\u6267\u884C\u6A21\u5F0F\uFF0C`parallel`\uFF08\u5E76\u884C\uFF09\u6216 `serial`\uFF08\u4E32\u884C\uFF09\n\n`<scheduling_summary>` \u63D0\u4F9B\u4EBA\u7C7B\u53EF\u8BFB\u7684\u8C03\u5EA6\u6458\u8981\uFF0C\u683C\u5F0F\u5982\u4E0B\uFF1A\n```\nWave 1 \u2192 \u542F\u52A8 1 \u4E2A subagent \u6267\u884C\u8BE5\u6CE2\u6B21\u7684\u5355\u4E2A\u4EFB\u52A1\nWave 2 \u2192 \u542F\u52A8 1 \u4E2A subagent \u6267\u884C\u8BE5\u6CE2\u6B21\u7684\u5355\u4E2A\u4EFB\u52A1\nWave 3 \u2192 \u542F\u52A8 2 \u4E2A subagent \u5E76\u884C\u6267\u884C\u8BE5\u6CE2\u6B21\u7684 2 \u4E2A\u4EFB\u52A1\n```\n\nAI \u52A9\u624B\u5728\u6267\u884C\u65F6**\u5FC5\u987B**\u6309\u7167 `<scheduling_summary>` \u4E2D\u7684\u6307\u4EE4\u542F\u52A8\u5BF9\u5E94\u6570\u91CF\u7684 subagent\u3002\n\n### Subagent \u4E0A\u4E0B\u6587\u9694\u79BB\n\n\u6BCF\u4E2A subagent \u7684 prompt \u4E2D**\u4EC5\u5305\u542B**\uFF1A\n- \u5F53\u524D task \u7684\u63CF\u8FF0\u548C\u9A8C\u6536\u6807\u51C6\n- \u5F53\u524D task \u5173\u8054\u7684 `@skill` \u5185\u5BB9\uFF08\u901A\u8FC7 skill \u540D\u79F0\u89E6\u53D1\u52A0\u8F7D\uFF09\n- \u76F8\u5173\u7684 spec \u6587\u4EF6\u8DEF\u5F84\u548C\u5185\u5BB9\uFF08\u4EC5\u9650\u8BE5 task \u6D89\u53CA\u7684\u90E8\u5206\uFF09\n- \u524D\u5E8F wave \u7684\u5B8C\u6210\u6458\u8981\uFF08\u800C\u975E\u5B8C\u6574\u8F93\u51FA\uFF09\n\n**\u7981\u6B62**\u5411 subagent \u6CE8\u5165\uFF1A\n- \u5176\u4ED6 wave \u7684 task \u8BE6\u60C5\n- \u4E0D\u76F8\u5173\u7684 skill \u5185\u5BB9\n- \u5176\u4ED6 subagent \u7684\u5B8C\u6574\u8F93\u51FA\n\n### \u5B8C\u6210\u540C\u6B65\n\n- \u6BCF\u4E2A subagent \u5B8C\u6210\u540E\uFF0C\u63D0\u53D6\u7B80\u77ED\u7684**\u5B8C\u6210\u6458\u8981**\uFF08\u4FEE\u6539\u4E86\u54EA\u4E9B\u6587\u4EF6\u3001\u5173\u952E\u53D8\u66F4\u70B9\uFF09\n- \u5C06\u6458\u8981\u4F20\u9012\u7ED9\u540E\u7EED wave \u7684 subagent \u4F5C\u4E3A\u4E0A\u4E0B\u6587\n- \u5728 `tasks.md` \u4E2D\u5C06\u5BF9\u5E94\u4EFB\u52A1\u6807\u8BB0\u4E3A `[x]`\n\n### \u964D\u7EA7\u7B56\u7565\n\n\u5F53 AI \u5E73\u53F0\u4E0D\u652F\u6301 subagent \u65F6\uFF0C\u6309\u4EE5\u4E0B\u964D\u7EA7\u7B56\u7565\u6267\u884C\uFF1A\n1. \u4ECD\u6309 wave \u987A\u5E8F\u6267\u884C\u4EFB\u52A1\n2. \u6BCF\u4E2A task \u6267\u884C\u524D\uFF0C\u6E05\u7406\u4E0D\u76F8\u5173\u7684 skill \u4E0A\u4E0B\u6587\n3. \u6BCF\u4E2A task \u6267\u884C\u540E\uFF0C\u4EC5\u4FDD\u7559\u5B8C\u6210\u6458\u8981\uFF0C\u907F\u514D\u4E0A\u4E0B\u6587\u7D2F\u79EF\u81A8\u80C0\n";
|
|
1
|
+
export declare const agentsTemplate = "# ZhuanSpec \u4F7F\u7528\u8BF4\u660E\n\n\u9762\u5411\u4F7F\u7528 ZhuanSpec \u8FDB\u884C\u89C4\u8303\u9A71\u52A8\u5F00\u53D1\u7684 AI \u7F16\u7A0B\u52A9\u624B\u7684\u8BF4\u660E\u6587\u6863\u3002\n\n---\n\n## \u26A1 \u4E09\u6761\u94C1\u5F8B\uFF08\u4E0D\u53EF\u8FDD\u53CD\uFF09\n\n> \u4E09\u6761\u94C1\u5F8B\u662F ZhuanSpec \u5DE5\u4F5C\u6D41\u7684\u6838\u5FC3\u7EA6\u675F\uFF0C\u4EFB\u4F55\u60C5\u51B5\u4E0B\u90FD\u5FC5\u987B\u9075\u5B88\u3002\n\n| \u94C1\u5F8B | \u542B\u4E49 | \u8FDD\u53CD\u540E\u679C |\n|------|------|---------|\n| **No Spec, No Code** | \u6CA1\u6709\u6587\u6863\u4E0D\u51C6\u5199\u4EE3\u7801 | Propose \u9636\u6BB5\u4EA7\u51FA spec \u624D\u80FD\u8FDB\u5165 Apply |\n| **Spec is Truth** | \u6587\u6863\u4E0E\u4EE3\u7801\u51B2\u7A81\u65F6\uFF0C\u9519\u7684\u4E00\u5B9A\u662F\u4EE3\u7801 | \u5F52\u6863\u65F6\u5F3A\u5236\u6821\u9A8C Spec-Code \u4E00\u81F4\u6027 |\n| **Reverse Sync** | \u53D1\u73B0\u504F\u5DEE\u5148\u4FEE Spec\uFF0C\u518D\u4FEE\u4EE3\u7801 | Apply \u9636\u6BB5\u6BCF\u5B8C\u6210\u4E00\u4E2A Task \u505A\u504F\u5DEE\u68C0\u6D4B |\n\n### \u94C1\u5F8B\u6267\u884C\u673A\u5236\n\n**\u94C1\u5F8B\u4E00\u6267\u884C**\uFF1A\n- Propose \u9636\u6BB5\u521B\u5EFA\u63D0\u6848\u540E\uFF0C\u5FC5\u987B\u7B49\u5F85\u7528\u6237\u660E\u786E\u6279\u51C6\uFF08\u56DE\u590D\"Plan Approved\"\u6216\u9009\u62E9\"\u6279\u51C6\uFF0C\u8FDB\u5165\u5B9E\u65BD\u9636\u6BB5\"\uFF09\u624D\u80FD\u8FDB\u5165 Apply\n- \u81EA\u52A8\u9A8C\u8BC1\u901A\u8FC7\u540E\uFF0C\u4F7F\u7528\u9009\u9879\u5F0F\u4EA4\u4E92\uFF08AskUserQuestion\uFF09\u5F39\u51FA\u786E\u8BA4\u5BF9\u8BDD\u6846\n- \u672A\u6279\u51C6\u524D\uFF0CPreToolUse Hook \u963B\u65AD\u6240\u6709\u4EE3\u7801\u4FEE\u6539\u64CD\u4F5C\n\n**\u94C1\u5F8B\u4E8C\u6267\u884C**\uFF1A\n- Archive \u9636\u6BB5\u524D\uFF0C\u5FC5\u987B\u9A8C\u8BC1\u5F52\u6863\u5185\u5BB9\u4E0E\u4EE3\u7801\u5B9E\u73B0\u4E00\u81F4\n- \u5982\u4E0D\u4E00\u81F4\uFF0C\u5FC5\u987B\u5148\u66F4\u65B0\u5F52\u6863\u5185\u5BB9\uFF0C\u518D\u5B8C\u6210\u5F52\u6863\n- PreArchive Hook \u68C0\u67E5 Spec-Code \u4E00\u81F4\u6027\n\n**\u94C1\u5F8B\u4E09\u6267\u884C**\uFF1A\n- Apply \u9636\u6BB5\u6BCF\u6B21 Write/Edit \u64CD\u4F5C\u524D\uFF0CPreToolUse Hook \u68C0\u6D4B\u504F\u79BB\n- **\u504F\u79BB\u68C0\u6D4B\u89E6\u53D1\u673A\u5236**\uFF1A\n - \u63D0\u6848\u8303\u56F4\u5916\u6587\u4EF6\u4FEE\u6539\u65F6\u81EA\u52A8\u89E6\u53D1\n - \u7528\u6237\u8F93\u5165\u7EA0\u6B63\u5173\u952E\u8BCD\uFF08\"\u4E0D\u5BF9\"\u3001\"\u9519\u4E86\"\u3001\"\u8FD9\u91CC\u5E94\u8BE5\u662F\"\u7B49\uFF09\u65F6\u81EA\u52A8\u89E6\u53D1\n - \u901A\u8FC7\u8BFB\u53D6 `progress.json` \u7684 `phase` \u5B57\u6BB5\u5224\u65AD\u5F53\u524D\u9636\u6BB5\n- \u5982\u679C\u4FEE\u6539\u6587\u4EF6\u4E0D\u5728\u63D0\u6848\u8303\u56F4\u5185\uFF0C\u89E6\u53D1\u504F\u79BB\u5904\u7406\u6D41\u7A0B\uFF1A\n 1. \u5F39\u51FA\u9009\u9879\u5F0F\u4EA4\u4E92\uFF1A\u66F4\u65B0\u63D0\u6848\u540E\u7EE7\u7EED / Bug\u4FEE\u590D\u8C41\u514D / \u53D6\u6D88\u4FEE\u6539\n 2. \u7528\u6237\u9009\u62E9\"\u66F4\u65B0\u63D0\u6848\u540E\u7EE7\u7EED\" \u2192 AI \u8FDB\u5165 Propose \u6A21\u5F0F \u2192 \u81EA\u52A8\u66F4\u65B0 proposal.md \u548C tasks.md \u2192 `zhuanspec validate --auto-fix` \u2192 \u8FD4\u56DE Apply \u6267\u884C\u539F\u4FEE\u6539\n 3. \u7528\u6237\u9009\u62E9\"Bug\u4FEE\u590D\u8C41\u514D\" \u2192 \u6807\u8BB0\u4E3A Bug \u4FEE\u590D \u2192 \u5141\u8BB8\u4FEE\u6539\uFF0C\u8DF3\u8FC7\u63D0\u6848\u6D41\u7A0B\n 4. \u7528\u6237\u9009\u62E9\"\u53D6\u6D88\" \u2192 \u4E0D\u6267\u884C\u4FEE\u6539 \u2192 \u7EE7\u7EED\u539F\u4EFB\u52A1\n- **\u504F\u79BB\u4FEE\u6B63\u6D41\u7A0B**\uFF08\u7528\u6237\u7EA0\u6B63\u65F6\uFF09\uFF1A\n 1. \u5148\u4FEE\u6539 spec \u6587\u4EF6\uFF0C\u5B9E\u65F6\u540C\u6B65\u7528\u6237\u786E\u8BA4\n 2. \u7528\u6237\u786E\u8BA4\u540E\u4FEE\u6539\u4EE3\u7801\uFF0C\u5B8C\u6210\u540E\u9A8C\u8BC1\n 3. \u7528\u6237\u786E\u8BA4\u65E0\u8BEF\u540E\u89E6\u53D1\u77E5\u8BC6\u6C89\u6DC0\n\n### AI \u81EA\u7531\u5EA6\u63A7\u5236\u77E9\u9635\n\n| \u9636\u6BB5 | \u81EA\u7531\u5EA6 | \u5141\u8BB8\u884C\u4E3A | \u7981\u6B62\u884C\u4E3A |\n|------|--------|---------|---------|\n| **Propose** | \u9AD8 | \u63A2\u7D22\u4EE3\u7801\u3001\u8BBE\u8BA1\u65B9\u6848\u3001\u63D0\u95EE\u6F84\u6E05 | \u7F16\u5199\u4EFB\u4F55\u4EE3\u7801 |\n| **Apply** | \u96F6 | \u4E25\u683C\u6309 tasks.md \u65BD\u5DE5 | \u8D85\u51FA\u63D0\u6848\u8303\u56F4\u4FEE\u6539\u3001\u81EA\u884C\u6DFB\u52A0\u4EFB\u52A1 |\n| **Review** | \u4E2D | \u9A8C\u8BC1\u5B9E\u73B0\u3001\u751F\u6210\u6D4B\u8BD5\u3001\u5BA1\u67E5\u4EE3\u7801 | \u4FEE\u6539\u529F\u80FD\u4EE3\u7801 |\n| **Archive** | \u4F4E | \u5408\u5E76\u89C4\u8303\u3001\u751F\u6210\u6458\u8981 | \u4FEE\u6539\u5DF2\u5F52\u6863\u5185\u5BB9 |\n\n---\n\n## \u77E5\u8BC6\u5E93\u68C0\u67E5\n\n**\u5728\u4EFB\u4F55\u9636\u6BB5\u5F00\u59CB\u524D\uFF0C\u5FC5\u987B\u5148\u68C0\u67E5\u77E5\u8BC6\u5E93\uFF1A**\n\n| \u64CD\u4F5C | \u547D\u4EE4 | \u76EE\u7684 |\n|------|------|------|\n| \u641C\u7D22\u9677\u9631 | `rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/troubleshooting/` | \u907F\u514D\u91CD\u590D\u8E29\u5751 |\n| \u641C\u7D22\u6700\u4F73\u5B9E\u8DF5 | `rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/best-practices/` | \u5B66\u4E60\u6210\u529F\u7ECF\u9A8C |\n| \u641C\u7D22\u9690\u5F0F\u7EA6\u5B9A | `rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/implicit-conventions/` | \u7406\u89E3\u56E2\u961F\u7EA6\u5B9A |\n| \u9605\u8BFB\u77E5\u8BC6\u7D22\u5F15 | `cat zhuanspec/knowledge/index.md` | \u4E86\u89E3\u9879\u76EE\u7EA7\u77E5\u8BC6\u6458\u8981 |\n\n**\u77E5\u8BC6\u5E93\u4F5C\u7528**\uFF1A\n- \u51CF\u5C11\u91CD\u590D\u8E29\u5751\uFF0C\u79EF\u7D2F\u9879\u76EE\u7ECF\u9A8C\n- \u63D0\u4F9B\u56E2\u961F\u9690\u5F0F\u7EA6\u5B9A\u7684\u4E66\u9762\u8BB0\u5F55\n- \u52A0\u901F\u65B0\u6210\u5458\u878D\u5165\u548C\u77E5\u8BC6\u4F20\u627F\n\n---\n\n## \u5FEB\u901F\u68C0\u67E5\u6E05\u5355\n\n- \u641C\u7D22\u73B0\u6709\u5DE5\u4F5C\uFF1A`zhuanspec spec list --long`\u3001`zhuanspec list`\uFF08\u4EC5\u4F7F\u7528 `rg` \u8FDB\u884C\u5168\u6587\u641C\u7D22\uFF09\n- **\u68C0\u67E5\u77E5\u8BC6\u5E93**\uFF1A`rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/` \u641C\u7D22\u76F8\u5173\u9677\u9631\u548C\u6700\u4F73\u5B9E\u8DF5\n- \u786E\u5B9A\u8303\u56F4\uFF1A\u65B0\u529F\u80FD vs \u4FEE\u6539\u73B0\u6709\u529F\u80FD\n- \u9009\u62E9\u552F\u4E00\u7684 `change-id`\uFF1Akebab-case \u683C\u5F0F\uFF0C\u52A8\u8BCD\u5F00\u5934\uFF08`add-`\u3001`update-`\u3001`remove-`\u3001`refactor-`\uFF09\n- \u642D\u5EFA\u7ED3\u6784\uFF1A`proposal.md`\u3001`tasks.md`\u3001`design.md`\uFF0C\u4EE5\u53CA\u6BCF\u4E2A\u53D7\u5F71\u54CD\u529F\u80FD\u7684\u89C4\u8303\u589E\u91CF\n- \u7F16\u5199\u589E\u91CF\uFF1A\u4F7F\u7528 `## ADDED|MODIFIED|REMOVED|RENAMED Requirements`\uFF1B\u6BCF\u4E2A\u8981\u6C42\u81F3\u5C11\u5305\u542B\u4E00\u4E2A `#### Scenario:`\n- \u9A8C\u8BC1\uFF1A\u8FD0\u884C `zhuanspec validate [change-id] --strict` \u5E76\u4FEE\u590D\u95EE\u9898\n- \u8BF7\u6C42\u6279\u51C6\uFF1A\u5728\u63D0\u6848\u83B7\u5F97\u6279\u51C6\u4E4B\u524D\u4E0D\u8981\u5F00\u59CB\u5B9E\u65BD\n\n## \u8FDB\u5EA6\u6C47\u62A5\u7EA6\u5B9A\n\nApply \u9636\u6BB5\u6267\u884C\u6BCF\u4E2A\u4EFB\u52A1\u65F6\uFF0C\u5FC5\u987B\u6309\u4EE5\u4E0B\u683C\u5F0F\u8F93\u51FA\u8FDB\u5EA6\uFF1A\n\n**\u4EFB\u52A1\u5F00\u59CB\u65F6**\uFF1A\n```\n\u2501\u2501\u2501 \uD83D\uDE80 \u5F00\u59CB\u4EFB\u52A1 [X.Y/N] \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u4EFB\u52A1: [\u4EFB\u52A1\u63CF\u8FF0]\nWave: W/N | Phase: Apply\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n**\u4EFB\u52A1\u5B8C\u6210\u540E**\uFF1A\n```\n\u2501\u2501\u2501 \u2705 \u4EFB\u52A1\u5B8C\u6210 [X.Y/N] \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u5DF2\u4FEE\u6539: [\u6587\u4EF6\u5217\u8868]\n\u4E0B\u4E00\u4E2A: [\u4E0B\u4E00\u4EFB\u52A1ID]\n\u6574\u4F53\u8FDB\u5EA6: \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591 XX.X%\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n```\n\n**\u8FDB\u5EA6\u6761\u683C\u5F0F**\uFF1A\n- \u4F7F\u7528 12 \u4E2A block \u5B57\u7B26\uFF08\u2588 \u548C \u2591\uFF09\n- \u8FDB\u5EA6\u767E\u5206\u6BD4 = (\u5DF2\u5B8C\u6210\u4EFB\u52A1\u6570 / \u603B\u4EFB\u52A1\u6570) \u00D7 100\n- \u4FDD\u7559 1 \u4F4D\u5C0F\u6570\n\n**\u793A\u4F8B**\uFF1A\n- 3/8 \u5B8C\u6210 \u2192 `\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591\u2591\u2591\u2591\u2591\u2591 37.5%`\n- 6/8 \u5B8C\u6210 \u2192 `\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2591\u2591 75.0%`\n\n---\n\n## \u56DB\u9636\u6BB5\u5DE5\u4F5C\u6D41\n\n### \u9636\u6BB5 1\uFF1A\u521B\u5EFA\u53D8\u66F4\n\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\u521B\u5EFA\u63D0\u6848\uFF1A\n- \u6DFB\u52A0\u529F\u80FD\u6216\u7279\u6027\n- \u8FDB\u884C\u7834\u574F\u6027\u66F4\u6539\uFF08API\u3001schema\uFF09\n- \u66F4\u6539\u67B6\u6784\u6216\u6A21\u5F0F\n- \u4F18\u5316\u6027\u80FD\uFF08\u6539\u53D8\u884C\u4E3A\uFF09\n- \u66F4\u65B0\u5B89\u5168\u6A21\u5F0F\n\n\u89E6\u53D1\u8BCD\u793A\u4F8B\uFF1A\n- \"\u5E2E\u6211\u521B\u5EFA\u4E00\u4E2A\u53D8\u66F4\u63D0\u6848\"\n- \"\u5E2E\u6211\u89C4\u5212\u4E00\u4E2A\u53D8\u66F4\"\n- \"\u5E2E\u6211\u521B\u5EFA\u4E00\u4E2A\u63D0\u6848\"\n- \"\u6211\u60F3\u521B\u5EFA\u4E00\u4E2A\u89C4\u8303\u63D0\u6848\"\n- \"\u6211\u60F3\u521B\u5EFA\u4E00\u4E2A\u89C4\u8303\"\n\n\u5BBD\u677E\u5339\u914D\u6307\u5BFC\uFF1A\n- \u5305\u542B\u4EE5\u4E0B\u4E4B\u4E00\uFF1A`proposal`\u3001`change`\u3001`spec`\n- \u4E0E\u4EE5\u4E0B\u4E4B\u4E00\u7EC4\u5408\uFF1A`create`\u3001`plan`\u3001`make`\u3001`start`\u3001`help`\n\n\u8DF3\u8FC7\u63D0\u6848\u7684\u60C5\u51B5\uFF1A\n- Bug \u4FEE\u590D\uFF08\u6062\u590D\u9884\u671F\u884C\u4E3A\uFF09\n- \u62FC\u5199\u9519\u8BEF\u3001\u683C\u5F0F\u3001\u6CE8\u91CA\n- \u4F9D\u8D56\u66F4\u65B0\uFF08\u975E\u7834\u574F\u6027\uFF09\n- \u914D\u7F6E\u66F4\u6539\n- \u73B0\u6709\u884C\u4E3A\u7684\u6D4B\u8BD5\n\n**\u5DE5\u4F5C\u6D41**\n0. **\u68C0\u67E5\u77E5\u8BC6\u5E93\u3001\u52A0\u8F7D\u9879\u76EE\u77E5\u8BC6\u5E76\u5BA1\u67E5\u9879\u76EE**\uFF1A\n - \u8FD0\u884C `rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/` \u641C\u7D22\u76F8\u5173\u9677\u9631\u548C\u6700\u4F73\u5B9E\u8DF5\uFF0C\u907F\u514D\u91CD\u590D\u8E29\u5751\n - \u9605\u8BFB `zhuanspec/knowledge/index.md` \u4E86\u89E3\u9879\u76EE\u7EA7\u77E5\u8BC6\u6458\u8981\n - **\u52A0\u8F7D\u9879\u76EE\u77E5\u8BC6**\uFF1A\u8C03\u7528 `@skill:load-project-knowledge` \u8FDB\u884C\u6E10\u8FDB\u5F0F\u52A0\u8F7D\uFF1A\n * \u8F93\u5165\uFF1Adomain\uFF08\u5F53\u524D\u9879\u76EE\uFF09\u3001keywords\uFF08\u4ECE\u9700\u6C42\u63CF\u8FF0\u63D0\u53D6\uFF09\n * \u83B7\u53D6\uFF1Amatched_services\uFF08\u6D89\u53CA\u7684\u670D\u52A1\u5217\u8868\uFF09\u3001search_priority\uFF08\u68C0\u7D22\u4F18\u5148\u8DEF\u5F84\uFF09\u3001architecture_constraints\uFF08\u67B6\u6784\u7EA6\u675F\uFF09\n * \u4F7F\u7528\uFF1A\u540E\u7EED\u4EE3\u7801\u5B9A\u4F4D\u4F7F\u7528 search_priority \u9650\u5B9A\u8303\u56F4\uFF0C\u65B9\u6848\u8BBE\u8BA1\u68C0\u67E5 architecture_constraints\n * \u517C\u5BB9\u7B56\u7565\uFF1A\u82E5\u672A\u627E\u5230 project.md \u6216\u5173\u952E\u8BCD\u65E0\u5339\u914D\uFF0C\u8F93\u51FA\u8B66\u544A\u5E76\u4F7F\u7528\u5168\u5C40\u68C0\u7D22\n - \u9605\u8BFB `zhuanspec/project.md` \u4E86\u89E3\u9879\u76EE\u7EA6\u5B9A\uFF08\u63D0\u793A\uFF1A\"\u2713 Loaded project.md\"\uFF09\n - \u5BA1\u67E5 `zhuanspec/project.md`\uFF0C`zhuanspec list` \u548C `zhuanspec list --specs` \u4EE5\u4E86\u89E3\u5F53\u524D\u4E0A\u4E0B\u6587\u3002\n1. **\u5F3A\u5236\u8BE2\u95EE\u6D4B\u8BD5\u7528\u4F8B\uFF08TDD \u6A21\u5F0F\u68C0\u67E5\u70B9\uFF0C\u5FC5\u987B\u9996\u5148\u6267\u884C\uFF09**\uFF1A\n - \u4F7F\u7528\u9009\u9879\u5F0F\u4EA4\u4E92\u8BE2\u95EE\uFF1A\"\u8BF7\u63D0\u4F9B\u76F8\u5173\u7684\u6D4B\u8BD5\u7528\u4F8B\uFF08\u53EF\u9009\uFF09\uFF0C\u53EF\u4EE5\u662F\uFF1A\u672C\u5730\u76EE\u5F55\u8DEF\u5F84\u3001\u5728\u7EBF\u94FE\u63A5\uFF08\u5C06\u901A\u8FC7 zzcase-data-fetcher skill \u83B7\u53D6\uFF09\u3001\u6216\u8DF3\u8FC7\u6B64\u6B65\u9AA4\u7EE7\u7EED\u5E38\u89C4\u6D41\u7A0B\"\n - \u7528\u6237\u9009\u62E9\"\u63D0\u4F9B\u6D4B\u8BD5\u7528\u4F8B\"\uFF1A\u8FDB\u5165 TDD \u9A71\u52A8\u6A21\u5F0F\n * \u660E\u786E\u544A\u77E5\uFF1A\u6D4B\u8BD5\u7528\u4F8B\u5C06\u7528\u4E8E\u9700\u6C42\u5B9A\u4E49\u3001\u5355\u5143\u6D4B\u8BD5\u751F\u6210\u3001\u5B9E\u65BD\u9A8C\u8BC1\n * \u5728 proposal.md \u521B\u5EFA \"Test Case Coverage\" \u90E8\u5206\n * \u5728 tasks.md \u4F7F\u7528 `@test-case:TC-XXX` \u6807\u7B7E\u5173\u8054\u4EFB\u52A1\n * \u521B\u5EFA test-cases.md \u8BB0\u5F55\u6D4B\u8BD5\u7528\u4F8B\u8BE6\u60C5\n - \u7528\u6237\u9009\u62E9\"\u8DF3\u8FC7\"\uFF1A\u7EE7\u7EED\u5E38\u89C4\u6D41\u7A0B\uFF08\u5373\u63D0\u6848\u65E0\u9700\u8003\u8651\u6D4B\u8BD5case\uFF09\n\n \u26A0\uFE0F **CHECKPOINT [TDD-MODE]**:\n - TDD \u6A21\u5F0F\u4E0B\uFF0CApply \u9636\u6BB5\u6BCF\u4E2A\u4EFB\u52A1\u5B8C\u6210\u540E\u9700\u9A8C\u8BC1\u5BF9\u5E94\u6D4B\u8BD5\u7528\u4F8B\u901A\u8FC7\n - Review \u9636\u6BB5\u5305\u542B\u6D4B\u8BD5\u8986\u76D6\u7387\u68C0\u67E5\n - \u6D4B\u8BD5\u7528\u4F8B\u5728 TDD \u6A21\u5F0F\u4E0B\u53D1\u6325\u5173\u952E\u9A8C\u8BC1\u4F5C\u7528\uFF0C\u786E\u4FDD\u4EE3\u7801\u7B26\u5408\u9884\u671F\u884C\u4E3A\n\n2. **\u5F3A\u5236\u6F84\u6E05\u68C0\u67E5\uFF08\u5FC5\u987B\u6267\u884C\uFF0C\u4E0D\u53EF\u8DF3\u8FC7\uFF09**\uFF1A\u5206\u6790\u7528\u6237\u8BF7\u6C42\uFF0C\u8BC6\u522B\u6240\u6709\u4E0D\u786E\u5B9A\u6216\u6A21\u7CCA\u7684\u65B9\u9762\uFF08\u8303\u56F4\u3001\u6280\u672F\u9009\u62E9\u3001\u5B9E\u73B0\u7EC6\u8282\u3001\u6570\u636E\u83B7\u53D6\u6765\u6E90\u3001\u670D\u52A1\u5206\u5C42\u3001\u4F9D\u8D56\u5173\u7CFB\u3001\u4F18\u5148\u7EA7\u3001\u9A8C\u6536\u6807\u51C6\u7B49......\uFF09\u3002\u5982\u679C\u53D1\u73B0\u4EFB\u4F55\u6A21\u7CCA\u4E4B\u5904\uFF0C\u5FC5\u987B\u505C\u6B62\u5E76\u4F7F\u7528**\u9009\u9879\u5F0F\u4EA4\u4E92**\uFF08\u5982 `AskQuestion` \u5DE5\u5177\uFF09\u63D0\u95EE\uFF0C\u83B7\u5F97\u660E\u786E\u7B54\u590D\u540E\u624D\u80FD\u7EE7\u7EED\u3002\u4E25\u7981\u5728\u4E0D\u786E\u5B9A\u7684\u60C5\u51B5\u4E0B\u81EA\u884C\u63A8\u6D4B\u6216\u521B\u5EFA\u63D0\u6848\uFF0C\u4E25\u7981\u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u5927\u6BB5\u6587\u5B57\u3002\n\n \u26A0\uFE0F **CHECKPOINT [PRE-CLARIFICATION]**:\n You MUST record the pre-clarification result in tasks.md under \"## Pre-Clarification Log\":\n - If questions were asked: Record each question and the user's answer\n - If no clarification needed: Write \"Status: COMPLETED - No clarification needed\" with brief justification\n - This section MUST NOT be empty or contain only HTML comments\n - NEVER proceed to proposal writing without completing this checkpoint\n\n3. \u9009\u62E9\u4E00\u4E2A\u552F\u4E00\u7684\u52A8\u8BCD\u5F00\u5934\u7684 `change-id`\uFF0C\u5E76\u5728 `zhuanspec/changes/<id>/` \u4E0B\u642D\u5EFA `proposal.md`\u3001`tasks.md`\u3001`design.md` \u548C\u89C4\u8303\u589E\u91CF\u3002\n4. \u5C06\u53D8\u66F4\u6620\u5C04\u4E3A\u5177\u4F53\u7684\u529F\u80FD\u6216\u8981\u6C42\uFF0C\u5C06\u591A\u8303\u56F4\u7684\u5DE5\u4F5C\u5206\u89E3\u4E3A\u5177\u6709\u660E\u786E\u5173\u7CFB\u548C\u987A\u5E8F\u7684\u4E0D\u540C\u89C4\u8303\u589E\u91CF\u3002\n5. \u5F53\u89E3\u51B3\u65B9\u6848\u8DE8\u8D8A\u591A\u4E2A\u7CFB\u7EDF\u3001\u5F15\u5165\u65B0\u6A21\u5F0F\u6216\u5728\u63D0\u4EA4\u89C4\u8303\u4E4B\u524D\u9700\u8981\u6743\u8861\u8BA8\u8BBA\u65F6\uFF0C\u5728 `design.md` \u4E2D\u6355\u83B7\u67B6\u6784\u63A8\u7406\u3002\n6. \u5728 `changes/<id>/specs/<capability>/spec.md` \u4E2D\u8D77\u8349\u89C4\u8303\u589E\u91CF\uFF08\u6BCF\u4E2A\u529F\u80FD\u4E00\u4E2A\u6587\u4EF6\u5939\uFF09\uFF0C\u4F7F\u7528 `## ADDED|MODIFIED|REMOVED Requirements`\uFF0C\u6BCF\u4E2A\u8981\u6C42\u81F3\u5C11\u5305\u542B\u4E00\u4E2A `#### Scenario:`\uFF0C\u5E76\u5728\u76F8\u5173\u65F6\u4EA4\u53C9\u5F15\u7528\u76F8\u5173\u529F\u80FD\u3002\n7. **\u53D1\u73B0\u53EF\u7528 Skill \u5E76\u521B\u5EFA tasks.md**\uFF1A\n - \u8FD0\u884C `zhuanspec skills list --json` \u83B7\u53D6\u5F53\u524D\u73AF\u5883\u4E2D\u53EF\u7528\u7684 skill \u5217\u8868\u53CA\u5176 description\n - \u5728 `proposal.md` \u7684 **Skill Mapping** \u6BB5\u4E2D\u57FA\u4E8E skill description \u8FDB\u884C\u8BED\u4E49\u5339\u914D\uFF1A\n - \u4ED4\u7EC6\u9605\u8BFB\u6BCF\u4E2A skill \u7684 description\uFF0C\u7406\u89E3\u5176\u5177\u4F53\u529F\u80FD\u548C\u9002\u7528\u573A\u666F\n - \u53EA\u6709\u5F53\u5B9E\u73B0\u533A\u57DF\u7684\u5B9E\u9645\u529F\u80FD\u4E0E skill description \u660E\u786E\u5339\u914D\u65F6\u624D\u5173\u8054\n - \u7B80\u5355\u7684\u4EE3\u7801\u4FEE\u6539\uFF08\u5982\u679A\u4E3E\u503C\u589E\u5220\uFF09\u5E94\u5339\u914D\u901A\u7528\u7F16\u7801\u89C4\u8303 skill\uFF0C\u800C\u975E\u67B6\u6784\u7EA7 skill\n - \u907F\u514D\u4EC5\u56E0\u6A21\u5757\u540D\u79F0\u6216\u6587\u4EF6\u8DEF\u5F84\u4E2D\u7684\u5173\u952E\u8BCD\u800C\u9519\u8BEF\u5339\u914D\n - \u5728\u8868\u683C\u4E2D\u8BF4\u660E\u5339\u914D\u7406\u7531\n - \u5C06 `tasks.md` \u8D77\u8349\u4E3A\u6709\u5E8F\u7684\u5C0F\u578B\u3001\u53EF\u9A8C\u8BC1\u5DE5\u4F5C\u9879\u5217\u8868\n - \u4F7F\u7528 `@skill:<real-skill-name>` \u6807\u6CE8\u4E0E skill \u5339\u914D\u7684\u4EFB\u52A1\uFF08\u652F\u6301\u591A\u4E2A\uFF1A`@skill:name1,name2`\uFF09\n - \u4EC5\u5F53 skill \u660E\u786E\u5339\u914D\u4EFB\u52A1\u65F6\u624D\u6807\u6CE8\uFF0C\u6CA1\u6709\u5339\u914D\u7684 skill \u53EF\u7701\u7565\u6807\u7B7E\n\n \u26A0\uFE0F **CHECKPOINT [SKILL-TAGGING]**:\n 1. You MUST run `zhuanspec skills list` first and record discovered skills in the Skill Mapping table\n 2. Every task MUST have either @skill:real-skill-name or @skill:none\n 3. If @skill:none, you MUST provide a justification (e.g., \"pure config change, no skill applies\")\n 4. @skill names MUST match exactly the names returned by `zhuanspec skills list` \u2014 do NOT invent skill names\n 5. The Skill Mapping table in tasks.md MUST NOT be empty\n 6. validate --strict will verify all @skill names exist in the known skill list\n\n \u26A0\uFE0F **CHECKPOINT [TASK-ORDERING]**:\n 1. Tasks in tasks.md MUST be organized under Wave headers (### Wave 1, ### Wave 2, etc.)\n 2. Wave assignment must be computed from @depends relationships (Wave 1 = no deps, Wave N = depends on Wave N-1)\n 3. No task may appear before a task it depends on\n 4. You MUST add a \"## Dependency Analysis\" section at the end with \"Status: COMPLETED\"\n 5. validate --strict will verify task ordering matches computed waves\n\n8. **\u6D4B\u8BD5 case \u5904\u7406\uFF08\u4EC5 TDD \u6A21\u5F0F\uFF09**\uFF1A\n\n **\u26A0\uFE0F \u6A21\u5F0F\u5224\u65AD**\uFF1A\u6839\u636E\u4EE5\u4E0B\u6761\u4EF6\u5224\u65AD\u5F53\u524D\u662F\u54EA\u79CD\u6A21\u5F0F\uFF1A\n - **\u6709 case \u6A21\u5F0F**\uFF1A\u7528\u6237\u63D0\u4F9B\u6D4B\u8BD5 case \u6765\u6E90\uFF08taskId/bicId\uFF09\u3001\u7528\u6237\u8981\u6C42 TDD \u5DE5\u4F5C\u6D41\u3001\u6216\u660E\u786E\u8981\u6C42\u8BBE\u8BA1\u6D4B\u8BD5 case\n - **\u65E0 case \u6A21\u5F0F**\uFF1A\u666E\u901A spec-driven \u5DE5\u4F5C\u6D41\uFF0C\u7528\u6237\u672A\u63D0\u4F9B\u6D4B\u8BD5 case \u76F8\u5173\u4FE1\u606F\n\n **\u3010\u6709 case \u6A21\u5F0F\u3011**\uFF08\u5FC5\u987B\u6267\u884C\u4EE5\u4E0B\u6B65\u9AA4\uFF09\uFF1A\n - \u83B7\u53D6\u6D4B\u8BD5 case \u6765\u6E90\uFF1A\n * \u901A\u8FC7 taskId/bicId \u83B7\u53D6\u6D4B\u8BD5 case\uFF08\u4F7F\u7528 MCP \u5DE5\u5177 `zzcase_get_api_report_queryBaseCase`\uFF09\n * \u624B\u52A8\u5F55\u5165\u6D4B\u8BD5 case\n - **\u3010\u5F3A\u5236\u3011\u521B\u5EFA test-cases.md \u6587\u4EF6**\uFF1A\n * \u4F7F\u7528 `getTestCasesTemplate` \u6A21\u677F\uFF08\u4ECE `src/core/templates/index.ts` \u5BFC\u51FA\uFF09\n * \u6587\u4EF6\u8DEF\u5F84\uFF1A`changes/<change-id>/test-cases.md`\n * \u586B\u5199\u83B7\u53D6\u65F6\u95F4\u3001\u6765\u6E90\uFF08taskId/bicId/manual\uFF09\u3001\u6D4B\u8BD5 case \u8BE6\u60C5\n * \u6BCF\u4E2A TC-XXX \u5FC5\u987B\u5305\u542B\uFF1A\u524D\u7F6E\u6761\u4EF6\u3001\u6D4B\u8BD5\u6B65\u9AA4\u3001\u9884\u671F\u7ED3\u679C\u3001\u9A8C\u6536\u70B9\n - \u5728 `tasks.md` \u589E\u52A0 **Test Case Coverage** \u8868\u683C\uFF08\u56DB\u5217\u683C\u5F0F\uFF09\uFF1A\n | Task | \u6D4B\u8BD5 Case ID | \u6D4B\u8BD5 Case \u6587\u4EF6\u8DEF\u5F84 | \u8986\u76D6\u573A\u666F |\n |------|-------------|-------------------|----------|\n * \"\u6D4B\u8BD5 Case \u6587\u4EF6\u8DEF\u5F84\" \u5217\u586B\u5199 BIC \u8DEF\u5F84\u5C42\u7EA7\u683C\u5F0F\n - \u4F7F\u7528 `@test-case:TC-XXX` \u5173\u8054\u4EFB\u52A1\u4E0E\u6D4B\u8BD5 case\n\n \u26A0\uFE0F **CHECKPOINT [TEST-CASE-COVERAGE]**\uFF08\u4EC5\u9002\u7528\u4E8E\u6709 case \u6A21\u5F0F\uFF09:\n 1. \u6BCF\u4E2A Requirement \u5E94\u81F3\u5C11\u5BF9\u5E94\u4E00\u4E2A\u6D4B\u8BD5 case\n 2. \u6D4B\u8BD5 case \u5E94\u8986\u76D6\u6B63\u5411\u548C\u5F02\u5E38\u573A\u666F\n 3. **\u5FC5\u987B\u521B\u5EFA test-cases.md \u6587\u4EF6**\uFF08\u4F7F\u7528 `getTestCasesTemplate` \u6A21\u677F\uFF09\n 4. Test Case Coverage \u8868\u683C\u5FC5\u987B\u5305\u542B\u56DB\u5217\uFF1ATask\u3001\u6D4B\u8BD5 Case ID\u3001\u6D4B\u8BD5 Case \u6587\u4EF6\u8DEF\u5F84\u3001\u8986\u76D6\u573A\u666F\n 5. validate --strict \u4F1A\u9A8C\u8BC1\u6D4B\u8BD5 case \u8986\u76D6\u7387\uFF08**\u963B\u585E\u7EA7\u522B**\uFF09\n\n **\u3010\u65E0 case \u6A21\u5F0F\u3011**\uFF08\u8DF3\u8FC7\u6D4B\u8BD5 case \u76F8\u5173\u6B65\u9AA4\uFF09\uFF1A\n - \u4E0D\u521B\u5EFA test-cases.md\n - tasks.md \u4E0D\u9700\u8981 Test Case Coverage \u6BB5\n - validate --strict \u7684 test-case-coverage \u89C4\u5219\u81EA\u52A8\u8DF3\u8FC7\uFF08SKIPPED\uFF09\n - \u5355\u6D4B\u7EDF\u4E00\u5728 Review \u9636\u6BB5\u5904\u7406\n\n9. \u3010\u81EA\u52A8\u9A8C\u8BC1\u4E0E\u4FEE\u590D\u3011\uFF1A\n \u8FD0\u884C `zhuanspec validate <id> --strict --auto-fix` \u8FDB\u884C\u9A8C\u8BC1\uFF1A\n - \u5982\u679C\u9A8C\u8BC1\u901A\u8FC7\uFF08PASS\uFF09\uFF1A\u7EE7\u7EED\u4E0B\u4E00\u6B65\n - \u5982\u679C\u9A8C\u8BC1\u5931\u8D25\uFF08FAIL\uFF09\uFF1A\u81EA\u52A8\u89E6\u53D1\u4FEE\u590D\u5FAA\u73AF\uFF1A\n * CLI \u81EA\u52A8\u5206\u6790\u9519\u8BEF\u539F\u56E0\n * CLI \u81EA\u52A8\u751F\u6210\u4FEE\u590D\u65B9\u6848\u5E76\u6267\u884C\n * \u91CD\u65B0\u9A8C\u8BC1\uFF08\u6700\u591A 3 \u6B21\u5FAA\u73AF\uFF09\n * \u5FAA\u73AF\u7ED3\u675F\u540E\u4ECD\u672A\u901A\u8FC7\uFF1A\u8F93\u51FA\u9519\u8BEF\u62A5\u544A\uFF0C\u7B49\u5F85\u4EBA\u5DE5\u5E72\u9884\n - \u9A8C\u8BC1\u901A\u8FC7\u540E\uFF0C\u8F93\u51FA\u63D0\u6848\u6458\u8981\n\n10. \u3010\u8F93\u51FA\u63D0\u6848\u6458\u8981\u3011\uFF1A\n \u2022 \u53D8\u66F4\u539F\u56E0\u3001\u5185\u5BB9\u3001\u5F71\u54CD\u8303\u56F4\n \u2022 \u5173\u952E Requirements\n \u2022 \u4EFB\u52A1\u6570\u91CF\u548C Wave \u5206\u5E03\n\n11. \u3010\u9009\u9879\u5F0F\u4EA4\u4E92\u786E\u8BA4\u3011\uFF1A\n \u4F7F\u7528 AskQuestion \u5DE5\u5177\u5F39\u51FA\u786E\u8BA4\u5BF9\u8BDD\u6846\uFF1A\n ```\n \u95EE\u9898: \"\u8BF7\u786E\u8BA4\u662F\u5426\u6279\u51C6\u6B64\u63D0\u6848\uFF1F\"\n \u9009\u9879\uFF1A\n A) \u6279\u51C6\uFF0C\u8FDB\u5165\u5B9E\u65BD\u9636\u6BB5\n B) \u9700\u8981\u4FEE\u6539\u63D0\u6848\u5185\u5BB9\n C) \u6682\u4E0D\u6279\u51C6\uFF0C\u7A0D\u540E\u5904\u7406\n D) \u5176\u4ED6\uFF08\u8BF7\u5728\u540E\u7EED\u8865\u5145\u8BF4\u660E\uFF09\n ```\n\n \u7528\u6237\u9009\u62E9\u5904\u7406\uFF1A\n \u2022 \u9009\u62E9\"\u6279\u51C6\"\uFF1A\u521B\u5EFA `.approved` \u6587\u4EF6\uFF0C\u8FDB\u5165 Apply \u9636\u6BB5\n \u2022 \u9009\u62E9\"\u4FEE\u6539\"\uFF1A\u8FD4\u56DE\u6B65\u9AA4 4 \u4FEE\u6539\u63D0\u6848\u5185\u5BB9\n \u2022 \u9009\u62E9\"\u6682\u4E0D\"\uFF1A\u4FDD\u6301\u63D0\u6848\u72B6\u6001\uFF0C\u7B49\u5F85\u540E\u7EED\u5904\u7406\n \u2022 \u9009\u62E9\"\u5176\u4ED6\"\uFF1A\u7B49\u5F85\u7528\u6237\u8865\u5145\u8BF4\u660E\u540E\u7EE7\u7EED\n\n \u26A0\uFE0F **CHECKPOINT [PLAN-APPROVED]**:\n - \u7528\u6237\u5FC5\u987B\u660E\u786E\u9009\u62E9\"\u6279\u51C6\"\u9009\u9879\u624D\u80FD\u8FDB\u5165 Apply \u9636\u6BB5\n - \u672A\u6279\u51C6\u524D\u7981\u6B62\u4EFB\u4F55\u4EE3\u7801\u4FEE\u6539\u64CD\u4F5C\n - PreToolUse Hook \u4F1A\u963B\u65AD\u672A\u6279\u51C6\u72B6\u6001\u7684 Write/Edit \u64CD\u4F5C\n\n### \u9636\u6BB5 2\uFF1A\u5B9E\u65BD\u53D8\u66F4\n\n**\u524D\u7F6E\u68C0\u67E5**\uFF1A\n- \u26A0\uFE0F **CHECKPOINT [PLAN-APPROVED]**: `.approved` \u6587\u4EF6\u5FC5\u987B\u5B58\u5728\u3002\u672A\u6279\u51C6\u7684\u63D0\u6848\u7981\u6B62\u5B9E\u65BD\u3002\n - PreToolUse Hook \u4F1A\u963B\u65AD\u672A\u6279\u51C6\u72B6\u6001\u7684 Write/Edit \u64CD\u4F5C\n - \u5982\u679C `.approved` \u4E0D\u5B58\u5728\uFF0C\u63D0\u793A\u7528\u6237\u5148\u5B8C\u6210 Proposal \u9636\u6BB5\u7684\u6279\u51C6\u6D41\u7A0B\n\n\u5C06\u8FD9\u4E9B\u6B65\u9AA4\u4F5C\u4E3A\u5F85\u529E\u4E8B\u9879\u8DDF\u8E2A\uFF0C\u9010\u4E00\u5B8C\u6210\u3002\n\n0. **\u68C0\u67E5\u77E5\u8BC6\u5E93\u3001\u52A0\u8F7D\u9879\u76EE\u77E5\u8BC6\u5E76\u9605\u8BFB proposal.md**\uFF1A\n - \u8FD0\u884C `rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/` \u641C\u7D22\u76F8\u5173\u6700\u4F73\u5B9E\u8DF5\u548C\u9677\u9631\n - **\u52A0\u8F7D\u9879\u76EE\u77E5\u8BC6**\uFF1A\u8C03\u7528 `@skill:load-project-knowledge` \u8FDB\u884C\u6E10\u8FDB\u5F0F\u52A0\u8F7D\uFF1A\n * \u8F93\u5165\uFF1Adomain\uFF08\u5F53\u524D\u9879\u76EE\uFF09\u3001keywords\uFF08\u4ECE tasks.md \u63D0\u53D6\uFF09\n * \u83B7\u53D6\uFF1Amatched_services\u3001search_priority\u3001architecture_constraints\n * \u4F7F\u7528\uFF1A\u4EE3\u7801\u5B9A\u4F4D\u4F7F\u7528 search_priority \u9650\u5B9A\u8303\u56F4\uFF0C\u907F\u514D\u5168\u5C40\u68C0\u7D22\u504F\u5DEE\n - \u9605\u8BFB `zhuanspec/project.md` \u4E86\u89E3\u9879\u76EE\u7EA6\u5B9A\uFF08\u63D0\u793A\uFF1A\"\u2713 Loaded project.md\"\uFF09\n - \u9605\u8BFB proposal.md - \u4E86\u89E3\u8981\u6784\u5EFA\u7684\u5185\u5BB9\n1. **\u9605\u8BFB design.md**\uFF08\u5982\u679C\u5B58\u5728\uFF09 - \u5BA1\u67E5\u6280\u672F\u51B3\u7B56\n2. **\u9605\u8BFB tasks.md** - \u83B7\u53D6\u5B9E\u65BD\u6E05\u5355\n3. **\u5224\u65AD\u6267\u884C\u6A21\u5F0F** - \u6839\u636E tasks.md \u5185\u5BB9\u9009\u62E9\u6267\u884C\u7B56\u7565\uFF1A\n - **\u5982\u679C tasks.md \u5305\u542B `@depends` \u4F9D\u8D56\u58F0\u660E**\uFF1A\n \u2192 \u6309 Wave \u5E76\u884C\u6267\u884C\uFF08\u4F7F\u7528 superpowers:subagent-driven-development skill\uFF09\n - **\u5982\u679C tasks.md \u65E0\u4F9D\u8D56\u58F0\u660E**\uFF1A\n \u2192 \u6309\u987A\u5E8F\u6267\u884C\n4. **\u6309\u987A\u5E8F\u5B9E\u65BD\u4EFB\u52A1**\uFF08\u65E0\u4F9D\u8D56\u58F0\u660E\u65F6\uFF09- \u4FDD\u6301\u7F16\u8F91\u6700\u5C0F\u5316\u3002\u5982\u679C\u4EFB\u52A1\u6807\u6CE8\u4E86 `@skill:<skill-name>`\uFF0C\u76F4\u63A5\u8C03\u7528\u5BF9\u5E94 skill\n - **\u9636\u6BB5\u804C\u8D23\u8981\u6C42**\uFF1AApply \u9636\u6BB5\u4E0D\u751F\u6210\u5355\u6D4B\u6587\u4EF6\uFF1B\u5355\u6D4B\u7EDF\u4E00\u5728 Review \u9636\u6BB5\u751F\u6210\u4E0E\u9A8C\u8BC1\u3002\n5. **\u786E\u8BA4\u5B8C\u6210** - \u5728\u66F4\u65B0\u72B6\u6001\u4E4B\u524D\u786E\u4FDD `tasks.md` \u4E2D\u7684\u6BCF\u4E2A\u9879\u76EE\u90FD\u5DF2\u5B8C\u6210\n6. **\u66F4\u65B0\u6E05\u5355** - \u6240\u6709\u5DE5\u4F5C\u5B8C\u6210\u540E\uFF0C\u5C06\u6BCF\u4E2A\u4EFB\u52A1\u8BBE\u7F6E\u4E3A `- [x]`\n\n\n### \u9636\u6BB5 3\uFF1AReview\n\n**\u68C0\u67E5\u77E5\u8BC6\u5E93\u3001project.md \u5E76\u6267\u884C\u5BA1\u67E5**\uFF1A\n- \u8FD0\u884C `rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/` \u641C\u7D22\u76F8\u5173\u5BA1\u67E5\u6700\u4F73\u5B9E\u8DF5\n- \u9605\u8BFB `zhuanspec/project.md` \u4E86\u89E3\u9879\u76EE\u7EA6\u5B9A\uFF08\u63D0\u793A\uFF1A\"\u2713 Loaded project.md\"\uFF09\n\n\u6267\u884C `zhuanspec review <change-id>`\uFF0C\u542F\u52A8\u4E09\u8F68\u5E76\u884C\u5BA1\u67E5\uFF1A\n\n**\u4E09\u8F68\u5E76\u884C\u673A\u5236**\uFF1A\n- \u4F7F\u7528 Agent \u5DE5\u5177\u542F\u52A8 3 \u4E2A subagent \u5E76\u884C\u6267\u884C\n- **Code Review subagent**\uFF1A\u8C03\u7528 `code-review-expert` skill\n- **Unit Test subagent**\uFF1A\u8C03\u7528 `generate-mockito-unit-test-skill` skill\n- **Spec-Code Consistency subagent**\uFF1A\u6267\u884C\u4E00\u81F4\u6027\u68C0\u67E5\n\n**Subagent \u81EA\u95ED\u73AF**\uFF1A\n- \u6BCF\u4E2A subagent \u5185\u90E8\u72EC\u7ACB\u4FEE\u590D\u5FAA\u73AF\uFF08\u6700\u591A3\u8F6E\uFF09\n- \u53D1\u73B0\u95EE\u9898\u65F6\u7ACB\u5373\u4FEE\u590D\uFF0C\u7136\u540E\u91CD\u65B0\u68C0\u67E5\n- \u8F93\u51FA\u72EC\u7ACB\u62A5\u544A\u6587\u4EF6\uFF1A\n - `code-review-result.json`\n - `unit-test-result.json`\n - `spec-consistency-result.json`\n- \u6C47\u603B\u751F\u6210 `review-report.md`\n\n**\u9A8C\u6536\u6807\u51C6**\uFF1A\n- review passed\n- critical = 0\n- \u5355\u6D4B\u901A\u8FC7\n- \u4E09\u8F68\u5168\u90E8 PASS\n\n### \u9636\u6BB5 4\uFF1A\u5F52\u6863\u53D8\u66F4\n\n**\u524D\u7F6E\u68C0\u67E5**\uFF1A\n- \u26A0\uFE0F **CHECKPOINT [REVIEW-PASSED]**: Review \u9636\u6BB5\u5FC5\u987B\u901A\u8FC7\uFF08\u4E09\u8F68\u5168\u90E8 PASS\uFF09\n - `review-report.md` \u5B58\u5728\u4E14\u663E\u793A passed\n - `code-review-result.json`: critical = 0\n - `unit-test-result.json`: tests passed\n - `spec-consistency-result.json`: passed\n\n**\u6B65\u9AA4**\uFF1A\n0. **\u68C0\u67E5\u77E5\u8BC6\u5E93**\uFF1A\u8FD0\u884C `rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/` \u641C\u7D22\u662F\u5426\u6709\u9700\u8981\u6C89\u6DC0\u7684\u77E5\u8BC6\n1. **\u786E\u5B9A\u53D8\u66F4 ID**\uFF1A\u8FD0\u884C `zhuanspec list` \u786E\u8BA4\u8981\u5F52\u6863\u7684\u53D8\u66F4\n2. **\u9A8C\u8BC1 Review \u95E8\u7981**\uFF1A\u786E\u8BA4\u4E0A\u8FF0\u56DB\u4E2A\u7ED3\u679C\u6587\u4EF6\u5B58\u5728\u4E14\u5168\u90E8\u901A\u8FC7\n3. **\u8FD0\u884C\u5F52\u6863\u547D\u4EE4**\uFF1A\u6267\u884C `zhuanspec archive <id> --yes`\uFF08\u4EC5\u5DE5\u5177\u7C7B\u5DE5\u4F5C\u4F7F\u7528 `--skip-specs`\uFF09\n4. **\u9A8C\u8BC1\u5F52\u6863\u7ED3\u679C**\uFF1A\u8FD0\u884C `zhuanspec validate --strict` \u786E\u8BA4\u901A\u8FC7\n5. **\u77E5\u8BC6\u6C89\u6DC0\uFF08\u624B\u52A8\u8865\u5145\uFF09**\uFF1A\u8C03\u7528 `@skill:zhuanspec:knowledge` \u4ECE\u4F1A\u8BDD\u8BB0\u5FC6\u8865\u5145\u77E5\u8BC6\n - CLI \u5DF2\u81EA\u52A8\u4ECE\u53D8\u66F4\u76EE\u5F55\u63D0\u53D6\u7ED3\u6784\u5316\u77E5\u8BC6\n - AI \u9700\u4ECE\u4F1A\u8BDD\u8865\u5145\u9690\u5F0F\u7EA6\u5B9A\u3001\u8C03\u8BD5\u53D1\u73B0\u7B49\n6. **\u4F1A\u8BDD\u5206\u6790**\uFF1A\u8C03\u7528 `@skill:session-analytics` \u5206\u6790\u4F1A\u8BDD\u6307\u6807\u6570\u636E\n7. **\u8F93\u51FA\u53CD\u9988\u94FE\u63A5**\uFF1A\u544A\u77E5\u7528\u6237\u586B\u5199\u4F7F\u7528\u53CD\u9988\uFF1A\n \uD83D\uDCCB https://doc.weixin.qq.com/forms/AJ4AfQfgAAwACwAAwaVABsCNqDXIKn8sf\n\n## \u6267\u884C\u4EFB\u4F55\u4EFB\u52A1\u4E4B\u524D\n\n**\u77E5\u8BC6\u5E93\u68C0\u67E5\uFF1A**\n- [ ] \u641C\u7D22\u76F8\u5173\u9677\u9631\uFF1A`rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/troubleshooting/`\n- [ ] \u641C\u7D22\u6700\u4F73\u5B9E\u8DF5\uFF1A`rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/best-practices/`\n- [ ] \u9605\u8BFB\u77E5\u8BC6\u7D22\u5F15\uFF1A`cat zhuanspec/knowledge/index.md`\n\n**\u4E0A\u4E0B\u6587\u68C0\u67E5\u6E05\u5355\uFF1A**\n- [ ] \u5728 `specs/[capability]/spec.md` \u4E2D\u9605\u8BFB\u76F8\u5173\u89C4\u8303\n- [ ] \u68C0\u67E5 `changes/` \u4E2D\u7684\u5F85\u5904\u7406\u53D8\u66F4\u662F\u5426\u5B58\u5728\u51B2\u7A81\n- [ ] \u9605\u8BFB `zhuanspec/project.md` \u4E86\u89E3\u7EA6\u5B9A\u3001\u9879\u76EE\u7ED3\u6784\u548C\u76F8\u5173\u529F\u80FD\u6A21\u5757\uFF08\u6309\u9700\u52A0\u8F7D\uFF09\n- [ ] \u8FD0\u884C `zhuanspec list` \u67E5\u770B\u6D3B\u52A8\u53D8\u66F4\n- [ ] \u8FD0\u884C `zhuanspec list --specs` \u67E5\u770B\u73B0\u6709\u529F\u80FD\n\n**\u521B\u5EFA\u89C4\u8303\u4E4B\u524D\uFF1A**\n- **\u68C0\u67E5\u77E5\u8BC6\u5E93**\uFF1A`rg \"[\u5173\u952E\u8BCD]\" zhuanspec/knowledge/` \u641C\u7D22\u76F8\u5173\u9677\u9631\u548C\u6700\u4F73\u5B9E\u8DF5\n- \u59CB\u7EC8\u68C0\u67E5\u529F\u80FD\u662F\u5426\u5DF2\u5B58\u5728\n- \u4F18\u5148\u4FEE\u6539\u73B0\u6709\u89C4\u8303\u800C\u4E0D\u662F\u521B\u5EFA\u91CD\u590D\u9879\n- \u4F7F\u7528 `zhuanspec show [spec]` \u5BA1\u67E5\u5F53\u524D\u72B6\u6001\n- **\u5F3A\u5236\u6F84\u6E05\u8981\u6C42**\uFF1A\u5982\u679C\u8BF7\u6C42\u6709\u4EFB\u4F55\u4E0D\u660E\u786E\u3001\u6A21\u7CCA\u6216\u4E0D\u786E\u5B9A\u7684\u65B9\u9762\uFF0C\u5FC5\u987B\u505C\u6B62\u5E76\u4F7F\u7528**\u9009\u9879\u5F0F\u4EA4\u4E92**\u63D0\u95EE\u3002\u4E25\u7981\u5728\u4E0D\u786E\u5B9A\u7684\u60C5\u51B5\u4E0B\u81EA\u884C\u63A8\u6D4B\u3001\u5047\u8BBE\u6216\u7EE7\u7EED\u521B\u5EFA\u6587\u4EF6\u3002\u4E25\u7981\u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u5927\u6BB5\u6587\u5B57\u56DE\u7B54\u3002\n\n## \u5F3A\u5236\u6F84\u6E05\u5DE5\u4F5C\u6D41\n\n> **\u6838\u5FC3\u539F\u5219**\uFF1A\u9047\u5230\u4EFB\u4F55\u6A21\u7CCA\u70B9\uFF0C\u5FC5\u987B\u6F84\u6E05\u3002\u4E25\u7981\u731C\u6D4B\u3001\u81C6\u6D4B\u3001\u81EA\u884C\u5047\u8BBE\u3002\n\n### \u6F84\u6E05\u95ED\u73AF\u673A\u5236\n\n\u5728\u521B\u5EFA\u4EFB\u4F55\u63D0\u6848\u6587\u4EF6\u4E4B\u524D\uFF0C\u5FC5\u987B\u6267\u884C\u4EE5\u4E0B\u6D41\u7A0B\uFF1A\n\n```\n\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 1. \u67E5\u9605\u73B0\u6709\u6765\u6E90 \u2502\n\u2502 \u2192 \u89C4\u8303\u3001\u9879\u76EE\u7EA6\u5B9A\u3001\u4EE3\u7801\u5E93\u3001\u4E0A\u4E0B\u6587\u6587\u4EF6 \u2502\n\u2502 \u2192 \u5C1D\u8BD5\u4ECE\u8FD9\u4E9B\u6765\u6E90\u786E\u5B9A\u4FE1\u606F \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 2. \u8BC6\u522B\u6A21\u7CCA\u70B9 \u2502\n\u2502 \u2192 \u5206\u6790\u7528\u6237\u8BF7\u6C42\uFF0C\u5217\u51FA\u4E0D\u786E\u5B9A\u7684\u65B9\u9762 \u2502\n\u2502 \u2192 \u6392\u9664\u53EF\u4EE5\u4ECE\u73B0\u6709\u6765\u6E90\u786E\u5B9A\u7684\u65B9\u9762 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 3. \u5224\u65AD\u63D0\u95EE\u7B56\u7565 \u2502\n\u2502 \u2192 \u5982\u679C\u4ECD\u6709\u6A21\u7CCA\u70B9\uFF1A\u5FC5\u987B\u63D0\u95EE \u2502\n\u2502 \u2192 \u5982\u679C\u5168\u90E8\u660E\u786E\uFF1A\u7EE7\u7EED\u521B\u5EFA \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 4. \u751F\u6210\u6F84\u6E05\u95EE\u9898 \u2502\n\u2502 \u2192 \u4F18\u5148\u68C0\u67E5 superpowers:brainstorming \u662F\u5426\u53EF\u7528 \u2502\n\u2502 \u2192 \u53EF\u7528\uFF1A\u8C03\u7528\u8BE5\u6280\u80FD\u751F\u6210\u9AD8\u8D28\u91CF\u95EE\u9898 \u2502\n\u2502 \u2192 \u4E0D\u53EF\u7528\uFF1A\u76F4\u63A5\u4F7F\u7528 AskUserQuestion \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 5. \u9009\u9879\u5F0F\u4EA4\u4E92 \u2502\n\u2502 \u2192 2-5 \u4E2A\u9884\u8BBE\u9009\u9879 + \"\u5176\u4ED6\"\u515C\u5E95 \u2502\n\u2502 \u2192 \u7B49\u5F85\u7528\u6237\u9009\u62E9 \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 6. \u5904\u7406\"\u5176\u4ED6\"\u9009\u9879 \u2502\n\u2502 \u2192 \u7528\u6237\u9009\u62E9\"\u5176\u4ED6\"\u540E\u9488\u5BF9\u6027\u8FFD\u95EE \u2502\n\u2502 \u2192 \u4ECD\u4F18\u5148\u4F7F\u7528\u9009\u9879\u5F0F \u2502\n\u251C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\n\u2502 7. \u5F00\u59CB\u521B\u5EFA \u2502\n\u2502 \u2192 \u53EA\u6709\u5728\u6240\u6709\u6A21\u7CCA\u70B9\u90FD\u660E\u786E\u540E\u624D\u80FD\u521B\u5EFA\u63D0\u6848 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n### \u63D0\u95EE\u7B56\u7565\u9009\u62E9\n\n| \u6280\u80FD\u53EF\u7528\u6027 | \u63D0\u95EE\u65B9\u5F0F | \u8BF4\u660E |\n|-----------|---------|------|\n| superpowers:brainstorming \u53EF\u7528 | \u8C03\u7528\u6280\u80FD\u751F\u6210\u95EE\u9898 | \u9AD8\u8D28\u91CF\u3001\u7ED3\u6784\u5316\u7684\u6F84\u6E05\u95EE\u9898 |\n| superpowers:brainstorming \u4E0D\u53EF\u7528 | AskUserQuestion \u76F4\u63A5\u63D0\u95EE | \u9009\u9879\u5F0F\u4EA4\u4E92\uFF0C\u7B80\u6D01\u9AD8\u6548 |\n\n### Brainstorming \u8C03\u7528\u8FB9\u754C\n\n**\u9002\u7528\u573A\u666F**\uFF1A\n| \u573A\u666F\u7C7B\u578B | \u8C03\u7528\u65B9\u5F0F | \u8BF4\u660E |\n|----------|---------|------|\n| **\u590D\u6742\u6A21\u7CCA** | superpowers:brainstorming | \u8DE8\u6A21\u5757\u3001\u65B0\u67B6\u6784\u3001\u591A\u65B9\u6848\u9009\u62E9 |\n| **\u7B80\u5355\u6F84\u6E05** | AskUserQuestion \u76F4\u63A5\u63D0\u95EE | \u53C2\u6570\u8C03\u6574\u3001\u8303\u56F4\u8FB9\u754C\u3001\u5355\u4E00\u9009\u62E9 |\n| **\u5DF2\u5B8C\u6574\u9700\u6C42** | \u8DF3\u8FC7\u6F84\u6E05 | \u7528\u6237\u63D0\u4F9B\u5B8C\u6574\u9700\u6C42\u6587\u6863 |\n\n**\u8C03\u7528\u7EA6\u675F**\uFF1A\n- \u4EC5\u4F7F\u7528 brainstorming \u7684**\u6F84\u6E05\u63D0\u95EE\u80FD\u529B**\uFF08\u6B65\u9AA43\uFF1A\u9010\u4E00\u63D0\u95EE\u6F84\u6E05\uFF09\n- **\u4E0D\u8FDB\u5165\u5B8C\u6574\u8BBE\u8BA1\u6D41\u7A0B**\uFF08\u6B65\u9AA44-9\uFF1A\u65B9\u6848\u5BF9\u6BD4\u3001\u8BBE\u8BA1\u6587\u6863\uFF09\n- **\u4E0D\u89E6\u53D1 writing-plans skill**\uFF08\u5C5E\u4E8E Apply \u9636\u6BB5\uFF09\n- \u83B7\u5F97\u6F84\u6E05\u540E\u7ACB\u5373\u8FD4\u56DE ZhuanSpec \u63D0\u6848\u6D41\u7A0B\n\n### \u9009\u9879\u5F0F\u4EA4\u4E92\u683C\u5F0F\n\n**\u5FC5\u987B\u9075\u5B88**\uFF1A\n- \u6BCF\u4E2A\u95EE\u9898\u63D0\u4F9B 2-5 \u4E2A\u9884\u8BBE\u9009\u9879\n- \u672B\u5C3E\u5305\u542B\"\u5176\u4ED6\"\u9009\u9879\u4F5C\u4E3A\u515C\u5E95\n- \u7981\u6B62\u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u5927\u6BB5\u6587\u5B57\n\n**\u793A\u4F8B**\uFF1A\n```json\n{\n \"questions\": [\n {\n \"id\": \"scope\",\n \"prompt\": \"\u60A8\u5E0C\u671B\u6539\u8FDB\u54EA\u4E9B\u65B9\u9762\uFF1F\",\n \"options\": [\n {\"id\": \"security\", \"label\": \"\u5B89\u5168\u6027\"},\n {\"id\": \"ux\", \"label\": \"\u7528\u6237\u4F53\u9A8C\"},\n {\"id\": \"performance\", \"label\": \"\u6027\u80FD\"},\n {\"id\": \"other\", \"label\": \"\u5176\u4ED6\"}\n ],\n \"allow_multiple\": true\n }\n ]\n}\n```\n\n### \u5E38\u89C1\u6A21\u7CCA\u70B9\u6E05\u5355\n\n| \u7C7B\u522B | \u9700\u6F84\u6E05\u7684\u60C5\u51B5 |\n|------|-------------|\n| **\u8303\u56F4** | \u8FB9\u754C\u4E0D\u660E\u786E\uFF08\"\u6539\u8FDB\u6027\u80FD\"\u3001\"\u4F18\u5316\u4EE3\u7801\"\uFF09 |\n| **\u6280\u672F** | \u591A\u79CD\u5B9E\u73B0\u65B9\u5F0F\u4F46\u672A\u6307\u5B9A\u504F\u597D |\n| **\u4F18\u5148\u7EA7** | \u591A\u4E2A\u9700\u6C42\u4F46\u672A\u8BF4\u660E\u987A\u5E8F |\n| **\u9A8C\u6536** | \u4E0D\u6E05\u695A\u5982\u4F55\u5224\u65AD\u5B8C\u6210 |\n| **\u5B9E\u73B0** | \u6570\u636E\u83B7\u53D6\u6765\u6E90\u3001\u670D\u52A1\u5206\u5C42\u3001\u4F9D\u8D56\u5173\u7CFB\u4E0D\u660E\u786E |\n| **\u4F4D\u7F6E** | \u4EE3\u7801\u6539\u52A8\u4F4D\u7F6E\u4E0D\u660E\u786E |\n\n### \u7981\u6B62\u884C\u4E3A\n\n| \u274C \u7981\u6B62 | \u539F\u56E0 |\n|--------|------|\n| \u81EA\u884C\u63A8\u6D4B\u7528\u6237\u610F\u56FE | \u8FDD\u53CD\u4E09\u6761\u94C1\u5F8B |\n| \u8DF3\u8FC7\u6F84\u6E05\u76F4\u63A5\u521B\u5EFA\u6587\u4EF6 | \u8FDD\u53CD No Spec, No Code |\n| \u8981\u6C42\u7528\u6237\u624B\u52A8\u8F93\u5165\u5927\u6BB5\u6587\u5B57 | \u6548\u7387\u4F4E\u3001\u4F53\u9A8C\u5DEE |\n\n---\n\n### \u4E0E\u4E09\u6761\u94C1\u5F8B\u7684\u5173\u7CFB\n\n| \u94C1\u5F8B | \u6F84\u6E05\u5DE5\u4F5C\u6D41\u4F53\u73B0 |\n|------|---------------|\n| **No Spec, No Code** | \u6F84\u6E05\u5B8C\u6210\u540E\u624D\u80FD\u521B\u5EFA\u63D0\u6848 |\n| **Spec is Truth** | \u6F84\u6E05\u7ED3\u679C\u5199\u5165 tasks.md \u7684\"\u6F84\u6E05\u65E5\u5FD7\" |\n| **Reverse Sync** | Apply \u9636\u6BB5\u504F\u79BB\u65F6\u91CD\u65B0\u8FDB\u5165\u6F84\u6E05\u6D41\u7A0B |\n\n### \u641C\u7D22\u6307\u5BFC\n- \u679A\u4E3E\u89C4\u8303\uFF1A`zhuanspec spec list --long`\uFF08\u6216\u4F7F\u7528 `--json` \u7528\u4E8E\u811A\u672C\uFF09\n- \u679A\u4E3E\u53D8\u66F4\uFF1A`zhuanspec list`\uFF08\u6216 `zhuanspec change list --json` - \u5DF2\u5F03\u7528\u4F46\u53EF\u7528\uFF09\n- \u663E\u793A\u8BE6\u7EC6\u4FE1\u606F\uFF1A\n - \u89C4\u8303\uFF1A`zhuanspec show <spec-id> --type spec`\uFF08\u4F7F\u7528 `--json` \u8FDB\u884C\u8FC7\u6EE4\uFF09\n - \u53D8\u66F4\uFF1A`zhuanspec show <change-id> --json --deltas-only`\n- \u5168\u6587\u641C\u7D22\uFF08\u4F7F\u7528 ripgrep\uFF09\uFF1A`rg -n \"Requirement:|Scenario:\" zhuanspec/specs`\n\n## \u5FEB\u901F\u5F00\u59CB\n\n### CLI \u547D\u4EE4\n\n```bash\n# \u57FA\u672C\u547D\u4EE4\nzhuanspec list # \u5217\u51FA\u6D3B\u52A8\u53D8\u66F4\nzhuanspec list --specs # \u5217\u51FA\u89C4\u8303\nzhuanspec show [item] # \u663E\u793A\u53D8\u66F4\u6216\u89C4\u8303\nzhuanspec validate [item] # \u9A8C\u8BC1\u53D8\u66F4\u6216\u89C4\u8303\nzhuanspec archive <change-id> [--yes|-y] # \u90E8\u7F72\u540E\u5F52\u6863\uFF08\u6DFB\u52A0 --yes \u7528\u4E8E\u975E\u4EA4\u4E92\u5F0F\u8FD0\u884C\uFF09\n\n# \u9879\u76EE\u7BA1\u7406\nzhuanspec init [path] # \u521D\u59CB\u5316 ZhuanSpec\nzhuanspec update [path] # \u66F4\u65B0\u8BF4\u660E\u6587\u4EF6\n\n# \u4EA4\u4E92\u6A21\u5F0F\nzhuanspec show # \u63D0\u793A\u9009\u62E9\nzhuanspec validate # \u6279\u91CF\u9A8C\u8BC1\u6A21\u5F0F\n\n# \u8C03\u8BD5\nzhuanspec show [change] --json --deltas-only\nzhuanspec validate [change] --strict\n```\n\n### \u547D\u4EE4\u6807\u5FD7\n\n- `--json` - \u673A\u5668\u53EF\u8BFB\u8F93\u51FA\n- `--type change|spec` - \u6D88\u9664\u9879\u76EE\u6B67\u4E49\n- `--strict` - \u5168\u9762\u9A8C\u8BC1\n- `--no-interactive` - \u7981\u7528\u63D0\u793A\n- `--skip-specs` - \u5F52\u6863\u65F6\u4E0D\u66F4\u65B0\u89C4\u8303\n- `--yes`/`-y` - \u8DF3\u8FC7\u786E\u8BA4\u63D0\u793A\uFF08\u975E\u4EA4\u4E92\u5F0F\u5F52\u6863\uFF09\n\n## \u76EE\u5F55\u7ED3\u6784\n\n```\nzhuanspec/\n\u251C\u2500\u2500 project.md # \u9879\u76EE\u7EA6\u5B9A\n\u251C\u2500\u2500 knowledge/ # \u9879\u76EE\u7EA7\u77E5\u8BC6\u5E93\n\u2502 \u251C\u2500\u2500 index.md # \u77E5\u8BC6\u7D22\u5F15\n\u2502 \u251C\u2500\u2500 troubleshooting/ # \u5E38\u89C1\u95EE\u9898\u4E0E\u9677\u9631\n\u2502 \u251C\u2500\u2500 best-practices/ # \u6700\u4F73\u5B9E\u8DF5\n\u2502 \u2514\u2500\u2500 implicit-conventions/ # \u9690\u5F0F\u7EA6\u5B9A\n\u251C\u2500\u2500 specs/ # \u5F53\u524D\u771F\u5B9E\u72B6\u6001 - \u5DF2\u6784\u5EFA\u7684\u5185\u5BB9\n\u2502 \u2514\u2500\u2500 [capability]/ # \u5355\u4E00\u805A\u7126\u7684\u529F\u80FD\n\u2502 \u251C\u2500\u2500 spec.md # \u8981\u6C42\u548C\u573A\u666F\n\u2502 \u2514\u2500\u2500 design.md # \u6280\u672F\u6A21\u5F0F\n\u251C\u2500\u2500 changes/ # \u63D0\u6848 - \u5E94\u8BE5\u66F4\u6539\u7684\u5185\u5BB9\n\u2502 \u251C\u2500\u2500 [change-name]/\n\u2502 \u2502 \u251C\u2500\u2500 proposal.md # \u539F\u56E0\u3001\u5185\u5BB9\u3001\u5F71\u54CD\n\u2502 \u2502 \u251C\u2500\u2500 tasks.md # \u5B9E\u65BD\u6E05\u5355\n\u2502 \u2502 \u251C\u2500\u2500 design.md # \u6280\u672F\u51B3\u7B56\uFF08\u5FC5\u9009\uFF1B\u77E5\u8BC6\u63D0\u53D6\u6765\u6E90\uFF09\n\u2502 \u2502 \u2514\u2500\u2500 specs/ # \u589E\u91CF\u53D8\u66F4\n\u2502 \u2502 \u2514\u2500\u2500 [capability]/\n\u2502 \u2502 \u2514\u2500\u2500 spec.md # ADDED/MODIFIED/REMOVED\n\u2502 \u2514\u2500\u2500 archive/ # \u5DF2\u5B8C\u6210\u7684\u53D8\u66F4\n```\n\n## \u521B\u5EFA\u53D8\u66F4\u63D0\u6848\n\n### \u51B3\u7B56\u6811\n\n```\n\u65B0\u8BF7\u6C42\uFF1F\n\u251C\u2500 \u4FEE\u590D\u6062\u590D\u89C4\u8303\u884C\u4E3A\u7684 Bug\uFF1F \u2192 \u76F4\u63A5\u4FEE\u590D\n\u251C\u2500 \u62FC\u5199\u9519\u8BEF/\u683C\u5F0F/\u6CE8\u91CA\uFF1F \u2192 \u76F4\u63A5\u4FEE\u590D\n\u251C\u2500 \u65B0\u529F\u80FD/\u80FD\u529B\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\n\u251C\u2500 \u7834\u574F\u6027\u66F4\u6539\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\n\u251C\u2500 \u67B6\u6784\u66F4\u6539\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\n\u2514\u2500 \u4E0D\u660E\u786E\uFF1F \u2192 \u521B\u5EFA\u63D0\u6848\uFF08\u66F4\u5B89\u5168\uFF09\n```\n\n### \u63D0\u6848\u7ED3\u6784\n\n1. **\u521B\u5EFA\u76EE\u5F55\uFF1A** `changes/[change-id]/`\uFF08kebab-case\uFF0C\u52A8\u8BCD\u5F00\u5934\uFF0C\u552F\u4E00\uFF09\n\n2. **\u7F16\u5199 proposal.md\uFF1A**\n```markdown\n# Change: [\u53D8\u66F4\u7684\u7B80\u8981\u63CF\u8FF0]\n\n## \u53D8\u66F4\u539F\u56E0\n[\u5173\u4E8E\u95EE\u9898/\u673A\u4F1A\u7684 1-2 \u53E5\u8BDD]\n\n## \u53D8\u66F4\u5185\u5BB9\n- [\u53D8\u66F4\u7684\u8981\u70B9\u5217\u8868]\n- [\u7528 **BREAKING** \u6807\u8BB0\u7834\u574F\u6027\u66F4\u6539]\n\n## \u5F71\u54CD\u8303\u56F4\n- Affected specs: [\u5217\u51FA\u529F\u80FD]\n- Affected code: [\u5173\u952E\u6587\u4EF6/\u7CFB\u7EDF]\n```\n\n3. **\u521B\u5EFA\u89C4\u8303\u589E\u91CF\uFF1A** `specs/[capability]/spec.md`\n```markdown\n## ADDED Requirements\n### \u9700\u6C42\uFF1ANew Feature\nThe system SHALL provide...\n\n#### \u573A\u666F\uFF1ASuccess case\n- **\u5F53** user performs action\n- **\u5219** expected result\n\n## MODIFIED Requirements\n### \u9700\u6C42\uFF1AExisting Feature\n[\u5B8C\u6574\u7684\u4FEE\u6539\u540E\u8981\u6C42]\n\n## REMOVED Requirements\n### \u9700\u6C42\uFF1AOld Feature\n**Reason**: [\u79FB\u9664\u539F\u56E0]\n**Migration**: [\u5982\u4F55\u5904\u7406]\n```\n\u5982\u679C\u591A\u4E2A\u529F\u80FD\u53D7\u5230\u5F71\u54CD\uFF0C\u5728 `changes/[change-id]/specs/<capability>/spec.md` \u4E0B\u521B\u5EFA\u591A\u4E2A\u589E\u91CF\u6587\u4EF6\u2014\u2014\u6BCF\u4E2A\u529F\u80FD\u4E00\u4E2A\u3002\n\n4. **\u521B\u5EFA tasks.md\uFF1A**\n\n\u5148\u8FD0\u884C `zhuanspec skills list --json` \u53D1\u73B0\u5F53\u524D\u73AF\u5883\u4E2D\u53EF\u7528\u7684 skill \u53CA\u5176 description\uFF0C\u7136\u540E\u57FA\u4E8E\u8BED\u4E49\u5339\u914D\u5728\u4EFB\u52A1\u4E2D\u6807\u6CE8\u771F\u5B9E skill \u540D\u79F0\uFF1A\n\n```markdown\n## 1. \u5B9E\u73B0\n- [ ] 1.1 \u521B\u5EFA\u6570\u636E\u5E93\u8868\u7ED3\u6784 @skill:java-db-schema-standards\n- [ ] 1.2 \u5B9E\u73B0 RPC \u63A5\u53E3 @skill:java-scf-rpc-usage-skill\n- [ ] 1.3 \u6DFB\u52A0\u524D\u7AEF\u7EC4\u4EF6 @skill:kf-fe-frontend-dev\n- [ ] 1.4 \u7F16\u5199\u6D4B\u8BD5 @skill:generate-mockito-unit-test-skill\n```\n> **@skill \u6807\u7B7E**\uFF1A\u521B\u5EFA tasks.md \u524D\uFF0C\u8FD0\u884C `zhuanspec skills list --json` \u53D1\u73B0\u53EF\u7528 skill \u53CA\u5176 description\u3002\u57FA\u4E8E skill description \u8FDB\u884C\u8BED\u4E49\u5339\u914D\uFF1A\n> - \u4ED4\u7EC6\u9605\u8BFB\u6BCF\u4E2A skill \u7684 description\uFF0C\u7406\u89E3\u5176\u5177\u4F53\u529F\u80FD\u548C\u9002\u7528\u573A\u666F\n> - \u53EA\u6709\u5F53\u4EFB\u52A1\u529F\u80FD\u4E0E skill description \u660E\u786E\u5339\u914D\u65F6\u624D\u6807\u6CE8\n> - \u7B80\u5355\u7684\u4EE3\u7801\u4FEE\u6539\uFF08\u5982\u589E\u5220\u679A\u4E3E\u503C\uFF09\u5E94\u5339\u914D\u901A\u7528\u7F16\u7801\u89C4\u8303 skill\uFF0C\u800C\u975E\u67B6\u6784\u7EA7 skill\n> - \u907F\u514D\u4EC5\u56E0\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u5173\u952E\u8BCD\u800C\u9519\u8BEF\u5339\u914D\n> - \u4F7F\u7528\u771F\u5B9E skill \u540D\u79F0\u6807\u6CE8\uFF0C\u652F\u6301\u591A\u4E2A skill\uFF08`@skill:name1,name2`\uFF09\n> - Apply \u9636\u6BB5 AI \u6839\u636E\u6807\u7B7E\u76F4\u63A5\u8C03\u7528\u5BF9\u5E94 skill\u3002\u65E0\u53EF\u7528 skill \u65F6\u53EF\u7701\u7565\u3002\n\n\u26A0\uFE0F **\u68C0\u67E5\u70B9 [Skill \u6807\u6CE8]**\uFF1A\n1. \u5FC5\u987B\u5148\u8FD0\u884C `zhuanspec skills list` \u5E76\u5728 Skill \u6620\u5C04\u8868\u4E2D\u8BB0\u5F55\u53D1\u73B0\u7684 skill\n2. \u6BCF\u4E2A\u4EFB\u52A1\u5FC5\u987B\u6807\u6CE8 @skill:\u771F\u5B9Eskill\u540D\u79F0 \u6216 @skill:none\n3. \u5982\u679C\u4F7F\u7528 @skill:none\uFF0C\u5FC5\u987B\u63D0\u4F9B\u7406\u7531\uFF08\u4F8B\u5982\uFF1A\"\u7EAF\u914D\u7F6E\u53D8\u66F4\uFF0C\u65E0\u9700 skill\"\uFF09\n4. @skill \u540D\u79F0\u5FC5\u987B\u4E0E `zhuanspec skills list` \u8FD4\u56DE\u7684\u540D\u79F0\u5B8C\u5168\u4E00\u81F4 \u2014\u2014 \u7981\u6B62\u865A\u6784 skill \u540D\u79F0\n5. tasks.md \u4E2D\u7684 Skill \u6620\u5C04\u8868\u4E0D\u80FD\u4E3A\u7A7A\n6. validate --strict \u4F1A\u9A8C\u8BC1\u6240\u6709 @skill \u540D\u79F0\u662F\u5426\u5B58\u5728\u4E8E\u5DF2\u77E5 skill \u5217\u8868\u4E2D\n\n\u26A0\uFE0F **\u68C0\u67E5\u70B9 [\u4EFB\u52A1\u6392\u5E8F]**\uFF1A\n1. tasks.md \u4E2D\u7684\u4EFB\u52A1\u5FC5\u987B\u6309\u6CE2\u6B21\u7EC4\u7EC7\uFF08### \u6CE2\u6B21 1, ### \u6CE2\u6B21 2 \u7B49\uFF09\n2. \u6CE2\u6B21\u5206\u914D\u5FC5\u987B\u6839\u636E @depends \u4F9D\u8D56\u5173\u7CFB\u8BA1\u7B97\uFF08\u6CE2\u6B21 1 = \u65E0\u4F9D\u8D56\uFF0C\u6CE2\u6B21 N = \u4F9D\u8D56\u6CE2\u6B21 N-1\uFF09\n3. \u4EFB\u52A1\u4E0D\u80FD\u51FA\u73B0\u5728\u5176\u4F9D\u8D56\u7684\u4EFB\u52A1\u4E4B\u524D\n4. \u5FC5\u987B\u5728\u6587\u4EF6\u672B\u5C3E\u6DFB\u52A0 \"## \u4F9D\u8D56\u5206\u6790\" \u7AE0\u8282\u5E76\u6807\u660E\"\u72B6\u6001\uFF1A\u5DF2\u5B8C\u6210\"\n5. validate --strict \u4F1A\u9A8C\u8BC1\u4EFB\u52A1\u6392\u5E8F\u662F\u5426\u4E0E\u8BA1\u7B97\u7684\u6CE2\u6B21\u5339\u914D\n\n5. **\u521B\u5EFA design.md\uFF08\u5FC5\u9009\uFF09**\uFF1A\n\u6BCF\u4E2A\u63D0\u6848\u90FD\u5FC5\u987B\u521B\u5EFA `design.md`\uFF0C\u8BB0\u5F55\u6280\u672F\u51B3\u7B56\u548C\u67B6\u6784\u601D\u8003\uFF1A\n\n```markdown\n## \u80CC\u666F\n[\u80CC\u666F\u3001\u7EA6\u675F\u3001\u5229\u76CA\u76F8\u5173\u8005]\n\n## \u76EE\u6807 / \u975E\u76EE\u6807\n- Goals: [...]\n- Non-Goals: [...]\n\n## \u51B3\u7B56\n- Decision: [\u5185\u5BB9\u548C\u539F\u56E0]\n- Alternatives considered: [\u9009\u9879 + \u7406\u7531]\n\n## \u98CE\u9669 / \u6743\u8861\n- [\u98CE\u9669] \u2192 \u7F13\u89E3\u63AA\u65BD\n\n## \u6700\u4F73\u5B9E\u8DF5\n[\u5B9E\u65BD\u8FC7\u7A0B\u4E2D\u7684\u6700\u4F73\u5B9E\u8DF5\u5EFA\u8BAE]\n\n## \u9690\u5F0F\u7EA6\u5B9A\n[\u56E2\u961F\u7279\u6709\u7684\u9690\u5F0F\u7EA6\u5B9A\u6216\u9ED8\u8BA4\u884C\u4E3A]\n\n## \u8FC1\u79FB\u8BA1\u5212\n[\u6B65\u9AA4\u3001\u56DE\u6EDA]\n\n## \u5F85\u89E3\u51B3\u95EE\u9898\n- [...]\n```\n\n**\u91CD\u8981**\uFF1Adesign.md \u662F\u77E5\u8BC6\u63D0\u53D6\u7684\u4E3B\u8981\u6765\u6E90\uFF0C\u5F52\u6863\u65F6\u4F1A\u81EA\u52A8\u63D0\u53D6\u5176\u4E2D\u7684\"\u51B3\u7B56\"\u3001\"\u6700\u4F73\u5B9E\u8DF5\"\u3001\"\u9690\u5F0F\u7EA6\u5B9A\"\u6C89\u6DC0\u5230\u9879\u76EE\u77E5\u8BC6\u5E93\u3002\n- [...]\n```\n\n## \u89C4\u8303\u6587\u4EF6\u683C\u5F0F\n\n### \u5173\u952E\uFF1A\u573A\u666F\u683C\u5F0F\n\n**\u6B63\u786E**\uFF08\u4F7F\u7528 #### \u6807\u9898\uFF09\uFF1A\n```markdown\n#### \u573A\u666F\uFF1A\u7528\u6237\u767B\u5F55\u6210\u529F\n- **\u5F53** \u63D0\u4F9B\u4E86\u6709\u6548\u51ED\u636E\n- **\u5219** \u8FD4\u56DE JWT token\n```\n\n**\u9519\u8BEF**\uFF08\u4E0D\u8981\u4F7F\u7528\u9879\u76EE\u7B26\u53F7\u6216\u7C97\u4F53\uFF09\uFF1A\n```markdown\n- **\u573A\u666F\uFF1A\u7528\u6237\u767B\u5F55** \u274C\n**\u573A\u666F**\uFF1A\u7528\u6237\u767B\u5F55 \u274C\n### \u573A\u666F\uFF1A\u7528\u6237\u767B\u5F55 \u274C\n```\n\n\u6BCF\u4E2A\u8981\u6C42\u5FC5\u987B\u81F3\u5C11\u6709\u4E00\u4E2A\u573A\u666F\u3002\n\n### \u8981\u6C42\u63AA\u8F9E\n- \u5BF9\u89C4\u8303\u6027\u8981\u6C42\u4F7F\u7528 SHALL/MUST\uFF08\u9664\u975E\u6709\u610F\u975E\u89C4\u8303\u6027\uFF0C\u5426\u5219\u907F\u514D\u4F7F\u7528 should/may\uFF09\n\n### \u589E\u91CF\u64CD\u4F5C\n\n- `## ADDED Requirements` - \u65B0\u529F\u80FD\n- `## MODIFIED Requirements` - \u66F4\u6539\u7684\u884C\u4E3A\n- `## REMOVED Requirements` - \u5DF2\u5F03\u7528\u7684\u529F\u80FD\n- `## RENAMED Requirements` - \u540D\u79F0\u66F4\u6539\n\n\u6807\u9898\u4F7F\u7528 `trim(header)` \u5339\u914D - \u5FFD\u7565\u7A7A\u767D\u3002\n\n#### \u4F55\u65F6\u4F7F\u7528 ADDED vs MODIFIED\n- ADDED\uFF1A\u5F15\u5165\u4E00\u4E2A\u65B0\u7684\u529F\u80FD\u6216\u5B50\u529F\u80FD\uFF0C\u53EF\u4EE5\u72EC\u7ACB\u4F5C\u4E3A\u8981\u6C42\u3002\u5F53\u66F4\u6539\u662F\u6B63\u4EA4\u7684\uFF08\u4F8B\u5982\uFF0C\u6DFB\u52A0\"\u659C\u6760\u547D\u4EE4\u914D\u7F6E\"\uFF09\u800C\u4E0D\u662F\u6539\u53D8\u73B0\u6709\u8981\u6C42\u7684\u8BED\u4E49\u65F6\uFF0C\u4F18\u5148\u4F7F\u7528 ADDED\u3002\n- MODIFIED\uFF1A\u66F4\u6539\u73B0\u6709\u8981\u6C42\u7684\u884C\u4E3A\u3001\u8303\u56F4\u6216\u9A8C\u6536\u6807\u51C6\u3002\u59CB\u7EC8\u7C98\u8D34\u5B8C\u6574\u7684\u3001\u66F4\u65B0\u7684\u8981\u6C42\u5185\u5BB9\uFF08\u6807\u9898 + \u6240\u6709\u573A\u666F\uFF09\u3002\u5F52\u6863\u5668\u5C06\u7528\u60A8\u5728\u6B64\u5904\u63D0\u4F9B\u7684\u5185\u5BB9\u66FF\u6362\u6574\u4E2A\u8981\u6C42\uFF1B\u90E8\u5206\u589E\u91CF\u5C06\u4E22\u5931\u5148\u524D\u7684\u8BE6\u7EC6\u4FE1\u606F\u3002\n- RENAMED\uFF1A\u4EC5\u5728\u540D\u79F0\u66F4\u6539\u65F6\u4F7F\u7528\u3002\u5982\u679C\u60A8\u8FD8\u66F4\u6539\u884C\u4E3A\uFF0C\u8BF7\u4F7F\u7528 RENAMED\uFF08\u540D\u79F0\uFF09\u52A0\u4E0A MODIFIED\uFF08\u5185\u5BB9\uFF09\uFF0C\u5F15\u7528\u65B0\u540D\u79F0\u3002\n\n\u5E38\u89C1\u9677\u9631\uFF1A\u4F7F\u7528 MODIFIED \u6DFB\u52A0\u65B0\u5173\u6CE8\u70B9\u800C\u4E0D\u5305\u542B\u5148\u524D\u7684\u6587\u672C\u3002\u8FD9\u4F1A\u5728\u5F52\u6863\u65F6\u5BFC\u81F4\u8BE6\u7EC6\u4FE1\u606F\u4E22\u5931\u3002\u5982\u679C\u60A8\u6CA1\u6709\u660E\u786E\u66F4\u6539\u73B0\u6709\u8981\u6C42\uFF0C\u8BF7\u5728 ADDED \u4E0B\u6DFB\u52A0\u65B0\u8981\u6C42\u3002\n\n\u6B63\u786E\u7F16\u5199 MODIFIED \u8981\u6C42\uFF1A\n1) \u5728 `zhuanspec/specs/<capability>/spec.md` \u4E2D\u627E\u5230\u73B0\u6709\u8981\u6C42\u3002\n2) \u590D\u5236\u6574\u4E2A\u8981\u6C42\u5757\uFF08\u4ECE `### Requirement: ...` \u5230\u5176\u573A\u666F\uFF09\u3002\n3) \u5C06\u5176\u7C98\u8D34\u5230 `## MODIFIED Requirements` \u4E0B\u5E76\u7F16\u8F91\u4EE5\u53CD\u6620\u65B0\u884C\u4E3A\u3002\n4) \u786E\u4FDD\u6807\u9898\u6587\u672C\u5B8C\u5168\u5339\u914D\uFF08\u5FFD\u7565\u7A7A\u767D\uFF09\u5E76\u81F3\u5C11\u4FDD\u7559\u4E00\u4E2A `#### Scenario:`\u3002\n\nRENAMED \u793A\u4F8B\uFF1A\n```markdown\n## RENAMED Requirements\n- FROM: `### \u9700\u6C42\uFF1ALogin`\n- TO: `### \u9700\u6C42\uFF1AUser Authentication`\n```\n\n## \u6545\u969C\u6392\u9664\n\n### \u5E38\u89C1\u9519\u8BEF\n\n**\"\u53D8\u66F4\u5FC5\u987B\u81F3\u5C11\u6709\u4E00\u4E2A\u589E\u91CF\"**\n- \u68C0\u67E5 `changes/[name]/specs/` \u662F\u5426\u5B58\u5728 .md \u6587\u4EF6\n- \u9A8C\u8BC1\u6587\u4EF6\u5177\u6709\u64CD\u4F5C\u524D\u7F00\uFF08## ADDED Requirements\uFF09\n\n**\"\u8981\u6C42\u5FC5\u987B\u81F3\u5C11\u6709\u4E00\u4E2A\u573A\u666F\"**\n- \u68C0\u67E5\u573A\u666F\u662F\u5426\u4F7F\u7528 `#### Scenario:` \u683C\u5F0F\uFF084 \u4E2A\u4E95\u53F7\uFF09\n- \u4E0D\u8981\u5BF9\u573A\u666F\u6807\u9898\u4F7F\u7528\u9879\u76EE\u7B26\u53F7\u6216\u7C97\u4F53\n\n**\u9759\u9ED8\u573A\u666F\u89E3\u6790\u5931\u8D25**\n- \u9700\u8981\u7CBE\u786E\u683C\u5F0F\uFF1A`#### Scenario: Name`\n- \u4F7F\u7528\u4EE5\u4E0B\u547D\u4EE4\u8C03\u8BD5\uFF1A`zhuanspec show [change] --json --deltas-only`\n\n### \u9A8C\u8BC1\u63D0\u793A\n\n```bash\n# \u59CB\u7EC8\u4F7F\u7528\u4E25\u683C\u6A21\u5F0F\u8FDB\u884C\u5168\u9762\u68C0\u67E5\nzhuanspec validate [change] --strict\n\n# \u8C03\u8BD5\u589E\u91CF\u89E3\u6790\nzhuanspec show [change] --json | jq '.deltas'\n\n# \u68C0\u67E5\u7279\u5B9A\u8981\u6C42\nzhuanspec show [spec] --json -r 1\n```\n\n## \u7406\u60F3\u8DEF\u5F84\u811A\u672C\n\n```bash\n# 1) \u63A2\u7D22\u5F53\u524D\u72B6\u6001\nzhuanspec spec list --long\nzhuanspec list\n# \u53EF\u9009\u5168\u6587\u641C\u7D22\uFF1A\n# rg -n \"Requirement:|Scenario:\" zhuanspec/specs\n# rg -n \"^#|Requirement:\" zhuanspec/changes\n\n# 2) \u9009\u62E9\u53D8\u66F4 ID \u5E76\u642D\u5EFA\nCHANGE=add-two-factor-auth\nmkdir -p zhuanspec/changes/$CHANGE/{specs/auth}\nprintf \"## \u53D8\u66F4\u539F\u56E0\\n...\\n\\n## \u53D8\u66F4\u5185\u5BB9\\n- ...\\n\\n## \u5F71\u54CD\u8303\u56F4\\n- ...\\n\" > zhuanspec/changes/\\$CHANGE/proposal.md\nprintf \"## 1. \u5B9E\u73B0\n- [ ] 1.1 ...\n\" > zhuanspec/changes/$CHANGE/tasks.md\n\n# 3) \u6DFB\u52A0\u589E\u91CF\uFF08\u793A\u4F8B\uFF09\ncat > zhuanspec/changes/$CHANGE/specs/auth/spec.md << 'EOF'\n## ADDED Requirements\n### \u9700\u6C42\uFF1A\u53CC\u56E0\u7D20\u8BA4\u8BC1\n\u7528\u6237 MUST \u5728\u767B\u5F55\u65F6\u63D0\u4F9B\u7B2C\u4E8C\u4E2A\u8BA4\u8BC1\u56E0\u7D20\u3002\n\n#### \u573A\u666F\uFF1A\u9700\u8981 OTP\n- **\u5F53** \u63D0\u4F9B\u4E86\u6709\u6548\u51ED\u636E\n- **\u5219** \u9700\u8981 OTP \u6311\u6218\nEOF\n\n# 4) \u9A8C\u8BC1\nzhuanspec validate $CHANGE --strict\n```\n\n## \u591A\u529F\u80FD\u793A\u4F8B\n\n```\nzhuanspec/changes/add-2fa-notify/\n\u251C\u2500\u2500 proposal.md\n\u251C\u2500\u2500 tasks.md\n\u2514\u2500\u2500 specs/\n \u251C\u2500\u2500 auth/\n \u2502 \u2514\u2500\u2500 spec.md # ADDED: \u53CC\u56E0\u7D20\u8BA4\u8BC1\n \u2514\u2500\u2500 notifications/\n \u2514\u2500\u2500 spec.md # ADDED: OTP \u90AE\u4EF6\u901A\u77E5\n```\n\nauth/spec.md\n```markdown\n## ADDED Requirements\n### \u9700\u6C42\uFF1A\u53CC\u56E0\u7D20\u8BA4\u8BC1\n...\n```\n\nnotifications/spec.md\n```markdown\n## ADDED Requirements\n### \u9700\u6C42\uFF1AOTP \u90AE\u4EF6\u901A\u77E5\n...\n```\n\n## \u6700\u4F73\u5B9E\u8DF5\n\n### \u7B80\u5355\u4F18\u5148\n- \u9ED8\u8BA4\u65B0\u589E\u4EE3\u7801 <100 \u884C\n- \u5355\u6587\u4EF6\u5B9E\u73B0\uFF0C\u76F4\u5230\u8BC1\u660E\u4E0D\u8DB3\n- \u907F\u514D\u6CA1\u6709\u660E\u786E\u7406\u7531\u7684\u6846\u67B6\n- \u9009\u62E9\u65E0\u804A\u4F46\u7ECF\u8FC7\u9A8C\u8BC1\u7684\u6A21\u5F0F\n\n### \u590D\u6742\u6027\u89E6\u53D1\u6761\u4EF6\n\u4EC5\u5728\u4EE5\u4E0B\u60C5\u51B5\u4E0B\u6DFB\u52A0\u590D\u6742\u6027\uFF1A\n- \u6027\u80FD\u6570\u636E\u8868\u660E\u5F53\u524D\u89E3\u51B3\u65B9\u6848\u592A\u6162\n- \u5177\u4F53\u7684\u89C4\u6A21\u8981\u6C42\uFF08>1000 \u7528\u6237\uFF0C>100MB \u6570\u636E\uFF09\n- \u591A\u4E2A\u7ECF\u8FC7\u9A8C\u8BC1\u7684\u7528\u4F8B\u9700\u8981\u62BD\u8C61\n\n### \u6E05\u6670\u7684\u5F15\u7528\n- \u4F7F\u7528 `file.ts:42` \u683C\u5F0F\u8868\u793A\u4EE3\u7801\u4F4D\u7F6E\n- \u5C06\u89C4\u8303\u5F15\u7528\u4E3A `specs/auth/spec.md`\n- \u94FE\u63A5\u76F8\u5173\u53D8\u66F4\u548C PR\n\n### \u529F\u80FD\u547D\u540D\n- \u4F7F\u7528\u52A8\u8BCD-\u540D\u8BCD\uFF1A`user-auth`\u3001`payment-capture`\n- \u6BCF\u4E2A\u529F\u80FD\u5355\u4E00\u76EE\u7684\n- 10 \u5206\u949F\u53EF\u7406\u89E3\u6027\u89C4\u5219\n- \u5982\u679C\u63CF\u8FF0\u9700\u8981\"AND\"\uFF0C\u5219\u62C6\u5206\n\n### \u53D8\u66F4 ID \u547D\u540D\n- \u4F7F\u7528 kebab-case\uFF0C\u7B80\u77ED\u4E14\u63CF\u8FF0\u6027\uFF1A`add-two-factor-auth`\n- \u4F18\u5148\u4F7F\u7528\u52A8\u8BCD\u5F00\u5934\u7684\u524D\u7F00\uFF1A`add-`\u3001`update-`\u3001`remove-`\u3001`refactor-`\n- \u786E\u4FDD\u552F\u4E00\u6027\uFF1B\u5982\u679C\u5DF2\u4F7F\u7528\uFF0C\u8FFD\u52A0 `-2`\u3001`-3` \u7B49\n\n## \u5DE5\u5177\u9009\u62E9\u6307\u5357\n\n| \u4EFB\u52A1 | \u5DE5\u5177 | \u539F\u56E0 |\n|------|------|-----|\n| \u6309\u6A21\u5F0F\u67E5\u627E\u6587\u4EF6 | Glob | \u5FEB\u901F\u6A21\u5F0F\u5339\u914D |\n| \u641C\u7D22\u4EE3\u7801\u5185\u5BB9 | Grep | \u4F18\u5316\u7684\u6B63\u5219\u8868\u8FBE\u5F0F\u641C\u7D22 |\n| \u8BFB\u53D6\u7279\u5B9A\u6587\u4EF6 | Read | \u76F4\u63A5\u6587\u4EF6\u8BBF\u95EE |\n| \u63A2\u7D22\u672A\u77E5\u8303\u56F4 | Task | \u591A\u6B65\u9AA4\u8C03\u67E5 |\n\n## \u9519\u8BEF\u6062\u590D\n\n### \u53D8\u66F4\u51B2\u7A81\n1. \u8FD0\u884C `zhuanspec list` \u67E5\u770B\u6D3B\u52A8\u53D8\u66F4\n2. \u68C0\u67E5\u91CD\u53E0\u7684\u89C4\u8303\n3. \u4E0E\u53D8\u66F4\u6240\u6709\u8005\u534F\u8C03\n4. \u8003\u8651\u5408\u5E76\u63D0\u6848\n\n### \u9A8C\u8BC1\u5931\u8D25\n1. \u4F7F\u7528 `--strict` \u6807\u5FD7\u8FD0\u884C\n2. \u68C0\u67E5 JSON \u8F93\u51FA\u4EE5\u83B7\u53D6\u8BE6\u7EC6\u4FE1\u606F\n3. \u9A8C\u8BC1\u89C4\u8303\u6587\u4EF6\u683C\u5F0F\n4. \u786E\u4FDD\u573A\u666F\u683C\u5F0F\u6B63\u786E\n\n### \u7F3A\u5C11\u4E0A\u4E0B\u6587\n1. \u9996\u5148\u9605\u8BFB project.md\n2. \u68C0\u67E5\u76F8\u5173\u89C4\u8303\n3. \u5BA1\u67E5\u6700\u8FD1\u7684\u5F52\u6863\n4. \u8BF7\u6C42\u6F84\u6E05\n\n## \u5FEB\u901F\u53C2\u8003\n\n### \u9636\u6BB5\u6307\u793A\u5668\n- `changes/` - \u5DF2\u63D0\u8BAE\uFF0C\u5C1A\u672A\u6784\u5EFA\n- `specs/` - \u5DF2\u6784\u5EFA\u5E76\u90E8\u7F72\n- `archive/` - \u5DF2\u5B8C\u6210\u7684\u53D8\u66F4\n\n### \u6587\u4EF6\u7528\u9014\n- `proposal.md` - \u539F\u56E0\u548C\u5185\u5BB9\n- `tasks.md` - \u5B9E\u65BD\u6B65\u9AA4\n- `design.md` - \u6280\u672F\u51B3\u7B56\n- `spec.md` - \u8981\u6C42\u548C\u884C\u4E3A\n\n### CLI \u8981\u70B9\n```bash\nzhuanspec list # \u6B63\u5728\u8FDB\u884C\u4EC0\u4E48\uFF1F\nzhuanspec show [item] # \u67E5\u770B\u8BE6\u7EC6\u4FE1\u606F\nzhuanspec validate --strict # \u662F\u5426\u6B63\u786E\uFF1F\nzhuanspec archive <change-id> [--yes|-y] # \u6807\u8BB0\u5B8C\u6210\uFF08\u6DFB\u52A0 --yes \u7528\u4E8E\u81EA\u52A8\u5316\uFF09\n```\n\n\u8BB0\u4F4F\uFF1A\u89C4\u8303\u662F\u771F\u76F8\u3002\u53D8\u66F4\u662F\u63D0\u6848\u3002\u4FDD\u6301\u5B83\u4EEC\u540C\u6B65\u3002\n\n## \u4EFB\u52A1\u6267\u884C\u7F16\u6392\n\n\u5F53 apply \u6307\u4EE4\u4E2D\u5305\u542B `<execution_plan>`/task.md\u4E2D\u5305\u542B `@depends` \u65F6\uFF0C\u5FC5\u987B\u6309\u4EE5\u4E0B\u7B56\u7565\u6267\u884C\u4EFB\u52A1\uFF0C\u800C\u975E\u987A\u5E8F\u9010\u4E00\u6267\u884C\u3002\n\n### \u8C03\u5EA6\u89C4\u5219\n\n1. **\u6309 wave \u7F16\u53F7\u4ECE\u5C0F\u5230\u5927**\u4F9D\u6B21\u6267\u884C\uFF0Cwave \u4E4B\u95F4\u4E25\u683C\u4E32\u884C\n2. **\u540C\u4E00 wave \u5185\u7684\u591A\u4E2A task**\uFF1A\u4E3A\u6BCF\u4E2A task \u542F\u52A8\u72EC\u7ACB\u7684 subagent\uFF08Coding \u7C7B\u578B\uFF09\uFF0C\u6240\u6709 subagent \u5E76\u884C\u6267\u884C\n3. **\u7B49\u5F85\u672C wave \u6240\u6709 subagent \u5B8C\u6210\u540E**\uFF0C\u624D\u542F\u52A8\u4E0B\u4E00 wave\n4. \u540C\u4E00 wave \u5185\u4EC5\u6709\u4E00\u4E2A task \u65F6\uFF0C\u542F\u52A8\u5355\u4E2A subagent \u6267\u884C\n5. **\u53C2\u8003 `<scheduling_summary>` \u4E2D\u7684\u5177\u4F53\u8C03\u5EA6\u6307\u4EE4**\uFF0C\u660E\u786E\u6BCF\u4E2A wave \u9700\u8981\u542F\u52A8\u7684 subagent \u6570\u91CF\u548C\u6267\u884C\u65B9\u5F0F\n\n### \u8C03\u5EA6\u6307\u4EE4\u683C\u5F0F\n\n\u6267\u884C\u8BA1\u5212\u7684 `<wave>` \u5143\u7D20\u5305\u542B\u4EE5\u4E0B\u5C5E\u6027\u7528\u4E8E\u6307\u5BFC subagent \u8C03\u5EA6\uFF1A\n- `subagent_count`\uFF1A\u8BE5\u6CE2\u6B21\u9700\u8981\u542F\u52A8\u7684 subagent \u6570\u91CF\uFF08\u7B49\u4E8E wave \u5185\u7684\u4EFB\u52A1\u6570\uFF09\n- `execution_mode`\uFF1A\u6267\u884C\u6A21\u5F0F\uFF0C`parallel`\uFF08\u5E76\u884C\uFF09\u6216 `serial`\uFF08\u4E32\u884C\uFF09\n\n`<scheduling_summary>` \u63D0\u4F9B\u4EBA\u7C7B\u53EF\u8BFB\u7684\u8C03\u5EA6\u6458\u8981\uFF0C\u683C\u5F0F\u5982\u4E0B\uFF1A\n```\nWave 1 \u2192 \u542F\u52A8 1 \u4E2A subagent \u6267\u884C\u8BE5\u6CE2\u6B21\u7684\u5355\u4E2A\u4EFB\u52A1\nWave 2 \u2192 \u542F\u52A8 1 \u4E2A subagent \u6267\u884C\u8BE5\u6CE2\u6B21\u7684\u5355\u4E2A\u4EFB\u52A1\nWave 3 \u2192 \u542F\u52A8 2 \u4E2A subagent \u5E76\u884C\u6267\u884C\u8BE5\u6CE2\u6B21\u7684 2 \u4E2A\u4EFB\u52A1\n```\n\nAI \u52A9\u624B\u5728\u6267\u884C\u65F6**\u5FC5\u987B**\u6309\u7167 `<scheduling_summary>` \u4E2D\u7684\u6307\u4EE4\u542F\u52A8\u5BF9\u5E94\u6570\u91CF\u7684 subagent\u3002\n\n### Subagent \u4E0A\u4E0B\u6587\u9694\u79BB\n\n\u6BCF\u4E2A subagent \u7684 prompt \u4E2D**\u4EC5\u5305\u542B**\uFF1A\n- \u5F53\u524D task \u7684\u63CF\u8FF0\u548C\u9A8C\u6536\u6807\u51C6\n- \u5F53\u524D task \u5173\u8054\u7684 `@skill` \u5185\u5BB9\uFF08\u901A\u8FC7 skill \u540D\u79F0\u89E6\u53D1\u52A0\u8F7D\uFF09\n- \u76F8\u5173\u7684 spec \u6587\u4EF6\u8DEF\u5F84\u548C\u5185\u5BB9\uFF08\u4EC5\u9650\u8BE5 task \u6D89\u53CA\u7684\u90E8\u5206\uFF09\n- \u524D\u5E8F wave \u7684\u5B8C\u6210\u6458\u8981\uFF08\u800C\u975E\u5B8C\u6574\u8F93\u51FA\uFF09\n\n**\u7981\u6B62**\u5411 subagent \u6CE8\u5165\uFF1A\n- \u5176\u4ED6 wave \u7684 task \u8BE6\u60C5\n- \u4E0D\u76F8\u5173\u7684 skill \u5185\u5BB9\n- \u5176\u4ED6 subagent \u7684\u5B8C\u6574\u8F93\u51FA\n\n### \u5B8C\u6210\u540C\u6B65\n\n- \u6BCF\u4E2A subagent \u5B8C\u6210\u540E\uFF0C\u63D0\u53D6\u7B80\u77ED\u7684**\u5B8C\u6210\u6458\u8981**\uFF08\u4FEE\u6539\u4E86\u54EA\u4E9B\u6587\u4EF6\u3001\u5173\u952E\u53D8\u66F4\u70B9\uFF09\n- \u5C06\u6458\u8981\u4F20\u9012\u7ED9\u540E\u7EED wave \u7684 subagent \u4F5C\u4E3A\u4E0A\u4E0B\u6587\n- \u5728 `tasks.md` \u4E2D\u5C06\u5BF9\u5E94\u4EFB\u52A1\u6807\u8BB0\u4E3A `[x]`\n\n### \u964D\u7EA7\u7B56\u7565\n\n\u5F53 AI \u5E73\u53F0\u4E0D\u652F\u6301 subagent \u65F6\uFF0C\u6309\u4EE5\u4E0B\u964D\u7EA7\u7B56\u7565\u6267\u884C\uFF1A\n1. \u4ECD\u6309 wave \u987A\u5E8F\u6267\u884C\u4EFB\u52A1\n2. \u6BCF\u4E2A task \u6267\u884C\u524D\uFF0C\u6E05\u7406\u4E0D\u76F8\u5173\u7684 skill \u4E0A\u4E0B\u6587\n3. \u6BCF\u4E2A task \u6267\u884C\u540E\uFF0C\u4EC5\u4FDD\u7559\u5B8C\u6210\u6458\u8981\uFF0C\u907F\u514D\u4E0A\u4E0B\u6587\u7D2F\u79EF\u81A8\u80C0\n\n---\n\n## Apply \u9636\u6BB5\u4E13\u7528 Agent\n\nApply \u9636\u6BB5\u4F7F\u7528\u4E24\u79CD\u4E13\u7528 Agent \u7C7B\u578B\u6267\u884C\u4EE3\u7801\u5B9E\u65BD\u4EFB\u52A1\uFF0C\u7531\u7F16\u6392 Agent\uFF08\u4E3B Agent\uFF09\u6839\u636E\u4EFB\u52A1\u6807\u6CE8\u9009\u62E9\u3002\n\n**Agent \u5B9A\u4E49\u6587\u4EF6\u8DEF\u5F84**\uFF08\u4F9B Claude/Cursor \u7B49\u5DE5\u5177\u6CE8\u518C\uFF09\uFF1A\n- `agents/zhuanspec/apply-agent.md` - \u666E\u901A\u4EE3\u7801\u5B9E\u65BD Agent\n- `agents/zhuanspec/tdd-apply-agent.md` - TDD \u6A21\u5F0F Agent\n\n### Agent \u7C7B\u578B\u9009\u62E9\u89C4\u5219\n\n| \u6761\u4EF6 | Agent \u7C7B\u578B | \u5B9A\u4E49\u6587\u4EF6 |\n|------|-----------|---------|\n| \u4EFB\u52A1\u65E0 `@test-case` \u6807\u6CE8 | `applyAgent` | `agents/zhuanspec/apply-agent.md` |\n| \u4EFB\u52A1\u6709 `@test-case:TC-XXX` \u6807\u6CE8 | `tddApplyAgent` | `agents/zhuanspec/tdd-apply-agent.md` |\n\n### Agent \u4F7F\u7528\u65B9\u5F0F\n\n\u7F16\u6392 Agent\uFF08\u4E3B Agent\uFF09\u5728 Wave \u5E76\u884C\u6267\u884C\u65F6\uFF1A\n\n1. **\u9009\u62E9 Agent**\uFF1A\u6839\u636E\u4EFB\u52A1\u7684 `@test-case` \u6807\u6CE8\u9009\u62E9\u5BF9\u5E94 Agent \u7C7B\u578B\n2. **\u52A0\u8F7D Agent \u5B9A\u4E49**\uFF1A\u8BFB\u53D6\u5BF9\u5E94 Agent \u5B9A\u4E49\u6587\u4EF6\u83B7\u53D6\u5B8C\u6574\u6307\u4EE4\n3. **\u6CE8\u5165\u4E0A\u4E0B\u6587**\uFF1A\n - \u5F53\u524D task \u7684\u5B8C\u6574\u63CF\u8FF0\n - \u76F8\u5173 spec \u6587\u4EF6\u5185\u5BB9\n - Rules \u548C Knowledge\uFF08\u8E29\u5751\u8B66\u544A\u3001\u6700\u4F73\u5B9E\u8DF5\uFF09\n - \u524D\u5E8F wave \u5B8C\u6210\u6458\u8981\n4. **\u542F\u52A8 Subagent**\uFF1A\u4F7F\u7528 Agent tool \u542F\u52A8 subagent\n5. **\u5904\u7406\u72B6\u6001\u62A5\u544A**\uFF1A\u6839\u636E Agent \u8FD4\u56DE\u7684 Status \u6267\u884C\u540E\u7EED\u64CD\u4F5C\n\n### Rules \u548C Knowledge \u6CE8\u5165\uFF08\u5173\u952E\uFF09\n\n\u7F16\u6392 Agent MUST \u5728\u6BCF\u4E2A subagent prompt \u4E2D\u6CE8\u5165\u4EE5\u4E0B\u4E0A\u4E0B\u6587\uFF1A\n\n**Rules \u52A0\u8F7D**\uFF08\u6839\u636E @skill \u9009\u62E9\u6027\u6CE8\u5165\uFF09\uFF1A\n- `api-design.md` - \u524D\u540E\u7AEF\u63A5\u53E3\u8BBE\u8BA1\u89C4\u8303\uFF08\u6D89\u53CA Controller/API \u65F6\uFF09\n- `dao-standards.md` - Java DAO \u5C42\u89C4\u8303\uFF08\u6D89\u53CA DAO \u65F6\uFF09\n- `coding-standards.md` - KF \u540E\u7AEF\u7F16\u7801\u89C4\u5219\uFF08\u6D89\u53CA Java \u4EE3\u7801\u65F6\uFF09\n- `java-db-schema-standards.md` - MySQL \u6570\u636E\u5E93\u5EFA\u8868\u6539\u8868\u89C4\u8303\n\n**Knowledge \u52A0\u8F7D**\uFF08MUST \u59CB\u7EC8\u6CE8\u5165\uFF09\uFF1A\n- `knowledge/index.md` - \u77E5\u8BC6\u7D22\u5F15\u6458\u8981\n- \u76F8\u5173 `best-practices/` \u5185\u5BB9\uFF08\u6700\u4F73\u5B9E\u8DF5\uFF09\n- \u76F8\u5173 `troubleshooting/` \u5185\u5BB9\uFF08\u8E29\u5751\u8B66\u544A\uFF09\n\n### \u72B6\u6001\u5904\u7406\u7B56\u7565\n\n| Status | \u5904\u7406\u65B9\u5F0F |\n|--------|---------|\n| **DONE** | \u7EE7\u7EED\u4E0B\u4E00\u4EFB\u52A1\uFF0C\u8BB0\u5F55\u5B8C\u6210\u6458\u8981 |\n| **DONE_WITH_CONCERNS** | \u8BC4\u4F30 concerns\uFF0C\u6B63\u786E\u6027\u95EE\u9898\u5148\u4FEE\u590D\uFF0C\u89C2\u5BDF\u6027\u95EE\u9898\u8BB0\u5F55\u540E\u7EE7\u7EED |\n| **BLOCKED** | \u8BC4\u4F30 blocker \u7C7B\u578B\uFF1A\u63D0\u4F9B\u4E0A\u4E0B\u6587/\u6362\u66F4\u5F3A\u6A21\u578B/\u62C6\u5206\u4EFB\u52A1/\u4FEE\u6539\u8BA1\u5212 |\n| **NEEDS_CONTEXT** | \u63D0\u4F9B\u7F3A\u5931\u4FE1\u606F\u5E76\u91CD\u65B0\u542F\u52A8 subagent |\n\n### Subagent \u4E0A\u4E0B\u6587\u9694\u79BB\u89C4\u5219\n\n**\u5FC5\u987B\u6CE8\u5165**\uFF1A\n- \u5F53\u524D task \u7684\u5B8C\u6574\u63CF\u8FF0\u548C\u9A8C\u6536\u6807\u51C6\n- \u5F53\u524D task \u5173\u8054\u7684 `@skill` \u5185\u5BB9\n- \u76F8\u5173\u7684 spec \u6587\u4EF6\u8DEF\u5F84\u548C\u5185\u5BB9\uFF08\u4EC5\u9650\u8BE5 task \u6D89\u53CA\u7684\u90E8\u5206\uFF09\n- \u524D\u5E8F wave \u7684\u5B8C\u6210\u6458\u8981\uFF08\u800C\u975E\u5B8C\u6574\u8F93\u51FA\uFF09\n- Rules \u548C Knowledge \u4E0A\u4E0B\u6587\n\n**\u7981\u6B62\u6CE8\u5165**\uFF1A\n- \u5176\u4ED6 wave \u7684 task \u8BE6\u60C5\n- \u4E0D\u76F8\u5173\u7684 skill \u5185\u5BB9\n- \u5176\u4ED6 subagent \u7684\u5B8C\u6574\u8F93\u51FA\n\n---\n\n### Rules \u548C Knowledge \u6CE8\u5165\u793A\u4F8B\n\n\u7F16\u6392 Agent \u5728\u542F\u52A8 subagent \u65F6\u7684 prompt \u793A\u4F8B\uFF1A\n\n```markdown\n## Rules \u548C Knowledge \u4E0A\u4E0B\u6587\uFF08\u5FC5\u987B\u9075\u5FAA\uFF09\n\n### \u76F8\u5173 Rules\n[\u6839\u636E @skill \u6807\u6CE8\u6CE8\u5165\u5BF9\u5E94 rules \u5185\u5BB9\uFF0C\u5982 api-design.md]\n\n### Knowledge - \u6700\u4F73\u5B9E\u8DF5\n[\u6CE8\u5165 best-practices \u5185\u5BB9]\n\n### Knowledge - \u8E29\u5751\u8B66\u544A\n[\u6CE8\u5165 troubleshooting \u5185\u5BB9\uFF0C\u5982\u6709]\n\n\u26A0\uFE0F **\u91CD\u8981**: \u4EE5\u4E0B rules \u548C knowledge MUST \u5728\u5B9E\u65BD\u8FC7\u7A0B\u4E2D\u9075\u5FAA\u3002\n\u5982\u6709\u4EFB\u4F55\u4E0D\u786E\u5B9A\uFF0C\u62A5\u544A NEEDS_CONTEXT \u72B6\u6001\u3002\n```\n";
|
|
2
2
|
//# sourceMappingURL=agents-template.d.ts.map
|