bmad-module-skill-forge 0.10.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/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 -71
- 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 -64
- 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 -70
- 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 +16 -68
- 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 +11 -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 -69
- 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 -179
- 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 -150
- package/src/workflows/create-stack-skill/workflow.md +0 -59
- package/src/workflows/drop-skill/steps-c/step-03-report.md +0 -136
- 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 -178
- 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 -133
- package/src/workflows/rename-skill/workflow.md +0 -64
- package/src/workflows/setup-forge/steps-c/step-04-report.md +0 -159
- package/src/workflows/setup-forge/workflow.md +0 -51
- package/src/workflows/shared/health-check.md +0 -231
- 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 -208
- 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 -200
- 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
package/src/README.md
CHANGED
|
@@ -8,40 +8,38 @@ For user-facing documentation (what SKF does, how to install it, how to use it),
|
|
|
8
8
|
|
|
9
9
|
```
|
|
10
10
|
src/
|
|
11
|
-
├──
|
|
12
|
-
├──
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
├──
|
|
16
|
-
│
|
|
17
|
-
|
|
18
|
-
│ ├──
|
|
19
|
-
│ ├──
|
|
20
|
-
│ ├──
|
|
21
|
-
│ ├──
|
|
22
|
-
│
|
|
23
|
-
|
|
24
|
-
│ ├── update-skill/
|
|
25
|
-
│ ├── audit-skill/
|
|
26
|
-
│ ├── test-skill/
|
|
27
|
-
│ ├── export-skill/
|
|
28
|
-
│ ├── rename-skill/
|
|
29
|
-
│ └── drop-skill/
|
|
30
|
-
├── knowledge/ # Cross-cutting knowledge fragments (JiT loaded)
|
|
11
|
+
├── skf-forger/ # Agent skill — Ferris persona
|
|
12
|
+
│ ├── SKILL.md # Agent identity, principles, menu of triggers
|
|
13
|
+
│ └── bmad-skill-manifest.yaml
|
|
14
|
+
├── skf-setup/ # Setup skill (forge initialization)
|
|
15
|
+
│ ├── SKILL.md
|
|
16
|
+
│ └── ...
|
|
17
|
+
├── skf-{name}/ # 13 workflow skills (one directory each)
|
|
18
|
+
│ ├── SKILL.md # Skill entry point (overview, stages, invocation contract)
|
|
19
|
+
│ ├── steps-c/ # Sequential step files
|
|
20
|
+
│ ├── references/ # Rules, patterns, protocols (decision-making)
|
|
21
|
+
│ ├── assets/ # Schemas, output formats
|
|
22
|
+
│ └── templates/ # Output skeletons (used by some skills)
|
|
23
|
+
├── knowledge/ # Cross-cutting knowledge fragments (JiT loaded)
|
|
31
24
|
│ └── skf-knowledge-index.csv
|
|
32
|
-
|
|
25
|
+
├── forger/ # Sidecar seed files (preferences, forge tier)
|
|
26
|
+
├── shared/ # Cross-workflow resources
|
|
27
|
+
├── module.yaml # Module metadata (code, name, config vars)
|
|
28
|
+
└── module-help.csv # Skill menu for bmad-help integration
|
|
33
29
|
```
|
|
34
30
|
|
|
31
|
+
**Workflow skills:** setup, analyze-source, brief-skill, create-skill, quick-skill, create-stack-skill, verify-stack, refine-architecture, update-skill, audit-skill, test-skill, export-skill, rename-skill, drop-skill.
|
|
32
|
+
|
|
35
33
|
## Components
|
|
36
34
|
|
|
37
|
-
- **Agent:** [Ferris](
|
|
38
|
-
- **
|
|
35
|
+
- **Agent:** [Ferris](skf-forger/SKILL.md) — single-persona module operating in five modes (Architect / Surgeon / Audit / Delivery / Management)
|
|
36
|
+
- **Workflow skills:** 14 `skf-{name}/` directories, each containing a SKILL.md, steps, references, and assets
|
|
39
37
|
- **Knowledge fragments:** cross-cutting principles Ferris consults via `knowledge/skf-knowledge-index.csv`
|
|
40
38
|
|
|
41
39
|
## Editing this module
|
|
42
40
|
|
|
43
|
-
- Agent edits — `
|
|
44
|
-
- Workflow edits — each workflow in `
|
|
41
|
+
- Agent edits — `skf-forger/SKILL.md`; validate with `bmad:bmb:agents:agent-validate`
|
|
42
|
+
- Workflow edits — each workflow skill in `skf-{name}/`; validate with `bmad:bmb:workflows:workflow-validate`
|
|
45
43
|
- Module-level edits — `module.yaml` and `module-help.csv`; validate with `bmad:bmb:modules:validate-module`
|
|
46
44
|
|
|
47
45
|
See [CONTRIBUTING.md](../CONTRIBUTING.md) for the contribution workflow.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Ferris Sidecar: Forge Tier State
|
|
2
|
-
# Written by setup
|
|
2
|
+
# Written by setup workflow on first run
|
|
3
3
|
|
|
4
4
|
# Tool availability (detected during [SF] Setup Forge)
|
|
5
5
|
tools:
|
|
@@ -15,12 +15,14 @@ tools:
|
|
|
15
15
|
tier: ~
|
|
16
16
|
tier_detected_at: ~
|
|
17
17
|
|
|
18
|
-
# CCC semantic index state (managed by setup
|
|
18
|
+
# CCC semantic index state (managed by setup and extraction workflows)
|
|
19
19
|
ccc_index:
|
|
20
20
|
indexed_path: ~
|
|
21
21
|
last_indexed: ~
|
|
22
22
|
status: "none"
|
|
23
23
|
staleness_threshold_hours: 24
|
|
24
|
+
file_count: ~
|
|
25
|
+
exclude_patterns: []
|
|
24
26
|
|
|
25
27
|
# CCC index registry (tracks which source paths have been indexed for skill workflows)
|
|
26
28
|
ccc_index_registry: []
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Ferris Sidecar: User Preferences
|
|
2
|
-
# Created by setup
|
|
2
|
+
# Created by setup workflow on first run
|
|
3
3
|
# Edit this file to customize Ferris behavior
|
|
4
4
|
|
|
5
5
|
# Override detected tier (set to Quick, Forge, Forge+, or Deep to force a tier)
|
|
@@ -8,6 +8,12 @@ tier_override: ~
|
|
|
8
8
|
# Passive context injection (set to false to skip snippet generation and CLAUDE.md updates during export)
|
|
9
9
|
passive_context: true
|
|
10
10
|
|
|
11
|
+
# Headless mode (set to true to skip confirmation gates in all workflows)
|
|
12
|
+
headless_mode: false
|
|
13
|
+
|
|
14
|
+
# Compact greeting (set to true to skip the full capabilities table on session start)
|
|
15
|
+
compact_greeting: false
|
|
16
|
+
|
|
11
17
|
# Reserved for future use — these fields are not yet consumed by any workflow step
|
|
12
18
|
# output_language: ~
|
|
13
19
|
# skill_format_version: ~
|
|
@@ -40,7 +40,7 @@ description: >
|
|
|
40
40
|
- `description`: 1-1024 characters, trigger-optimized for agent matching
|
|
41
41
|
- **MUST use third-person voice.** The description is injected into the system prompt; inconsistent point-of-view causes discovery problems. Write "Processes Excel files and generates reports" — never "I can help you process Excel files" or "You can use this to process Excel files."
|
|
42
42
|
|
|
43
|
-
**Body:** Free-form markdown — no structural restrictions, but Skill Forge follows a consistent section order (see skill-sections.md in create-skill/
|
|
43
|
+
**Body:** Free-form markdown — no structural restrictions, but Skill Forge follows a consistent section order (see skill-sections.md in create-skill/assets/).
|
|
44
44
|
|
|
45
45
|
### Optional: Supporting Directories
|
|
46
46
|
|
|
@@ -99,4 +99,4 @@ VS and RA are pre-code workflows. SS compose-mode synthesizes the implementation
|
|
|
99
99
|
- [skill-lifecycle.md](skill-lifecycle.md) — end-to-end pipeline and workflow connections
|
|
100
100
|
- [progressive-capability.md](progressive-capability.md) — tier philosophy for skill generation
|
|
101
101
|
|
|
102
|
-
_Source: synthesized from verify-stack/
|
|
102
|
+
_Source: synthesized from skf-verify-stack/SKILL.md, skf-refine-architecture/SKILL.md, and skf-create-stack-skill/references/compose-mode-rules.md_
|
|
@@ -24,7 +24,7 @@ ccc is **required** at the Forge+ tier (it defines Forge+) and **optionally avai
|
|
|
24
24
|
## Availability
|
|
25
25
|
|
|
26
26
|
ccc_bridge operations are available when:
|
|
27
|
-
- `tools.ccc: true` in forge-tier.yaml (verified by `ccc --help` + `ccc doctor` in setup
|
|
27
|
+
- `tools.ccc: true` in forge-tier.yaml (verified by `ccc --help` + `ccc doctor` in setup)
|
|
28
28
|
- `ccc_index.status` is `"fresh"` or `"stale"` in forge-tier.yaml (an index exists for the project)
|
|
29
29
|
|
|
30
30
|
When either condition is false, calling steps skip ccc discovery silently and proceed with direct ast-grep or source reading. This is standard Forge tier behavior — not a degradation.
|
|
@@ -43,7 +43,7 @@ Returns: list of `{file, score, snippet}` entries ranked by semantic relevance t
|
|
|
43
43
|
|
|
44
44
|
**Resolves to:** Check `ccc_index.status` in forge-tier.yaml. If `"none"` or the indexed_path does not match, run `cd {path} && ccc init` then `ccc index` and update forge-tier.yaml. Note: `ccc init` takes no positional arguments — it initializes the index for the current working directory.
|
|
45
45
|
|
|
46
|
-
**Usage context:** Called by setup
|
|
46
|
+
**Usage context:** Called by setup step-01b to ensure the project root is indexed. Called lazily by extraction steps when `ccc_index.status` is `"none"` but ccc is available.
|
|
47
47
|
|
|
48
48
|
### `ccc_bridge.status()`
|
|
49
49
|
|
|
@@ -51,7 +51,7 @@ Returns: list of `{file, score, snippet}` entries ranked by semantic relevance t
|
|
|
51
51
|
1. `ccc --help` — confirms binary exists (exit 0)
|
|
52
52
|
2. `ccc doctor` — confirms daemon is running, extracts version string, validates embedding model
|
|
53
53
|
|
|
54
|
-
**Usage context:** Called exclusively by setup
|
|
54
|
+
**Usage context:** Called exclusively by setup step-01 during tool detection. Downstream workflows read the result from forge-tier.yaml — they do not re-verify.
|
|
55
55
|
|
|
56
56
|
## Confidence
|
|
57
57
|
|
|
@@ -67,7 +67,7 @@ The ccc search is invisible in the output artifact. A Forge+ skill's citations a
|
|
|
67
67
|
|
|
68
68
|
### When Indexing Happens
|
|
69
69
|
|
|
70
|
-
1. **setup
|
|
70
|
+
1. **setup step-01b:** Indexes the project root when setup runs. This is the primary indexing point.
|
|
71
71
|
2. **Workflow discovery steps:** If `ccc_index.status` is `"stale"` or `"none"`, discovery steps trigger a re-index and warn the user. They do not block.
|
|
72
72
|
3. **ccc daemon:** Incremental indexing means re-indexing unchanged files is a near-no-op.
|
|
73
73
|
|
|
@@ -75,13 +75,13 @@ The ccc search is invisible in the output artifact. A Forge+ skill's citations a
|
|
|
75
75
|
|
|
76
76
|
- Staleness threshold: 24 hours (configurable via `ccc_index.staleness_threshold_hours` in forge-tier.yaml)
|
|
77
77
|
- A stale index still produces useful results — the workflow proceeds with the stale index and notes the staleness
|
|
78
|
-
- setup
|
|
78
|
+
- setup is the designated refresh authority
|
|
79
79
|
|
|
80
80
|
### Exclusion Patterns
|
|
81
81
|
|
|
82
82
|
CCC stores its configuration at `{project-root}/.cocoindex_code/settings.yml`. This file contains `exclude_patterns` and `include_patterns` arrays in glob format. `ccc init` creates the file with sensible defaults (excludes `node_modules`, `__pycache__`, hidden dirs, etc.).
|
|
83
83
|
|
|
84
|
-
**SKF infrastructure exclusions:** setup
|
|
84
|
+
**SKF infrastructure exclusions:** setup step-01b appends SKF-specific exclusion patterns after `ccc init` creates the default config. These patterns prevent indexing of framework and output directories that have zero value for source extraction:
|
|
85
85
|
|
|
86
86
|
| Pattern | Purpose |
|
|
87
87
|
|---------|---------|
|
|
@@ -92,20 +92,21 @@ CCC stores its configuration at `{project-root}/.cocoindex_code/settings.yml`. T
|
|
|
92
92
|
| `**/{skills_output_folder}` | Generated skill files (from manifest, default: `skills`) |
|
|
93
93
|
| `**/{forge_data_folder}` | Compilation workspace (from manifest, default: `forge-data`) |
|
|
94
94
|
|
|
95
|
-
The `skills_output_folder` and `forge_data_folder` values are
|
|
95
|
+
The `skills_output_folder` and `forge_data_folder` values are resolved from the workflow activation context (sourced from `_bmad/skf/config.yaml`), falling back to the defaults `skills` and `forge-data`. Patterns are appended only if not already present — user customizations to `settings.yml` are preserved.
|
|
96
96
|
|
|
97
97
|
The configured exclusion patterns are stored in `ccc_index.exclude_patterns` in forge-tier.yaml for reference.
|
|
98
98
|
|
|
99
99
|
### Deferred Discovery (Remote Sources)
|
|
100
100
|
|
|
101
|
-
For remote repository sources (GitHub URLs), CCC cannot operate during step-02b because no local code exists yet. The ephemeral clone happens in step-03. To provide CCC pre-ranking for remote sources:
|
|
101
|
+
For remote repository sources (GitHub URLs), CCC cannot operate during step-02b because no local code exists yet. The workspace clone or ephemeral clone happens in step-03. To provide CCC pre-ranking for remote sources:
|
|
102
102
|
|
|
103
103
|
1. **step-02b:** Detects remote source, sets `{ccc_discovery: []}`, displays deferred message
|
|
104
|
-
2. **step-03:** After
|
|
105
|
-
3. **step-03
|
|
106
|
-
4. **step-03:**
|
|
104
|
+
2. **step-03:** After source resolution succeeds, detects the deferred scenario (`tools.ccc == true AND {ccc_discovery} is empty AND remote_clone_path is set AND tier is Forge+/Deep`)
|
|
105
|
+
3. **step-03 (workspace fast path):** If `{remote_clone_path}/.cocoindex_code/` already exists (persisted workspace index), skips init/index and uses `ccc search --refresh` — CCC daemon re-indexes only if files changed since last index. This is near-instant for unchanged repos.
|
|
106
|
+
4. **step-03 (first-time path):** If no existing CCC index, runs `cd {remote_clone_path} && ccc init`, applies standard build/dependency exclusions (node_modules, dist, .git, vendor, etc.) to `settings.yml`, then runs `ccc index`. Brief-specific `include_patterns`/`exclude_patterns` are NOT written to `settings.yml` — the CCC index is general-purpose. Filtering happens at search result time.
|
|
107
|
+
5. **step-03:** Executes CCC search and populates `{ccc_discovery}` before AST extraction begins
|
|
107
108
|
|
|
108
|
-
|
|
109
|
+
For workspace repos, the CCC index persists at `{workspace_repo_path}/.cocoindex_code/` and is reused across forges, projects, and sessions. For ephemeral fallback clones, the index is not registered in `ccc_index_registry` — the clone is deleted after extraction.
|
|
109
110
|
|
|
110
111
|
### Relationship to QMD Registry
|
|
111
112
|
|
|
@@ -113,7 +114,7 @@ ccc_index and qmd_collections are **orthogonal**:
|
|
|
113
114
|
- `ccc_index` in forge-tier.yaml tracks the persistent source code index (one per project)
|
|
114
115
|
- `qmd_collections[]` in forge-tier.yaml tracks per-skill workflow artifact collections
|
|
115
116
|
- ccc indexes source code for semantic search; QMD indexes curated artifacts for temporal/knowledge search
|
|
116
|
-
- The janitor role for QMD (setup
|
|
117
|
+
- The janitor role for QMD (setup step-03) operates independently of ccc_index
|
|
117
118
|
|
|
118
119
|
## Query Volume Bounds
|
|
119
120
|
|
|
@@ -130,8 +131,8 @@ To prevent excessive daemon calls, workflow steps cap ccc queries:
|
|
|
130
131
|
- Running ccc_bridge.ensure_index() without checking ccc_index.status first — unnecessary re-indexing
|
|
131
132
|
- Passing ccc results directly to the extraction inventory — they are candidates, not extractions
|
|
132
133
|
- Listing ccc as "unavailable" in reports for Quick/Forge tiers — ccc is a Forge+ capability, not something Quick/Forge tiers are missing
|
|
133
|
-
- Indexing without configuring
|
|
134
|
-
-
|
|
134
|
+
- Indexing without configuring exclusions — for project root indexes, apply SKF exclusions (framework/output directories); for workspace repo indexes, apply standard build artifact exclusions (node_modules, dist, .git, etc.)
|
|
135
|
+
- Writing brief-specific `exclude_patterns` to a workspace repo's `settings.yml` — workspace indexes are general-purpose and serve multiple briefs. Apply brief patterns at search result time, not index time. (Exception: ephemeral fallback clones are single-use, so brief exclusions may be applied to their `settings.yml` to reduce indexing time.)
|
|
135
136
|
- Skipping CCC discovery for remote sources without deferring to step-03 — remote repos deserve the same pre-ranking as local sources
|
|
136
137
|
|
|
137
138
|
## Related Fragments
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## Principle
|
|
4
4
|
|
|
5
|
-
Agent-level knowledge files capture cross-cutting principles and patterns that Ferris applies across multiple workflows. They are distinct from workflow `
|
|
5
|
+
Agent-level knowledge files capture cross-cutting principles and patterns that Ferris applies across multiple workflows. They are distinct from workflow `references/` and `assets/` files, which contain step-specific operational artifacts. Knowledge is loaded just-in-time when a workflow step directs — never preloaded into context.
|
|
6
6
|
|
|
7
7
|
## Rationale
|
|
8
8
|
|
|
9
|
-
The SKF module has
|
|
9
|
+
The SKF module has 14 workflows containing operational `references/` and `assets/` files within each skill directory. References contain rules, patterns, and protocols for decision-making; assets contain templates, schemas, and output formats. Both are tightly coupled to individual steps. But several principles — zero hallucination, confidence tiers, provenance — cut across multiple workflows and need a single authoritative source rather than fragmented repetition.
|
|
10
10
|
|
|
11
11
|
Without a knowledge folder:
|
|
12
12
|
- Cross-cutting principles get duplicated across workflow steps
|
|
@@ -26,7 +26,7 @@ With knowledge files:
|
|
|
26
26
|
| [confidence-tiers.md](confidence-tiers.md) | T1/T1-low/T2/T3 trust model and citation formats | AN, BS, CS, QS, SS, US, AS, TS, EX, RA, VS |
|
|
27
27
|
| [progressive-capability.md](progressive-capability.md) | Quick/Forge/Forge+/Deep tier philosophy and behavior adaptation | SF, AN, BS, CS, QS, SS, US, AS, TS, EX, VS, RA |
|
|
28
28
|
| [agentskills-spec.md](agentskills-spec.md) | agentskills.io output format principles and compliance | CS, QS, SS, US, TS, EX |
|
|
29
|
-
| [skill-lifecycle.md](skill-lifecycle.md) | End-to-end pipeline, artifact flow, workflow selection
|
|
29
|
+
| [skill-lifecycle.md](skill-lifecycle.md) | End-to-end pipeline — workflow connections, artifact flow, decision rules for workflow selection, pipeline invocation syntax and aliases | All 14 |
|
|
30
30
|
| [provenance-tracking.md](provenance-tracking.md) | Provenance-map.json entries and file_entries, evidence reports, claim traceability | CS, QS, SS, US, AS, TS |
|
|
31
31
|
| [manual-section-integrity.md](manual-section-integrity.md) | \[MANUAL\] marker preservation and merge algorithm | CS, US, AS, TS, EX |
|
|
32
32
|
| [qmd-registry.md](qmd-registry.md) | Progressive QMD collection registry and collection gate principle | SF, BS, CS, US, AS |
|
|
@@ -43,17 +43,17 @@ With knowledge files:
|
|
|
43
43
|
1. Ferris receives a task or workflow activation
|
|
44
44
|
2. Consult `skf-knowledge-index.csv` to identify relevant knowledge fragments by tags or description. The `tier` column classifies fragments as `core` (always relevant when the domain applies) or `extended` (load only when the specific scenario is active — e.g., `doc-fetcher.md` only when `doc_urls` are present in the brief)
|
|
45
45
|
3. Load only the files needed for the current task — never bulk-load all knowledge
|
|
46
|
-
4. Apply knowledge principles during workflow execution alongside step-specific `
|
|
46
|
+
4. Apply knowledge principles during workflow execution alongside step-specific `references/` and `assets/` files
|
|
47
47
|
|
|
48
48
|
## Knowledge vs. Data
|
|
49
49
|
|
|
50
|
-
| Aspect | Knowledge Files (`knowledge/`) |
|
|
51
|
-
|
|
52
|
-
| Scope | Cross-cutting, multi-workflow | Single workflow, single step |
|
|
53
|
-
| Content | Principles, patterns, judgment rules |
|
|
54
|
-
| Loading | JiT via index lookup | JiT via step instruction |
|
|
55
|
-
| Examples | Zero hallucination, confidence tiers | skill-brief-schema.md,
|
|
56
|
-
| Stability | Rarely changes | Changes with workflow evolution |
|
|
50
|
+
| Aspect | Knowledge Files (`knowledge/`) | References (`references/`) | Assets (`assets/`) |
|
|
51
|
+
|-----------|--------------------------------------|-----------------------------------------|-----------------------------------------|
|
|
52
|
+
| Scope | Cross-cutting, multi-workflow | Single workflow, single step | Single workflow, single step |
|
|
53
|
+
| Content | Principles, patterns, judgment rules | Rules, patterns, protocols, heuristics | Templates, schemas, output formats |
|
|
54
|
+
| Loading | JiT via index lookup | JiT via step instruction | JiT via step instruction |
|
|
55
|
+
| Examples | Zero hallucination, confidence tiers | scoring-rules.md, extraction-patterns.md | skill-brief-schema.md, skill-template.md |
|
|
56
|
+
| Stability | Rarely changes | Changes with workflow evolution | Changes with workflow evolution |
|
|
57
57
|
|
|
58
58
|
## Related Fragments
|
|
59
59
|
|
|
@@ -31,7 +31,7 @@ With progressive capability:
|
|
|
31
31
|
|
|
32
32
|
### Example 1: Tool Detection and Tier Assignment
|
|
33
33
|
|
|
34
|
-
**Context:** The setup
|
|
34
|
+
**Context:** The setup workflow detects available tools and assigns a tier.
|
|
35
35
|
|
|
36
36
|
**Implementation:** Each tool is verified by executing its version command — presence in PATH is insufficient. The tier is the highest level where all required tools pass verification:
|
|
37
37
|
|
|
@@ -125,7 +125,7 @@ When source is remote (GitHub URL) and tier is Forge, Forge+, or Deep:
|
|
|
125
125
|
## Anti-Patterns
|
|
126
126
|
|
|
127
127
|
- Describing Quick tier as "basic" or "limited" — it is fast and legitimate
|
|
128
|
-
- Requiring ast-grep for workflows that work fine without it (setup
|
|
128
|
+
- Requiring ast-grep for workflows that work fine without it (setup, brief-skill)
|
|
129
129
|
- Mixing tier capabilities in a single extraction (e.g., T1 citations when only source reading was used)
|
|
130
130
|
- Failing a workflow because the tier is "too low" — adapt behavior instead
|
|
131
131
|
- Silent degradation when source is remote at Forge/Deep tier — always warn with actionable guidance
|
|
@@ -136,4 +136,4 @@ When source is remote (GitHub URL) and tier is Forge, Forge+, or Deep:
|
|
|
136
136
|
- [skill-lifecycle.md](skill-lifecycle.md) — how tier affects workflow selection and artifact flow
|
|
137
137
|
- [zero-hallucination.md](zero-hallucination.md) — Quick tier has lower confidence but the same integrity standard
|
|
138
138
|
|
|
139
|
-
_Source: distilled from forge-tier.yaml, tier-rules.md, and setup
|
|
139
|
+
_Source: distilled from forge-tier.yaml, tier-rules.md, and setup workflow_
|
|
@@ -36,7 +36,9 @@ With provenance tracking:
|
|
|
36
36
|
**Implementation:**
|
|
37
37
|
```json
|
|
38
38
|
{
|
|
39
|
+
"provenance_version": "2.0",
|
|
39
40
|
"skill_name": "express-skill",
|
|
41
|
+
"skill_type": "single",
|
|
40
42
|
"source_repo": "https://github.com/expressjs/express",
|
|
41
43
|
"source_commit": "abc1234",
|
|
42
44
|
"source_ref": "v0.5.0",
|
|
@@ -45,24 +47,28 @@ With provenance tracking:
|
|
|
45
47
|
{
|
|
46
48
|
"export_name": "createServer",
|
|
47
49
|
"export_type": "function",
|
|
50
|
+
"source_library": "express",
|
|
48
51
|
"params": ["options: ServerOptions"],
|
|
49
52
|
"return_type": "Server",
|
|
50
53
|
"source_file": "src/server.ts",
|
|
51
54
|
"source_line": 23,
|
|
52
55
|
"confidence": "T1",
|
|
53
56
|
"extraction_method": "ast-grep",
|
|
54
|
-
"ast_node_type": "export_statement > function_declaration"
|
|
57
|
+
"ast_node_type": "export_statement > function_declaration",
|
|
58
|
+
"signature_source": "T1"
|
|
55
59
|
},
|
|
56
60
|
{
|
|
57
61
|
"export_name": "parseConfig",
|
|
58
62
|
"export_type": "function",
|
|
63
|
+
"source_library": "express",
|
|
59
64
|
"params": ["input"],
|
|
60
65
|
"return_type": null,
|
|
61
66
|
"source_file": "src/config.ts",
|
|
62
67
|
"source_line": 45,
|
|
63
68
|
"confidence": "T1-low",
|
|
64
69
|
"extraction_method": "source-read",
|
|
65
|
-
"ast_node_type": null
|
|
70
|
+
"ast_node_type": null,
|
|
71
|
+
"signature_source": "T1-low"
|
|
66
72
|
}
|
|
67
73
|
]
|
|
68
74
|
}
|
|
@@ -125,7 +131,7 @@ With provenance tracking:
|
|
|
125
131
|
|
|
126
132
|
**Key Points:**
|
|
127
133
|
- Provenance enables precise diffing — compare specific claims, not entire files
|
|
128
|
-
- Severity classification uses the rules from audit-skill/
|
|
134
|
+
- Severity classification uses the rules from audit-skill/references/severity-rules.md
|
|
129
135
|
- The drift report feeds into the update-skill workflow as re-extraction targets
|
|
130
136
|
|
|
131
137
|
### Example 4: Provenance Preservation During Updates
|
|
@@ -6,7 +6,7 @@ QMD collections in the Skill Forge follow a **progressive registry architecture*
|
|
|
6
6
|
|
|
7
7
|
## Rationale
|
|
8
8
|
|
|
9
|
-
Early SKF versions used a blind auto-index strategy: setup
|
|
9
|
+
Early SKF versions used a blind auto-index strategy: setup would scan all project directories and index them into QMD collections. This created three problems:
|
|
10
10
|
|
|
11
11
|
- On fresh workspaces, auto-indexing found nothing — wasted work
|
|
12
12
|
- Raw source code indexing produced low signal-to-noise search results
|
|
@@ -22,7 +22,7 @@ The progressive registry solves all three by indexing **curated workflow artifac
|
|
|
22
22
|
| --- | --- | --- |
|
|
23
23
|
| **Producer** | brief-skill, create-skill | Creates QMD collections from workflow artifacts and registers them in forge-tier.yaml |
|
|
24
24
|
| **Consumer** | audit-skill, update-skill, create-stack-skill | Reads the registry, discovers collections by skill name and type, queries via qmd_bridge (see [tool-resolution.md](tool-resolution.md) for concrete resolution) |
|
|
25
|
-
| **Janitor** | setup
|
|
25
|
+
| **Janitor** | setup | Cross-references live QMD collections against the registry, cleans orphans and stale entries |
|
|
26
26
|
|
|
27
27
|
### Registry Schema
|
|
28
28
|
|
|
@@ -45,7 +45,7 @@ qmd_collections:
|
|
|
45
45
|
|
|
46
46
|
**Optional field: `status`**
|
|
47
47
|
|
|
48
|
-
The `status` field is only present when QMD embed verification fails during collection creation. When `status: "pending"` is set, the collection exists in QMD but vector embeddings may be incomplete — only BM25 keyword `search` is reliable. `vector_search` and `deep_search` may return no results until re-embedded. Collections without a `status` field are fully operational. The setup
|
|
48
|
+
The `status` field is only present when QMD embed verification fails during collection creation. When `status: "pending"` is set, the collection exists in QMD but vector embeddings may be incomplete — only BM25 keyword `search` is reliable. `vector_search` and `deep_search` may return no results until re-embedded. Collections without a `status` field are fully operational. The setup janitor should flag `"pending"` collections for re-embedding.
|
|
49
49
|
|
|
50
50
|
### Collection Types
|
|
51
51
|
|
|
@@ -70,7 +70,7 @@ create-skill compiles skill → indexes {name}-extraction → registers in forge
|
|
|
70
70
|
audit-skill reads registry → queries {name}-extraction for drift baseline
|
|
71
71
|
update-skill reads registry → queries {name}-extraction for T2 enrichment
|
|
72
72
|
↓
|
|
73
|
-
setup
|
|
73
|
+
setup reads registry + QMD state → cleans orphans, removes stale entries
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
## Collection Gate
|
|
@@ -111,8 +111,8 @@ The `ccc_index_registry` array in forge-tier.yaml is a **parallel but separate**
|
|
|
111
111
|
|--------|----------------|-------------------|
|
|
112
112
|
| **What is indexed** | Curated workflow artifacts (SKILL.md, briefs, temporal data) | Source code (the actual codebase) |
|
|
113
113
|
| **Index engine** | QMD (BM25 + optional vector search) | cocoindex-code (AST + vector embeddings) |
|
|
114
|
-
| **Lifecycle** | Per-skill: created by create-skill, consumed by audit/update-skill | Per-project: created by setup
|
|
115
|
-
| **Janitor** | setup
|
|
114
|
+
| **Lifecycle** | Per-skill: created by create-skill, consumed by audit/update-skill | Per-project: created by setup, verified by create-skill |
|
|
115
|
+
| **Janitor** | setup step-03 (orphan/stale QMD collection cleanup) | setup step-03 section 5b (stale path cleanup) |
|
|
116
116
|
| **Availability** | Deep tier only | Forge+ and Deep tiers |
|
|
117
117
|
|
|
118
118
|
These registries are orthogonal — they never reference each other, and their janitor sections operate independently.
|
|
@@ -139,7 +139,7 @@ Then append/replace the registry entry in forge-tier.yaml. Failures never block
|
|
|
139
139
|
|
|
140
140
|
**Implementation:** Read `qmd_collections` from forge-tier.yaml. Find entry where `skill_name` matches AND `type` is `"extraction"`. If found, query via qmd_bridge. If not found, log and continue without T2 enrichment — not an error.
|
|
141
141
|
|
|
142
|
-
### Example 3: Janitor Hygiene (setup
|
|
142
|
+
### Example 3: Janitor Hygiene (setup)
|
|
143
143
|
|
|
144
144
|
**Context:** Setup-forge verifies QMD health on every run.
|
|
145
145
|
|
|
@@ -151,4 +151,4 @@ Then append/replace the registry entry in forge-tier.yaml. Failures never block
|
|
|
151
151
|
- [skill-lifecycle.md](skill-lifecycle.md) — end-to-end pipeline showing where producers and consumers sit
|
|
152
152
|
- [provenance-tracking.md](provenance-tracking.md) — provenance map that provides file:line context without QMD
|
|
153
153
|
|
|
154
|
-
_Source: progressive QMD registry architecture implemented across setup
|
|
154
|
+
_Source: progressive QMD registry architecture implemented across setup, brief-skill, create-skill, audit-skill, and update-skill workflows_
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
id,name,description,tags,tier,fragment_file
|
|
2
|
-
overview,Knowledge Overview,"Entry point — knowledge map, JiT loading protocol, relationship to workflow
|
|
2
|
+
overview,Knowledge Overview,"Entry point — knowledge map, JiT loading protocol, relationship to workflow references/ and assets/ files","knowledge,navigation,jit-loading",core,knowledge/overview.md
|
|
3
3
|
zero-hallucination,Zero Hallucination Principle,"Foundational principle — uncitable content is excluded not guessed, every claim traces to source","integrity,provenance,extraction",core,knowledge/zero-hallucination.md
|
|
4
4
|
confidence-tiers,Confidence Tiers,"Trust model — T1/T1-low/T2/T3 labels, citation formats, tier interaction rules","confidence,citations,evidence,tiers",core,knowledge/confidence-tiers.md
|
|
5
5
|
progressive-capability,Progressive Capability,"Quick/Forge/Forge+/Deep philosophy — every tier is legitimate, positive framing, graceful degradation","tiers,quick,forge,forge+,deep,capability",core,knowledge/progressive-capability.md
|
|
6
6
|
ccc-bridge,CCC Bridge,"cocoindex-code semantic discovery — ccc_bridge interface, indexing lifecycle, Forge+ tier, discovery-before-extraction principle","ccc,cocoindex,semantic,discovery,forge+,bridge",core,knowledge/ccc-bridge.md
|
|
7
7
|
agentskills-spec,agentskills.io Specification,"Format principles — frontmatter, progressive disclosure, directory structure, compliance rules, MCP tool naming, script quality, development methodology","agentskills,format,compliance,output,mcp,scripts,methodology",core,knowledge/agentskills-spec.md
|
|
8
|
-
skill-lifecycle,Skill Lifecycle,"End-to-end pipeline — workflow connections, artifact flow, decision rules for workflow selection","lifecycle,pipeline,workflows,artifacts",core,knowledge/skill-lifecycle.md
|
|
8
|
+
skill-lifecycle,Skill Lifecycle,"End-to-end pipeline — workflow connections, artifact flow, decision rules for workflow selection, pipeline invocation syntax and aliases","lifecycle,pipeline,workflows,artifacts,chaining,headless",core,knowledge/skill-lifecycle.md
|
|
9
9
|
provenance-tracking,Provenance Tracking,"Provenance mechanism — provenance-map.json entries and file_entries, evidence reports, claim traceability","provenance,evidence,traceability,citations,file-entries",core,knowledge/provenance-tracking.md
|
|
10
10
|
manual-section-integrity,Manual Section Integrity,"[MANUAL] preservation — marker format, merge algorithm, orphan detection","manual,preservation,merge,markers",core,knowledge/manual-section-integrity.md
|
|
11
11
|
qmd-registry,QMD Collection Registry,"Progressive registry architecture — producer/consumer/janitor roles, collection gate principle, forge-tier.yaml registry schema","qmd,registry,collections,deep,indexing",core,knowledge/qmd-registry.md
|
|
@@ -167,6 +167,21 @@ SS (compose) → SKILL.md (stack skill synthesized from individual skills + arch
|
|
|
167
167
|
- SS detects integration patterns (e.g., "express + passport always used together for auth routes")
|
|
168
168
|
- Individual skills track per-library provenance; stack skills track inter-library relationships
|
|
169
169
|
|
|
170
|
+
## Pipeline Invocation
|
|
171
|
+
|
|
172
|
+
Users can chain workflows by providing multiple codes to Ferris:
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
BS CS TS EX — space-separated
|
|
176
|
+
forge — alias for BS CS TS EX
|
|
177
|
+
forge-quick — alias for QS TS EX
|
|
178
|
+
onboard — alias for AN CS TS EX
|
|
179
|
+
maintain — alias for AS US TS EX
|
|
180
|
+
CS[cocoindex] TS[min:80] EX — with arguments and circuit breakers
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Pipelines automatically activate headless mode. The forger passes data between workflows using the artifact flow described above. Circuit breakers halt the pipeline when output quality falls below a threshold (e.g., TS score < 60 blocks EX). See `shared/references/pipeline-contracts.md` for the full specification.
|
|
184
|
+
|
|
170
185
|
## Integration Points
|
|
171
186
|
|
|
172
187
|
- **Setup Forge** must run before any other workflow — it establishes the tier
|
|
@@ -183,4 +198,4 @@ SS (compose) → SKILL.md (stack skill synthesized from individual skills + arch
|
|
|
183
198
|
- [provenance-tracking.md](provenance-tracking.md) — how provenance flows through the pipeline
|
|
184
199
|
- [version-paths.md](version-paths.md) — version-aware storage layout, path templates, and migration rules
|
|
185
200
|
|
|
186
|
-
_Source: synthesized from all
|
|
201
|
+
_Source: synthesized from all 14 SKILL.md files (including VS, RA, RS, DS) and module-help.csv_
|
|
@@ -50,6 +50,6 @@ Split-body affects only SKILL.md content movement to `references/`. The `scripts
|
|
|
50
50
|
|
|
51
51
|
- [agentskills-spec.md](agentskills-spec.md) — 500-line guideline for SKILL.md body size and the `references/` directory structure
|
|
52
52
|
- [skill-lifecycle.md](skill-lifecycle.md) — where split-body decisions fit in the compilation pipeline
|
|
53
|
-
- `test-skill/
|
|
53
|
+
- `test-skill/references/scoring-rules.md` — tessl/split-body interaction and the pre-split baseline recommendation during test reporting
|
|
54
54
|
|
|
55
55
|
_Source: derived from agentskills.io split-body guidance and Vercel agent accuracy research (inline vs on-demand retrieval)_
|
|
@@ -35,16 +35,21 @@ All workflows MUST use these templates when constructing paths. Never hardcode p
|
|
|
35
35
|
| `{forge_version}` | `{forge_data_folder}/{skill-name}/{version}/` | Version-specific workspace artifacts — provenance-map.json, evidence-report.md, extraction-rules.yaml, test-report |
|
|
36
36
|
| `{forge_group}` | `{forge_data_folder}/{skill-name}/` | Parent directory — contains skill-brief.yaml (version-independent) and version subdirectories |
|
|
37
37
|
|
|
38
|
-
###
|
|
38
|
+
### IDE Skill Root Paths (Unchanged — Flat)
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
|
40
|
+
Each IDE has its own skill root path derived from its `target_dir` in `platform-codes.yaml`. The snippet `root:` line uses this path. Examples:
|
|
41
|
+
|
|
42
|
+
| IDE | Root Path |
|
|
43
|
+
|-----|-----------|
|
|
44
|
+
| `claude-code` | `.claude/skills/{skill-name}/` |
|
|
43
45
|
| `cursor` | `.cursor/skills/{skill-name}/` |
|
|
44
|
-
| `copilot` | `.
|
|
45
|
-
|
|
|
46
|
+
| `github-copilot` | `.github/skills/{skill-name}/` |
|
|
47
|
+
| `windsurf` | `.windsurf/skills/{skill-name}/` |
|
|
48
|
+
| _(draft/legacy)_ | `skills/{skill-name}/` |
|
|
49
|
+
|
|
50
|
+
See `skf-export-skill/assets/managed-section-format.md` for the complete IDE → Context File Mapping table with all 23 IDE root paths.
|
|
46
51
|
|
|
47
|
-
|
|
52
|
+
IDE skill root paths are **not versioned**. The export workflow resolves the active version from the manifest and references its `{skill_package}` when building the managed section. The snippet `root:` always uses the flat IDE skill root path.
|
|
48
53
|
|
|
49
54
|
## Directory Structure
|
|
50
55
|
|
|
@@ -139,12 +144,12 @@ The export manifest gains version awareness:
|
|
|
139
144
|
"active_version": "0.6.0",
|
|
140
145
|
"versions": {
|
|
141
146
|
"0.5.0": {
|
|
142
|
-
"
|
|
147
|
+
"ides": ["claude-code"],
|
|
143
148
|
"last_exported": "2026-03-15",
|
|
144
149
|
"status": "archived"
|
|
145
150
|
},
|
|
146
151
|
"0.6.0": {
|
|
147
|
-
"
|
|
152
|
+
"ides": ["claude-code", "github-copilot"],
|
|
148
153
|
"last_exported": "2026-04-04",
|
|
149
154
|
"status": "active"
|
|
150
155
|
}
|
|
@@ -158,7 +163,7 @@ The export manifest gains version awareness:
|
|
|
158
163
|
- `schema_version`: `"2"` — enables v1-to-v2 migration detection
|
|
159
164
|
- `active_version`: The version whose `{skill_package}` supplies the context snippet for the managed section. Must match exactly one version with `status: "active"`
|
|
160
165
|
- `versions.{v}.status`: `"active"` (currently exported), `"archived"` (previously exported, retained on disk), `"deprecated"` (dropped via drop-skill workflow, excluded from all exports), `"draft"` (created but never exported)
|
|
161
|
-
- `versions.{v}.
|
|
166
|
+
- `versions.{v}.ides`: Array of IDE identifiers from `config.yaml.ides` whose context file this version was last exported to (e.g. `["claude-code", "cursor"]`). NOT context file names, NOT skill root paths — the canonical IDE identifier used by the installer. Pre-rename manifests used `platforms` for this field; `skf-manifest-ops.py` silently upgrades them on read
|
|
162
167
|
- `versions.{v}.last_exported`: ISO date of the last export
|
|
163
168
|
|
|
164
169
|
**Only one version per skill can have `status: "active"` at any time.**
|
|
@@ -180,7 +185,7 @@ Renames a skill across all versions. Because the agentskills.io spec requires `n
|
|
|
180
185
|
8. Export manifest: remove old key, add new key with same version data
|
|
181
186
|
9. Platform context files (CLAUDE.md, AGENTS.md, .cursorrules): rebuild managed sections
|
|
182
187
|
|
|
183
|
-
Rename is transactional — copy-verify-delete pattern. If any step fails, old skill remains intact. See `
|
|
188
|
+
Rename is transactional — copy-verify-delete pattern. If any step fails, old skill remains intact. See `skf-rename-skill/`.
|
|
184
189
|
|
|
185
190
|
### Drop (DS - Drop Skill)
|
|
186
191
|
|
|
@@ -194,7 +199,7 @@ Drops a specific version or the entire skill with two modes:
|
|
|
194
199
|
|
|
195
200
|
**Skill-level drop:** Removes the entire `{skill_group}` from the manifest. If purge, also deletes `{skill_group}` and `{forge_group}` directories.
|
|
196
201
|
|
|
197
|
-
See `
|
|
202
|
+
See `skf-drop-skill/`.
|
|
198
203
|
|
|
199
204
|
## Version Sanitization
|
|
200
205
|
|
package/src/module-help.csv
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
module,
|
|
2
|
-
skf,
|
|
3
|
-
skf,
|
|
4
|
-
skf,
|
|
5
|
-
skf,
|
|
6
|
-
skf,
|
|
7
|
-
skf,
|
|
8
|
-
skf,
|
|
9
|
-
skf,
|
|
10
|
-
skf,
|
|
11
|
-
skf,
|
|
12
|
-
skf,
|
|
13
|
-
skf,
|
|
14
|
-
skf,
|
|
15
|
-
skf,
|
|
16
|
-
skf,
|
|
17
|
-
skf,
|
|
1
|
+
module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
|
|
2
|
+
skf,skf-forger,Ferris — Skill Forge Agent,FF,"Skill compilation specialist — the forge master. Invoke to access all SKF workflows via guided menu.",,,anytime,,,false,,
|
|
3
|
+
skf,skf-setup,Setup Forge,SF,"Initialize forge environment — detect tools and set capability tier (Quick/Forge/Forge+/Deep)",,,anytime,,"skf-analyze-source,skf-brief-skill,skf-quick-skill,skf-verify-stack",false,,forge-tier.yaml
|
|
4
|
+
skf,skf-analyze-source,Analyze Source,AN,"Discover what to skill in a large repo — produces recommended skill briefs",,,anytime,skf-setup,skf-brief-skill,false,forge_data_folder,skill-brief.yaml
|
|
5
|
+
skf,skf-brief-skill,Brief Skill,BS,"Design a skill scope through guided discovery",,,anytime,"skf-setup,skf-analyze-source",skf-create-skill,false,forge_data_folder,skill-brief.yaml
|
|
6
|
+
skf,skf-create-skill,Create Skill,CS,"Compile a skill from a brief — supports --batch for multiple briefs",,--batch,anytime,skf-brief-skill,"skf-test-skill,skf-create-stack-skill",false,skills_output_folder,SKILL.md
|
|
7
|
+
skf,skf-quick-skill,Quick Skill,QS,"Fast skill from a package name or GitHub URL — no brief needed",,<package-name | github-url>,anytime,skf-setup,skf-test-skill,false,skills_output_folder,SKILL.md
|
|
8
|
+
skf,skf-create-stack-skill,Stack Skill,SS,"Consolidated project stack skill with integration patterns — code-mode or compose-mode",,,anytime,skf-create-skill,skf-test-skill,false,skills_output_folder,SKILL.md
|
|
9
|
+
skf,skf-update-skill,Update Skill,US,"Smart regeneration preserving [MANUAL] sections after source changes",,,anytime,skf-export-skill,,false,skills_output_folder,SKILL.md
|
|
10
|
+
skf,skf-audit-skill,Audit Skill,AS,"Drift detection between skill and current source code",,,anytime,skf-export-skill,,false,,drift report
|
|
11
|
+
skf,skf-verify-stack,Verify Stack,VS,"Pre-code stack feasibility verification against architecture and PRD documents",,,anytime,skf-setup,skf-refine-architecture,false,forge_data_folder,feasibility-report-{project_name}.md
|
|
12
|
+
skf,skf-refine-architecture,Refine Architecture,RA,"Improve architecture doc using verified skill data and VS feasibility findings",,,anytime,skf-verify-stack,,false,output_folder,refined-architecture-{project_name}.md
|
|
13
|
+
skf,skf-test-skill,Test Skill,TS,"Cognitive completeness verification — quality gate before export",,,anytime,"skf-create-skill,skf-create-stack-skill,skf-quick-skill",skf-export-skill,false,,completeness score
|
|
14
|
+
skf,skf-export-skill,Export Skill,EX,"Package for distribution and inject context into CLAUDE.md/AGENTS.md/.cursorrules",,,anytime,skf-test-skill,"skf-update-skill,skf-audit-skill,skf-rename-skill,skf-drop-skill",false,skills_output_folder,agentskills.io package
|
|
15
|
+
skf,skf-rename-skill,Rename Skill,RS,"Rename a skill across all its versions — transactional copy-verify-delete with platform context rebuild",,,anytime,skf-export-skill,,false,skills_output_folder,renamed skill group
|
|
16
|
+
skf,skf-drop-skill,Drop Skill,DS,"Drop a specific skill version or an entire skill — soft (deprecate) or hard (purge) with platform context rebuild",,,anytime,skf-export-skill,,false,skills_output_folder,updated manifest
|
|
17
|
+
skf,skf-forger,Knowledge Index,KI,"Cross-cutting principles and patterns — JiT loaded by workflows via index lookup",,,anytime,,,false,,knowledge fragments
|
|
18
|
+
skf,skf-forger,Workflow Status,WS,"Show current lifecycle position, active skill briefs, and forge tier status",,,anytime,,,false,,lifecycle status
|