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.
Files changed (268) hide show
  1. package/.claude-plugin/marketplace.json +39 -0
  2. package/.gitattributes +16 -0
  3. package/README.md +105 -38
  4. package/docs/404.md +13 -10
  5. package/docs/RELEASING.md +185 -0
  6. package/docs/STABILITY.md +123 -0
  7. package/docs/_data/pinned.yaml +98 -0
  8. package/docs/agents.md +16 -11
  9. package/docs/architecture.md +221 -0
  10. package/docs/bmad-synergy.md +11 -13
  11. package/docs/concepts.md +18 -108
  12. package/docs/examples.md +121 -80
  13. package/docs/getting-started.md +85 -147
  14. package/docs/how-it-works.md +25 -536
  15. package/docs/index.md +44 -27
  16. package/docs/skill-model.md +328 -0
  17. package/docs/troubleshooting.md +39 -0
  18. package/docs/verifying-a-skill.md +232 -0
  19. package/docs/why-skf.md +93 -0
  20. package/docs/workflows.md +119 -13
  21. package/package.json +25 -4
  22. package/src/README.md +23 -25
  23. package/src/forger/forge-tier.yaml +4 -2
  24. package/src/forger/preferences.yaml +7 -1
  25. package/src/knowledge/agentskills-spec.md +1 -1
  26. package/src/knowledge/architecture-verification.md +1 -1
  27. package/src/knowledge/ccc-bridge.md +16 -15
  28. package/src/knowledge/overview.md +11 -11
  29. package/src/knowledge/progressive-capability.md +3 -3
  30. package/src/knowledge/provenance-tracking.md +9 -3
  31. package/src/knowledge/qmd-registry.md +8 -8
  32. package/src/knowledge/skf-knowledge-index.csv +2 -2
  33. package/src/knowledge/skill-lifecycle.md +16 -1
  34. package/src/knowledge/split-body-strategy.md +1 -1
  35. package/src/knowledge/version-paths.md +17 -12
  36. package/src/module-help.csv +18 -17
  37. package/src/shared/health-check.md +372 -0
  38. package/src/shared/references/feasibility-report-schema.md +86 -0
  39. package/src/shared/references/headless-gate-convention.md +62 -0
  40. package/src/shared/references/output-contract-schema.md +35 -0
  41. package/src/shared/references/pipeline-contracts.md +102 -0
  42. package/src/shared/scripts/skf-atomic-write.py +370 -0
  43. package/src/shared/scripts/skf-manifest-ops.py +236 -0
  44. package/src/shared/scripts/skf-preflight.py +164 -0
  45. package/src/shared/scripts/skf-rebuild-managed-sections.py +201 -0
  46. package/src/shared/scripts/skf-severity-classify.py +163 -0
  47. package/src/shared/scripts/skf-skill-inventory.py +210 -0
  48. package/src/shared/scripts/skf-structural-diff.py +257 -0
  49. package/src/shared/scripts/skf-validate-frontmatter.py +318 -0
  50. package/src/shared/scripts/skf-validate-output.py +247 -0
  51. package/src/skf-analyze-source/SKILL.md +57 -0
  52. package/src/skf-analyze-source/assets/skill-brief-schema.md +125 -0
  53. package/src/skf-analyze-source/references/unit-detection-heuristics.md +124 -0
  54. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01-init.md +6 -66
  55. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01b-continue.md +4 -59
  56. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-02-scan-project.md +7 -68
  57. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-03-identify-units.md +6 -66
  58. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-04-map-and-detect.md +7 -68
  59. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-05-recommend.md +6 -66
  60. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-06-generate-briefs.md +14 -71
  61. package/src/skf-analyze-source/steps-c/step-07-health-check.md +22 -0
  62. package/src/skf-audit-skill/SKILL.md +59 -0
  63. package/src/{workflows/audit-skill/data → skf-audit-skill/assets}/drift-report-template.md +7 -7
  64. package/src/{workflows/audit-skill/data → skf-audit-skill/references}/severity-rules.md +11 -11
  65. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-01-init.md +24 -68
  66. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-02-re-index.md +36 -71
  67. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-03-structural-diff.md +21 -63
  68. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-04-semantic-diff.md +6 -65
  69. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-05-severity-classify.md +5 -63
  70. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-06-report.md +10 -64
  71. package/src/skf-audit-skill/steps-c/step-07-health-check.md +22 -0
  72. package/src/skf-brief-skill/SKILL.md +53 -0
  73. package/src/{workflows/brief-skill/data → skf-brief-skill/assets}/scope-templates.md +23 -0
  74. package/src/skf-brief-skill/assets/skill-brief-schema.md +206 -0
  75. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-01-gather-intent.md +6 -67
  76. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-02-analyze-target.md +6 -66
  77. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-03-scope-definition.md +12 -68
  78. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-04-confirm-brief.md +5 -63
  79. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-05-write-brief.md +10 -70
  80. package/src/skf-brief-skill/steps-c/step-06-health-check.md +22 -0
  81. package/src/skf-create-skill/SKILL.md +63 -0
  82. package/src/{workflows/create-skill/data → skf-create-skill/assets}/compile-assembly-rules.md +60 -0
  83. package/src/{workflows/create-skill/data → skf-create-skill/assets}/skill-sections.md +92 -23
  84. package/src/skf-create-skill/assets/tessl-dismissal-rules.md +102 -0
  85. package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns-tracing.md +13 -13
  86. package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns.md +8 -3
  87. package/src/skf-create-skill/references/source-resolution-protocols.md +239 -0
  88. package/src/{workflows/create-skill/data → skf-create-skill/references}/tier-degradation-rules.md +8 -7
  89. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-01-load-brief.md +25 -63
  90. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-02-ecosystem-check.md +8 -64
  91. package/src/skf-create-skill/steps-c/step-03-extract.md +379 -0
  92. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-03d-component-extraction.md +18 -35
  93. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-04-enrich.md +12 -69
  94. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-05-compile.md +71 -75
  95. package/src/skf-create-skill/steps-c/step-06-validate.md +267 -0
  96. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-07-generate-artifacts.md +30 -74
  97. package/src/skf-create-skill/steps-c/step-08-report.md +145 -0
  98. package/src/skf-create-skill/steps-c/step-09-health-check.md +23 -0
  99. package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-02b-ccc-discover.md +8 -66
  100. package/src/skf-create-skill/steps-c/sub/step-03b-fetch-temporal.md +229 -0
  101. package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-03c-fetch-docs.md +18 -42
  102. package/src/skf-create-stack-skill/SKILL.md +64 -0
  103. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/assets}/stack-skill-template.md +2 -1
  104. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/compose-mode-rules.md +19 -5
  105. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/integration-patterns.md +1 -1
  106. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/manifest-patterns.md +10 -10
  107. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-01-init.md +14 -55
  108. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-02-detect-manifests.md +29 -63
  109. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-03-rank-and-confirm.md +9 -59
  110. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-04-parallel-extract.md +29 -64
  111. package/src/skf-create-stack-skill/steps-c/step-05-detect-integrations.md +164 -0
  112. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-06-compile-stack.md +7 -60
  113. package/src/skf-create-stack-skill/steps-c/step-07-generate-output.md +328 -0
  114. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-08-validate.md +17 -63
  115. package/src/skf-create-stack-skill/steps-c/step-09-report.md +128 -0
  116. package/src/skf-create-stack-skill/steps-c/step-10-health-check.md +22 -0
  117. package/src/skf-drop-skill/SKILL.md +57 -0
  118. package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-01-select.md +9 -69
  119. package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-02-execute.md +30 -106
  120. package/src/skf-drop-skill/steps-c/step-03-report.md +83 -0
  121. package/src/skf-drop-skill/steps-c/step-04-health-check.md +22 -0
  122. package/src/skf-export-skill/SKILL.md +57 -0
  123. package/src/skf-export-skill/assets/managed-section-format.md +138 -0
  124. package/src/{workflows/export-skill/data → skf-export-skill/assets}/snippet-format.md +8 -12
  125. package/src/skf-export-skill/steps-c/step-01-load-skill.md +247 -0
  126. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-02-package.md +5 -58
  127. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-03-generate-snippet.md +15 -77
  128. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-04-update-context.md +59 -133
  129. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-05-token-report.md +4 -58
  130. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-06-summary.md +16 -68
  131. package/src/skf-export-skill/steps-c/step-07-health-check.md +22 -0
  132. package/src/skf-forger/SKILL.md +110 -0
  133. package/src/skf-forger/bmad-skill-manifest.yaml +11 -0
  134. package/src/skf-quick-skill/SKILL.md +56 -0
  135. package/src/{workflows/quick-skill/data → skf-quick-skill/references}/registry-resolution.md +6 -6
  136. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-01-resolve-target.md +9 -62
  137. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-02-ecosystem-check.md +5 -59
  138. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-03-quick-extract.md +18 -61
  139. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-04-compile.md +6 -60
  140. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-05-validate.md +58 -78
  141. package/src/skf-quick-skill/steps-c/step-06-write.md +73 -0
  142. package/src/skf-quick-skill/steps-c/step-07-health-check.md +22 -0
  143. package/src/skf-refine-architecture/SKILL.md +57 -0
  144. package/src/{workflows/refine-architecture/data → skf-refine-architecture/references}/refinement-rules.md +16 -16
  145. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-01-init.md +6 -63
  146. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-02-gap-analysis.md +29 -71
  147. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-03-issue-detection.md +5 -65
  148. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-04-improvements.md +5 -64
  149. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-05-compile.md +5 -56
  150. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-06-report.md +11 -64
  151. package/src/skf-refine-architecture/steps-c/step-07-health-check.md +22 -0
  152. package/src/skf-rename-skill/SKILL.md +58 -0
  153. package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-01-select.md +12 -73
  154. package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-02-execute.md +32 -113
  155. package/src/skf-rename-skill/steps-c/step-03-report.md +83 -0
  156. package/src/skf-rename-skill/steps-c/step-04-health-check.md +22 -0
  157. package/src/skf-setup/SKILL.md +55 -0
  158. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01-detect-and-tier.md +6 -62
  159. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01b-ccc-index.md +9 -65
  160. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-02-write-config.md +15 -60
  161. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-03-auto-index.md +7 -66
  162. package/src/skf-setup/steps-c/step-04-report.md +92 -0
  163. package/src/skf-setup/steps-c/step-05-health-check.md +22 -0
  164. package/src/skf-test-skill/SKILL.md +59 -0
  165. package/src/skf-test-skill/references/migration-section-rules.md +114 -0
  166. package/src/skf-test-skill/references/scoring-rules.md +207 -0
  167. package/src/skf-test-skill/references/source-access-protocol.md +109 -0
  168. package/src/skf-test-skill/scripts/compute-score.py +310 -0
  169. package/src/skf-test-skill/steps-c/step-01-init.md +238 -0
  170. package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-02-detect-mode.md +4 -62
  171. package/src/skf-test-skill/steps-c/step-03-coverage-check.md +347 -0
  172. package/src/skf-test-skill/steps-c/step-04-coherence-check.md +239 -0
  173. package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-04b-external-validators.md +42 -77
  174. package/src/skf-test-skill/steps-c/step-05-score.md +266 -0
  175. package/src/skf-test-skill/steps-c/step-06-report.md +290 -0
  176. package/src/skf-test-skill/steps-c/step-07-health-check.md +25 -0
  177. package/src/skf-test-skill/templates/test-report-template.md +58 -0
  178. package/src/skf-update-skill/SKILL.md +58 -0
  179. package/src/{workflows/update-skill/data → skf-update-skill/references}/manual-section-rules.md +6 -6
  180. package/src/{workflows/update-skill/data → skf-update-skill/references}/merge-conflict-rules.md +5 -5
  181. package/src/skf-update-skill/references/remote-source-resolution.md +94 -0
  182. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-01-init.md +22 -69
  183. package/src/skf-update-skill/steps-c/step-02-detect-changes.md +255 -0
  184. package/src/skf-update-skill/steps-c/step-03-re-extract.md +336 -0
  185. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-04-merge.md +60 -72
  186. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-05-validate.md +5 -62
  187. package/src/skf-update-skill/steps-c/step-06-write.md +278 -0
  188. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-07-report.md +11 -69
  189. package/src/skf-update-skill/steps-c/step-08-health-check.md +22 -0
  190. package/src/skf-verify-stack/SKILL.md +60 -0
  191. package/src/skf-verify-stack/assets/feasibility-report-template.md +76 -0
  192. package/src/{workflows/verify-stack/data → skf-verify-stack/references}/coverage-patterns.md +12 -4
  193. package/src/skf-verify-stack/references/integration-verification-rules.md +78 -0
  194. package/src/skf-verify-stack/steps-c/step-01-init.md +178 -0
  195. package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-02-coverage.md +27 -72
  196. package/src/skf-verify-stack/steps-c/step-03-integrations.md +179 -0
  197. package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-04-requirements.md +14 -67
  198. package/src/skf-verify-stack/steps-c/step-05-synthesize.md +147 -0
  199. package/src/skf-verify-stack/steps-c/step-06-report.md +156 -0
  200. package/src/skf-verify-stack/steps-c/step-07-health-check.md +25 -0
  201. package/tools/cli/commands/install.js +1 -1
  202. package/tools/cli/commands/status.js +21 -23
  203. package/tools/cli/commands/uninstall.js +11 -19
  204. package/tools/cli/commands/update.js +2 -2
  205. package/tools/cli/lib/ide-skills.js +216 -0
  206. package/tools/cli/lib/installer.js +29 -52
  207. package/tools/cli/lib/manifest.js +11 -5
  208. package/tools/cli/lib/platform-codes.yaml +223 -0
  209. package/tools/cli/lib/ui.js +76 -47
  210. package/tools/validate-docs-drift.js +193 -0
  211. package/src/agents/forger.agent.yaml +0 -114
  212. package/src/workflows/README.md +0 -174
  213. package/src/workflows/analyze-source/data/skill-brief-schema.md +0 -125
  214. package/src/workflows/analyze-source/data/unit-detection-heuristics.md +0 -124
  215. package/src/workflows/analyze-source/workflow.md +0 -61
  216. package/src/workflows/audit-skill/workflow.md +0 -64
  217. package/src/workflows/brief-skill/data/skill-brief-schema.md +0 -159
  218. package/src/workflows/brief-skill/workflow.md +0 -58
  219. package/src/workflows/create-skill/data/source-resolution-protocols.md +0 -200
  220. package/src/workflows/create-skill/steps-c/step-03-extract.md +0 -301
  221. package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +0 -253
  222. package/src/workflows/create-skill/steps-c/step-06-validate.md +0 -254
  223. package/src/workflows/create-skill/steps-c/step-08-report.md +0 -179
  224. package/src/workflows/create-skill/workflow.md +0 -53
  225. package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +0 -196
  226. package/src/workflows/create-stack-skill/steps-c/step-07-generate-output.md +0 -270
  227. package/src/workflows/create-stack-skill/steps-c/step-09-report.md +0 -150
  228. package/src/workflows/create-stack-skill/workflow.md +0 -59
  229. package/src/workflows/drop-skill/steps-c/step-03-report.md +0 -136
  230. package/src/workflows/drop-skill/workflow.md +0 -63
  231. package/src/workflows/export-skill/data/managed-section-format.md +0 -103
  232. package/src/workflows/export-skill/steps-c/step-01-load-skill.md +0 -237
  233. package/src/workflows/export-skill/workflow.md +0 -58
  234. package/src/workflows/quick-skill/steps-c/step-06-write.md +0 -178
  235. package/src/workflows/quick-skill/workflow.md +0 -58
  236. package/src/workflows/refine-architecture/workflow.md +0 -61
  237. package/src/workflows/rename-skill/steps-c/step-03-report.md +0 -133
  238. package/src/workflows/rename-skill/workflow.md +0 -64
  239. package/src/workflows/setup-forge/steps-c/step-04-report.md +0 -159
  240. package/src/workflows/setup-forge/workflow.md +0 -51
  241. package/src/workflows/shared/health-check.md +0 -231
  242. package/src/workflows/test-skill/data/scoring-rules.md +0 -123
  243. package/src/workflows/test-skill/data/source-access-protocol.md +0 -51
  244. package/src/workflows/test-skill/steps-c/step-01-init.md +0 -217
  245. package/src/workflows/test-skill/steps-c/step-03-coverage-check.md +0 -280
  246. package/src/workflows/test-skill/steps-c/step-04-coherence-check.md +0 -271
  247. package/src/workflows/test-skill/steps-c/step-05-score.md +0 -222
  248. package/src/workflows/test-skill/steps-c/step-06-report.md +0 -208
  249. package/src/workflows/test-skill/templates/test-report-template.md +0 -28
  250. package/src/workflows/test-skill/workflow.md +0 -57
  251. package/src/workflows/update-skill/data/remote-source-resolution.md +0 -57
  252. package/src/workflows/update-skill/steps-c/step-02-detect-changes.md +0 -221
  253. package/src/workflows/update-skill/steps-c/step-03-re-extract.md +0 -256
  254. package/src/workflows/update-skill/steps-c/step-06-write.md +0 -265
  255. package/src/workflows/update-skill/workflow.md +0 -56
  256. package/src/workflows/verify-stack/data/feasibility-report-template.md +0 -63
  257. package/src/workflows/verify-stack/data/integration-verification-rules.md +0 -73
  258. package/src/workflows/verify-stack/steps-c/step-01-init.md +0 -179
  259. package/src/workflows/verify-stack/steps-c/step-03-integrations.md +0 -195
  260. package/src/workflows/verify-stack/steps-c/step-05-synthesize.md +0 -191
  261. package/src/workflows/verify-stack/steps-c/step-06-report.md +0 -200
  262. package/src/workflows/verify-stack/workflow.md +0 -61
  263. package/tools/cli/lib/compiler.js +0 -306
  264. package/tools/cli/lib/ide-commands.js +0 -244
  265. /package/src/{workflows/analyze-source → skf-analyze-source}/templates/analysis-report-template.md +0 -0
  266. /package/src/{workflows/quick-skill/data → skf-quick-skill/assets}/skill-template.md +0 -0
  267. /package/src/{workflows/setup-forge/data → skf-setup/references}/tier-rules.md +0 -0
  268. /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
