@waoooo/claude-skills 1.0.0
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/README.md +48 -0
- package/package.json +28 -0
- package/registry.json +431 -0
- package/skills/acceptance-review/SKILL.md +537 -0
- package/skills/all-plan/SKILL.md +19 -0
- package/skills/all-plan/references/flow.md +750 -0
- package/skills/api-docs-generate/SKILL.md +204 -0
- package/skills/api-docs-generate/assets/templates/api.mdx +140 -0
- package/skills/api-docs-generate/scripts/generate-api-docs.ts +308 -0
- package/skills/ask/SKILL.md +42 -0
- package/skills/autonew/SKILL.md +34 -0
- package/skills/capability-analyze/SKILL.md +300 -0
- package/skills/capability-analyze/scripts/analyze-capabilities.ts +531 -0
- package/skills/capability-docs-generate/SKILL.md +155 -0
- package/skills/capability-docs-generate/assets/templates/capability.mdx +271 -0
- package/skills/capability-docs-generate/scripts/generate-capability-docs.ts +358 -0
- package/skills/capability-tree-query/SKILL.md +112 -0
- package/skills/capability-tree-query/scripts/build-capability-tree.ts +402 -0
- package/skills/changelog-generator/SKILL.md +104 -0
- package/skills/continue/SKILL.md +39 -0
- package/skills/continue/agents/openai.yaml +3 -0
- package/skills/creating-skills/SKILL.md +158 -0
- package/skills/creating-skills/references/official_best_practices.md +128 -0
- package/skills/creating-skills/references/skill_examples.md +199 -0
- package/skills/docx/LICENSE.txt +30 -0
- package/skills/docx/SKILL.md +197 -0
- package/skills/docx/docx-js.md +350 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/docx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/docx/ooxml/scripts/pack.py +159 -0
- package/skills/docx/ooxml/scripts/unpack.py +29 -0
- package/skills/docx/ooxml/scripts/validate.py +69 -0
- package/skills/docx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/docx/ooxml/scripts/validation/base.py +951 -0
- package/skills/docx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/docx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/docx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/docx/ooxml.md +610 -0
- package/skills/docx/scripts/__init__.py +1 -0
- package/skills/docx/scripts/document.py +1276 -0
- package/skills/docx/scripts/templates/comments.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/skills/docx/scripts/templates/people.xml +3 -0
- package/skills/docx/scripts/utilities.py +374 -0
- package/skills/git-branch-create/SKILL.md +170 -0
- package/skills/git-branch-merge/SKILL.md +176 -0
- package/skills/git-commit/SKILL.md +56 -0
- package/skills/git-commit/references/commit_examples.md +311 -0
- package/skills/github-actions-trigger/SKILL.md +367 -0
- package/skills/github-issue-create/SKILL.md +294 -0
- package/skills/github-pr-creation/SKILL.md +137 -0
- package/skills/github-pr-creation/references/pr_templates.md +187 -0
- package/skills/github-pr-merge/SKILL.md +112 -0
- package/skills/github-pr-review/SKILL.md +110 -0
- package/skills/github-pr-review/references/severity_guide.md +168 -0
- package/skills/job-create/SKILL.md +294 -0
- package/skills/job-create/scripts/create-job.ts +105 -0
- package/skills/job-workflow/SKILL.md +212 -0
- package/skills/keyword-extract/SKILL.md +229 -0
- package/skills/mcp-builder/LICENSE.txt +202 -0
- package/skills/mcp-builder/SKILL.md +236 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +249 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +970 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +719 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/mdx-to-openspec/SKILL.md +827 -0
- package/skills/mdx-to-openspec/scripts/mdx-to-openspec.ts +320 -0
- package/skills/mounted/SKILL.md +20 -0
- package/skills/multi-model-review/SKILL.md +459 -0
- package/skills/notion-automation/SKILL.md +215 -0
- package/skills/openspec-review/SKILL.md +513 -0
- package/skills/pdf/LICENSE.txt +30 -0
- package/skills/pdf/SKILL.md +294 -0
- package/skills/pdf/forms.md +205 -0
- package/skills/pdf/reference.md +612 -0
- package/skills/pdf/scripts/check_bounding_boxes.py +70 -0
- package/skills/pdf/scripts/check_bounding_boxes_test.py +226 -0
- package/skills/pdf/scripts/check_fillable_fields.py +12 -0
- package/skills/pdf/scripts/convert_pdf_to_images.py +35 -0
- package/skills/pdf/scripts/create_validation_image.py +41 -0
- package/skills/pdf/scripts/extract_form_field_info.py +152 -0
- package/skills/pdf/scripts/fill_fillable_fields.py +114 -0
- package/skills/pdf/scripts/fill_pdf_form_with_annotations.py +108 -0
- package/skills/pend/SKILL.md +33 -0
- package/skills/ping/SKILL.md +39 -0
- package/skills/pptx/LICENSE.txt +30 -0
- package/skills/pptx/SKILL.md +484 -0
- package/skills/pptx/html2pptx.md +625 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/skills/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/skills/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/skills/pptx/ooxml/schemas/mce/mc.xsd +75 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/skills/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/skills/pptx/ooxml/scripts/pack.py +159 -0
- package/skills/pptx/ooxml/scripts/unpack.py +29 -0
- package/skills/pptx/ooxml/scripts/validate.py +69 -0
- package/skills/pptx/ooxml/scripts/validation/__init__.py +15 -0
- package/skills/pptx/ooxml/scripts/validation/base.py +951 -0
- package/skills/pptx/ooxml/scripts/validation/docx.py +274 -0
- package/skills/pptx/ooxml/scripts/validation/pptx.py +315 -0
- package/skills/pptx/ooxml/scripts/validation/redlining.py +279 -0
- package/skills/pptx/ooxml.md +427 -0
- package/skills/pptx/scripts/html2pptx.js +979 -0
- package/skills/pptx/scripts/inventory.py +1020 -0
- package/skills/pptx/scripts/rearrange.py +231 -0
- package/skills/pptx/scripts/replace.py +385 -0
- package/skills/pptx/scripts/thumbnail.py +450 -0
- package/skills/progress-update/SKILL.md +394 -0
- package/skills/progress-update/scripts/update-progress.ts +221 -0
- package/skills/release-automation/SKILL.md +306 -0
- package/skills/requirement-parse/SKILL.md +212 -0
- package/skills/requirement-parse/scripts/infer-builder-config.ts +346 -0
- package/skills/requirement-parse/scripts/merge-requirements.ts +228 -0
- package/skills/requirement-parse/scripts/parse-docs.ts +206 -0
- package/skills/requirement-parse/scripts/parse-openspec.ts +168 -0
- package/skills/roadmap-docs-generate/SKILL.md +483 -0
- package/skills/roadmap-docs-generate/assets/templates/ROADMAP.mdx +75 -0
- package/skills/roadmap-docs-generate/assets/templates/ROADMAP.mdx.template +330 -0
- package/skills/roadmap-docs-generate/assets/templates/TODO.mdx +56 -0
- package/skills/roadmap-docs-generate/assets/templates/TODO.mdx.template +363 -0
- package/skills/roadmap-docs-generate/scripts/json-to-mdx.ts +445 -0
- package/skills/roadmap-docs-generate/scripts/json-to-mdx.ts.backup +411 -0
- package/skills/roadmap-generate/SKILL.md +396 -0
- package/skills/roadmap-generate/scripts/generate-roadmap.ts +496 -0
- package/skills/skill-creator/LICENSE.txt +202 -0
- package/skills/skill-creator/SKILL.md +356 -0
- package/skills/skill-creator/references/output-patterns.md +82 -0
- package/skills/skill-creator/references/workflows.md +28 -0
- package/skills/skill-creator/scripts/init_skill.py +303 -0
- package/skills/skill-creator/scripts/package_skill.py +110 -0
- package/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/skills/spec-generate/SKILL.md +408 -0
- package/skills/spec-generate/scripts/generate-specs.ts +538 -0
- package/skills/spec-generate/scripts/generate-tasks.ts +174 -0
- package/skills/specs-review/SKILL.md +370 -0
- package/skills/task-execute/SKILL.md +399 -0
- package/skills/task-update-status/SKILL.md +349 -0
- package/skills/task-update-status/scripts/update-task-status.ts +192 -0
- package/skills/task-verify/SKILL.md +407 -0
- package/skills/ui-ux-pro-max/SKILL.md +386 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/vercel-automation/SKILL.md +226 -0
- package/skills/webapp-testing/LICENSE.txt +202 -0
- package/skills/webapp-testing/SKILL.md +96 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +106 -0
- package/skills/worktree-manager/SKILL.md +725 -0
- package/skills/worktree-manager/config.json +15 -0
- package/skills/worktree-manager/scripts/allocate-ports.sh +100 -0
- package/skills/worktree-manager/scripts/cleanup.sh +185 -0
- package/skills/worktree-manager/scripts/launch-agent.sh +155 -0
- package/skills/worktree-manager/scripts/register.sh +125 -0
- package/skills/worktree-manager/scripts/release-ports.sh +48 -0
- package/skills/worktree-manager/scripts/status.sh +169 -0
- package/skills/worktree-manager/scripts/sync.sh +168 -0
- package/skills/worktree-manager/templates/worktree.json +23 -0
- package/skills/xlsx/LICENSE.txt +30 -0
- package/skills/xlsx/SKILL.md +289 -0
- package/skills/xlsx/recalc.py +178 -0
|
@@ -0,0 +1,513 @@
|
|
|
1
|
+
# Skill: openspec-review
|
|
2
|
+
|
|
3
|
+
## 🚨 重要:这是 AI 推理型 Skill
|
|
4
|
+
|
|
5
|
+
**执行方式**:
|
|
6
|
+
1. 读取 OpenSpec 文件(proposal.md, design.md, tasks.md)
|
|
7
|
+
2. 生成审查提示词
|
|
8
|
+
3. **使用 Bash 工具调用 CCB 命令**:
|
|
9
|
+
```
|
|
10
|
+
Bash(ask gemini "审查提示词")
|
|
11
|
+
Bash(ask codex "审查提示词")
|
|
12
|
+
```
|
|
13
|
+
4. 等待 30 秒让模型处理
|
|
14
|
+
5. **使用 Bash 工具获取回复**:
|
|
15
|
+
```
|
|
16
|
+
Bash(pend gemini)
|
|
17
|
+
Bash(pend codex)
|
|
18
|
+
```
|
|
19
|
+
6. 解析回复中的 JSON 结果
|
|
20
|
+
7. 汇总 3 个模型(Claude + Gemini + Codex)的审查结果
|
|
21
|
+
8. 生成报告文件
|
|
22
|
+
|
|
23
|
+
**禁止**:
|
|
24
|
+
- ❌ 不要只输出"请 Gemini 帮我审查"文本
|
|
25
|
+
- ❌ 不要自己单独评估
|
|
26
|
+
- ❌ 不要跳过多模型会审
|
|
27
|
+
|
|
28
|
+
**必须**:
|
|
29
|
+
- ✅ 必须使用 Bash 工具调用 `ask` 命令
|
|
30
|
+
- ✅ 必须使用 Bash 工具调用 `pend` 命令
|
|
31
|
+
- ✅ 必须等待并解析其他模型的回复
|
|
32
|
+
- ✅ 必须汇总 3 个模型的结果
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 功能
|
|
37
|
+
|
|
38
|
+
多模型会审 OpenSpec 质量,确保需求文档、技术设计、任务列表的完整性和可行性。
|
|
39
|
+
|
|
40
|
+
## 何时调用
|
|
41
|
+
|
|
42
|
+
- MDX → OpenSpec 转换完成后(步骤 5)
|
|
43
|
+
- 需要验证 OpenSpec 质量时
|
|
44
|
+
- 开始开发前的最后检查
|
|
45
|
+
|
|
46
|
+
## 输入
|
|
47
|
+
|
|
48
|
+
- `changeId` - OpenSpec 提案 ID(例如:001-pricing-system)
|
|
49
|
+
- `openspecPath` - OpenSpec 目录路径(例如:openspec/changes/001-pricing-system/)
|
|
50
|
+
|
|
51
|
+
## 输出
|
|
52
|
+
|
|
53
|
+
保存到 `exports/jobs/<job-id>/reviews/openspec-review/` 目录:
|
|
54
|
+
- `claude.json` - Claude 的审查结果
|
|
55
|
+
- `gemini.json` - Gemini 的审查结果
|
|
56
|
+
- `codex.json` - Codex 的审查结果
|
|
57
|
+
- `summary.md` - 汇总报告(Markdown 格式)
|
|
58
|
+
|
|
59
|
+
## 审查标准
|
|
60
|
+
|
|
61
|
+
### 问题严重程度
|
|
62
|
+
|
|
63
|
+
- **Critical(严重)**: 阻塞性问题,必须修复才能继续
|
|
64
|
+
- 需求描述不清晰或缺失
|
|
65
|
+
- 技术方案不可行
|
|
66
|
+
- 任务拆分有严重错误
|
|
67
|
+
- 存在明显的逻辑错误
|
|
68
|
+
|
|
69
|
+
- **Medium(中等)**: 重要问题,建议修复
|
|
70
|
+
- 需求描述不够完整
|
|
71
|
+
- 技术方案有风险
|
|
72
|
+
- 任务依赖关系不清晰
|
|
73
|
+
- 缺少关键的验收标准
|
|
74
|
+
|
|
75
|
+
- **Low(轻微)**: 优化建议,可选修复
|
|
76
|
+
- 文档格式问题
|
|
77
|
+
- 描述可以更清晰
|
|
78
|
+
- 建议补充细节
|
|
79
|
+
- 优化建议
|
|
80
|
+
|
|
81
|
+
### 单个模型的通过标准
|
|
82
|
+
|
|
83
|
+
- Critical issues = 0
|
|
84
|
+
- Medium issues ≤ 3
|
|
85
|
+
- Overall score ≥ 7/10
|
|
86
|
+
|
|
87
|
+
### 输出格式
|
|
88
|
+
|
|
89
|
+
每个模型返回 JSON 格式:
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"model": "claude|gemini|codex",
|
|
93
|
+
"pass": true|false,
|
|
94
|
+
"score": 8.5,
|
|
95
|
+
"status": "approved|approved_with_suggestions|rejected",
|
|
96
|
+
"issues": {
|
|
97
|
+
"critical": [
|
|
98
|
+
{
|
|
99
|
+
"location": "proposal.md:42",
|
|
100
|
+
"message": "需求描述不清晰",
|
|
101
|
+
"suggestion": "建议补充具体的验收标准"
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"medium": [...],
|
|
105
|
+
"low": [...]
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 审查内容
|
|
113
|
+
|
|
114
|
+
### 1. proposal.md(需求提案)
|
|
115
|
+
- 需求是否清晰完整?
|
|
116
|
+
- 目标是否明确?
|
|
117
|
+
- 验收标准是否具体?
|
|
118
|
+
- 关键词是否准确?
|
|
119
|
+
|
|
120
|
+
### 2. design.md(技术设计)
|
|
121
|
+
- 技术方案是否可行?
|
|
122
|
+
- 架构设计是否合理?
|
|
123
|
+
- 是否有技术风险?
|
|
124
|
+
- 依赖关系是否正确?
|
|
125
|
+
|
|
126
|
+
### 3. tasks.md(任务列表)
|
|
127
|
+
- 任务拆分是否合理?
|
|
128
|
+
- 任务粒度是否合适?
|
|
129
|
+
- 任务依赖是否正确?
|
|
130
|
+
- 是否有遗漏的任务?
|
|
131
|
+
|
|
132
|
+
## 审查者
|
|
133
|
+
|
|
134
|
+
**⚠️ 重要:使用 Claude Code Bridge (ccb) 工具进行多模型会审**
|
|
135
|
+
|
|
136
|
+
### 前置条件
|
|
137
|
+
|
|
138
|
+
确保 ccb 已安装并配置(参考项目 README)。
|
|
139
|
+
|
|
140
|
+
### 调用方式
|
|
141
|
+
|
|
142
|
+
**步骤 1:启动多模型协作环境**
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# 启动 Claude + Codex + Gemini 三个模型
|
|
146
|
+
ccb codex gemini claude
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
这会在终端分屏显示三个 AI 模型,每个模型独立运行。
|
|
150
|
+
|
|
151
|
+
**步骤 2:在 Claude 中发起会审**
|
|
152
|
+
|
|
153
|
+
在 Claude 窗格中输入会审请求:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
请审查 OpenSpec: openspec/changes/001-pricing-system/
|
|
157
|
+
|
|
158
|
+
审查维度:
|
|
159
|
+
1. proposal.md - 需求是否清晰完整?
|
|
160
|
+
2. design.md - 技术方案是否可行?
|
|
161
|
+
3. tasks.md - 任务拆分是否合理?
|
|
162
|
+
|
|
163
|
+
请 Codex 和 Gemini 也分别审查,然后汇总结果。
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**步骤 3:跨模型协作**
|
|
167
|
+
|
|
168
|
+
Claude 会使用 ccb 的 `/ask` 命令与其他模型通信:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Claude 自动调用
|
|
172
|
+
/ask codex "请审查 OpenSpec proposal.md..."
|
|
173
|
+
/ask gemini "请审查 OpenSpec design.md..."
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**步骤 4:收集审查结果**
|
|
177
|
+
|
|
178
|
+
使用 `/pend` 命令获取其他模型的回复:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
/pend codex # 获取 Codex 的审查结果
|
|
182
|
+
/pend gemini # 获取 Gemini 的审查结果
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**步骤 5:生成汇总报告**
|
|
186
|
+
|
|
187
|
+
Claude 汇总所有模型的审查结果,生成:
|
|
188
|
+
- `review-openspec.json` - 结构化审查数据
|
|
189
|
+
- `review-openspec-summary.md` - 可读的汇总报告
|
|
190
|
+
|
|
191
|
+
## 执行步骤
|
|
192
|
+
|
|
193
|
+
### 1. 读取 OpenSpec 文件
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# 读取 3 个文件
|
|
197
|
+
cat openspec/changes/<change-id>/proposal.md
|
|
198
|
+
cat openspec/changes/<change-id>/design.md
|
|
199
|
+
cat openspec/changes/<change-id>/tasks.md
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### 2. 并行调用 4 个模型
|
|
203
|
+
|
|
204
|
+
为每个模型生成相同的审查提示词:
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
你是一个资深的产品和技术专家,请审查以下 OpenSpec 文档的质量。
|
|
208
|
+
|
|
209
|
+
## 审查维度
|
|
210
|
+
|
|
211
|
+
1. **需求完整性**(proposal.md)
|
|
212
|
+
- 需求是否清晰完整?
|
|
213
|
+
- 目标是否明确?
|
|
214
|
+
- 验收标准是否具体?
|
|
215
|
+
|
|
216
|
+
2. **技术可行性**(design.md)
|
|
217
|
+
- 技术方案是否可行?
|
|
218
|
+
- 架构设计是否合理?
|
|
219
|
+
- 是否有技术风险?
|
|
220
|
+
|
|
221
|
+
3. **任务合理性**(tasks.md)
|
|
222
|
+
- 任务拆分是否合理?
|
|
223
|
+
- 任务粒度是否合适?
|
|
224
|
+
- 任务依赖是否正确?
|
|
225
|
+
|
|
226
|
+
## 审查内容
|
|
227
|
+
|
|
228
|
+
### proposal.md
|
|
229
|
+
{proposal_content}
|
|
230
|
+
|
|
231
|
+
### design.md
|
|
232
|
+
{design_content}
|
|
233
|
+
|
|
234
|
+
### tasks.md
|
|
235
|
+
{tasks_content}
|
|
236
|
+
|
|
237
|
+
## 请提供
|
|
238
|
+
|
|
239
|
+
1. **总体评分**(1-10)
|
|
240
|
+
2. **审查结果**:approved / approved_with_suggestions / rejected
|
|
241
|
+
3. **具体问题列表**(如果有)
|
|
242
|
+
- 问题类型:critical / medium / low
|
|
243
|
+
- 问题描述
|
|
244
|
+
- 建议修改方案
|
|
245
|
+
|
|
246
|
+
请以 JSON 格式返回结果。
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### 3. 收集审查结果
|
|
250
|
+
|
|
251
|
+
```json
|
|
252
|
+
{
|
|
253
|
+
"changeId": "001-pricing-system",
|
|
254
|
+
"reviewedAt": "2026-02-11T03:14:51Z",
|
|
255
|
+
"status": "approved_with_suggestions",
|
|
256
|
+
|
|
257
|
+
"reviews": [
|
|
258
|
+
{
|
|
259
|
+
"reviewer": "claude-sonnet-4",
|
|
260
|
+
"score": 8.5,
|
|
261
|
+
"status": "approved",
|
|
262
|
+
"findings": [
|
|
263
|
+
{
|
|
264
|
+
"type": "suggestion",
|
|
265
|
+
"severity": "low",
|
|
266
|
+
"message": "建议补充多货币转换的边界情况处理",
|
|
267
|
+
"location": "proposal.md:42"
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"reviewer": "gpt-4",
|
|
273
|
+
"score": 9.0,
|
|
274
|
+
"status": "approved",
|
|
275
|
+
"findings": []
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"reviewer": "claude-opus-4",
|
|
279
|
+
"score": 7.5,
|
|
280
|
+
"status": "approved_with_suggestions",
|
|
281
|
+
"findings": [
|
|
282
|
+
{
|
|
283
|
+
"type": "issue",
|
|
284
|
+
"severity": "medium",
|
|
285
|
+
"message": "任务 3 和任务 5 有依赖关系,但 tasks.md 中未标记",
|
|
286
|
+
"location": "tasks.md:15-20"
|
|
287
|
+
}
|
|
288
|
+
]
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"reviewer": "gemini-2.0-flash-thinking",
|
|
292
|
+
"score": 8.0,
|
|
293
|
+
"status": "approved",
|
|
294
|
+
"findings": [
|
|
295
|
+
{
|
|
296
|
+
"type": "suggestion",
|
|
297
|
+
"severity": "low",
|
|
298
|
+
"message": "pricing 能力依赖 payment,建议在 design.md 中说明",
|
|
299
|
+
"location": "design.md:30"
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
}
|
|
303
|
+
],
|
|
304
|
+
|
|
305
|
+
"summary": {
|
|
306
|
+
"overallScore": 8.25,
|
|
307
|
+
"passRate": 1.0,
|
|
308
|
+
"status": "approved_with_suggestions",
|
|
309
|
+
"criticalIssues": 0,
|
|
310
|
+
"mediumIssues": 1,
|
|
311
|
+
"suggestions": 2,
|
|
312
|
+
"recommendation": "建议修订后继续"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### 4. 生成汇总报告
|
|
318
|
+
|
|
319
|
+
```markdown
|
|
320
|
+
# OpenSpec 审查报告
|
|
321
|
+
|
|
322
|
+
**提案**: 001-pricing-system
|
|
323
|
+
**审查时间**: 2026-02-11 03:14:51
|
|
324
|
+
**总体评分**: 8.25/10
|
|
325
|
+
**通过率**: 100% (4/4)
|
|
326
|
+
**状态**: ✅ 通过(有建议)
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## 审查结果
|
|
331
|
+
|
|
332
|
+
### ✅ Claude Sonnet 4 (8.5/10)
|
|
333
|
+
- ✅ 目标清晰明确
|
|
334
|
+
- ✅ 验收标准完整
|
|
335
|
+
- 💡 建议补充多货币转换的边界情况处理
|
|
336
|
+
|
|
337
|
+
### ✅ GPT-4 (9.0/10)
|
|
338
|
+
- ✅ 技术方案可行
|
|
339
|
+
- ✅ 无明显技术风险
|
|
340
|
+
|
|
341
|
+
### ⚠️ Claude Opus 4 (7.5/10)
|
|
342
|
+
- ✅ 任务粒度合适
|
|
343
|
+
- ⚠️ 任务 3 和任务 5 有依赖关系,但 tasks.md 中未标记
|
|
344
|
+
- 💡 建议在 tasks.md 中添加依赖标记
|
|
345
|
+
|
|
346
|
+
### ✅ Gemini 2.0 Flash Thinking (8.0/10)
|
|
347
|
+
- ✅ 能力匹配正确
|
|
348
|
+
- 💡 pricing 能力依赖 payment,建议在 design.md 中说明
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## 建议
|
|
353
|
+
|
|
354
|
+
1. **中优先级**: 在 tasks.md 中标记任务 3 和任务 5 的依赖关系
|
|
355
|
+
2. **低优先级**: 补充多货币转换的边界情况处理
|
|
356
|
+
3. **低优先级**: 在 design.md 中说明 pricing 依赖 payment
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## 结论
|
|
361
|
+
|
|
362
|
+
✅ **建议修订后继续**
|
|
363
|
+
|
|
364
|
+
OpenSpec 整体质量良好,有 1 个中优先级问题需要修订。
|
|
365
|
+
修订后可以继续执行后续流程。
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### 5. 输出结果
|
|
369
|
+
|
|
370
|
+
将 3 个模型的审查结果保存到:
|
|
371
|
+
```
|
|
372
|
+
exports/jobs/<job-id>/reviews/openspec-review/
|
|
373
|
+
├── claude.json # Claude 的审查结果
|
|
374
|
+
├── gemini.json # Gemini 的审查结果
|
|
375
|
+
├── codex.json # Codex 的审查结果
|
|
376
|
+
└── summary.md # 汇总报告(Markdown 格式)
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
**注意**:
|
|
380
|
+
- 每个模型的结果单独保存为 JSON 文件
|
|
381
|
+
- summary.md 包含所有模型的结果和统计信息
|
|
382
|
+
- 决策逻辑由 Agent 根据 CLAUDE.md 中的规则执行
|
|
383
|
+
|
|
384
|
+
## 使用示例
|
|
385
|
+
|
|
386
|
+
### 示例 1:全部通过
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
Agent 调用 openspec-review:
|
|
390
|
+
输入:
|
|
391
|
+
- changeId: 001-pricing-system
|
|
392
|
+
- openspecPath: openspec/changes/001-pricing-system/
|
|
393
|
+
|
|
394
|
+
执行:
|
|
395
|
+
🔧 步骤 1: 读取 OpenSpec 文件
|
|
396
|
+
⏳ 读取: proposal.md, design.md, tasks.md
|
|
397
|
+
|
|
398
|
+
🔧 步骤 2: 并行调用 4 个模型
|
|
399
|
+
⏳ Claude Sonnet 4: 审查中...
|
|
400
|
+
⏳ GPT-4: 审查中...
|
|
401
|
+
⏳ Claude Opus 4: 审查中...
|
|
402
|
+
⏳ Gemini 2.0: 审查中...
|
|
403
|
+
|
|
404
|
+
🔧 步骤 3: 汇总结果
|
|
405
|
+
✅ 通过率: 100% (4/4)
|
|
406
|
+
✅ 总体评分: 8.25/10
|
|
407
|
+
|
|
408
|
+
显示结果:
|
|
409
|
+
✅ OpenSpec 会审通过
|
|
410
|
+
|
|
411
|
+
📊 审查结果:
|
|
412
|
+
- Claude Sonnet 4: 8.5/10 ✅
|
|
413
|
+
- GPT-4: 9.0/10 ✅
|
|
414
|
+
- Claude Opus 4: 7.5/10 ⚠️
|
|
415
|
+
- Gemini 2.0: 8.0/10 ✅
|
|
416
|
+
|
|
417
|
+
⚠️ 发现 1 个中优先级问题:
|
|
418
|
+
- 任务 3 和任务 5 有依赖关系,但 tasks.md 中未标记
|
|
419
|
+
|
|
420
|
+
💡 建议:
|
|
421
|
+
1. 在 tasks.md 中标记任务依赖关系
|
|
422
|
+
2. 补充多货币转换的边界情况处理
|
|
423
|
+
|
|
424
|
+
📄 详细报告:
|
|
425
|
+
- review-openspec.json
|
|
426
|
+
- review-openspec-summary.md
|
|
427
|
+
|
|
428
|
+
💡 下一步:
|
|
429
|
+
可以继续执行,或先修订 OpenSpec
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### 示例 2:需要修订
|
|
433
|
+
|
|
434
|
+
```
|
|
435
|
+
Agent 调用 openspec-review:
|
|
436
|
+
输入:
|
|
437
|
+
- changeId: 002-complex-feature
|
|
438
|
+
- openspecPath: openspec/changes/002-complex-feature/
|
|
439
|
+
|
|
440
|
+
执行:
|
|
441
|
+
🔧 步骤 1-3: 审查和汇总
|
|
442
|
+
|
|
443
|
+
显示结果:
|
|
444
|
+
❌ OpenSpec 会审未通过
|
|
445
|
+
|
|
446
|
+
📊 审查结果:
|
|
447
|
+
- Claude Sonnet 4: 5.0/10 ❌
|
|
448
|
+
- GPT-4: 6.0/10 ⚠️
|
|
449
|
+
- Claude Opus 4: 5.5/10 ❌
|
|
450
|
+
- Gemini 2.0: 6.5/10 ⚠️
|
|
451
|
+
|
|
452
|
+
❌ 通过率: 0% (0/4)
|
|
453
|
+
❌ 发现 3 个严重问题:
|
|
454
|
+
1. 需求描述不清晰,缺少验收标准
|
|
455
|
+
2. 技术方案不可行,存在循环依赖
|
|
456
|
+
3. 任务拆分过粗,无法执行
|
|
457
|
+
|
|
458
|
+
💡 建议:
|
|
459
|
+
必须修订 OpenSpec,解决以上问题后重新会审
|
|
460
|
+
|
|
461
|
+
📄 详细报告:
|
|
462
|
+
- review-openspec.json
|
|
463
|
+
- review-openspec-summary.md
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
## 错误处理
|
|
467
|
+
|
|
468
|
+
### 错误 1:OpenSpec 文件不存在
|
|
469
|
+
|
|
470
|
+
```
|
|
471
|
+
❌ 错误: OpenSpec 文件不完整
|
|
472
|
+
🔍 原因: 缺少 proposal.md 或 design.md 或 tasks.md
|
|
473
|
+
|
|
474
|
+
💡 建议:
|
|
475
|
+
1. 检查 OpenSpec 目录
|
|
476
|
+
2. 确认所有必需文件存在
|
|
477
|
+
3. 重新生成 OpenSpec
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
### 错误 2:模型调用失败
|
|
481
|
+
|
|
482
|
+
```
|
|
483
|
+
❌ 错误: 模型调用失败
|
|
484
|
+
🔍 原因: Claude Sonnet 4 API 超时
|
|
485
|
+
|
|
486
|
+
💡 建议:
|
|
487
|
+
1. 重试调用
|
|
488
|
+
2. 或使用 3 个模型的结果(降低通过阈值)
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### 错误 3:审查结果格式错误
|
|
492
|
+
|
|
493
|
+
```
|
|
494
|
+
❌ 错误: 审查结果解析失败
|
|
495
|
+
🔍 原因: GPT-4 返回的不是有效 JSON
|
|
496
|
+
|
|
497
|
+
💡 建议:
|
|
498
|
+
1. 重新调用 GPT-4
|
|
499
|
+
2. 或手动解析结果
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
## 注意事项
|
|
503
|
+
|
|
504
|
+
1. **并行调用** - 4 个模型同时调用,提高效率
|
|
505
|
+
2. **超时处理** - 每个模型调用设置 60 秒超时
|
|
506
|
+
3. **结果缓存** - 审查结果保存到 Job 的 reviews/ 目录
|
|
507
|
+
4. **可重复** - 可以多次调用,每次生成新的审查报告
|
|
508
|
+
5. **人工决策** - 最终是否修订由用户决定
|
|
509
|
+
|
|
510
|
+
## 相关文件
|
|
511
|
+
|
|
512
|
+
- `exports/jobs/<job-id>/reviews/review-openspec.json`
|
|
513
|
+
- `exports/jobs/<job-id>/reviews/review-openspec-summary.md`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
© 2025 Anthropic, PBC. All rights reserved.
|
|
2
|
+
|
|
3
|
+
LICENSE: Use of these materials (including all code, prompts, assets, files,
|
|
4
|
+
and other components of this Skill) is governed by your agreement with
|
|
5
|
+
Anthropic regarding use of Anthropic's services. If no separate agreement
|
|
6
|
+
exists, use is governed by Anthropic's Consumer Terms of Service or
|
|
7
|
+
Commercial Terms of Service, as applicable:
|
|
8
|
+
https://www.anthropic.com/legal/consumer-terms
|
|
9
|
+
https://www.anthropic.com/legal/commercial-terms
|
|
10
|
+
Your applicable agreement is referred to as the "Agreement." "Services" are
|
|
11
|
+
as defined in the Agreement.
|
|
12
|
+
|
|
13
|
+
ADDITIONAL RESTRICTIONS: Notwithstanding anything in the Agreement to the
|
|
14
|
+
contrary, users may not:
|
|
15
|
+
|
|
16
|
+
- Extract these materials from the Services or retain copies of these
|
|
17
|
+
materials outside the Services
|
|
18
|
+
- Reproduce or copy these materials, except for temporary copies created
|
|
19
|
+
automatically during authorized use of the Services
|
|
20
|
+
- Create derivative works based on these materials
|
|
21
|
+
- Distribute, sublicense, or transfer these materials to any third party
|
|
22
|
+
- Make, offer to sell, sell, or import any inventions embodied in these
|
|
23
|
+
materials
|
|
24
|
+
- Reverse engineer, decompile, or disassemble these materials
|
|
25
|
+
|
|
26
|
+
The receipt, viewing, or possession of these materials does not convey or
|
|
27
|
+
imply any license or right beyond those expressly granted above.
|
|
28
|
+
|
|
29
|
+
Anthropic retains all right, title, and interest in these materials,
|
|
30
|
+
including all copyrights, patents, and other intellectual property rights.
|