@namewta/speculo 0.1.21 → 0.2.1
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 +68 -78
- package/dist/src/cli.js +57 -34
- package/dist/src/cli.js.map +1 -1
- package/dist/src/index.d.ts +1 -3
- package/dist/src/index.js +128 -168
- package/dist/src/index.js.map +1 -1
- package/dist/src/migrate.d.ts +38 -0
- package/dist/src/migrate.js +646 -0
- package/dist/src/migrate.js.map +1 -0
- package/dist/src/workflows.d.ts +7 -37
- package/dist/src/workflows.js +49 -123
- package/dist/src/workflows.js.map +1 -1
- package/package.json +6 -4
- package/template/.speculo/README.md +20 -0
- package/template/.speculo/workspace.json +13 -0
- package/template/commands/docs-sync.md +28 -0
- package/template/commands/finalize.md +37 -0
- package/template/commands/knowledge-prune.md +20 -0
- package/template/commands/retro.md +15 -8
- package/template/commands/status.md +9 -51
- package/template/config.json +11 -0
- package/template/skills/agents-md-builder/SKILL.md +14 -101
- package/template/skills/change-lifecycle/SKILL.md +25 -0
- package/template/{workflows/dev/_templates → skills/change-lifecycle/assets}/completion-summary-template.md +2 -2
- package/template/{workflows/dev/_templates → skills/change-lifecycle/assets}/completion-verification-template.md +1 -1
- package/template/skills/change-lifecycle/references/completion-gate.md +19 -0
- package/template/skills/change-lifecycle/references/finalize-archive.md +32 -0
- package/template/skills/docs-sync/SKILL.md +22 -0
- package/template/skills/docs-sync/assets/report-template.md +45 -0
- package/template/skills/docs-sync/assets/state-template.json +20 -0
- package/template/skills/docs-sync/assets/workflow-scope-template.json +9 -0
- package/template/skills/docs-sync/references/agents-contract.md +43 -0
- package/template/skills/docs-sync/references/changelog-contract.md +39 -0
- package/template/skills/docs-sync/references/document-lifecycle-contract.md +38 -0
- package/template/skills/docs-sync/references/git-state-contract.md +67 -0
- package/template/skills/docs-sync/references/readme-contract.md +44 -0
- package/template/skills/docs-sync/references/workflow-scope-contract.md +50 -0
- package/template/skills/github-npm-ops/SKILL.md +14 -39
- package/template/skills/github-npm-ops/references/failure-recovery.md +1 -1
- package/template/skills/github-npm-ops/references/preflight-checklist.md +1 -1
- package/template/skills/github-npm-ops/references/release-notes-injection.md +1 -1
- package/template/skills/github-npm-ops/references/release-pipeline.md +13 -13
- package/template/skills/github-npm-ops/references/version-bump-flow.md +3 -3
- package/template/skills/knowledge-prune/SKILL.md +29 -0
- package/template/skills/knowledge-prune/references/audit-rules.md +24 -0
- package/template/skills/runtime-context/SKILL.md +54 -0
- package/template/skills/runtime-context/references/path-resolution.md +41 -0
- package/template/skills/speculo-retro/SKILL.md +13 -37
- package/template/skills/speculo-retro/references/friction-taxonomy.md +3 -3
- package/template/skills/speculo-retro/references/issue-drafting-sop.md +3 -3
- package/template/skills/worktree-isolation/SKILL.md +10 -46
- package/template/skills/worktree-isolation/references/audit-branch-tree.md +2 -2
- package/template/skills/worktree-isolation/references/create-worktree.md +6 -6
- package/template/skills/worktree-isolation/references/merge-and-cleanup.md +5 -5
- package/template/vendor/README.md +11 -10
- package/template/vendor/matt-pocock/README.md +41 -0
- package/template/vendor/matt-pocock/engineering/README.md +28 -0
- package/template/vendor/matt-pocock/engineering/ask-matt/SKILL.md +76 -0
- package/template/vendor/matt-pocock/engineering/code-review/SKILL.md +89 -0
- package/template/vendor/matt-pocock/engineering/codebase-design/DEEPENING.md +37 -0
- package/template/vendor/matt-pocock/engineering/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/template/vendor/matt-pocock/engineering/codebase-design/SKILL.md +114 -0
- package/template/vendor/matt-pocock/engineering/diagnosing-bugs/SKILL.md +134 -0
- package/template/vendor/matt-pocock/engineering/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
- package/template/vendor/matt-pocock/engineering/domain-modeling/ADR-FORMAT.md +47 -0
- package/template/vendor/matt-pocock/engineering/domain-modeling/CONTEXT-FORMAT.md +60 -0
- package/template/vendor/matt-pocock/engineering/domain-modeling/SKILL.md +74 -0
- package/template/vendor/matt-pocock/engineering/grill-with-docs/SKILL.md +7 -0
- package/template/vendor/matt-pocock/engineering/implement/SKILL.md +15 -0
- package/template/vendor/matt-pocock/engineering/improve-codebase-architecture/HTML-REPORT.md +125 -0
- package/template/vendor/matt-pocock/engineering/improve-codebase-architecture/SKILL.md +66 -0
- package/template/vendor/matt-pocock/engineering/prototype/LOGIC.md +79 -0
- package/template/vendor/matt-pocock/engineering/prototype/SKILL.md +30 -0
- package/template/vendor/matt-pocock/engineering/prototype/UI.md +112 -0
- package/template/vendor/matt-pocock/engineering/research/SKILL.md +12 -0
- package/template/vendor/matt-pocock/engineering/resolving-merge-conflicts/SKILL.md +14 -0
- package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/SKILL.md +156 -0
- package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/domain.md +40 -0
- package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/issue-tracker-github.md +45 -0
- package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
- package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
- package/template/vendor/matt-pocock/engineering/setup-matt-pocock-skills/triage-labels.md +15 -0
- package/template/vendor/matt-pocock/engineering/tdd/SKILL.md +36 -0
- package/template/vendor/matt-pocock/engineering/tdd/mocking.md +59 -0
- package/template/vendor/matt-pocock/engineering/tdd/tests.md +77 -0
- package/template/vendor/matt-pocock/engineering/to-spec/SKILL.md +75 -0
- package/template/vendor/matt-pocock/engineering/to-tickets/SKILL.md +113 -0
- package/template/vendor/matt-pocock/engineering/triage/AGENT-BRIEF.md +204 -0
- package/template/vendor/matt-pocock/engineering/triage/OUT-OF-SCOPE.md +104 -0
- package/template/vendor/matt-pocock/engineering/triage/SKILL.md +112 -0
- package/template/vendor/matt-pocock/engineering/wayfinder/SKILL.md +127 -0
- package/template/vendor/matt-pocock/in-progress/README.md +10 -0
- package/template/vendor/matt-pocock/in-progress/claude-handoff/SKILL.md +18 -0
- package/template/vendor/matt-pocock/in-progress/loop-me/SKILL.md +32 -0
- package/template/vendor/matt-pocock/in-progress/wizard/SKILL.md +45 -0
- package/template/vendor/matt-pocock/in-progress/wizard/template.sh +211 -0
- package/template/vendor/matt-pocock/in-progress/writing-beats/SKILL.md +67 -0
- package/template/vendor/matt-pocock/in-progress/writing-fragments/SKILL.md +78 -0
- package/template/vendor/matt-pocock/in-progress/writing-shape/SKILL.md +79 -0
- package/template/vendor/matt-pocock/productivity/README.md +18 -0
- package/template/vendor/matt-pocock/productivity/grill-me/SKILL.md +7 -0
- package/template/vendor/matt-pocock/productivity/grilling/SKILL.md +12 -0
- package/template/vendor/matt-pocock/productivity/handoff/SKILL.md +16 -0
- package/template/vendor/matt-pocock/productivity/teach/GLOSSARY-FORMAT.md +35 -0
- package/template/vendor/matt-pocock/productivity/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/template/vendor/matt-pocock/productivity/teach/MISSION-FORMAT.md +31 -0
- package/template/vendor/matt-pocock/productivity/teach/RESOURCES-FORMAT.md +32 -0
- package/template/vendor/matt-pocock/productivity/teach/SKILL.md +140 -0
- package/template/vendor/matt-pocock/productivity/writing-great-skills/GLOSSARY.md +201 -0
- package/template/vendor/matt-pocock/productivity/writing-great-skills/SKILL.md +83 -0
- package/template/workflows/matt-pocock/WORKFLOW.md +156 -0
- package/template/workflows/matt-pocock/_state/status.json +5 -0
- package/template/workflows/matt-pocock/routes/architecture.md +24 -0
- package/template/workflows/matt-pocock/routes/diagnose.md +22 -0
- package/template/workflows/matt-pocock/routes/experimental.md +18 -0
- package/template/workflows/matt-pocock/routes/idea-to-delivery.md +63 -0
- package/template/workflows/matt-pocock/routes/merge-conflicts.md +19 -0
- package/template/workflows/matt-pocock/routes/productivity.md +25 -0
- package/template/workflows/matt-pocock/routes/research-prototype.md +20 -0
- package/template/workflows/matt-pocock/routes/review.md +19 -0
- package/template/workflows/matt-pocock/routes/setup.md +42 -0
- package/template/workflows/matt-pocock/routes/triage.md +25 -0
- package/template/workflows/matt-pocock/routes/wayfinder.md +27 -0
- package/template/workflows/person/M-mao-zedong-cognitive-os/M-mao-zedong-cognitive-os.md +74 -59
- package/template/workflows/person/M-mao-zedong-cognitive-os/activate.md +2 -2
- package/template/workflows/person/M-mao-zedong-cognitive-os/deliver.md +5 -5
- package/template/workflows/person/M-mao-zedong-cognitive-os/diagnose.md +2 -2
- package/template/workflows/person/M-mao-zedong-cognitive-os/mobilize.md +4 -4
- package/template/workflows/person/M-mao-zedong-cognitive-os/strategize.md +3 -3
- package/template/workflows/person/WORKFLOW.md +68 -0
- package/template/workflows/person/_state/.config/LESSONS.md +3 -0
- package/template/workflows/person/_state/.config/RULES.md +3 -0
- package/template/workflows/person/_state/changes/.gitkeep +1 -0
- package/template/workflows/person/_state/status.json +5 -0
- package/template/.speculo/.config/LESSONS.md +0 -9
- package/template/.speculo/.config/RULES.md +0 -11
- package/template/.speculo/AGENTS.md +0 -30
- package/template/.speculo/archive/AGENTS.md +0 -28
- package/template/.speculo/archive/dev/.gitkeep +0 -0
- package/template/.speculo/archive/person/.gitkeep +0 -0
- package/template/.speculo/dev/.gitkeep +0 -0
- package/template/.speculo/dev/docs-sync-state.json +0 -14
- package/template/.speculo/dev-status.json +0 -3
- package/template/.speculo/doc-status.json +0 -3
- package/template/.speculo/person/.gitkeep +0 -0
- package/template/.speculo/person-status.json +0 -1
- package/template/commands/archive.md +0 -68
- package/template/commands/caveman.md +0 -50
- package/template/commands/config-prune.md +0 -59
- package/template/commands/grill-me.md +0 -48
- package/template/commands/handoff.md +0 -59
- package/template/commands/scaffold-exercises.md +0 -56
- package/template/commands/write-a-skill.md +0 -52
- package/template/skills/caveman/SKILL.md +0 -38
- package/template/skills/caveman/references/compression-rules.md +0 -102
- package/template/skills/config-prune/SKILL.md +0 -44
- package/template/skills/config-prune/references/audit-rules.md +0 -38
- package/template/skills/grill-me/SKILL.md +0 -40
- package/template/skills/handoff/SKILL.md +0 -73
- package/template/skills/scaffold-exercises/SKILL.md +0 -41
- package/template/skills/scaffold-exercises/references/exercise-structure.md +0 -85
- package/template/skills/scaffold-exercises/references/lint-and-git.md +0 -54
- package/template/skills/speculo-write/SKILL.md +0 -56
- package/template/skills/speculo-write/references/asset-selection-sop.md +0 -67
- package/template/skills/speculo-write/references/authoring-quality-levers.md +0 -61
- package/template/skills/speculo-write/references/command-authoring-sop.md +0 -98
- package/template/skills/speculo-write/references/migration-sop.md +0 -101
- package/template/skills/speculo-write/references/persistence-contract-sop.md +0 -271
- package/template/skills/speculo-write/references/skill-authoring-sop.md +0 -212
- package/template/skills/speculo-write/references/validation-checklist.md +0 -85
- package/template/skills/speculo-write/references/workflow-authoring-sop.md +0 -165
- package/template/vendor/codebase-design/DEEPENING.md +0 -37
- package/template/vendor/codebase-design/DESIGN-IT-TWICE.md +0 -44
- package/template/vendor/codebase-design/SKILL.md +0 -114
- package/template/vendor/officecli/SKILL.md +0 -415
- package/template/vendor/resolving-merge-conflicts/SKILL.md +0 -14
- package/template/workflows/dev/01-grill-with-docs/01-grill-with-docs.md +0 -107
- package/template/workflows/dev/01-grill-with-docs/grill-context-scan.md +0 -30
- package/template/workflows/dev/01-grill-with-docs/grill-decision.md +0 -38
- package/template/workflows/dev/02-prd/02-prd.md +0 -70
- package/template/workflows/dev/02-prd/prd-synthesis.md +0 -30
- package/template/workflows/dev/02-prd/prd-zoom-out.md +0 -29
- package/template/workflows/dev/03-tdd/03-tdd.md +0 -55
- package/template/workflows/dev/03-tdd/agents/tdd-finish-agent.md +0 -34
- package/template/workflows/dev/03-tdd/agents/tdd-implement-agent.md +0 -34
- package/template/workflows/dev/03-tdd/agents/tdd-plan-agent.md +0 -34
- package/template/workflows/dev/03-tdd/mocking.md +0 -43
- package/template/workflows/dev/03-tdd/refactoring.md +0 -10
- package/template/workflows/dev/03-tdd/tdd-finish.md +0 -34
- package/template/workflows/dev/03-tdd/tdd-loop.md +0 -36
- package/template/workflows/dev/03-tdd/tdd-plan.md +0 -37
- package/template/workflows/dev/03-tdd/tests.md +0 -61
- package/template/workflows/dev/04-finalize/04-finalize.md +0 -57
- package/template/workflows/dev/04-finalize/agents/completion-gate-agent.md +0 -35
- package/template/workflows/dev/04-finalize/completion-gate.md +0 -41
- package/template/workflows/dev/04-finalize/finalize-archive.md +0 -55
- package/template/workflows/dev/A-improve-architecture/A-improve-architecture.md +0 -60
- package/template/workflows/dev/A-improve-architecture/HTML-REPORT.md +0 -123
- package/template/workflows/dev/A-improve-architecture/architecture-grill.md +0 -30
- package/template/workflows/dev/A-improve-architecture/architecture-review.md +0 -29
- package/template/workflows/dev/A-improve-architecture/architecture-scan.md +0 -37
- package/template/workflows/dev/AGENTS.md +0 -95
- package/template/workflows/dev/D-docs-sync/D-docs-sync.md +0 -140
- package/template/workflows/dev/D-docs-sync/agents/docs-diff-agent.md +0 -34
- package/template/workflows/dev/D-docs-sync/agents/docs-update-agent.md +0 -34
- package/template/workflows/dev/D-docs-sync/agents-contract.md +0 -95
- package/template/workflows/dev/D-docs-sync/changelog-contract.md +0 -155
- package/template/workflows/dev/D-docs-sync/config-contract.md +0 -75
- package/template/workflows/dev/D-docs-sync/docs-sync-diff.md +0 -86
- package/template/workflows/dev/D-docs-sync/docs-sync-finish.md +0 -37
- package/template/workflows/dev/D-docs-sync/docs-sync-state.md +0 -47
- package/template/workflows/dev/D-docs-sync/docs-sync-update.md +0 -44
- package/template/workflows/dev/D-docs-sync/knowledge-extract.md +0 -66
- package/template/workflows/dev/D-docs-sync/readme-contract.md +0 -124
- package/template/workflows/dev/D-docs-sync/state-json-schema.md +0 -172
- package/template/workflows/dev/H-diagnose/H-diagnose.md +0 -108
- package/template/workflows/dev/H-diagnose/agents/diagnose-agent.md +0 -33
- package/template/workflows/dev/H-diagnose/agents/fix-agent.md +0 -34
- package/template/workflows/dev/H-diagnose/diagnose-fix.md +0 -34
- package/template/workflows/dev/H-diagnose/diagnose-guide.md +0 -144
- package/template/workflows/dev/H-diagnose/diagnose-loop.md +0 -41
- package/template/workflows/dev/H-diagnose/scripts/hitl-loop.template.sh +0 -41
- package/template/workflows/dev/I-to-issues/I-to-issues.md +0 -79
- package/template/workflows/dev/I-to-issues/issues-slices.md +0 -211
- package/template/workflows/dev/M-domain-modeling/ADR-FORMAT.md +0 -74
- package/template/workflows/dev/M-domain-modeling/CONTEXT-FORMAT.md +0 -67
- package/template/workflows/dev/M-domain-modeling/M-domain-modeling.md +0 -102
- package/template/workflows/dev/R-review/R-review.md +0 -75
- package/template/workflows/dev/R-review/agents/engineering-review-agent.md +0 -33
- package/template/workflows/dev/R-review/agents/spec-review-agent.md +0 -34
- package/template/workflows/dev/R-review/agents/standards-review-agent.md +0 -34
- package/template/workflows/dev/R-review/code-quality-checklist.md +0 -118
- package/template/workflows/dev/R-review/removal-checklist.md +0 -53
- package/template/workflows/dev/R-review/review-axes.md +0 -61
- package/template/workflows/dev/R-review/review-setup.md +0 -111
- package/template/workflows/dev/R-review/review-verdict.md +0 -43
- package/template/workflows/dev/R-review/security-checklist.md +0 -126
- package/template/workflows/dev/R-review/solid-checklist.md +0 -73
- package/template/workflows/dev/_templates/diagnosis-template.md +0 -20
- package/template/workflows/dev/_templates/docs-sync-report-template.md +0 -45
- package/template/workflows/dev/_templates/docs-sync-state-template.json +0 -14
- package/template/workflows/dev/_templates/domain-model-log-template.md +0 -20
- package/template/workflows/dev/_templates/grill-context-map-template.md +0 -20
- package/template/workflows/dev/_templates/grill-decision-log-template.md +0 -20
- package/template/workflows/dev/_templates/issues-slices-template.md +0 -106
- package/template/workflows/dev/_templates/overview-template.md +0 -19
- package/template/workflows/dev/_templates/prd-template.md +0 -26
- package/template/workflows/dev/_templates/regression-template.md +0 -20
- package/template/workflows/dev/_templates/review-report-template.md +0 -30
- package/template/workflows/dev/_templates/review-sources-template.md +0 -33
- package/template/workflows/dev/_templates/review-verdict-template.md +0 -33
- package/template/workflows/dev/_templates/tdd-log-template.md +0 -23
- package/template/workflows/dev/_templates/tdd-plan-template.md +0 -35
- package/template/workflows/dev/_templates/tdd-verification-template.md +0 -26
- package/template/workflows/doc/AGENTS.md +0 -80
- package/template/workflows/doc/B-writing-beats/B-writing-beats.md +0 -79
- package/template/workflows/doc/B-writing-beats/writing-beats-append.md +0 -31
- package/template/workflows/doc/B-writing-beats/writing-beats-options.md +0 -29
- package/template/workflows/doc/E-edit-article/E-edit-article.md +0 -79
- package/template/workflows/doc/E-edit-article/edit-article-plan.md +0 -30
- package/template/workflows/doc/E-edit-article/edit-article-rewrite.md +0 -31
- package/template/workflows/doc/F-writing-fragments/F-writing-fragments.md +0 -80
- package/template/workflows/doc/F-writing-fragments/writing-fragments-interview.md +0 -32
- package/template/workflows/doc/F-writing-fragments/writing-fragments-log.md +0 -29
- package/template/workflows/doc/S-writing-shape/S-writing-shape.md +0 -81
- package/template/workflows/doc/S-writing-shape/writing-shape-block.md +0 -32
- package/template/workflows/doc/S-writing-shape/writing-shape-opening.md +0 -27
- package/template/workflows/doc/T-teach/T-teach.md +0 -64
- package/template/workflows/doc/T-teach/teach-lesson-wrap.md +0 -63
- package/template/workflows/doc/T-teach/teach-lesson.md +0 -53
- package/template/workflows/doc/T-teach/teach-mission.md +0 -33
- package/template/workflows/doc/T-teach/teach-resources.md +0 -36
- package/template/workflows/doc/_templates/edit-article-plan-template.md +0 -25
- package/template/workflows/doc/_templates/edit-article-template.md +0 -7
- package/template/workflows/doc/_templates/teach-glossary-template.md +0 -26
- package/template/workflows/doc/_templates/teach-learning-record-template.md +0 -38
- package/template/workflows/doc/_templates/teach-lesson-html-template.md +0 -24
- package/template/workflows/doc/_templates/teach-mission-template.md +0 -19
- package/template/workflows/doc/_templates/teach-resources-template.md +0 -18
- package/template/workflows/doc/_templates/writing-article-template.md +0 -7
- package/template/workflows/doc/_templates/writing-beat-options-template.md +0 -21
- package/template/workflows/doc/_templates/writing-fragments-template.md +0 -7
- package/template/workflows/doc/_templates/writing-interview-log-template.md +0 -21
- package/template/workflows/doc/_templates/writing-shape-log-template.md +0 -25
- package/template/workflows/person/AGENTS.md +0 -72
- /package/template/{.speculo/.config/adr → workflows/matt-pocock/_state/archive}/.gitkeep +0 -0
- /package/template/{.speculo/.config/context → workflows/matt-pocock/_state/changes}/.gitkeep +0 -0
- /package/template/{.speculo/archive/doc → workflows/person/_state/.config/context}/.gitkeep +0 -0
- /package/template/{.speculo/doc → workflows/person/_state/archive}/.gitkeep +0 -0
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
# Persistence Contract SOP
|
|
2
|
-
|
|
3
|
-
`.status.json` schema、目录命名、frontmatter 最小集与写入责任的内化规范。
|
|
4
|
-
本文把 Speculo 持久化契约内化进本 skill,编写资产时**不读仓库 `docs/`**。
|
|
5
|
-
|
|
6
|
-
> # ⚠️ 持久化铁律
|
|
7
|
-
>
|
|
8
|
-
> **Speculo 框架的所有运行时产物,必须且只能存放在 `speculo/.speculo/` 目录中。**
|
|
9
|
-
>
|
|
10
|
-
> - Workflow 产物 → `speculo/.speculo/<cat>/<change>/`
|
|
11
|
-
> - Command 产物 → `speculo/.speculo/commands/<YYYY-MM-DD>-<cmd>-<topic>/`
|
|
12
|
-
> - Skill **不自行持久化** → 由调用方写入 `speculo/.speculo/...` 或返回内容
|
|
13
|
-
> - **绝对禁止** → `temp/`、系统临时目录、项目根目录的裸 `.speculo/`
|
|
14
|
-
|
|
15
|
-
## 命名铁律
|
|
16
|
-
|
|
17
|
-
> ⚠️ **所有 change 目录、command 产物目录、归档路径必须以 `YYYY-MM-DD-` 开头。无一例外。**
|
|
18
|
-
|
|
19
|
-
不带日期的目录名是**无效的**。
|
|
20
|
-
|
|
21
|
-
### 谁必须带日期
|
|
22
|
-
|
|
23
|
-
| 必须带 | 规则 | 谁创建 |
|
|
24
|
-
|--------|------|--------|
|
|
25
|
-
| Change 目录 | `YYYY-MM-DD-<kebab-name>` | Workflow(AI 按用户意图创建) |
|
|
26
|
-
| Command 产物目录 | `YYYY-MM-DD-<cmd-name>-<topic>` | Command(AI 执行命令时创建) |
|
|
27
|
-
| 归档目标目录 | `archive/<cat>/<YYYY-MM>/<change-name>/` | `archive` 命令或 `dev/04` 工作流 |
|
|
28
|
-
|
|
29
|
-
### 谁不需要带日期
|
|
30
|
-
|
|
31
|
-
| 不需要带 | 原因 |
|
|
32
|
-
|----------|------|
|
|
33
|
-
| Workflow 阶段目录(如 `01-grill-with-docs/`) | 框架资产,非运行时产物 |
|
|
34
|
-
| Skill 目录(如 `caveman/`) | 框架资产,非运行时产物 |
|
|
35
|
-
| Command 文件(如 `archive.md`) | 框架资产,非运行时产物 |
|
|
36
|
-
| 模板文件(`_templates/`) | 框架资产,非运行时产物 |
|
|
37
|
-
| `.config/`、`adr/`、`context/` | 项目配置目录,非产物目录 |
|
|
38
|
-
|
|
39
|
-
### 反例
|
|
40
|
-
|
|
41
|
-
| ❌ 错误 | ✅ 正确 |
|
|
42
|
-
|---------|---------|
|
|
43
|
-
| `user-auth` | `2026-06-12-user-auth` |
|
|
44
|
-
| `fix-bug` | `2026-06-12-fix-login-bug` |
|
|
45
|
-
| `prd-draft` | `2026-06-12-prd-user-flow` |
|
|
46
|
-
| `status-snapshot/` | `2026-06-12-status-snapshot/` |
|
|
47
|
-
|
|
48
|
-
### AI 代理执行规则
|
|
49
|
-
|
|
50
|
-
1. **创建 change 目录时**:必须从当前日期生成 `YYYY-MM-DD-<kebab-name>`,`<kebab-name>` 从用户意图提取。
|
|
51
|
-
2. **创建 command 产物目录时**:必须从当前日期生成 `YYYY-MM-DD-<cmd-name>-<topic>`。
|
|
52
|
-
3. **扫描已有 change 时**:不符合 `YYYY-MM-DD-<kebab-name>` 的目录视为 `malformed`,必须汇报用户。
|
|
53
|
-
4. **归档时**:目标路径必须包含 `archive/<cat>/<YYYY-MM>/`,`<YYYY-MM>` 从 change 目录名中的日期提取。
|
|
54
|
-
|
|
55
|
-
## 目录命名
|
|
56
|
-
|
|
57
|
-
| 类别 | 模式 | 例 |
|
|
58
|
-
|------|------|---|
|
|
59
|
-
| Change 目录 | `YYYY-MM-DD-<kebab-name>` | `2026-05-28-user-auth` |
|
|
60
|
-
| Command 产物目录 | `YYYY-MM-DD-<cmd-name>-<topic>` | `2026-05-28-debug-login-500` |
|
|
61
|
-
| 归档目录 | `archive/<cat>/<YYYY-MM>/<change-name>/` | `archive/dev/2026-05/2026-05-20-payment-flow/` |
|
|
62
|
-
|
|
63
|
-
`<cat>` 只能是 `dev`、`doc`、`person`。`ops` 是预留分类,只有骨架和 workflow 分类同时落地后才能加入枚举。
|
|
64
|
-
|
|
65
|
-
命令产生的持久化报告、快照、handoff 和一次性操作记录必须统一写入 `speculo/.speculo/commands/<YYYY-MM-DD>-<cmd-name>-<topic>/`。`temp/`、系统临时目录和项目根目录只允许作为不保留的执行中间位置,禁止作为 Speculo 持久化产物位置。
|
|
66
|
-
|
|
67
|
-
## Change 初始化铁律
|
|
68
|
-
|
|
69
|
-
> ⚠️ **每个 change 目录创建时必须同时完成以下三项写入,缺一不可。未完成初始化的 change 视为 `broken-change`,`status` 与 `archive` 命令将报告并跳过。**
|
|
70
|
-
|
|
71
|
-
### 初始化顺序
|
|
72
|
-
|
|
73
|
-
按以下顺序原子执行,前一步失败时停止后续并报告:
|
|
74
|
-
|
|
75
|
-
1. **创建 change 目录** —— `speculo/.speculo/<cat>/<YYYY-MM-DD>-<kebab-name>/`。
|
|
76
|
-
2. **写入 `.status.json`** —— 在 change 目录下创建 `.status.json`,填入最小必填字段。
|
|
77
|
-
3. **更新 `<cat>-status.json`** —— 在 `speculo/.speculo/<cat>-status.json` 的 `active[]` 中追加该 change 的索引条目。
|
|
78
|
-
|
|
79
|
-
### `.status.json` 最小初始化模板
|
|
80
|
-
|
|
81
|
-
```jsonc
|
|
82
|
-
{
|
|
83
|
-
"name": "<YYYY-MM-DD>-<kebab-name>",
|
|
84
|
-
"category": "dev | doc | person",
|
|
85
|
-
"change_status": "active",
|
|
86
|
-
"execution_mode": "待 workflow 首次进入时填写",
|
|
87
|
-
"created_at": "<ISO 8601,当前时间>",
|
|
88
|
-
"updated_at": "<ISO 8601,与 created_at 相同>",
|
|
89
|
-
"current_phase": "00-init",
|
|
90
|
-
"phase_history": [
|
|
91
|
-
{
|
|
92
|
-
"phase": "00-init",
|
|
93
|
-
"entered_at": "<ISO 8601>",
|
|
94
|
-
"completed_at": "<ISO 8601>",
|
|
95
|
-
"status": "completed"
|
|
96
|
-
}
|
|
97
|
-
]
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### `<cat>-status.json` 追加条目模板
|
|
102
|
-
|
|
103
|
-
```jsonc
|
|
104
|
-
{
|
|
105
|
-
"name": "<YYYY-MM-DD>-<kebab-name>",
|
|
106
|
-
"current_phase": "00-init",
|
|
107
|
-
"updated_at": "<ISO 8601>"
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
`active[]` 支持同分类多 change 并发。创建 change 时必须逐项确认目录名、`.status.json`、索引条目和时间戳均已写入。
|
|
112
|
-
|
|
113
|
-
## `.status.json` 元字段(框架强制)
|
|
114
|
-
|
|
115
|
-
每个 change 的状态写在 `speculo/.speculo/<cat>/<change>/.status.json`:
|
|
116
|
-
|
|
117
|
-
```jsonc
|
|
118
|
-
{
|
|
119
|
-
"name": "string, change 目录名",
|
|
120
|
-
"category": "string, dev | doc | person",
|
|
121
|
-
"change_status": "string, active | completed | archived",
|
|
122
|
-
"execution_mode": "string, 由 workflow 自治声明的命名预设",
|
|
123
|
-
"created_at": "string, ISO 8601",
|
|
124
|
-
"updated_at": "string, ISO 8601",
|
|
125
|
-
"current_phase": "string, 当前 phase id",
|
|
126
|
-
"phase_history": [
|
|
127
|
-
{
|
|
128
|
-
"phase": "string, phase id",
|
|
129
|
-
"entered_at": "string, ISO 8601",
|
|
130
|
-
"completed_at": "string|null, ISO 8601",
|
|
131
|
-
"status": "string, pending | in-progress | completed | skipped | revisited | blocked"
|
|
132
|
-
}
|
|
133
|
-
]
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
workflow 自治字段在入口正文 `## 状态扩展字段` 声明,由执行者写入**同一份** `.status.json`,不另开文件。`current_phase` 必须使用 workflow 入口声明的稳定机器 id(kebab-case),不是人类可读标题。首个 workflow 进入 change 时必须写入 `execution_mode`。
|
|
138
|
-
|
|
139
|
-
`change_status: completed` 只允许负责最终交付边界的收尾 workflow(当前为 `dev/04-finalize`)写入;`change_status: archived` 只允许 `archive` 命令或收尾 workflow 的归档步骤写入。其他 workflow 只能维护自己的扩展字段。
|
|
140
|
-
|
|
141
|
-
## 顶层索引 schema(薄)
|
|
142
|
-
|
|
143
|
-
```jsonc
|
|
144
|
-
// speculo/.speculo/<cat>-status.json
|
|
145
|
-
{
|
|
146
|
-
"active": [
|
|
147
|
-
{ "name": "string", "current_phase": "string", "updated_at": "string, ISO 8601" }
|
|
148
|
-
]
|
|
149
|
-
}
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
- Change 创建时**必须**在 `active[]` 追加索引条目。
|
|
153
|
-
- 归档后变更**必须从 active 段移除**。
|
|
154
|
-
- 索引可重建:扫 `speculo/.speculo/<cat>/*/.status.json` 即可重建。
|
|
155
|
-
- 全局 `STATUS.json` **不物理存在**。
|
|
156
|
-
|
|
157
|
-
## Frontmatter 最小集
|
|
158
|
-
|
|
159
|
-
Frontmatter **仅承载发现元数据**(这是什么、叫什么、关于什么)。phases / 模板 / 依赖 / 调用 skill / 状态扩展字段 / 入口协议一律写进 Markdown 正文,用相对路径链接与小标题做渐进披露。
|
|
160
|
-
|
|
161
|
-
```yaml
|
|
162
|
-
# workflow
|
|
163
|
-
id: <category>/<name> # 必填,全局唯一
|
|
164
|
-
category: dev|doc|person # 必填;ops 为预留分类,未在模板骨架落地
|
|
165
|
-
name: <人类可读名> # 必填
|
|
166
|
-
description: <一句话> # 必填
|
|
167
|
-
keywords: [...] # 可选
|
|
168
|
-
|
|
169
|
-
# command
|
|
170
|
-
id: <name> # 必填,唯一
|
|
171
|
-
type: command # 必填,固定值
|
|
172
|
-
name: <人类可读名> # 必填
|
|
173
|
-
description: <一句话> # 必填
|
|
174
|
-
keywords: [...] # 可选
|
|
175
|
-
|
|
176
|
-
# skill
|
|
177
|
-
id: <name> # 必填,唯一
|
|
178
|
-
type: skill # 必填,固定值
|
|
179
|
-
name: <人类可读名> # 必填
|
|
180
|
-
description: <一句话> # 必填
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
## Template 不需要 Frontmatter
|
|
184
|
-
|
|
185
|
-
模板顶部用一段引用说明声明归属,占位符一律 `[TODO: ...]`:
|
|
186
|
-
|
|
187
|
-
```markdown
|
|
188
|
-
> **服务工作流:** `<相对路径>`
|
|
189
|
-
> **产物文件名:** `<filename>`
|
|
190
|
-
|
|
191
|
-
# <标题>
|
|
192
|
-
|
|
193
|
-
## <章节>
|
|
194
|
-
[TODO: 具体填写指引]
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
## 相对路径强约束
|
|
198
|
-
|
|
199
|
-
正文引用的 skill / template / 其它 workflow / phase 子文档**必须用相对路径**,禁止裸 id 或绝对路径。
|
|
200
|
-
|
|
201
|
-
## 写入责任
|
|
202
|
-
|
|
203
|
-
| 文件 | 用户可写 | AI 可写 |
|
|
204
|
-
|------|---------|---------|
|
|
205
|
-
| `speculo/.speculo/.config/RULES.md` | ✅ | ❌ |
|
|
206
|
-
| `speculo/.speculo/.config/LESSONS.md` | ⚠️ 可追加 | ✅ workflow 末尾追加 |
|
|
207
|
-
| `speculo/.speculo/.config/context/*` | ⚠️ 用户确认后 | ✅ 仅在用户确认后写入 |
|
|
208
|
-
| `speculo/.speculo/.config/adr/*` | ⚠️ 用户确认后 | ✅ 仅在用户确认后写入 |
|
|
209
|
-
| `speculo/.speculo/commands/<command-run>/*` | ⚠️ | ✅ command 按内联模板写入 |
|
|
210
|
-
| `speculo/.speculo/<cat>/<change>/*.md` | ⚠️ | ✅ |
|
|
211
|
-
| `speculo/.speculo/<cat>/<change>/.status.json` | ❌ | ✅ |
|
|
212
|
-
| `speculo/.speculo/*-status.json` | ❌ | ✅ |
|
|
213
|
-
| `speculo/.speculo/dev/docs-sync-state.json` | ❌ | ✅ `dev/D-docs-sync` 原子写入;保存 tracked assets 与 git diff 基线 |
|
|
214
|
-
|
|
215
|
-
**skill 不拥有独立持久化根目录**:skill 需要生成持久化文件时,必须使用调用方 command / workflow 声明的 `speculo/.speculo/...` 规范目标路径,或返回内容由调用方写入。禁止 skill 自行选择 `temp/`、系统临时目录、项目根目录或额外 state 文件作为持久化位置。
|
|
216
|
-
|
|
217
|
-
## 新分类骨架
|
|
218
|
-
|
|
219
|
-
新增 `<cat>` 分类时初始化:
|
|
220
|
-
|
|
221
|
-
- `speculo/.speculo/<cat>-status.json`(`{ "active": [] }`)
|
|
222
|
-
- `speculo/.speculo/<cat>/.gitkeep`
|
|
223
|
-
- `speculo/.speculo/archive/<cat>/.gitkeep`
|
|
224
|
-
|
|
225
|
-
项目级长期资料放 `speculo/.speculo/.config/`(`RULES.md`、`LESSONS.md`、`context/`、`adr/`),不要新增项目根 state 文件。
|
|
226
|
-
|
|
227
|
-
## Workflow Agents
|
|
228
|
-
|
|
229
|
-
当 workflow 的 phase 适合隔离执行、并行审查或反自证验证时,可在该 workflow 目录下创建:
|
|
230
|
-
|
|
231
|
-
```text
|
|
232
|
-
template/workflows/<cat>/<entry>/agents/<name>-agent.md
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
Agent 文件是框架资产,不是运行时产物;frontmatter 最小集为:
|
|
236
|
-
|
|
237
|
-
```yaml
|
|
238
|
-
---
|
|
239
|
-
id: <cat>/<entry>/<agent-name>
|
|
240
|
-
type: agent
|
|
241
|
-
name: <人类可读名>
|
|
242
|
-
description: <一句话说明该 agent 何时用于隔离执行>
|
|
243
|
-
---
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
正文必须包含:
|
|
247
|
-
|
|
248
|
-
- `## 使命`:单一 phase 或审查轴。
|
|
249
|
-
- `## 输入契约`:当前 change 路径、`current_phase`/`phase-id`、上游产物。
|
|
250
|
-
- `## 执行规范`:用相对路径引用同目录 phase 文件、模板、skill;不得复制大段规范正文。
|
|
251
|
-
- `## 产物与状态`:产物路径和 `.status.json` 扩展字段写入责任。
|
|
252
|
-
- `## 边界`:不越过本 phase、不改无关文件、不写 `change_status`。
|
|
253
|
-
|
|
254
|
-
Workflow 入口若提供 agents,必须在 `## 阶段` 中列出对应 agent 相对路径。Agent 只可写它声明的 phase 产物和状态扩展字段;最终 `change_status` 仍由收尾 workflow 或 `archive` 命令负责。
|
|
255
|
-
|
|
256
|
-
## 命名校验清单
|
|
257
|
-
|
|
258
|
-
### 创建时
|
|
259
|
-
|
|
260
|
-
- [ ] change 目录名匹配 `^\d{4}-\d{2}-\d{2}-[a-z0-9]+(-[a-z0-9]+)*$`
|
|
261
|
-
- [ ] command 产物目录名匹配 `^\d{4}-\d{2}-\d{2}-[a-z0-9]+-[a-z0-9]+(-[a-z0-9]+)*$`
|
|
262
|
-
- [ ] 日期部分使用**当前日期**(`YYYY-MM-DD`)
|
|
263
|
-
- [ ] `<kebab-name>` 从用户意图中提取
|
|
264
|
-
- [ ] `.status.json` 已写入且包含全部最小必填字段
|
|
265
|
-
- [ ] `<cat>-status.json` 的 `active[]` 已追加索引条目
|
|
266
|
-
|
|
267
|
-
### 扫描时
|
|
268
|
-
|
|
269
|
-
- [ ] 仅处理符合日期命名规范的目录
|
|
270
|
-
- [ ] 不符合规范的目录标记为 `malformed`,必须汇报
|
|
271
|
-
- [ ] 不自动删除、重命名或忽略 malformed 目录
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
# Skill Authoring SOP
|
|
2
|
-
|
|
3
|
-
本文是 Speculo 原子 skill 的编写规范,复刻通用「编写技能」流程并收敛到 Speculo 约束。
|
|
4
|
-
本文已内化全部所需规范;编写 skill 时**不读仓库 `docs/`**,只读本 skill 的 `references/`。
|
|
5
|
-
|
|
6
|
-
质量理论(**可预测性**、**主导词**、**信息层级**、**完成标准**、**修剪**、**失败模式**)是所有 Speculo 资产共享的单一事实源,见 `authoring-quality-levers.md`;本文只补 skill 特有的流程与约束,不复述理论。
|
|
7
|
-
|
|
8
|
-
## 流程
|
|
9
|
-
|
|
10
|
-
1. **收集需求** —— 向用户确认:
|
|
11
|
-
- 这个 skill 覆盖什么任务 / 领域?
|
|
12
|
-
- 应该处理哪些具体用例?
|
|
13
|
-
- 这是可复用的原子能力,还是该升级为 workflow、退化为 command?判定见 `asset-selection-sop.md`。
|
|
14
|
-
- 需要可执行脚本,还是只需要指令?
|
|
15
|
-
- 有没有外部源技能要迁移?迁移规则见 `migration-sop.md`。
|
|
16
|
-
|
|
17
|
-
2. **起草 skill** —— 创建:
|
|
18
|
-
- `SKILL.md`,含 Speculo frontmatter 与五个固定章节。
|
|
19
|
-
- `SKILL.md` 接近 500 行时,把细节拆进 `references/`。
|
|
20
|
-
- 需要确定性操作时,加 `scripts/`。
|
|
21
|
-
|
|
22
|
-
3. **与用户审查** —— 展示草稿并问:
|
|
23
|
-
- 覆盖你的用例了吗?
|
|
24
|
-
- 有遗漏或不清楚的地方吗?
|
|
25
|
-
- 哪些章节该更详细 / 更简洁?
|
|
26
|
-
|
|
27
|
-
## 入口结构
|
|
28
|
-
|
|
29
|
-
skill 放在:
|
|
30
|
-
|
|
31
|
-
```text
|
|
32
|
-
template/skills/<name>/SKILL.md
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
目录名用 lowercase kebab-case。整个 skill 目录必须**自包含**:复制到任何项目、只读 `SKILL.md` 即可判断是否使用、需要哪些输入、产生什么输出,不依赖本仓库的 `docs/` 或任何外部文件。
|
|
36
|
-
|
|
37
|
-
```text
|
|
38
|
-
<name>/
|
|
39
|
-
├── SKILL.md # 主指令(必需)
|
|
40
|
-
├── references/ # 详细规范 / 变体(按需)
|
|
41
|
-
│ └── <task>-sop.md
|
|
42
|
-
├── scripts/ # 确定性工具脚本(按需)
|
|
43
|
-
└── examples/ # 示例输入输出(按需)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Frontmatter
|
|
47
|
-
|
|
48
|
-
```yaml
|
|
49
|
-
---
|
|
50
|
-
id: <name>
|
|
51
|
-
type: skill
|
|
52
|
-
name: <人类可读名>
|
|
53
|
-
description: <一句话能力说明;含触发场景,第三人称,可与相近 skill 区分>
|
|
54
|
-
---
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
description 是 **agent 决定加载哪个 skill 时唯一能看到的内容**,会和其它已装 skill 一起出现在系统提示里。给 agent 刚好够用的信息:(1) 提供什么能力,(2) 何时 / 为何触发(具体关键词、上下文、文件类型)。
|
|
58
|
-
|
|
59
|
-
格式:
|
|
60
|
-
|
|
61
|
-
- 最多 1024 字符
|
|
62
|
-
- 第三人称
|
|
63
|
-
- 第一句:做什么
|
|
64
|
-
- 第二句:「当 [具体触发条件] 时使用」
|
|
65
|
-
- 用**主导词**措辞触发条件——你真正会用来唤起该 skill 的那个词;同一个词出现在描述、文档、代码里会更可靠地触发(见 `authoring-quality-levers.md`)
|
|
66
|
-
- 每个分支只写一个触发器:换名重写同一分支是**重复**,折叠它
|
|
67
|
-
|
|
68
|
-
**好的例子**:
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
创建或改造 Speculo workflows、skills、commands 的原子能力;当用户要求迁移外部技能或新增 workflow / skill / command 时使用。
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
**坏例子**:
|
|
75
|
-
|
|
76
|
-
```
|
|
77
|
-
帮助处理技能。
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
坏例子让 agent 无法把这个 skill 和其它 authoring 类 skill 区分开。
|
|
81
|
-
|
|
82
|
-
## 正文结构
|
|
83
|
-
|
|
84
|
-
`SKILL.md` 保持精简,五个固定章节:
|
|
85
|
-
|
|
86
|
-
- `## 何时使用`
|
|
87
|
-
- `## 输入`
|
|
88
|
-
- `## 输出`
|
|
89
|
-
- `## 执行步骤`
|
|
90
|
-
- `## 渐进披露`
|
|
91
|
-
|
|
92
|
-
模板:
|
|
93
|
-
|
|
94
|
-
```markdown
|
|
95
|
-
---
|
|
96
|
-
id: <name>
|
|
97
|
-
type: skill
|
|
98
|
-
name: <人类可读名>
|
|
99
|
-
description: <能力 + 触发场景,第三人称>
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
# <技能名>
|
|
103
|
-
|
|
104
|
-
## 何时使用
|
|
105
|
-
|
|
106
|
-
[触发场景;列几条典型用户请求]
|
|
107
|
-
|
|
108
|
-
## 输入
|
|
109
|
-
|
|
110
|
-
[需要的输入。本 skill 自带规范,不外读 docs/]
|
|
111
|
-
|
|
112
|
-
## 输出
|
|
113
|
-
|
|
114
|
-
[产生什么产物 / 决策 / 检查清单]
|
|
115
|
-
|
|
116
|
-
## 执行步骤
|
|
117
|
-
|
|
118
|
-
1. [最小可工作主流程]
|
|
119
|
-
2. ...
|
|
120
|
-
|
|
121
|
-
## 渐进披露
|
|
122
|
-
|
|
123
|
-
- `references/<task>-sop.md`:<何时读取>
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## 渐进披露
|
|
127
|
-
|
|
128
|
-
所有 reference 都从 `SKILL.md` 直接引用,**单层**,不做多层隐藏。
|
|
129
|
-
|
|
130
|
-
拆分 reference 的条件:
|
|
131
|
-
|
|
132
|
-
- `SKILL.md` 接近 500 行
|
|
133
|
-
- 内容覆盖多个主题或变体(例如不同资产类型的写法)
|
|
134
|
-
- 细节只在特定场景才需要
|
|
135
|
-
- 源材料较长,但可以按需读取
|
|
136
|
-
|
|
137
|
-
reference 文件用 kebab-case,**按任务而非来源**命名(`workflow-authoring-sop.md`,不是 `from-specforge.md`)。
|
|
138
|
-
|
|
139
|
-
渐进披露的本质是保护**信息层级**、让入口阶梯顶部保持清晰(不只是省 token),由**分支**授权:只把*部分*运行才需要的材料推到指针后,每条路径都需要的内联。指针的**措辞**决定取用时机与可靠性——必备材料触发不可靠时先改措辞、失败才内联(见 `authoring-quality-levers.md`)。
|
|
140
|
-
|
|
141
|
-
## 何时添加脚本
|
|
142
|
-
|
|
143
|
-
**加 `scripts/`**,当操作确定且反复执行:
|
|
144
|
-
|
|
145
|
-
- frontmatter 校验
|
|
146
|
-
- 路径残留扫描
|
|
147
|
-
- 模板命名检查
|
|
148
|
-
- JSON schema 检查
|
|
149
|
-
|
|
150
|
-
脚本比反复生成代码更省 token、更可靠,且失败可以显式处理。
|
|
151
|
-
|
|
152
|
-
**不加 `scripts/`**,当能力主要是判断 / 设计 / 策略 / 协作:
|
|
153
|
-
|
|
154
|
-
- 规范判断
|
|
155
|
-
- 文档结构设计
|
|
156
|
-
- 迁移和融合策略
|
|
157
|
-
- 人机协作 SOP
|
|
158
|
-
|
|
159
|
-
## 迁移外部 Skill
|
|
160
|
-
|
|
161
|
-
迁移时**保留**:
|
|
162
|
-
|
|
163
|
-
- 触发场景
|
|
164
|
-
- 关键输入输出
|
|
165
|
-
- 铁律、边界、失败处理
|
|
166
|
-
- 可复用命令、检查表、模板片段
|
|
167
|
-
|
|
168
|
-
迁移时**改写**:
|
|
169
|
-
|
|
170
|
-
- 外部工具名绑定
|
|
171
|
-
- 旧目录布局
|
|
172
|
-
- 旧 state 路径
|
|
173
|
-
- 不符合 Speculo frontmatter 的元数据
|
|
174
|
-
- 脱离调用方的持久化路径、`temp/` 输出、项目根目录 state 和其它散落写入行为
|
|
175
|
-
|
|
176
|
-
多个源技能融合为一个原子 skill 时:入口 `SKILL.md` 只留统一触发与主流程,源技能细节按主题拆进 `references/`,合并重复铁律并保留更严格者。
|
|
177
|
-
|
|
178
|
-
## 持久化边界
|
|
179
|
-
|
|
180
|
-
skill **禁止自行选择**持久化位置,包括:
|
|
181
|
-
|
|
182
|
-
- `speculo/.speculo/<cat>/<change>/`
|
|
183
|
-
- `speculo/.speculo/commands/`
|
|
184
|
-
- `speculo/.speculo/*-status.json`
|
|
185
|
-
- `.status.json`
|
|
186
|
-
- `temp/`、系统临时目录或项目根目录
|
|
187
|
-
|
|
188
|
-
如果某能力需要生成文件型持久化产物,必须满足其一:
|
|
189
|
-
|
|
190
|
-
- 调用方 workflow / command 声明规范目标路径,skill 只写入该路径。
|
|
191
|
-
- skill 返回内容、摘要和建议文件名,由调用方写入 `speculo/.speculo/...`。
|
|
192
|
-
|
|
193
|
-
无论哪种方式,持久化产物都不得落到 `temp/`、系统临时目录、项目根目录或其它非 Speculo 规范位置。完整写入责任表见 `persistence-contract-sop.md`。
|
|
194
|
-
|
|
195
|
-
## 审查清单
|
|
196
|
-
|
|
197
|
-
起草后检查:
|
|
198
|
-
|
|
199
|
-
- [ ] description 含触发条件(「当……时使用」),可与相近 skill 区分
|
|
200
|
-
- [ ] frontmatter 是 Speculo 最小集(`id` / `type: skill` / `name` / `description`)
|
|
201
|
-
- [ ] `SKILL.md` 含五个固定章节,整体精简(细节已外移)
|
|
202
|
-
- [ ] reference 单层引用,按任务命名
|
|
203
|
-
- [ ] **自包含**:不引用 `docs/` 或仓库外文件
|
|
204
|
-
- [ ] skill 没有自选持久化目录;文件型产物由调用方写入或写入调用方声明的 `speculo/.speculo/...` 路径
|
|
205
|
-
- [ ] 没有 README / INSTALLATION / CHANGELOG 等冗余文件
|
|
206
|
-
- [ ] 没有时效性信息、旧项目路径、旧工具名或绝对路径绑定
|
|
207
|
-
- [ ] 术语一致、含具体示例、引用只有一层深度
|
|
208
|
-
- [ ] description 与正文用**主导词**锚定调用与执行
|
|
209
|
-
- [ ] 完成标准 / 审查项**可检验**,重要处**穷尽**(驱动彻底调研工作,防过早完成)
|
|
210
|
-
- [ ] 逐句过**空操作测试**(删掉模型默认就会做的句子),无**重复 / 沉积 / 蔓延**
|
|
211
|
-
- [ ] 跨资产共享规范引用**单一事实源**、未复制
|
|
212
|
-
- [ ] 若是内置资产,CLI tests 覆盖复制该 skill
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Validation Checklist
|
|
2
|
-
|
|
3
|
-
## 结构检查
|
|
4
|
-
|
|
5
|
-
- [ ] 新 asset 路径符合 `template/workflows/`、`template/skills/` 或 `template/commands/` 约定
|
|
6
|
-
- [ ] workflow 入口文件名与目录名一致
|
|
7
|
-
- [ ] skill 入口命名为 `SKILL.md`
|
|
8
|
-
- [ ] command 是单个 `.md` 文件
|
|
9
|
-
- [ ] reference 文件都被入口直接引用
|
|
10
|
-
- [ ] 没有 README、INSTALLATION、CHANGELOG 等冗余 skill 文件
|
|
11
|
-
|
|
12
|
-
## Frontmatter 检查
|
|
13
|
-
|
|
14
|
-
- [ ] workflow frontmatter 只包含发现元数据
|
|
15
|
-
- [ ] skill frontmatter 包含 `id`、`type: skill`、`name`、`description`
|
|
16
|
-
- [ ] command frontmatter 包含 `id`、`type: command`、`name`、`description`,可选 `keywords`
|
|
17
|
-
- [ ] 没有把 phases、templates、depends_on、status_extensions 写进 frontmatter
|
|
18
|
-
|
|
19
|
-
## 质量杠杆检查
|
|
20
|
-
|
|
21
|
-
> 适用于所有资产类型;理论见 `authoring-quality-levers.md`。
|
|
22
|
-
|
|
23
|
-
- [ ] description / 入口用**主导词**锚定调用,正文用同一主导词锚定执行
|
|
24
|
-
- [ ] 内容按**信息层级**排布(步骤 / 文件内参考 / 已披露参考),入口阶梯顶部清晰
|
|
25
|
-
- [ ] 每个步骤 / phase 的**完成标准**可检验,重要处穷尽
|
|
26
|
-
- [ ] 跨资产共享含义只有**单一事实源**,引用方未复制
|
|
27
|
-
- [ ] 逐句过**空操作测试**,无**过早完成 / 重复 / 沉积 / 蔓延**诱因
|
|
28
|
-
|
|
29
|
-
## Workflow 检查
|
|
30
|
-
|
|
31
|
-
- [ ] 入口正文包含 `## 阶段`
|
|
32
|
-
- [ ] 入口正文包含 `## 依赖`
|
|
33
|
-
- [ ] 入口正文包含 `## 状态扩展字段`
|
|
34
|
-
- [ ] 入口正文包含 `## 完成与状态更新`
|
|
35
|
-
- [ ] 每个 phase 文件写清输入、产物、填写引导、边界、完成准则
|
|
36
|
-
- [ ] 模板放在对应分类 `_templates/`
|
|
37
|
-
- [ ] 模板顶部有服务 workflow 和产物文件名
|
|
38
|
-
- [ ] 模板占位符为 `[TODO: ...]`
|
|
39
|
-
|
|
40
|
-
## Skill 检查
|
|
41
|
-
|
|
42
|
-
- [ ] `SKILL.md` 能让 agent 判断何时触发
|
|
43
|
-
- [ ] 输入、输出、执行步骤清晰
|
|
44
|
-
- [ ] 大段细节放入 `references/`
|
|
45
|
-
- [ ] 自包含:不引用 `docs/` 或仓库外文件,复制后只读 `SKILL.md` 即可用
|
|
46
|
-
- [ ] skill 没有自选持久化目录;文件型产物由调用方写入或写入调用方声明的 `speculo/.speculo/...` 路径
|
|
47
|
-
- [ ] 如果需要持久化,明确归档到 `speculo/.speculo/commands/`、`speculo/.speculo/<cat>/<change>/` 或 `speculo/.speculo/.config/` 的哪类规范位置
|
|
48
|
-
|
|
49
|
-
## Command 检查
|
|
50
|
-
|
|
51
|
-
- [ ] 归档路径位于 `speculo/.speculo/commands/`
|
|
52
|
-
- [ ] 调用 skill 使用相对路径
|
|
53
|
-
- [ ] 被调用 skill 没有把持久化产物写到 `temp/`、系统临时目录或项目根目录
|
|
54
|
-
- [ ] 破坏性操作要求用户确认
|
|
55
|
-
- [ ] 产物模板内联且使用 `[TODO: ...]`
|
|
56
|
-
|
|
57
|
-
## `speculo/.speculo/` 检查
|
|
58
|
-
|
|
59
|
-
- [ ] 新分类有 `speculo/.speculo/<cat>-status.json`
|
|
60
|
-
- [ ] 新分类有 `speculo/.speculo/<cat>/.gitkeep`
|
|
61
|
-
- [ ] 新分类有 `speculo/.speculo/archive/<cat>/.gitkeep`
|
|
62
|
-
- [ ] 项目级长期上下文写入 `speculo/.speculo/.config/context/`
|
|
63
|
-
- [ ] 项目级 ADR 写入 `speculo/.speculo/.config/adr/`
|
|
64
|
-
- [ ] `.config` 清理类资产默认 dry-run,删除或合并前要求用户确认
|
|
65
|
-
- [ ] 没有新增项目根 state 文件
|
|
66
|
-
|
|
67
|
-
## 文档与测试
|
|
68
|
-
|
|
69
|
-
> 以下索引文件是 Speculo 仓库内的下游同步目标;项目无这些文件时跳过对应项。
|
|
70
|
-
|
|
71
|
-
- [ ] 项目若有 `docs/quick-reference.md`,包含新入口
|
|
72
|
-
- [ ] 项目若有 `docs/Speculo-architecture.md`,需要时更新内置结构
|
|
73
|
-
- [ ] 项目若有 `docs/adopting.md`,需要时更新安装后目录
|
|
74
|
-
- [ ] CLI tests 断言 `speculo init` 会复制新内置资产
|
|
75
|
-
- [ ] `pnpm test` 通过
|
|
76
|
-
|
|
77
|
-
## 残留检查
|
|
78
|
-
|
|
79
|
-
按迁移来源选择关键词扫描:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
rg "\.specforge|\.docs-sync-state|docs/adr/|根目录.*CONTEXT" speculo docs
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
命中结果必须逐条判断:历史说明可保留,执行规范和路径约定不能保留旧值。
|