@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/migrate.ts"],"names":[],"mappings":"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"}
|
package/dist/src/workflows.d.ts
CHANGED
|
@@ -1,47 +1,17 @@
|
|
|
1
|
-
export type
|
|
2
|
-
|
|
1
|
+
export type WorkflowPackage = {
|
|
2
|
+
id: string;
|
|
3
3
|
name: string;
|
|
4
4
|
displayName: string;
|
|
5
5
|
description: string;
|
|
6
6
|
};
|
|
7
|
-
|
|
8
|
-
export type WorkflowCatalog = Map<string, WorkflowEntry[]>;
|
|
7
|
+
export type WorkflowCatalog = Map<string, WorkflowPackage>;
|
|
9
8
|
export type WorkflowSelection = {
|
|
10
|
-
|
|
11
|
-
category: string;
|
|
12
|
-
name: string;
|
|
13
|
-
}[];
|
|
14
|
-
categories: Set<string>;
|
|
9
|
+
workflowIds: string[];
|
|
15
10
|
};
|
|
16
|
-
/**
|
|
17
|
-
* Scan template/workflows/ to discover all available workflows grouped by category.
|
|
18
|
-
* Skips non-directory entries and the _templates/ directory within each category.
|
|
19
|
-
*/
|
|
20
11
|
export declare function discoverWorkflowCatalog(packageRoot: string): Promise<WorkflowCatalog>;
|
|
21
|
-
|
|
22
|
-
* Scan a target speculo/workflows/ directory to discover which workflows
|
|
23
|
-
* are already installed.
|
|
24
|
-
*/
|
|
25
|
-
export declare function scanInstalledWorkflows(installRoot: string): Promise<{
|
|
26
|
-
category: string;
|
|
27
|
-
name: string;
|
|
28
|
-
}[]>;
|
|
29
|
-
/** Returns true when stdin is a TTY (interactive terminal). */
|
|
12
|
+
export declare function scanInstalledWorkflows(installRoot: string): Promise<string[]>;
|
|
30
13
|
export declare function isInteractive(): boolean;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
*
|
|
34
|
-
* In init mode, no categories are pre-selected — the user picks what they want.
|
|
35
|
-
* In update mode, categories already installed are pre-selected (checked by default).
|
|
36
|
-
*
|
|
37
|
-
* Returns a WorkflowSelection containing every workflow in the selected categories.
|
|
38
|
-
* If no categories are selected, returns an empty selection (only .speculo, commands,
|
|
39
|
-
* and skills are installed).
|
|
40
|
-
*
|
|
41
|
-
* When stdin is not a TTY (pipe, redirect), falls back to selecting all categories.
|
|
42
|
-
*/
|
|
43
|
-
export declare function promptCategorySelection(catalog: WorkflowCatalog, options?: {
|
|
44
|
-
preSelectedCategories?: Set<string>;
|
|
14
|
+
export declare function promptWorkflowSelection(catalog: WorkflowCatalog, options?: {
|
|
15
|
+
preSelectedWorkflowIds?: Set<string>;
|
|
45
16
|
}): Promise<WorkflowSelection>;
|
|
46
|
-
/** Build a WorkflowSelection that selects every workflow in the catalog. */
|
|
47
17
|
export declare function selectAllFromCatalog(catalog: WorkflowCatalog): WorkflowSelection;
|
package/dist/src/workflows.js
CHANGED
|
@@ -1,174 +1,100 @@
|
|
|
1
1
|
import { readdir, readFile } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { checkbox } from "@inquirer/prompts";
|
|
4
|
-
// ---- Discovery ----
|
|
5
4
|
const FRONTMATTER_RE = /^---\s*\n([\s\S]*?)\n---/;
|
|
6
5
|
const FIELD_RE = /^(\w+):\s*(.+)$/;
|
|
6
|
+
const WORKFLOW_ENTRY = "WORKFLOW.md";
|
|
7
7
|
function parseFrontmatter(content) {
|
|
8
8
|
const match = content.match(FRONTMATTER_RE);
|
|
9
9
|
if (!match)
|
|
10
10
|
return {};
|
|
11
11
|
const fields = {};
|
|
12
12
|
for (const line of match[1].split("\n")) {
|
|
13
|
-
const
|
|
14
|
-
if (
|
|
15
|
-
fields[
|
|
13
|
+
const field = line.match(FIELD_RE);
|
|
14
|
+
if (field)
|
|
15
|
+
fields[field[1]] = field[2].trim();
|
|
16
16
|
}
|
|
17
17
|
return fields;
|
|
18
18
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Scan template/workflows/ to discover all available workflows grouped by category.
|
|
21
|
-
* Skips non-directory entries and the _templates/ directory within each category.
|
|
22
|
-
*/
|
|
23
19
|
export async function discoverWorkflowCatalog(packageRoot) {
|
|
24
20
|
const catalog = new Map();
|
|
25
21
|
const workflowsRoot = join(packageRoot, "template", "workflows");
|
|
26
|
-
const
|
|
27
|
-
for (const
|
|
28
|
-
if (!
|
|
22
|
+
const entries = await readdir(workflowsRoot, { withFileTypes: true });
|
|
23
|
+
for (const entry of entries) {
|
|
24
|
+
if (!entry.isDirectory() || entry.name.startsWith("_"))
|
|
29
25
|
continue;
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
let displayName = wfDir.name;
|
|
39
|
-
let description = "";
|
|
40
|
-
try {
|
|
41
|
-
const content = await readFile(entryFile, "utf-8");
|
|
42
|
-
const fm = parseFrontmatter(content);
|
|
43
|
-
displayName = fm.name ?? wfDir.name;
|
|
44
|
-
description = fm.description ?? "";
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
// Entry file missing or unreadable — use directory name as fallback
|
|
26
|
+
const entryPath = join(workflowsRoot, entry.name, WORKFLOW_ENTRY);
|
|
27
|
+
try {
|
|
28
|
+
const content = await readFile(entryPath, "utf8");
|
|
29
|
+
const frontmatter = parseFrontmatter(content);
|
|
30
|
+
const id = frontmatter.workflow ?? frontmatter.id ?? entry.name;
|
|
31
|
+
if (id !== entry.name) {
|
|
32
|
+
throw new Error("Workflow directory " + entry.name + " declares workflow id " + id +
|
|
33
|
+
"; ids must match directory names");
|
|
48
34
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
name:
|
|
52
|
-
displayName,
|
|
53
|
-
description,
|
|
35
|
+
catalog.set(id, {
|
|
36
|
+
id,
|
|
37
|
+
name: entry.name,
|
|
38
|
+
displayName: frontmatter.name ?? entry.name,
|
|
39
|
+
description: frontmatter.description ?? "",
|
|
54
40
|
});
|
|
55
41
|
}
|
|
56
|
-
|
|
57
|
-
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error instanceof Error && error.message.includes("ids must match")) {
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
// A directory without WORKFLOW.md is not an installable workflow package.
|
|
58
47
|
}
|
|
59
48
|
}
|
|
60
49
|
return catalog;
|
|
61
50
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Scan a target speculo/workflows/ directory to discover which workflows
|
|
64
|
-
* are already installed.
|
|
65
|
-
*/
|
|
66
51
|
export async function scanInstalledWorkflows(installRoot) {
|
|
67
52
|
const installed = [];
|
|
68
53
|
const workflowsRoot = join(installRoot, "workflows");
|
|
69
54
|
try {
|
|
70
|
-
const
|
|
71
|
-
for (const
|
|
72
|
-
if (!
|
|
55
|
+
const entries = await readdir(workflowsRoot, { withFileTypes: true });
|
|
56
|
+
for (const entry of entries) {
|
|
57
|
+
if (!entry.isDirectory() || entry.name.startsWith("_"))
|
|
73
58
|
continue;
|
|
74
|
-
const catPath = join(workflowsRoot, catDir.name);
|
|
75
59
|
try {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
if (!wfDir.isDirectory() || wfDir.name.startsWith("_"))
|
|
79
|
-
continue;
|
|
80
|
-
// Verify it's a workflow by checking for the entry .md file
|
|
81
|
-
const entryFile = join(catPath, wfDir.name, `${wfDir.name}.md`);
|
|
82
|
-
try {
|
|
83
|
-
await readFile(entryFile, "utf-8");
|
|
84
|
-
installed.push({ category: catDir.name, name: wfDir.name });
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// No entry file → skip
|
|
88
|
-
}
|
|
89
|
-
}
|
|
60
|
+
await readFile(join(workflowsRoot, entry.name, WORKFLOW_ENTRY), "utf8");
|
|
61
|
+
installed.push(entry.name);
|
|
90
62
|
}
|
|
91
63
|
catch {
|
|
92
|
-
//
|
|
64
|
+
// Ignore legacy or local directories that are not v3 workflow packages.
|
|
93
65
|
}
|
|
94
66
|
}
|
|
95
67
|
}
|
|
96
68
|
catch {
|
|
97
|
-
|
|
69
|
+
return [];
|
|
98
70
|
}
|
|
99
|
-
return installed;
|
|
71
|
+
return installed.sort();
|
|
100
72
|
}
|
|
101
|
-
// ---- Interaction ----
|
|
102
|
-
/** Returns true when stdin is a TTY (interactive terminal). */
|
|
103
73
|
export function isInteractive() {
|
|
104
74
|
return process.stdin.isTTY === true;
|
|
105
75
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
* Each category becomes one checkbox option showing its name and workflow count.
|
|
109
|
-
*/
|
|
110
|
-
function buildCategoryChoices(catalog, preSelected) {
|
|
111
|
-
const sortedCategories = [...catalog.keys()].sort();
|
|
112
|
-
return sortedCategories.map((cat) => {
|
|
113
|
-
const wfs = catalog.get(cat);
|
|
114
|
-
const count = wfs.length;
|
|
115
|
-
const description = `${count} workflow${count > 1 ? "s" : ""}`;
|
|
116
|
-
return {
|
|
117
|
-
name: cat,
|
|
118
|
-
value: cat,
|
|
119
|
-
description,
|
|
120
|
-
checked: preSelected?.has(cat) ?? false,
|
|
121
|
-
};
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Interactive category-level workflow selection using @inquirer checkbox.
|
|
126
|
-
*
|
|
127
|
-
* In init mode, no categories are pre-selected — the user picks what they want.
|
|
128
|
-
* In update mode, categories already installed are pre-selected (checked by default).
|
|
129
|
-
*
|
|
130
|
-
* Returns a WorkflowSelection containing every workflow in the selected categories.
|
|
131
|
-
* If no categories are selected, returns an empty selection (only .speculo, commands,
|
|
132
|
-
* and skills are installed).
|
|
133
|
-
*
|
|
134
|
-
* When stdin is not a TTY (pipe, redirect), falls back to selecting all categories.
|
|
135
|
-
*/
|
|
136
|
-
export async function promptCategorySelection(catalog, options) {
|
|
137
|
-
// Non-interactive → select all
|
|
138
|
-
if (!isInteractive()) {
|
|
76
|
+
export async function promptWorkflowSelection(catalog, options) {
|
|
77
|
+
if (!isInteractive())
|
|
139
78
|
return selectAllFromCatalog(catalog);
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
79
|
+
const choices = [...catalog.values()]
|
|
80
|
+
.sort((left, right) => left.id.localeCompare(right.id))
|
|
81
|
+
.map((workflow) => ({
|
|
82
|
+
name: workflow.displayName,
|
|
83
|
+
value: workflow.id,
|
|
84
|
+
description: workflow.description,
|
|
85
|
+
checked: options?.preSelectedWorkflowIds?.has(workflow.id) ?? false,
|
|
86
|
+
}));
|
|
87
|
+
const workflowIds = await checkbox({
|
|
88
|
+
message: "Select workflow packages to install (space to toggle, enter to confirm):",
|
|
144
89
|
choices,
|
|
145
90
|
pageSize: 10,
|
|
146
91
|
});
|
|
147
|
-
if (
|
|
148
|
-
console.log("No
|
|
149
|
-
}
|
|
150
|
-
// Build WorkflowSelection from selected categories
|
|
151
|
-
const workflows = [];
|
|
152
|
-
const categories = new Set();
|
|
153
|
-
for (const cat of selectedCategories) {
|
|
154
|
-
categories.add(cat);
|
|
155
|
-
const wfs = catalog.get(cat) ?? [];
|
|
156
|
-
for (const wf of wfs) {
|
|
157
|
-
workflows.push({ category: wf.category, name: wf.name });
|
|
158
|
-
}
|
|
92
|
+
if (workflowIds.length === 0) {
|
|
93
|
+
console.log("No workflows selected. Only core commands and skills will be installed.\n");
|
|
159
94
|
}
|
|
160
|
-
return {
|
|
95
|
+
return { workflowIds };
|
|
161
96
|
}
|
|
162
|
-
/** Build a WorkflowSelection that selects every workflow in the catalog. */
|
|
163
97
|
export function selectAllFromCatalog(catalog) {
|
|
164
|
-
|
|
165
|
-
const categories = new Set();
|
|
166
|
-
for (const [cat, wfs] of catalog) {
|
|
167
|
-
categories.add(cat);
|
|
168
|
-
for (const wf of wfs) {
|
|
169
|
-
workflows.push({ category: wf.category, name: wf.name });
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
return { workflows, categories };
|
|
98
|
+
return { workflowIds: [...catalog.keys()].sort() };
|
|
173
99
|
}
|
|
174
100
|
//# sourceMappingURL=workflows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/workflows.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namewta/speculo",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "Workflow-packaged specification-driven development assets with install, update, and migration tooling.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"speculo": "./dist/src/cli.js"
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
"build": "tsc -p tsconfig.json",
|
|
11
11
|
"test": "node --test dist/test/*.test.js",
|
|
12
12
|
"pretest": "pnpm build",
|
|
13
|
-
"
|
|
13
|
+
"validate-assets": "node scripts/validate-framework-assets.mjs && node scripts/check-template-links.mjs",
|
|
14
|
+
"check": "pnpm test && pnpm validate-assets",
|
|
14
15
|
"verify-bin": "node scripts/verify-bin.mjs",
|
|
15
16
|
"prepack": "pnpm build",
|
|
16
|
-
"prepublishOnly": "pnpm
|
|
17
|
+
"prepublishOnly": "pnpm test && pnpm validate-assets"
|
|
17
18
|
},
|
|
18
19
|
"files": [
|
|
19
20
|
"dist/src",
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
52
|
"@types/node": "^26.0.0",
|
|
53
|
+
"fast-xml-parser": "^5.9.3",
|
|
52
54
|
"typescript": "^5.8.3"
|
|
53
55
|
},
|
|
54
56
|
"dependencies": {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Speculo Runtime State
|
|
2
|
+
|
|
3
|
+
本目录是 Speculo 运行时状态的唯一持久化根。
|
|
4
|
+
|
|
5
|
+
## 读取顺序
|
|
6
|
+
|
|
7
|
+
1. 读取 `workspace.json`,以当前打开项目为 `project_root` 解析公共 roots。
|
|
8
|
+
2. 读取 `../workflows/<workflow>/WORKFLOW.md` 的 `<runtime-context>` 与 `<persistence>`。
|
|
9
|
+
3. 读取 `<workflow>/status.json`,再读取 `changes/<change>/.status.json` 和当前 route 产物。
|
|
10
|
+
4. 历史 change 只从 `<workflow>/archive/YYYY-MM/<change>/` 读取。
|
|
11
|
+
5. Command 报告位于 `commands/<command>/*.md`,command state 位于 `commands/<command>/state.json`。
|
|
12
|
+
6. 首次 docs-sync 确认后读取 `<workflow>/docs-sync.json`;它分列该 workflow 的项目文档和私有 state 更新范围。
|
|
13
|
+
|
|
14
|
+
## 写入边界
|
|
15
|
+
|
|
16
|
+
- 每个 workflow 只写自己的 `status.json/changes/archive` 和已声明 namespace。
|
|
17
|
+
- `docs-sync.json` 是 docs-sync command 拥有的延迟 sidecar,不进入 `_state`,也不授予越过 workflow 确认规则的权限。
|
|
18
|
+
- `.config` 不是标准目录;只有 workflow 声明时才可使用。
|
|
19
|
+
- Command 报告命名为 `<YYYY-MM-DD>-<scope>-<topic>[-NN].md`,禁止覆盖。
|
|
20
|
+
- Skill 只使用调用方提供并完成边界校验的路径。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"path_base": "project-root",
|
|
4
|
+
"roots": {
|
|
5
|
+
"config": "speculo/config.json",
|
|
6
|
+
"speculo": "speculo",
|
|
7
|
+
"state": "speculo/.speculo",
|
|
8
|
+
"commands": "speculo/commands",
|
|
9
|
+
"skills": "speculo/skills",
|
|
10
|
+
"workflows": "speculo/workflows",
|
|
11
|
+
"vendor": "speculo/vendor"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: docs-sync
|
|
3
|
+
type: command
|
|
4
|
+
name: Docs Sync
|
|
5
|
+
description: 清洁并提交工作区,以可复现 Git 区间和确认范围同步项目文档与 workflow 知识
|
|
6
|
+
keywords: [docs-sync, readme, changelog, agents, documentation]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Docs Sync 命令
|
|
10
|
+
|
|
11
|
+
## 产物
|
|
12
|
+
|
|
13
|
+
- 报告:`speculo/.speculo/commands/docs-sync/<YYYY-MM-DD>-<scope>-<topic>[-NN].md`
|
|
14
|
+
- 全局 state:`speculo/.speculo/commands/docs-sync/state.json`
|
|
15
|
+
- Workflow 范围:`speculo/.speculo/<workflow>/docs-sync.json`
|
|
16
|
+
|
|
17
|
+
调用本命令即授权它在校验通过后创建本地 checkpoint 与文档同步 commit;不授权 push、tag、stash、历史改写或丢弃文件。
|
|
18
|
+
|
|
19
|
+
## 执行
|
|
20
|
+
|
|
21
|
+
1. 读取 `../skills/runtime-context/SKILL.md` 与 `../skills/docs-sync/SKILL.md`,解析 command 路径、`speculo/config.json`(不存在时以默认值静默降级)和全部已安装 workflow/state 根。
|
|
22
|
+
2. 按 skill 的 Git 契约检查 tracked、staged、unstaged 与 untracked 内容;安全且校验通过时显式暂存并创建 checkpoint,异常时无损阻塞。
|
|
23
|
+
3. 读取全局 state、各 `WORKFLOW.md` 和 sidecar。首次运行统一展示全局与每个 workflow 的候选范围;用户确认后为所有已安装 workflow 创建 sidecar,空范围也保留。
|
|
24
|
+
4. 由 skill 收集精确 commit 区间、archive 与声明 store 证据,整份审计命中文档并执行新增、更新、删除段落、合并或保留。整文件/目录删除和受保护知识仍逐次确认。
|
|
25
|
+
5. 运行项目与文档校验,原子写入报告、state 和 sidecar,再显式暂存本次产物并创建同步或 no-op commit。
|
|
26
|
+
6. 重新读取 Git、state、报告与 sidecar;只有工作区干净、节点可复现且所有文件已提交时完成。
|
|
27
|
+
|
|
28
|
+
完成标准:报告含输入节点、checkpoint、确认范围、生命周期动作和验证;全局 state 与每个 workflow sidecar 有效;`git status --short` 为空。
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: finalize
|
|
3
|
+
type: command
|
|
4
|
+
name: Finalize
|
|
5
|
+
description: 对任意 workflow change 执行完成门禁、状态收尾与安全归档,也可批量归档已完成 change
|
|
6
|
+
keywords: [finalize, verify, complete, archive, 收尾]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Finalize 命令
|
|
10
|
+
|
|
11
|
+
## 报告
|
|
12
|
+
|
|
13
|
+
统一写入:`speculo/.speculo/commands/finalize/<YYYY-MM-DD>-<scope>-<topic>[-NN].md`。
|
|
14
|
+
|
|
15
|
+
报告必须记录 `mode`、选中的 workflow/change、验证证据、状态变化、源路径、目标路径、用户确认和最终结果。
|
|
16
|
+
|
|
17
|
+
## 模式
|
|
18
|
+
|
|
19
|
+
### finalize-active
|
|
20
|
+
|
|
21
|
+
1. 读取 `../skills/runtime-context/SKILL.md` 和 `../skills/change-lifecycle/SKILL.md`,解析 `speculo/config.json`(不存在时以默认值静默降级)和 workflow 的固定 `changes/archive` 根。
|
|
22
|
+
2. 选择一个 active change,执行新鲜验证、需求核对和 worktree 预检;缺证据即 blocked。
|
|
23
|
+
3. 展示验证证据、状态变化、归档目标和报告路径,等待用户明确确认。
|
|
24
|
+
4. 确认后将 change 置为 completed,再移动到 archive,更新 `status.json#active`,复查目标和索引。
|
|
25
|
+
|
|
26
|
+
### archive-completed
|
|
27
|
+
|
|
28
|
+
1. 选择 workflow 或 `multi-workflow` 范围,扫描所有 completed change;不重新验证,也不接受 active/broken change。
|
|
29
|
+
2. 读取 `change-lifecycle` 的归档安全规则,生成逐项源/目标/冲突清单。
|
|
30
|
+
3. 先展示批量计划并等待用户确认;冲突、malformed 或缺状态任一存在即停止整批动作。
|
|
31
|
+
4. 确认后逐项移动、更新 `change_status: archived` 和各 workflow 索引;失败时报告已完成/未完成清单。
|
|
32
|
+
|
|
33
|
+
## 完成标准
|
|
34
|
+
|
|
35
|
+
- 报告文件位于 command 专属目录且 scope 可从文件名判断。
|
|
36
|
+
- 所有状态、目录和索引变更均已重新读取验证。
|
|
37
|
+
- 未确认或 blocked 时没有移动、删除或宣称完成。
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: knowledge-prune
|
|
3
|
+
type: command
|
|
4
|
+
name: Knowledge Prune
|
|
5
|
+
description: dry-run 审计指定 workflow 声明的知识 namespace,生成可删除、合并或改写的候选清单
|
|
6
|
+
keywords: [knowledge, prune, rules, lessons, context, adr]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Knowledge Prune 命令
|
|
10
|
+
|
|
11
|
+
## 报告
|
|
12
|
+
|
|
13
|
+
写入 `speculo/.speculo/commands/knowledge-prune/<YYYY-MM-DD>-<workflow>-<topic>[-NN].md`。报告记录扫描 namespace、证据、候选分组、风险和确认结果。
|
|
14
|
+
|
|
15
|
+
## 执行
|
|
16
|
+
|
|
17
|
+
1. 读取 `../skills/runtime-context/SKILL.md`,解析 `speculo/config.json`(不存在时以默认值静默降级),选择 workflow 并解析其 `<persistence>` 声明的 knowledge/policy namespace。
|
|
18
|
+
2. 读取 `../skills/knowledge-prune/SKILL.md`,默认执行 dry-run,生成 `delete | merge | rewrite | keep | needs-confirmation` 清单。
|
|
19
|
+
3. 将报告写入 command 专属目录;无用户确认时不删除、重命名或改写任何 namespace。
|
|
20
|
+
4. 用户确认后再次执行路径包含检查,逐项操作并复查 git、引用和报告结果。
|
|
@@ -12,9 +12,7 @@ keywords: [retro, 复盘, 痛点, feedback, issue, 优化, 反馈]
|
|
|
12
12
|
|
|
13
13
|
## 归档路径模式
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
报告文件:`speculo/.speculo/commands/<YYYY-MM-DD>-retro-<topic>/report.md`
|
|
15
|
+
报告文件:`speculo/.speculo/commands/retro/<YYYY-MM-DD>-<scope>-<topic>[-NN].md`
|
|
18
16
|
|
|
19
17
|
- `<YYYY-MM-DD>` 使用当前日期。
|
|
20
18
|
- `<topic>` 从复盘范围或用户主题提取,使用小写 kebab-case;无法判断时使用 `speculo`。
|
|
@@ -27,21 +25,30 @@ keywords: [retro, 复盘, 痛点, feedback, issue, 优化, 反馈]
|
|
|
27
25
|
|
|
28
26
|
## 执行步骤
|
|
29
27
|
|
|
30
|
-
1. 读取 `../skills/speculo-retro/SKILL.md
|
|
28
|
+
1. 读取 `../skills/runtime-context/SKILL.md` 与 `../skills/speculo-retro/SKILL.md`,解析 `speculo/config.json`(不存在时以默认值静默降级),采集对话、command 报告、change 状态以及 workflow 声明的 lessons/knowledge store。
|
|
31
29
|
2. 用该 skill 产出规范化复盘结论:去重、分级、根因化的 issue-ready 提案清单,附丢弃/合并说明与每条处置建议。
|
|
32
|
-
3.
|
|
30
|
+
3. 创建 command 专属目录 `speculo/.speculo/commands/retro/`,把复盘结论写入带 scope 的 Markdown 报告。
|
|
33
31
|
4. **解析目标仓库**:默认框架反馈上游 `NAMEWTA/Speculo`;用户在请求中显式指定其他 `owner/repo` 时覆盖默认。无论如何,在调用 `gh` 前回显解析到的 `owner/repo`,让用户确认或改正。
|
|
34
32
|
5. **去重**:读取 `../skills/github-npm-ops/SKILL.md` 的 `references/issue-pr-triage.md`,对每条 `disposition: file-issue` 的提案用 `gh issue list --repo <owner/repo> --search "<关键词>" --state all --limit 20` 检索;命中语义重复的默认跳过并记录 `dup_of`,仅当用户明确要求才补提。
|
|
35
33
|
6. **外部写操作边界**:向用户展示将要创建的 issue 清单(标题、类型/优先级标签、正文摘要、目标 `owner/repo`)与去重结果,等待用户明确确认。没有确认时只输出计划,不调用 `gh`。
|
|
36
34
|
7. 用户确认后,按优先级倒序逐条执行 `gh issue create --repo <owner/repo> --title "<title>" --body "<body>" --label "<type>,<priority>[,<area>]"`(多行正文可用 `--body-file` 指向不保留的临时文件)。任一条失败时停止后续创建,报告已建/未建清单,不重复创建同一条。
|
|
37
|
-
8. 把每条提案的最终 issue 编号/URL
|
|
35
|
+
8. 把每条提案的最终 issue 编号/URL 回写进本次报告的「提交结果」小节;返回报告路径、3-5 条复盘摘要和已创建 issue 链接清单。
|
|
38
36
|
|
|
39
|
-
##
|
|
37
|
+
## 产物模板
|
|
40
38
|
|
|
41
39
|
> **服务命令:** `retro.md`
|
|
42
|
-
> **产物文件名:**
|
|
40
|
+
> **产物文件名:** `<YYYY-MM-DD>-<scope>-<topic>[-NN].md`
|
|
43
41
|
|
|
44
42
|
```markdown
|
|
43
|
+
---
|
|
44
|
+
command: retro
|
|
45
|
+
mode: issue-retro
|
|
46
|
+
scope: [TODO: workspace | multi-workflow | <workflow> | <workflow>-<change>]
|
|
47
|
+
workflows: [TODO: workflow ids]
|
|
48
|
+
changes: [TODO: full change names]
|
|
49
|
+
generated_at: [TODO: ISO-8601]
|
|
50
|
+
---
|
|
51
|
+
|
|
45
52
|
# Speculo Retro Report
|
|
46
53
|
|
|
47
54
|
## 复盘范围
|