bmad-module-skill-forge 0.9.0 → 0.10.1-alpha.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/.claude-plugin/marketplace.json +39 -0
- package/.gitattributes +16 -0
- package/README.md +105 -38
- package/docs/404.md +13 -10
- package/docs/RELEASING.md +185 -0
- package/docs/STABILITY.md +123 -0
- package/docs/_data/pinned.yaml +98 -0
- package/docs/agents.md +16 -11
- package/docs/architecture.md +221 -0
- package/docs/bmad-synergy.md +11 -13
- package/docs/concepts.md +18 -108
- package/docs/examples.md +121 -80
- package/docs/getting-started.md +85 -147
- package/docs/how-it-works.md +25 -536
- package/docs/index.md +44 -27
- package/docs/skill-model.md +328 -0
- package/docs/troubleshooting.md +39 -0
- package/docs/verifying-a-skill.md +232 -0
- package/docs/why-skf.md +93 -0
- package/docs/workflows.md +119 -13
- package/package.json +25 -4
- package/src/README.md +23 -25
- package/src/forger/forge-tier.yaml +4 -2
- package/src/forger/preferences.yaml +7 -1
- package/src/knowledge/agentskills-spec.md +1 -1
- package/src/knowledge/architecture-verification.md +1 -1
- package/src/knowledge/ccc-bridge.md +16 -15
- package/src/knowledge/overview.md +11 -11
- package/src/knowledge/progressive-capability.md +3 -3
- package/src/knowledge/provenance-tracking.md +9 -3
- package/src/knowledge/qmd-registry.md +8 -8
- package/src/knowledge/skf-knowledge-index.csv +2 -2
- package/src/knowledge/skill-lifecycle.md +16 -1
- package/src/knowledge/split-body-strategy.md +1 -1
- package/src/knowledge/version-paths.md +17 -12
- package/src/module-help.csv +18 -17
- package/src/module.yaml +4 -0
- package/src/shared/health-check.md +372 -0
- package/src/shared/references/feasibility-report-schema.md +86 -0
- package/src/shared/references/headless-gate-convention.md +62 -0
- package/src/shared/references/output-contract-schema.md +35 -0
- package/src/shared/references/pipeline-contracts.md +102 -0
- package/src/shared/scripts/skf-atomic-write.py +370 -0
- package/src/shared/scripts/skf-manifest-ops.py +236 -0
- package/src/shared/scripts/skf-preflight.py +164 -0
- package/src/shared/scripts/skf-rebuild-managed-sections.py +201 -0
- package/src/shared/scripts/skf-severity-classify.py +163 -0
- package/src/shared/scripts/skf-skill-inventory.py +210 -0
- package/src/shared/scripts/skf-structural-diff.py +257 -0
- package/src/shared/scripts/skf-validate-frontmatter.py +318 -0
- package/src/shared/scripts/skf-validate-output.py +247 -0
- package/src/skf-analyze-source/SKILL.md +57 -0
- package/src/skf-analyze-source/assets/skill-brief-schema.md +125 -0
- package/src/skf-analyze-source/references/unit-detection-heuristics.md +124 -0
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01-init.md +6 -66
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01b-continue.md +4 -59
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-02-scan-project.md +7 -68
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-03-identify-units.md +6 -66
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-04-map-and-detect.md +7 -68
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-05-recommend.md +6 -66
- package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-06-generate-briefs.md +14 -66
- package/src/skf-analyze-source/steps-c/step-07-health-check.md +22 -0
- package/src/skf-audit-skill/SKILL.md +59 -0
- package/src/{workflows/audit-skill/data → skf-audit-skill/assets}/drift-report-template.md +7 -7
- package/src/{workflows/audit-skill/data → skf-audit-skill/references}/severity-rules.md +11 -11
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-01-init.md +24 -68
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-02-re-index.md +36 -71
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-03-structural-diff.md +21 -63
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-04-semantic-diff.md +6 -65
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-05-severity-classify.md +5 -63
- package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-06-report.md +10 -59
- package/src/skf-audit-skill/steps-c/step-07-health-check.md +22 -0
- package/src/skf-brief-skill/SKILL.md +53 -0
- package/src/{workflows/brief-skill/data → skf-brief-skill/assets}/scope-templates.md +23 -0
- package/src/skf-brief-skill/assets/skill-brief-schema.md +206 -0
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-01-gather-intent.md +6 -67
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-02-analyze-target.md +6 -66
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-03-scope-definition.md +12 -68
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-04-confirm-brief.md +5 -63
- package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-05-write-brief.md +10 -69
- package/src/skf-brief-skill/steps-c/step-06-health-check.md +22 -0
- package/src/skf-create-skill/SKILL.md +63 -0
- package/src/{workflows/create-skill/data → skf-create-skill/assets}/compile-assembly-rules.md +60 -0
- package/src/{workflows/create-skill/data → skf-create-skill/assets}/skill-sections.md +92 -23
- package/src/skf-create-skill/assets/tessl-dismissal-rules.md +102 -0
- package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns-tracing.md +13 -13
- package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns.md +8 -3
- package/src/skf-create-skill/references/source-resolution-protocols.md +239 -0
- package/src/{workflows/create-skill/data → skf-create-skill/references}/tier-degradation-rules.md +8 -7
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-01-load-brief.md +25 -63
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-02-ecosystem-check.md +8 -64
- package/src/skf-create-skill/steps-c/step-03-extract.md +379 -0
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-03d-component-extraction.md +18 -35
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-04-enrich.md +12 -69
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-05-compile.md +71 -75
- package/src/skf-create-skill/steps-c/step-06-validate.md +267 -0
- package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-07-generate-artifacts.md +30 -74
- package/src/skf-create-skill/steps-c/step-08-report.md +145 -0
- package/src/skf-create-skill/steps-c/step-09-health-check.md +23 -0
- package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-02b-ccc-discover.md +8 -66
- package/src/skf-create-skill/steps-c/sub/step-03b-fetch-temporal.md +229 -0
- package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-03c-fetch-docs.md +18 -42
- package/src/skf-create-stack-skill/SKILL.md +64 -0
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/assets}/stack-skill-template.md +2 -1
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/compose-mode-rules.md +19 -5
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/integration-patterns.md +1 -1
- package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/manifest-patterns.md +10 -10
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-01-init.md +14 -55
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-02-detect-manifests.md +29 -63
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-03-rank-and-confirm.md +9 -59
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-04-parallel-extract.md +29 -64
- package/src/skf-create-stack-skill/steps-c/step-05-detect-integrations.md +164 -0
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-06-compile-stack.md +7 -60
- package/src/skf-create-stack-skill/steps-c/step-07-generate-output.md +328 -0
- package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-08-validate.md +17 -63
- package/src/skf-create-stack-skill/steps-c/step-09-report.md +128 -0
- package/src/skf-create-stack-skill/steps-c/step-10-health-check.md +22 -0
- package/src/skf-drop-skill/SKILL.md +57 -0
- package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-01-select.md +9 -69
- package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-02-execute.md +30 -106
- package/src/skf-drop-skill/steps-c/step-03-report.md +83 -0
- package/src/skf-drop-skill/steps-c/step-04-health-check.md +22 -0
- package/src/skf-export-skill/SKILL.md +57 -0
- package/src/skf-export-skill/assets/managed-section-format.md +138 -0
- package/src/{workflows/export-skill/data → skf-export-skill/assets}/snippet-format.md +8 -12
- package/src/skf-export-skill/steps-c/step-01-load-skill.md +247 -0
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-02-package.md +5 -58
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-03-generate-snippet.md +15 -77
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-04-update-context.md +59 -133
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-05-token-report.md +4 -58
- package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-06-summary.md +20 -64
- package/src/skf-export-skill/steps-c/step-07-health-check.md +22 -0
- package/src/skf-forger/SKILL.md +110 -0
- package/src/skf-forger/bmad-skill-manifest.yaml +11 -0
- package/src/skf-quick-skill/SKILL.md +56 -0
- package/src/{workflows/quick-skill/data → skf-quick-skill/references}/registry-resolution.md +6 -6
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-01-resolve-target.md +9 -62
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-02-ecosystem-check.md +5 -59
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-03-quick-extract.md +18 -61
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-04-compile.md +6 -60
- package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-05-validate.md +58 -78
- package/src/skf-quick-skill/steps-c/step-06-write.md +73 -0
- package/src/skf-quick-skill/steps-c/step-07-health-check.md +22 -0
- package/src/skf-refine-architecture/SKILL.md +57 -0
- package/src/{workflows/refine-architecture/data → skf-refine-architecture/references}/refinement-rules.md +16 -16
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-01-init.md +6 -63
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-02-gap-analysis.md +29 -71
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-03-issue-detection.md +5 -65
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-04-improvements.md +5 -64
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-05-compile.md +5 -56
- package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-06-report.md +14 -64
- package/src/skf-refine-architecture/steps-c/step-07-health-check.md +22 -0
- package/src/skf-rename-skill/SKILL.md +58 -0
- package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-01-select.md +12 -73
- package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-02-execute.md +32 -113
- package/src/skf-rename-skill/steps-c/step-03-report.md +83 -0
- package/src/skf-rename-skill/steps-c/step-04-health-check.md +22 -0
- package/src/skf-setup/SKILL.md +55 -0
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01-detect-and-tier.md +6 -62
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01b-ccc-index.md +9 -65
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-02-write-config.md +15 -60
- package/src/{workflows/setup-forge → skf-setup}/steps-c/step-03-auto-index.md +7 -66
- package/src/skf-setup/steps-c/step-04-report.md +92 -0
- package/src/skf-setup/steps-c/step-05-health-check.md +22 -0
- package/src/skf-test-skill/SKILL.md +59 -0
- package/src/skf-test-skill/references/migration-section-rules.md +114 -0
- package/src/skf-test-skill/references/scoring-rules.md +207 -0
- package/src/skf-test-skill/references/source-access-protocol.md +109 -0
- package/src/skf-test-skill/scripts/compute-score.py +310 -0
- package/src/skf-test-skill/steps-c/step-01-init.md +238 -0
- package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-02-detect-mode.md +4 -62
- package/src/skf-test-skill/steps-c/step-03-coverage-check.md +347 -0
- package/src/skf-test-skill/steps-c/step-04-coherence-check.md +239 -0
- package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-04b-external-validators.md +42 -77
- package/src/skf-test-skill/steps-c/step-05-score.md +266 -0
- package/src/skf-test-skill/steps-c/step-06-report.md +290 -0
- package/src/skf-test-skill/steps-c/step-07-health-check.md +25 -0
- package/src/skf-test-skill/templates/test-report-template.md +58 -0
- package/src/skf-update-skill/SKILL.md +58 -0
- package/src/{workflows/update-skill/data → skf-update-skill/references}/manual-section-rules.md +6 -6
- package/src/{workflows/update-skill/data → skf-update-skill/references}/merge-conflict-rules.md +5 -5
- package/src/skf-update-skill/references/remote-source-resolution.md +94 -0
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-01-init.md +22 -69
- package/src/skf-update-skill/steps-c/step-02-detect-changes.md +255 -0
- package/src/skf-update-skill/steps-c/step-03-re-extract.md +336 -0
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-04-merge.md +60 -72
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-05-validate.md +5 -62
- package/src/skf-update-skill/steps-c/step-06-write.md +278 -0
- package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-07-report.md +11 -66
- package/src/skf-update-skill/steps-c/step-08-health-check.md +22 -0
- package/src/skf-verify-stack/SKILL.md +60 -0
- package/src/skf-verify-stack/assets/feasibility-report-template.md +76 -0
- package/src/{workflows/verify-stack/data → skf-verify-stack/references}/coverage-patterns.md +12 -4
- package/src/skf-verify-stack/references/integration-verification-rules.md +78 -0
- package/src/skf-verify-stack/steps-c/step-01-init.md +178 -0
- package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-02-coverage.md +27 -72
- package/src/skf-verify-stack/steps-c/step-03-integrations.md +179 -0
- package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-04-requirements.md +14 -67
- package/src/skf-verify-stack/steps-c/step-05-synthesize.md +147 -0
- package/src/skf-verify-stack/steps-c/step-06-report.md +156 -0
- package/src/skf-verify-stack/steps-c/step-07-health-check.md +25 -0
- package/tools/cli/commands/install.js +1 -1
- package/tools/cli/commands/status.js +21 -23
- package/tools/cli/commands/uninstall.js +11 -19
- package/tools/cli/commands/update.js +2 -2
- package/tools/cli/lib/ide-skills.js +216 -0
- package/tools/cli/lib/installer.js +29 -52
- package/tools/cli/lib/manifest.js +11 -5
- package/tools/cli/lib/platform-codes.yaml +223 -0
- package/tools/cli/lib/ui.js +76 -47
- package/tools/validate-docs-drift.js +193 -0
- package/src/agents/forger.agent.yaml +0 -114
- package/src/workflows/README.md +0 -174
- package/src/workflows/analyze-source/data/skill-brief-schema.md +0 -125
- package/src/workflows/analyze-source/data/unit-detection-heuristics.md +0 -124
- package/src/workflows/analyze-source/workflow.md +0 -61
- package/src/workflows/audit-skill/workflow.md +0 -64
- package/src/workflows/brief-skill/data/skill-brief-schema.md +0 -159
- package/src/workflows/brief-skill/workflow.md +0 -58
- package/src/workflows/create-skill/data/source-resolution-protocols.md +0 -200
- package/src/workflows/create-skill/steps-c/step-03-extract.md +0 -301
- package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +0 -253
- package/src/workflows/create-skill/steps-c/step-06-validate.md +0 -254
- package/src/workflows/create-skill/steps-c/step-08-report.md +0 -176
- package/src/workflows/create-skill/workflow.md +0 -53
- package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +0 -196
- package/src/workflows/create-stack-skill/steps-c/step-07-generate-output.md +0 -270
- package/src/workflows/create-stack-skill/steps-c/step-09-report.md +0 -145
- package/src/workflows/create-stack-skill/workflow.md +0 -59
- package/src/workflows/drop-skill/steps-c/step-03-report.md +0 -135
- package/src/workflows/drop-skill/workflow.md +0 -63
- package/src/workflows/export-skill/data/managed-section-format.md +0 -103
- package/src/workflows/export-skill/steps-c/step-01-load-skill.md +0 -237
- package/src/workflows/export-skill/workflow.md +0 -58
- package/src/workflows/quick-skill/steps-c/step-06-write.md +0 -179
- package/src/workflows/quick-skill/workflow.md +0 -58
- package/src/workflows/refine-architecture/workflow.md +0 -61
- package/src/workflows/rename-skill/steps-c/step-03-report.md +0 -132
- package/src/workflows/rename-skill/workflow.md +0 -64
- package/src/workflows/setup-forge/steps-c/step-04-report.md +0 -156
- package/src/workflows/setup-forge/workflow.md +0 -51
- package/src/workflows/test-skill/data/scoring-rules.md +0 -123
- package/src/workflows/test-skill/data/source-access-protocol.md +0 -51
- package/src/workflows/test-skill/steps-c/step-01-init.md +0 -217
- package/src/workflows/test-skill/steps-c/step-03-coverage-check.md +0 -280
- package/src/workflows/test-skill/steps-c/step-04-coherence-check.md +0 -271
- package/src/workflows/test-skill/steps-c/step-05-score.md +0 -222
- package/src/workflows/test-skill/steps-c/step-06-report.md +0 -207
- package/src/workflows/test-skill/templates/test-report-template.md +0 -28
- package/src/workflows/test-skill/workflow.md +0 -57
- package/src/workflows/update-skill/data/remote-source-resolution.md +0 -57
- package/src/workflows/update-skill/steps-c/step-02-detect-changes.md +0 -221
- package/src/workflows/update-skill/steps-c/step-03-re-extract.md +0 -256
- package/src/workflows/update-skill/steps-c/step-06-write.md +0 -265
- package/src/workflows/update-skill/workflow.md +0 -56
- package/src/workflows/verify-stack/data/feasibility-report-template.md +0 -63
- package/src/workflows/verify-stack/data/integration-verification-rules.md +0 -73
- package/src/workflows/verify-stack/steps-c/step-01-init.md +0 -179
- package/src/workflows/verify-stack/steps-c/step-03-integrations.md +0 -195
- package/src/workflows/verify-stack/steps-c/step-05-synthesize.md +0 -191
- package/src/workflows/verify-stack/steps-c/step-06-report.md +0 -197
- package/src/workflows/verify-stack/workflow.md +0 -61
- package/tools/cli/lib/compiler.js +0 -306
- package/tools/cli/lib/ide-commands.js +0 -244
- /package/src/{workflows/analyze-source → skf-analyze-source}/templates/analysis-report-template.md +0 -0
- /package/src/{workflows/quick-skill/data → skf-quick-skill/assets}/skill-template.md +0 -0
- /package/src/{workflows/setup-forge/data → skf-setup/references}/tier-rules.md +0 -0
- /package/src/{workflows/test-skill/data → skf-test-skill/assets}/output-section-formats.md +0 -0
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: 'step-01b-ccc-index'
|
|
3
|
-
description: 'Ensure ccc project index exists — Forge+ and Deep tiers when ccc is available'
|
|
4
|
-
|
|
5
2
|
nextStepFile: './step-02-write-config.md'
|
|
6
3
|
---
|
|
7
4
|
|
|
@@ -13,40 +10,12 @@ If ccc is available (`{ccc: true}` from step-01), configure CCC exclusion patter
|
|
|
13
10
|
|
|
14
11
|
For Quick and Forge tiers, or when ccc is unavailable, skip silently and proceed.
|
|
15
12
|
|
|
16
|
-
##
|
|
17
|
-
|
|
18
|
-
### Universal Rules:
|
|
19
|
-
|
|
20
|
-
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
21
|
-
- 🔄 CRITICAL: When loading next step, ensure entire file is read
|
|
22
|
-
- 🎯 Execute all operations autonomously — no user interaction
|
|
23
|
-
|
|
24
|
-
### Role Reinforcement:
|
|
25
|
-
|
|
26
|
-
- ✅ You are a system executor verifying the ccc index state
|
|
27
|
-
- ✅ ccc indexing failure is never a workflow error — degrade gracefully
|
|
28
|
-
- ✅ No negative messaging for tiers that skip this step
|
|
29
|
-
|
|
30
|
-
### Step-Specific Rules:
|
|
31
|
-
|
|
32
|
-
- 🎯 Focus only on ccc index verification and creation
|
|
33
|
-
- 🚫 FORBIDDEN to display skip messages for Quick/Forge tiers
|
|
34
|
-
- 🚫 FORBIDDEN to fail the workflow if ccc indexing fails
|
|
35
|
-
- 🚫 FORBIDDEN to re-index if ccc index already exists and is fresh (< staleness threshold) UNLESS new exclusion patterns were applied to settings.yml
|
|
36
|
-
|
|
37
|
-
## EXECUTION PROTOCOLS:
|
|
38
|
-
|
|
39
|
-
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
40
|
-
- 💾 Store ccc index state in context for step-02
|
|
41
|
-
- 🚫 FORBIDDEN to write forge-tier.yaml — that is step-02's job
|
|
13
|
+
## Rules
|
|
42
14
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
- Available: existing forge-tier.yaml may contain prior `ccc_index` state
|
|
48
|
-
- Focus: ccc index state verification and creation only
|
|
49
|
-
- Dependencies: step-01 must have completed with tool detection results
|
|
15
|
+
- Focus only on ccc index verification and creation
|
|
16
|
+
- Do not display skip messages for Quick/Forge tiers
|
|
17
|
+
- Do not fail the workflow if ccc indexing fails
|
|
18
|
+
- Do not re-index if ccc index already exists and is fresh, unless new exclusion patterns were applied
|
|
50
19
|
|
|
51
20
|
## MANDATORY SEQUENCE
|
|
52
21
|
|
|
@@ -84,17 +53,15 @@ SKF infrastructure and output directories must be excluded from the CCC index
|
|
|
84
53
|
|
|
85
54
|
**Build the SKF exclusion list:**
|
|
86
55
|
|
|
87
|
-
1.
|
|
88
|
-
- `skills_output_folder` (default: `skills` if manifest is missing or field is absent)
|
|
89
|
-
- `forge_data_folder` (default: `forge-data` if manifest is missing or field is absent)
|
|
56
|
+
1. Use `{skills_output_folder}` and `{forge_data_folder}` from the workflow activation context (resolved in On Activation from `{project-root}/_bmad/skf/config.yaml`).
|
|
90
57
|
|
|
91
58
|
2. Assemble the exclusion patterns using `**/` prefix format (matching `.cocoindex_code/settings.yml` convention — e.g., `**/node_modules`):
|
|
92
59
|
- `**/_bmad` — SKF framework module (workflows, agents, knowledge files)
|
|
93
60
|
- `**/_bmad-output` — Build output artifacts
|
|
94
61
|
- `**/.claude` — Claude Code configuration
|
|
95
62
|
- `**/_skf-learn` — SKF learning materials
|
|
96
|
-
- `**/{skills_output_folder}` — Generated skill files (
|
|
97
|
-
- `**/{forge_data_folder}` — Compilation workspace (
|
|
63
|
+
- `**/{skills_output_folder}` — Generated skill files (from activation context)
|
|
64
|
+
- `**/{forge_data_folder}` — Compilation workspace (from activation context)
|
|
98
65
|
|
|
99
66
|
3. Store `{ccc_exclude_patterns}` in context for step-02 to write into forge-tier.yaml.
|
|
100
67
|
|
|
@@ -119,7 +86,7 @@ If `{settings_yml_existed}` is false: the exclusions will be applied after `ccc
|
|
|
119
86
|
|
|
120
87
|
### 3. Create or Refresh CCC Index
|
|
121
88
|
|
|
122
|
-
**If `{ccc_daemon}` is `"stopped"` or
|
|
89
|
+
**If `{ccc_daemon}` is `"stopped"` or `"healthy"`:**
|
|
123
90
|
|
|
124
91
|
The `ccc index` command auto-starts the daemon when needed. Proceed with indexing below.
|
|
125
92
|
|
|
@@ -177,26 +144,3 @@ ccc index
|
|
|
177
144
|
|
|
178
145
|
ONLY WHEN ccc index verification is complete (or step is skipped for ccc unavailable) will you load and read fully `{nextStepFile}` to execute the configuration write step.
|
|
179
146
|
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
183
|
-
|
|
184
|
-
### ✅ SUCCESS:
|
|
185
|
-
|
|
186
|
-
- ccc unavailable: skipped silently with no output, context variables set to null/none
|
|
187
|
-
- ccc available with fresh index: verified freshness, exclusions configured, skipped re-index, context variables set
|
|
188
|
-
- ccc available with stale/missing index: exclusions configured, index created, context variables set with fresh timestamp
|
|
189
|
-
- ccc indexing fails: logged gracefully, workflow continues, context variables set to failed/null
|
|
190
|
-
- Auto-proceeded to step-02
|
|
191
|
-
|
|
192
|
-
### ❌ SYSTEM FAILURE:
|
|
193
|
-
|
|
194
|
-
- Displaying skip messages when ccc is unavailable
|
|
195
|
-
- Halting the workflow on ccc index failure
|
|
196
|
-
- Re-indexing when index is already fresh and path matches (unless exclusion patterns changed)
|
|
197
|
-
- Writing forge-tier.yaml (that is step-02's responsibility)
|
|
198
|
-
- Not storing ccc index context variables for step-02
|
|
199
|
-
- Indexing without configuring SKF exclusion patterns in `.cocoindex_code/settings.yml`
|
|
200
|
-
- Overwriting user customizations in `.cocoindex_code/settings.yml` instead of appending
|
|
201
|
-
|
|
202
|
-
**Master Rule:** CCC indexing is always best-effort. Failures degrade gracefully. The workflow never halts over ccc issues.
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: 'step-02-write-config'
|
|
3
|
-
description: 'Write forge-tier.yaml, create preferences.yaml defaults, ensure forge-data/ exists'
|
|
4
|
-
|
|
5
2
|
nextStepFile: './step-03-auto-index.md'
|
|
6
3
|
---
|
|
7
4
|
|
|
@@ -11,40 +8,12 @@ nextStepFile: './step-03-auto-index.md'
|
|
|
11
8
|
|
|
12
9
|
Write the detected tool availability and calculated tier to forge-tier.yaml, create preferences.yaml with defaults if it does not exist, and ensure the forge-data/ directory is present.
|
|
13
10
|
|
|
14
|
-
##
|
|
15
|
-
|
|
16
|
-
### Universal Rules:
|
|
17
|
-
|
|
18
|
-
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
19
|
-
- 🔄 CRITICAL: When loading next step, ensure entire file is read
|
|
20
|
-
- 🎯 Execute all operations autonomously — no user interaction
|
|
21
|
-
|
|
22
|
-
### Role Reinforcement:
|
|
23
|
-
|
|
24
|
-
- ✅ You are a system executor writing configuration files
|
|
25
|
-
- ✅ File operations must be precise — correct paths, correct YAML structure
|
|
26
|
-
- ✅ Preserve user data (preferences.yaml) — never overwrite existing
|
|
27
|
-
|
|
28
|
-
### Step-Specific Rules:
|
|
29
|
-
|
|
30
|
-
- 🎯 Focus only on writing configuration files and creating directories
|
|
31
|
-
- 🚫 FORBIDDEN to re-detect tools — use results from step-01
|
|
32
|
-
- 🚫 FORBIDDEN to overwrite existing preferences.yaml
|
|
33
|
-
- 💬 File write failures ARE errors — report clearly if they occur
|
|
34
|
-
|
|
35
|
-
## EXECUTION PROTOCOLS:
|
|
36
|
-
|
|
37
|
-
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
|
38
|
-
- 💾 Write files to the forger-sidecar directory
|
|
39
|
-
- 📖 Use context from step-01 (detected_tools, calculated_tier)
|
|
40
|
-
- 🚫 FORBIDDEN to proceed if forge-tier.yaml write fails
|
|
41
|
-
|
|
42
|
-
## CONTEXT BOUNDARIES:
|
|
11
|
+
## Rules
|
|
43
12
|
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
13
|
+
- Focus only on writing configuration files and creating directories
|
|
14
|
+
- Do not re-detect tools — use results from step-01
|
|
15
|
+
- Do not overwrite existing preferences.yaml
|
|
16
|
+
- File write failures are errors — report clearly
|
|
48
17
|
|
|
49
18
|
## MANDATORY SEQUENCE
|
|
50
19
|
|
|
@@ -56,7 +25,7 @@ Write to `{project-root}/_bmad/_memory/forger-sidecar/forge-tier.yaml`:
|
|
|
56
25
|
|
|
57
26
|
```yaml
|
|
58
27
|
# Ferris Sidecar: Forge Tier State
|
|
59
|
-
# Written by setup
|
|
28
|
+
# Written by setup workflow
|
|
60
29
|
|
|
61
30
|
# Tool availability (detected during [SF] Setup Forge)
|
|
62
31
|
tools:
|
|
@@ -72,7 +41,7 @@ tools:
|
|
|
72
41
|
tier: {calculated_tier}
|
|
73
42
|
tier_detected_at: {current ISO timestamp}
|
|
74
43
|
|
|
75
|
-
# CCC semantic index state (managed by setup
|
|
44
|
+
# CCC semantic index state (managed by setup step-01b and extraction workflows)
|
|
76
45
|
ccc_index:
|
|
77
46
|
indexed_path: {ccc_indexed_path from step-01b, or ~}
|
|
78
47
|
last_indexed: {ccc_last_indexed from step-01b, or ~}
|
|
@@ -104,7 +73,7 @@ Check if `{project-root}/_bmad/_memory/forger-sidecar/preferences.yaml` exists:
|
|
|
104
73
|
|
|
105
74
|
```yaml
|
|
106
75
|
# Ferris Sidecar: User Preferences
|
|
107
|
-
# Created by setup
|
|
76
|
+
# Created by setup workflow on first run
|
|
108
77
|
# Edit this file to customize Ferris behavior
|
|
109
78
|
|
|
110
79
|
# Override detected tier (set to Quick, Forge, Forge+, or Deep to force a tier)
|
|
@@ -113,6 +82,12 @@ tier_override: ~
|
|
|
113
82
|
# Passive context injection (set to false to skip snippet generation and CLAUDE.md updates during export)
|
|
114
83
|
passive_context: true
|
|
115
84
|
|
|
85
|
+
# Headless mode (set to true to skip confirmation gates in all workflows)
|
|
86
|
+
headless_mode: false
|
|
87
|
+
|
|
88
|
+
# Compact greeting (set to true to skip the full capabilities table on session start)
|
|
89
|
+
compact_greeting: false
|
|
90
|
+
|
|
116
91
|
# Reserved for future use — these fields are not yet consumed by any workflow step
|
|
117
92
|
# output_language: ~
|
|
118
93
|
# skill_format_version: ~
|
|
@@ -144,25 +119,5 @@ Check if `{forge_data_folder}` directory exists:
|
|
|
144
119
|
|
|
145
120
|
## CRITICAL STEP COMPLETION NOTE
|
|
146
121
|
|
|
147
|
-
ONLY WHEN forge-tier.yaml has been written successfully and preferences.yaml exists (created or pre-existing) will you load and read fully `{nextStepFile}` to execute the
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
152
|
-
|
|
153
|
-
### ✅ SUCCESS:
|
|
154
|
-
|
|
155
|
-
- forge-tier.yaml written with accurate tool booleans (including ccc), tier, timestamp, ccc_index state (including exclude_patterns), and preserved qmd_collections/ccc_index_registry arrays
|
|
156
|
-
- preferences.yaml exists (created with defaults on first run, preserved on re-run)
|
|
157
|
-
- forge-data/ directory exists (created or pre-existing)
|
|
158
|
-
- Auto-proceeded to step-03
|
|
159
|
-
|
|
160
|
-
### ❌ SYSTEM FAILURE:
|
|
161
|
-
|
|
162
|
-
- forge-tier.yaml write fails and workflow continues
|
|
163
|
-
- preferences.yaml overwritten when it already existed
|
|
164
|
-
- Incorrect tool values written (not matching step-01 detection)
|
|
165
|
-
- Missing tier_detected_at timestamp
|
|
166
|
-
- Re-detecting tools instead of using step-01 results
|
|
122
|
+
ONLY WHEN forge-tier.yaml has been written successfully and preferences.yaml exists (created or pre-existing) will you load and read fully `{nextStepFile}` to execute the QMD hygiene step.
|
|
167
123
|
|
|
168
|
-
**Master Rule:** forge-tier.yaml must be written accurately. preferences.yaml must never be overwritten. These are the foundation for all downstream workflows.
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: 'step-03-auto-index'
|
|
3
|
-
description: 'Verify and clean QMD collections against the forge-tier.yaml registry (Deep tier only) and CCC index registry hygiene (Forge+/Deep)'
|
|
4
|
-
|
|
5
2
|
nextStepFile: './step-04-report.md'
|
|
6
3
|
---
|
|
7
4
|
|
|
@@ -11,45 +8,15 @@ nextStepFile: './step-04-report.md'
|
|
|
11
8
|
|
|
12
9
|
If the detected tier is Deep, verify the health of existing QMD collections by cross-referencing them against the `qmd_collections` registry in `forge-tier.yaml`. Identify orphaned collections (in QMD but not in registry) and stale registry entries (in registry but collection missing from QMD). Prompt the user before removing orphaned collections.
|
|
13
10
|
|
|
14
|
-
For Quick and Forge tiers
|
|
15
|
-
|
|
16
|
-
## MANDATORY EXECUTION RULES (READ FIRST):
|
|
17
|
-
|
|
18
|
-
### Universal Rules:
|
|
19
|
-
|
|
20
|
-
- 📖 CRITICAL: Read the complete step file before taking any action
|
|
21
|
-
- 🔄 CRITICAL: When loading next step, ensure entire file is read
|
|
22
|
-
- 🎯 Execute all operations autonomously — minimal user interaction (only prompt before deletion)
|
|
23
|
-
|
|
24
|
-
### Role Reinforcement:
|
|
25
|
-
|
|
26
|
-
- ✅ You are a system executor performing QMD collection maintenance
|
|
27
|
-
- ✅ Graceful degradation is paramount — never fail the workflow over hygiene checks
|
|
28
|
-
- ✅ No negative messaging — do not mention what non-Deep tiers are missing
|
|
29
|
-
|
|
30
|
-
### Step-Specific Rules:
|
|
31
|
-
|
|
32
|
-
- 🎯 Focus only on verifying and cleaning QMD collections (Deep tier) or graceful skip (other tiers)
|
|
33
|
-
- 🚫 FORBIDDEN to display "missing" or "skipped" messages for non-Deep tiers
|
|
34
|
-
- 🚫 FORBIDDEN to fail the workflow if QMD hygiene encounters errors
|
|
35
|
-
- 🚫 FORBIDDEN to create new QMD collections — that responsibility belongs to create-skill
|
|
36
|
-
- 🚫 FORBIDDEN to silently delete collections — always prompt user before removal
|
|
37
|
-
- 💬 If hygiene fails: log the issue, note that it can be retried, continue
|
|
38
|
-
|
|
39
|
-
## EXECUTION PROTOCOLS:
|
|
11
|
+
For Quick and Forge tiers, skip silently and proceed (QMD is not available at those tiers). For Forge+ tier, skip QMD hygiene but the step routes correctly to the next step.
|
|
40
12
|
|
|
41
|
-
|
|
42
|
-
- 💾 QMD hygiene only verifies and cleans — it does NOT index new content
|
|
43
|
-
- 📖 Use {calculated_tier} from step-01 context
|
|
44
|
-
- 🚫 FORBIDDEN to attempt QMD hygiene for Quick, Forge, or Forge+ tiers (Forge+ has no qmd)
|
|
13
|
+
## Rules
|
|
45
14
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
- Limits: only run if Deep tier
|
|
52
|
-
- Dependencies: step-02 must have completed (forge-tier.yaml exists with qmd_collections registry)
|
|
15
|
+
- Focus only on verifying and cleaning QMD collections (Deep tier) or graceful skip (other tiers)
|
|
16
|
+
- Do not display negative framing for non-Deep tiers
|
|
17
|
+
- Do not fail the workflow if QMD hygiene encounters errors
|
|
18
|
+
- Do not create new QMD collections — that belongs to create-skill
|
|
19
|
+
- Do not silently delete collections — always prompt user before removal
|
|
53
20
|
|
|
54
21
|
## MANDATORY SEQUENCE
|
|
55
22
|
|
|
@@ -182,29 +149,3 @@ Store in context for step-04 reporting:
|
|
|
182
149
|
|
|
183
150
|
ONLY WHEN the hygiene check has been performed (or skipped for non-Deep tiers) will you load and read fully `{nextStepFile}` to execute the report step.
|
|
184
151
|
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## 🚨 SYSTEM SUCCESS/FAILURE METRICS
|
|
188
|
-
|
|
189
|
-
### ✅ SUCCESS:
|
|
190
|
-
|
|
191
|
-
- Deep tier: forge-tier.yaml registry cross-referenced with live QMD collections
|
|
192
|
-
- Healthy collections identified and verified
|
|
193
|
-
- Orphaned collections flagged and user prompted before removal
|
|
194
|
-
- Stale registry entries cleaned from forge-tier.yaml
|
|
195
|
-
- Hygiene results stored for step-04 reporting
|
|
196
|
-
- Quick/Forge/Forge+ tier: skipped silently with no negative messaging
|
|
197
|
-
- Workflow continues regardless of hygiene outcome
|
|
198
|
-
- Auto-proceeded to step-04
|
|
199
|
-
|
|
200
|
-
### ❌ SYSTEM FAILURE:
|
|
201
|
-
|
|
202
|
-
- Creating new QMD collections (that's create-skill's responsibility)
|
|
203
|
-
- Silently deleting collections without user prompt
|
|
204
|
-
- Attempting QMD hygiene for Quick, Forge, or Forge+ tiers
|
|
205
|
-
- Displaying "skipped" or "missing" messages for non-Deep tiers
|
|
206
|
-
- Halting the workflow due to QMD hygiene failure
|
|
207
|
-
- Indexing project directories (old auto-index behavior — removed)
|
|
208
|
-
- Not proceeding to step-04 after this step
|
|
209
|
-
|
|
210
|
-
**Master Rule:** This step ONLY verifies and cleans. It never indexes new content. QMD collection creation is the responsibility of create-skill. Non-Deep tiers skip silently. Always prompt before removing orphaned collections.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
tierRulesData: 'references/tier-rules.md'
|
|
3
|
+
nextStepFile: './step-05-health-check.md'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Step 4: Forge Status Report
|
|
7
|
+
|
|
8
|
+
## STEP GOAL:
|
|
9
|
+
|
|
10
|
+
Display the forge status report with positive capability framing and report tier changes on re-run.
|
|
11
|
+
|
|
12
|
+
## Rules
|
|
13
|
+
|
|
14
|
+
- Focus only on displaying the status report
|
|
15
|
+
- Do not use negative framing ("missing", "lacking", "unavailable")
|
|
16
|
+
- Do not list tools that are not available
|
|
17
|
+
- Use tier capability descriptions from tier-rules.md
|
|
18
|
+
- Chains to the local health-check step via `{nextStepFile}` after completion — the user-facing status report is NOT the terminal step
|
|
19
|
+
|
|
20
|
+
## MANDATORY SEQUENCE
|
|
21
|
+
|
|
22
|
+
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
|
23
|
+
|
|
24
|
+
### 1. Load Capability Descriptions
|
|
25
|
+
|
|
26
|
+
Load and read {tierRulesData} for the tier capability descriptions and re-run messages.
|
|
27
|
+
|
|
28
|
+
### 2. Display Forge Status Report
|
|
29
|
+
|
|
30
|
+
**Format the report as follows:**
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
═══════════════════════════════════════
|
|
34
|
+
FORGE STATUS
|
|
35
|
+
═══════════════════════════════════════
|
|
36
|
+
|
|
37
|
+
Tier: {calculated_tier}
|
|
38
|
+
{tier capability description from tier-rules.md}
|
|
39
|
+
|
|
40
|
+
Tools Detected:
|
|
41
|
+
{for each tool that is available, show: tool name — version}
|
|
42
|
+
|
|
43
|
+
{if hygiene_result is "completed":}
|
|
44
|
+
QMD Registry:
|
|
45
|
+
{hygiene_healthy} collection(s) healthy
|
|
46
|
+
{if hygiene_orphaned_removed > 0: {hygiene_orphaned_removed} orphaned collection(s) removed}
|
|
47
|
+
{if hygiene_orphaned_kept > 0: {hygiene_orphaned_kept} orphaned collection(s) kept}
|
|
48
|
+
{if hygiene_stale_cleaned > 0: {hygiene_stale_cleaned} stale QMD registry entry/entries cleaned}
|
|
49
|
+
{end if}
|
|
50
|
+
|
|
51
|
+
{if ccc_registry_stale_cleaned > 0:}
|
|
52
|
+
CCC Registry: {ccc_registry_stale_cleaned} stale entry/entries cleaned
|
|
53
|
+
{end if}
|
|
54
|
+
|
|
55
|
+
{if hygiene_result is "completed" and hygiene_healthy is 0:}
|
|
56
|
+
QMD Registry: empty — collections are created automatically when you run [CS] Create Skill.
|
|
57
|
+
{end if}
|
|
58
|
+
|
|
59
|
+
{if tools.ccc is true:}
|
|
60
|
+
CCC Index:
|
|
61
|
+
{if ccc_index_result is "fresh": up to date — semantic discovery ready}
|
|
62
|
+
{if ccc_index_result is "created": indexed this run — semantic discovery ready}
|
|
63
|
+
{if ccc_index_result is "failed": indexing failed — semantic discovery unavailable this session}
|
|
64
|
+
{end if}
|
|
65
|
+
|
|
66
|
+
{if tier_override is active:}
|
|
67
|
+
Note: Tier override active (set in preferences.yaml)
|
|
68
|
+
|
|
69
|
+
{if re-run with tier change:}
|
|
70
|
+
{appropriate upgrade/downgrade message from tier-rules.md}
|
|
71
|
+
|
|
72
|
+
{if re-run with same tier:}
|
|
73
|
+
{same-tier message from tier-rules.md}
|
|
74
|
+
|
|
75
|
+
═══════════════════════════════════════
|
|
76
|
+
Forge ready. {calculated_tier} tier active.
|
|
77
|
+
═══════════════════════════════════════
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Tool display rules:**
|
|
81
|
+
- Only show tools that ARE available with their version strings
|
|
82
|
+
- Do NOT list unavailable tools
|
|
83
|
+
- Do NOT show a "missing" column or section
|
|
84
|
+
|
|
85
|
+
### 3. Chain to Health Check
|
|
86
|
+
|
|
87
|
+
ONLY WHEN the forge status report has been displayed will you then load, read the full file, and execute `{nextStepFile}`. The health-check step is the true terminal step — do not stop here even though the report reads as final.
|
|
88
|
+
|
|
89
|
+
## CRITICAL STEP COMPLETION NOTE
|
|
90
|
+
|
|
91
|
+
This step chains to the local health-check step (`{nextStepFile}`), which in turn delegates to `shared/health-check.md`. After the health check completes, the setup workflow is fully done.
|
|
92
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
# `shared/health-check.md` resolves relative to the SKF module root
|
|
3
|
+
# (`_bmad/skf/` when installed, `src/` during development), NOT relative
|
|
4
|
+
# to this step file.
|
|
5
|
+
nextStepFile: 'shared/health-check.md'
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 5: Workflow Health Check
|
|
9
|
+
|
|
10
|
+
## STEP GOAL:
|
|
11
|
+
|
|
12
|
+
Chain to the shared workflow self-improvement health check at `{nextStepFile}`. This is the terminal step of setup — after the shared health check completes, the workflow is fully done.
|
|
13
|
+
|
|
14
|
+
## Rules
|
|
15
|
+
|
|
16
|
+
- No user-facing reports, file writes, or result contracts in this step — those belong in step-04
|
|
17
|
+
- Delegate directly to `{nextStepFile}` with no additional commentary
|
|
18
|
+
- Do not attempt any other action between loading this step and executing `{nextStepFile}`
|
|
19
|
+
|
|
20
|
+
## MANDATORY SEQUENCE
|
|
21
|
+
|
|
22
|
+
Load `{nextStepFile}`, read it fully, then execute it.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skf-test-skill
|
|
3
|
+
description: Cognitive completeness verification — quality gate before export. Use when the user requests to "test a skill" or "verify skill completeness."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test Skill
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Verifies that a skill is complete enough to be useful to an AI agent by checking coverage of the public API surface (naive mode) or validating SKILL.md + references coherence (contextual mode). Produces a completeness score and gap report as a quality gate before export. Every finding must trace to actual code with file:line citations.
|
|
11
|
+
|
|
12
|
+
## Role
|
|
13
|
+
|
|
14
|
+
You are a skill auditor and completeness analyst operating in Ferris's Audit mode. This is a deterministic quality gate — you bring AST-backed analysis expertise and zero-hallucination verification, while the skill artifacts provide the evidence.
|
|
15
|
+
|
|
16
|
+
## Workflow Rules
|
|
17
|
+
|
|
18
|
+
These rules apply to every step in this workflow:
|
|
19
|
+
|
|
20
|
+
- Zero hallucination — every finding must trace to actual code with file:line citations
|
|
21
|
+
- Read each step file completely before taking any action
|
|
22
|
+
- Follow the mandatory sequence in each step exactly — do not skip, reorder, or optimize
|
|
23
|
+
- Only load one step file at a time — never preload future steps
|
|
24
|
+
- Update `stepsCompleted` in output file frontmatter before loading next step
|
|
25
|
+
- If any instruction references a subprocess or tool you lack, achieve the outcome in your main context thread
|
|
26
|
+
- Always communicate in `{communication_language}`
|
|
27
|
+
- If `{headless_mode}` is true, auto-proceed through confirmation gates with their default action and log each auto-decision
|
|
28
|
+
|
|
29
|
+
## Stages
|
|
30
|
+
|
|
31
|
+
| # | Step | File | Auto-proceed |
|
|
32
|
+
|---|------|------|--------------|
|
|
33
|
+
| 1 | Initialize & Load Skill | steps-c/step-01-init.md | Yes |
|
|
34
|
+
| 2 | Detect Mode | steps-c/step-02-detect-mode.md | Yes |
|
|
35
|
+
| 3 | Coverage Check | steps-c/step-03-coverage-check.md | Yes |
|
|
36
|
+
| 4 | Coherence Check | steps-c/step-04-coherence-check.md | Yes |
|
|
37
|
+
| 4b | External Validators | steps-c/step-04b-external-validators.md | Yes |
|
|
38
|
+
| 5 | Score | steps-c/step-05-score.md | Yes |
|
|
39
|
+
| 6 | Report | steps-c/step-06-report.md | No (confirm) |
|
|
40
|
+
| 7 | Workflow Health Check | steps-c/step-07-health-check.md | Yes |
|
|
41
|
+
|
|
42
|
+
## Invocation Contract
|
|
43
|
+
|
|
44
|
+
| Aspect | Detail |
|
|
45
|
+
|--------|--------|
|
|
46
|
+
| **Inputs** | skill_name [required] |
|
|
47
|
+
| **Gates** | step-06: Confirm Gate [C] |
|
|
48
|
+
| **Outputs** | test-report-{skill_name}.md with completeness score and result (PASS/FAIL) |
|
|
49
|
+
| **Headless** | All gates auto-resolve with default action when `{headless_mode}` is true |
|
|
50
|
+
|
|
51
|
+
## On Activation
|
|
52
|
+
|
|
53
|
+
1. Load config from `{project-root}/_bmad/skf/config.yaml` and resolve:
|
|
54
|
+
- `project_name`, `user_name`, `communication_language`, `document_output_language`
|
|
55
|
+
- `skills_output_folder`, `forge_data_folder`, `sidecar_path`
|
|
56
|
+
|
|
57
|
+
2. **Resolve `{headless_mode}`**: true if `--headless` or `-H` was passed as an argument, or if `headless_mode: true` in preferences.yaml. Default: false.
|
|
58
|
+
|
|
59
|
+
3. Load, read the full file, and then execute `./steps-c/step-01-init.md` to begin the workflow.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Migration & Deprecation Section Rules (§2b / §5b)
|
|
2
|
+
|
|
3
|
+
> **Single source of truth.** Both `step-04-coherence-check.md` §2b (naive path)
|
|
4
|
+
> and §5b (contextual path) apply the rules in this file verbatim. Update this
|
|
5
|
+
> file — not the step file sections — when the rule set changes.
|
|
6
|
+
|
|
7
|
+
## Gate Check
|
|
8
|
+
|
|
9
|
+
Execute this check ONLY IF both conditions are met:
|
|
10
|
+
|
|
11
|
+
1. Forge tier is **Deep** (tool-gated)
|
|
12
|
+
2. `{forge_data_folder}/{skill_name}/evidence-report.md` exists (data-gated)
|
|
13
|
+
|
|
14
|
+
If either condition fails, skip silently and proceed to the next section.
|
|
15
|
+
|
|
16
|
+
The check runs regardless of naive/contextual mode. T2-future annotations are a
|
|
17
|
+
property of the source code and enrichment data, not the skill type.
|
|
18
|
+
|
|
19
|
+
## Scope of Section 4b (Authoring Rule This Gate Enforces)
|
|
20
|
+
|
|
21
|
+
Section 4b (SKILL.md "Migration & Deprecation Warnings") is scoped to
|
|
22
|
+
*forward-looking* breaking changes only — what T2-future annotations capture.
|
|
23
|
+
Current-state signature gotchas (e.g. "this function is sync not async") belong
|
|
24
|
+
alongside the function in Full API Reference, **not here**.
|
|
25
|
+
|
|
26
|
+
This scoping is authoritative per `skf-create-skill/assets/skill-sections.md`
|
|
27
|
+
("Section 4b (Migration & Deprecation Warnings) is conditional: only emitted
|
|
28
|
+
for Deep tier when T2-future annotations exist").
|
|
29
|
+
|
|
30
|
+
Two legitimate exceptions for the `T2-future = 0 AND Section 4b present` case
|
|
31
|
+
are formalized in the rules below:
|
|
32
|
+
|
|
33
|
+
- **(a) historical migration** content — past, shipped package renames or
|
|
34
|
+
consolidated import paths that remain load-bearing for correcting model
|
|
35
|
+
training-data drift → Info severity, no justification required.
|
|
36
|
+
- **(b) other non-migration content** — reviewer may downgrade to Low with
|
|
37
|
+
inline justification.
|
|
38
|
+
|
|
39
|
+
Do not relax the gate otherwise — that would desync the test workflow from the
|
|
40
|
+
authoring rule.
|
|
41
|
+
|
|
42
|
+
## Case Rules
|
|
43
|
+
|
|
44
|
+
Check whether SKILL.md contains a "Migration & Deprecation Warnings" section
|
|
45
|
+
(Section 4b). Then parse `evidence-report.md`'s **YAML frontmatter** for the
|
|
46
|
+
pinned `t2_future_count` field — this is the authoritative count, not the
|
|
47
|
+
narrative body.
|
|
48
|
+
|
|
49
|
+
**Detection contract (MANDATORY).** Read the frontmatter deterministically:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Extract t2_future_count from frontmatter. Requires a `---` delimiter pair.
|
|
53
|
+
awk '/^---$/{c++;next} c==1 && /^t2_future_count:/{print $2; exit}' \
|
|
54
|
+
{forge_data_folder}/{skill_name}/evidence-report.md
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
- **Frontmatter missing OR `t2_future_count` absent** → treat as Case 4 (see
|
|
58
|
+
below) and skip silently. Do NOT fall back to grepping prose (`grep "T2-future"`) —
|
|
59
|
+
prose drift (heading renames, alt phrasings like "forward-looking
|
|
60
|
+
annotations", capitalization variance) silently breaks detection and can
|
|
61
|
+
invert Case-1 vs Case-2/3 severity.
|
|
62
|
+
- **`t2_future_count` parsed** → use its integer value for the Case Rules
|
|
63
|
+
below.
|
|
64
|
+
|
|
65
|
+
The pinned field is emitted by `skf-create-skill/steps-c/step-05-compile.md`
|
|
66
|
+
§7 (frontmatter-pinned fields), which ALWAYS writes `t2_future_count: N`
|
|
67
|
+
(including 0). Legacy skills whose `evidence-report.md` predates the pinned
|
|
68
|
+
field land in Case 4.
|
|
69
|
+
|
|
70
|
+
### Case 1 — T2-future > 0 AND Section 4b absent
|
|
71
|
+
|
|
72
|
+
Flag as **Medium** severity gap:
|
|
73
|
+
|
|
74
|
+
> "Migration section missing — T2-future annotations exist but Section 4b is
|
|
75
|
+
> not present in SKILL.md Tier 1."
|
|
76
|
+
|
|
77
|
+
### Case 2 — T2-future = 0 AND Section 4b present AND content is historical migration
|
|
78
|
+
|
|
79
|
+
Flag as **Info** severity (not Medium). Historical migration content covers
|
|
80
|
+
completed package renames (e.g. `@oldscope/*` → `@newscope/*`), consolidated
|
|
81
|
+
import paths, and shipped API cutovers that still surface in training-data
|
|
82
|
+
drift — load-bearing for correcting model knowledge even though no
|
|
83
|
+
forward-looking change is pending.
|
|
84
|
+
|
|
85
|
+
Recognizable patterns: old-name → new-name rewrites, citations to
|
|
86
|
+
already-shipped PRs/issues, "migrated in version N" or "consolidated from X to
|
|
87
|
+
Y" language.
|
|
88
|
+
|
|
89
|
+
Recommend in the gap report that a future skill revision rename Section 4b to
|
|
90
|
+
"Import Corrections" or "Ecosystem Notes" to free the Migration & Deprecation
|
|
91
|
+
heading for its forward-looking contract. No inline justification required —
|
|
92
|
+
the historical-migration classification is itself the rationale.
|
|
93
|
+
|
|
94
|
+
### Case 3 — T2-future = 0 AND Section 4b present AND content is non-migration
|
|
95
|
+
|
|
96
|
+
Flag as **Medium** severity gap:
|
|
97
|
+
|
|
98
|
+
> "Migration section unexpected — Section 4b contains non-migration content and
|
|
99
|
+
> no T2-future annotations were produced."
|
|
100
|
+
|
|
101
|
+
Reviewer may downgrade to Low with inline justification on a case-by-case
|
|
102
|
+
basis.
|
|
103
|
+
|
|
104
|
+
### Case 4 — evidence-report.md unavailable
|
|
105
|
+
|
|
106
|
+
Skip silently. Record the note:
|
|
107
|
+
|
|
108
|
+
> "Section 4b verification skipped — evidence-report.md not found."
|
|
109
|
+
|
|
110
|
+
## Output
|
|
111
|
+
|
|
112
|
+
Append any resulting finding(s) to the coherence analysis results. Both the
|
|
113
|
+
naive path (§2b) and the contextual path (§5b) funnel findings into the same
|
|
114
|
+
Coherence Analysis section of `{outputFile}`.
|