- ├── module.yaml # Module config: code, name, install prompts
12
- ├── module-help.csv # Help registry one row per agent command
13
- ├── agents/
14
- │ └── forger.agent.yaml # Ferris the single agent persona
15
- ├── workflows/ # 14 workflows (see workflows/README.md)
16
- ├── setup-forge/
17
- ├── analyze-source/
18
- │ ├── brief-skill/
19
- │ ├── create-skill/
20
- │ ├── quick-skill/
21
- │ ├── create-stack-skill/
22
- ├── verify-stack/
23
- ├── refine-architecture/
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
- └── forger/ # Sidecar seed files (preferences, forge tier)
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](agents/forger.agent.yaml) — single-persona module operating in four modes (Architect / Surgeon / Audit / Delivery)
38
- - **Workflows:** see [workflows/README.md](workflows/README.md) for the full index, typical flows, and the knowledge-vs-data distinction
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 — `agents/forger.agent.yaml`; validate with `bmad:bmb:agents:agent-validate`
44
- - Workflow edits — each workflow in `workflows/{name}/`; validate with `bmad:bmb:workflows:workflow-validate`
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-forge workflow on first run
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-forge and extraction workflows)
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-forge workflow on first run
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/data/).
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/workflow.md, refine-architecture/workflow.md, and create-stack-skill compose-mode-rules.md_
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-forge)
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-forge step-01b to ensure the project root is indexed. Called lazily by extraction steps when `ccc_index.status` is `"none"` but ccc is available.
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-forge step-01 during tool detection. Downstream workflows read the result from forge-tier.yaml — they do not re-verify.
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-forge step-01b:** Indexes the project root when setup-forge runs. This is the primary indexing point.
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-forge is the designated refresh authority
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-forge 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:
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 read from `_bmad/_config/skf-manifest.yaml` when available, falling back to the defaults `skills` and `forge-data`. Patterns are appended only if not already present — user customizations to `settings.yml` are preserved.
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 ephemeral clone succeeds, detects the deferred scenario (`tools.ccc == true AND {ccc_discovery} is empty AND ephemeral_clone_active == true AND tier is Forge+/Deep`)
105
- 3. **step-03:** Runs `cd {temp_path} && ccc init` on the ephemeral clone, then applies brief `exclude_patterns` (if present) to `{temp_path}/.cocoindex_code/settings.yml` before running `ccc index` (extended timeout or background mode, verified via `ccc status`). This prevents CCC from indexing files the brief explicitly excludes, keeping search results focused on in-scope source code and reducing indexing time for large repositories.
106
- 4. **step-03:** Executes CCC search and populates `{ccc_discovery}` before AST extraction begins
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
- The ephemeral clone index is not registered in `ccc_index_registry` — the clone is deleted after extraction and the CCC daemon's own GC handles orphaned indexes.
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-forge step-03) operates independently of ccc_index
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 SKF exclusions — framework and output directories pollute search results
134
- - Indexing an ephemeral clone without applying brief `exclude_patterns` — excluded files pollute CCC search results and waste indexing time on large repositories
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 `data/` files, which contain step-specific operational artifacts. Knowledge is loaded just-in-time when a workflow step directs — never preloaded into context.
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 12 workflows containing numerous operational `data/` files embedded in step directories. These data files define schemas, templates, scoring formulas, and extraction rules 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.
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 | All 12 |
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 `data/` files
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/`) | Data Files (`data/`) |
51
- |-----------|--------------------------------------|-----------------------------------------|
52
- | Scope | Cross-cutting, multi-workflow | Single workflow, single step |
53
- | Content | Principles, patterns, judgment rules | Schemas, templates, scoring formulas |
54
- | Loading | JiT via index lookup | JiT via step instruction |
55
- | Examples | Zero hallucination, confidence tiers | skill-brief-schema.md, scoring-rules.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-forge workflow detects available tools and assigns a tier.
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-forge, brief-skill)
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-forge workflow_
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/data/severity-rules.md
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-forge would scan all project directories and index them into QMD collections. This created three problems:
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-forge | Cross-references live QMD collections against the registry, cleans orphans and stale entries |
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-forge janitor should flag `"pending"` collections for re-embedding.
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-forge reads registry + QMD state → cleans orphans, removes stale entries
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-forge, verified by create-skill |
115
- | **Janitor** | setup-forge step-03 (orphan/stale QMD collection cleanup) | setup-forge step-03 section 5b (stale path cleanup) |
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-forge)
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-forge, brief-skill, create-skill, audit-skill, and update-skill workflows_
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 data/ files","knowledge,navigation,jit-loading",core,knowledge/overview.md
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 12 workflow.md files (including VS, RA) and module-help.csv_
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/data/scoring-rules.md` — tessl/split-body interaction and the pre-split baseline recommendation during test reporting
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
- ### Platform Paths (Unchanged — Flat)
38
+ ### IDE Skill Root Paths (Unchanged — Flat)
39
39
 
40
- | Platform | Root Path |
41
- |----------|-----------|
42
- | `claude` | `.claude/skills/{skill-name}/` |
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` | `.agents/skills/{skill-name}/` |
45
- | _(legacy)_ | `skills/{skill-name}/` |
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
- Platform 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 platform path.
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
- "platforms": ["claude"],
147
+ "ides": ["claude-code"],
143
148
  "last_exported": "2026-03-15",
144
149
  "status": "archived"
145
150
  },
146
151
  "0.6.0": {
147
- "platforms": ["claude", "copilot"],
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}.platforms`: Array of platforms this version was last exported to
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 `workflows/rename-skill/`.
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 `workflows/drop-skill/`.
202
+ See `skf-drop-skill/`.
198
203
 
199
204
  ## Version Sanitization
200
205
 
@@ -1,17 +1,18 @@
1
- module,phase,name,code,sequence,workflow-file,command,required,agent,options,description,output-location,outputs,
2
- skf,anytime,Setup Forge,SF,,_bmad/skf/workflows/skillforge/setup-forge/workflow.md,skf_setup_forge,false,ferris,Create Mode,"Initialize forge environmentdetect tools and set capability tier (Quick/Forge/Forge+/Deep)",,forge-tier.yaml,
3
- skf,anytime,Analyze Source,AN,,_bmad/skf/workflows/skillforge/analyze-source/workflow.md,skf_analyze_source,false,ferris,Create Mode,"Discover what to skill in a large repo produces recommended skill briefs",forge_data_folder,skill-brief.yaml,
4
- skf,anytime,Brief Skill,BS,,_bmad/skf/workflows/skillforge/brief-skill/workflow.md,skf_brief_skill,false,ferris,Create Mode,"Design a skill scope through guided discovery",forge_data_folder,skill-brief.yaml,
5
- skf,anytime,Create Skill,CS,,_bmad/skf/workflows/skillforge/create-skill/workflow.md,skf_create_skill,false,ferris,Create Mode,"Compile a skill from a brief — supports --batch for multiple briefs",skills_output_folder,SKILL.md,
6
- skf,anytime,Quick Skill,QS,,_bmad/skf/workflows/skillforge/quick-skill/workflow.md,skf_quick_skill,false,ferris,Create Mode,"Fast skill from a package name or GitHub URL no brief needed",skills_output_folder,SKILL.md,
7
- skf,anytime,Stack Skill,SS,,_bmad/skf/workflows/skillforge/create-stack-skill/workflow.md,skf_create_stack_skill,false,ferris,Create Mode,"Consolidated project stack skill with integration patterns code-mode (analyzes manifests) or compose-mode (synthesizes from existing skills + architecture doc)",skills_output_folder,SKILL.md,
8
- skf,anytime,Update Skill,US,,_bmad/skf/workflows/skillforge/update-skill/workflow.md,skf_update_skill,false,ferris,Surgeon Mode,"Smart regeneration preserving [MANUAL] sections after source changes",skills_output_folder,SKILL.md,
9
- skf,anytime,Audit Skill,AS,,_bmad/skf/workflows/skillforge/audit-skill/workflow.md,skf_audit_skill,false,ferris,Audit Mode,"Drift detection between skill and current source code",,"drift report",
10
- skf,anytime,Test Skill,TS,,_bmad/skf/workflows/skillforge/test-skill/workflow.md,skf_test_skill,false,ferris,Audit Mode,"Cognitive completeness verification quality gate before export",,"completeness score",
11
- skf,anytime,Export Skill,EX,,_bmad/skf/workflows/skillforge/export-skill/workflow.md,skf_export_skill,false,ferris,Delivery Mode,"Package for distribution and inject context into CLAUDE.md/AGENTS.md/.cursorrules",skills_output_folder,"agentskills.io package",
12
- skf,anytime,Rename Skill,RS,,_bmad/skf/workflows/skillforge/rename-skill/workflow.md,skf_rename_skill,false,ferris,Management Mode,"Rename a skill across all its versions transactional copy-verify-delete with platform context rebuild",skills_output_folder,"renamed skill group",
13
- skf,anytime,Drop Skill,DS,,_bmad/skf/workflows/skillforge/drop-skill/workflow.md,skf_drop_skill,false,ferris,Management Mode,"Drop a specific skill version or an entire skill soft (deprecate) or hard (purge) with platform context rebuild",skills_output_folder,"updated manifest",
14
- skf,anytime,Verify Stack,VS,,_bmad/skf/workflows/skillforge/verify-stack/workflow.md,skf_verify_stack,false,ferris,Audit Mode,"Pre-code stack feasibility verification against architecture and PRD documents",forge_data_folder,"feasibility-report-{project_name}.md",
15
- skf,anytime,Refine Architecture,RA,,_bmad/skf/workflows/skillforge/refine-architecture/workflow.md,skf_refine_architecture,false,ferris,Architect Mode,"Improve architecture doc using verified skill data and VS feasibility findings",output_folder,"refined-architecture-{project_name}.md",
16
- skf,anytime,Workflow Status,WS,,,skf_workflow_status,false,ferris,Reference,"Show current lifecycle position, active skill briefs, and forge tier status",,lifecycle status,
17
- skf,anytime,Knowledge Index,KI,,_bmad/skf/knowledge/skf-knowledge-index.csv,skf_knowledge_index,false,ferris,Reference,"Cross-cutting principles and patterns — JiT loaded by workflows via index lookup",,"knowledge fragments",
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 specialistthe 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 verificationquality 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