bmad-module-skill-forge 0.9.0 → 0.10.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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/module.yaml +4 -0
  38. package/src/shared/health-check.md +372 -0
  39. package/src/shared/references/feasibility-report-schema.md +86 -0
  40. package/src/shared/references/headless-gate-convention.md +62 -0
  41. package/src/shared/references/output-contract-schema.md +35 -0
  42. package/src/shared/references/pipeline-contracts.md +102 -0
  43. package/src/shared/scripts/skf-atomic-write.py +370 -0
  44. package/src/shared/scripts/skf-manifest-ops.py +236 -0
  45. package/src/shared/scripts/skf-preflight.py +164 -0
  46. package/src/shared/scripts/skf-rebuild-managed-sections.py +201 -0
  47. package/src/shared/scripts/skf-severity-classify.py +163 -0
  48. package/src/shared/scripts/skf-skill-inventory.py +210 -0
  49. package/src/shared/scripts/skf-structural-diff.py +257 -0
  50. package/src/shared/scripts/skf-validate-frontmatter.py +318 -0
  51. package/src/shared/scripts/skf-validate-output.py +247 -0
  52. package/src/skf-analyze-source/SKILL.md +57 -0
  53. package/src/skf-analyze-source/assets/skill-brief-schema.md +125 -0
  54. package/src/skf-analyze-source/references/unit-detection-heuristics.md +124 -0
  55. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01-init.md +6 -66
  56. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01b-continue.md +4 -59
  57. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-02-scan-project.md +7 -68
  58. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-03-identify-units.md +6 -66
  59. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-04-map-and-detect.md +7 -68
  60. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-05-recommend.md +6 -66
  61. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-06-generate-briefs.md +14 -66
  62. package/src/skf-analyze-source/steps-c/step-07-health-check.md +22 -0
  63. package/src/skf-audit-skill/SKILL.md +59 -0
  64. package/src/{workflows/audit-skill/data → skf-audit-skill/assets}/drift-report-template.md +7 -7
  65. package/src/{workflows/audit-skill/data → skf-audit-skill/references}/severity-rules.md +11 -11
  66. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-01-init.md +24 -68
  67. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-02-re-index.md +36 -71
  68. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-03-structural-diff.md +21 -63
  69. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-04-semantic-diff.md +6 -65
  70. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-05-severity-classify.md +5 -63
  71. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-06-report.md +10 -59
  72. package/src/skf-audit-skill/steps-c/step-07-health-check.md +22 -0
  73. package/src/skf-brief-skill/SKILL.md +53 -0
  74. package/src/{workflows/brief-skill/data → skf-brief-skill/assets}/scope-templates.md +23 -0
  75. package/src/skf-brief-skill/assets/skill-brief-schema.md +206 -0
  76. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-01-gather-intent.md +6 -67
  77. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-02-analyze-target.md +6 -66
  78. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-03-scope-definition.md +12 -68
  79. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-04-confirm-brief.md +5 -63
  80. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-05-write-brief.md +10 -69
  81. package/src/skf-brief-skill/steps-c/step-06-health-check.md +22 -0
  82. package/src/skf-create-skill/SKILL.md +63 -0
  83. package/src/{workflows/create-skill/data → skf-create-skill/assets}/compile-assembly-rules.md +60 -0
  84. package/src/{workflows/create-skill/data → skf-create-skill/assets}/skill-sections.md +92 -23
  85. package/src/skf-create-skill/assets/tessl-dismissal-rules.md +102 -0
  86. package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns-tracing.md +13 -13
  87. package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns.md +8 -3
  88. package/src/skf-create-skill/references/source-resolution-protocols.md +239 -0
  89. package/src/{workflows/create-skill/data → skf-create-skill/references}/tier-degradation-rules.md +8 -7
  90. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-01-load-brief.md +25 -63
  91. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-02-ecosystem-check.md +8 -64
  92. package/src/skf-create-skill/steps-c/step-03-extract.md +379 -0
  93. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-03d-component-extraction.md +18 -35
  94. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-04-enrich.md +12 -69
  95. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-05-compile.md +71 -75
  96. package/src/skf-create-skill/steps-c/step-06-validate.md +267 -0
  97. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-07-generate-artifacts.md +30 -74
  98. package/src/skf-create-skill/steps-c/step-08-report.md +145 -0
  99. package/src/skf-create-skill/steps-c/step-09-health-check.md +23 -0
  100. package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-02b-ccc-discover.md +8 -66
  101. package/src/skf-create-skill/steps-c/sub/step-03b-fetch-temporal.md +229 -0
  102. package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-03c-fetch-docs.md +18 -42
  103. package/src/skf-create-stack-skill/SKILL.md +64 -0
  104. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/assets}/stack-skill-template.md +2 -1
  105. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/compose-mode-rules.md +19 -5
  106. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/integration-patterns.md +1 -1
  107. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/manifest-patterns.md +10 -10
  108. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-01-init.md +14 -55
  109. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-02-detect-manifests.md +29 -63
  110. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-03-rank-and-confirm.md +9 -59
  111. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-04-parallel-extract.md +29 -64
  112. package/src/skf-create-stack-skill/steps-c/step-05-detect-integrations.md +164 -0
  113. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-06-compile-stack.md +7 -60
  114. package/src/skf-create-stack-skill/steps-c/step-07-generate-output.md +328 -0
  115. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-08-validate.md +17 -63
  116. package/src/skf-create-stack-skill/steps-c/step-09-report.md +128 -0
  117. package/src/skf-create-stack-skill/steps-c/step-10-health-check.md +22 -0
  118. package/src/skf-drop-skill/SKILL.md +57 -0
  119. package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-01-select.md +9 -69
  120. package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-02-execute.md +30 -106
  121. package/src/skf-drop-skill/steps-c/step-03-report.md +83 -0
  122. package/src/skf-drop-skill/steps-c/step-04-health-check.md +22 -0
  123. package/src/skf-export-skill/SKILL.md +57 -0
  124. package/src/skf-export-skill/assets/managed-section-format.md +138 -0
  125. package/src/{workflows/export-skill/data → skf-export-skill/assets}/snippet-format.md +8 -12
  126. package/src/skf-export-skill/steps-c/step-01-load-skill.md +247 -0
  127. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-02-package.md +5 -58
  128. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-03-generate-snippet.md +15 -77
  129. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-04-update-context.md +59 -133
  130. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-05-token-report.md +4 -58
  131. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-06-summary.md +20 -64
  132. package/src/skf-export-skill/steps-c/step-07-health-check.md +22 -0
  133. package/src/skf-forger/SKILL.md +110 -0
  134. package/src/skf-forger/bmad-skill-manifest.yaml +11 -0
  135. package/src/skf-quick-skill/SKILL.md +56 -0
  136. package/src/{workflows/quick-skill/data → skf-quick-skill/references}/registry-resolution.md +6 -6
  137. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-01-resolve-target.md +9 -62
  138. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-02-ecosystem-check.md +5 -59
  139. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-03-quick-extract.md +18 -61
  140. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-04-compile.md +6 -60
  141. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-05-validate.md +58 -78
  142. package/src/skf-quick-skill/steps-c/step-06-write.md +73 -0
  143. package/src/skf-quick-skill/steps-c/step-07-health-check.md +22 -0
  144. package/src/skf-refine-architecture/SKILL.md +57 -0
  145. package/src/{workflows/refine-architecture/data → skf-refine-architecture/references}/refinement-rules.md +16 -16
  146. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-01-init.md +6 -63
  147. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-02-gap-analysis.md +29 -71
  148. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-03-issue-detection.md +5 -65
  149. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-04-improvements.md +5 -64
  150. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-05-compile.md +5 -56
  151. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-06-report.md +14 -64
  152. package/src/skf-refine-architecture/steps-c/step-07-health-check.md +22 -0
  153. package/src/skf-rename-skill/SKILL.md +58 -0
  154. package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-01-select.md +12 -73
  155. package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-02-execute.md +32 -113
  156. package/src/skf-rename-skill/steps-c/step-03-report.md +83 -0
  157. package/src/skf-rename-skill/steps-c/step-04-health-check.md +22 -0
  158. package/src/skf-setup/SKILL.md +55 -0
  159. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01-detect-and-tier.md +6 -62
  160. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01b-ccc-index.md +9 -65
  161. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-02-write-config.md +15 -60
  162. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-03-auto-index.md +7 -66
  163. package/src/skf-setup/steps-c/step-04-report.md +92 -0
  164. package/src/skf-setup/steps-c/step-05-health-check.md +22 -0
  165. package/src/skf-test-skill/SKILL.md +59 -0
  166. package/src/skf-test-skill/references/migration-section-rules.md +114 -0
  167. package/src/skf-test-skill/references/scoring-rules.md +207 -0
  168. package/src/skf-test-skill/references/source-access-protocol.md +109 -0
  169. package/src/skf-test-skill/scripts/compute-score.py +310 -0
  170. package/src/skf-test-skill/steps-c/step-01-init.md +238 -0
  171. package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-02-detect-mode.md +4 -62
  172. package/src/skf-test-skill/steps-c/step-03-coverage-check.md +347 -0
  173. package/src/skf-test-skill/steps-c/step-04-coherence-check.md +239 -0
  174. package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-04b-external-validators.md +42 -77
  175. package/src/skf-test-skill/steps-c/step-05-score.md +266 -0
  176. package/src/skf-test-skill/steps-c/step-06-report.md +290 -0
  177. package/src/skf-test-skill/steps-c/step-07-health-check.md +25 -0
  178. package/src/skf-test-skill/templates/test-report-template.md +58 -0
  179. package/src/skf-update-skill/SKILL.md +58 -0
  180. package/src/{workflows/update-skill/data → skf-update-skill/references}/manual-section-rules.md +6 -6
  181. package/src/{workflows/update-skill/data → skf-update-skill/references}/merge-conflict-rules.md +5 -5
  182. package/src/skf-update-skill/references/remote-source-resolution.md +94 -0
  183. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-01-init.md +22 -69
  184. package/src/skf-update-skill/steps-c/step-02-detect-changes.md +255 -0
  185. package/src/skf-update-skill/steps-c/step-03-re-extract.md +336 -0
  186. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-04-merge.md +60 -72
  187. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-05-validate.md +5 -62
  188. package/src/skf-update-skill/steps-c/step-06-write.md +278 -0
  189. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-07-report.md +11 -66
  190. package/src/skf-update-skill/steps-c/step-08-health-check.md +22 -0
  191. package/src/skf-verify-stack/SKILL.md +60 -0
  192. package/src/skf-verify-stack/assets/feasibility-report-template.md +76 -0
  193. package/src/{workflows/verify-stack/data → skf-verify-stack/references}/coverage-patterns.md +12 -4
  194. package/src/skf-verify-stack/references/integration-verification-rules.md +78 -0
  195. package/src/skf-verify-stack/steps-c/step-01-init.md +178 -0
  196. package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-02-coverage.md +27 -72
  197. package/src/skf-verify-stack/steps-c/step-03-integrations.md +179 -0
  198. package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-04-requirements.md +14 -67
  199. package/src/skf-verify-stack/steps-c/step-05-synthesize.md +147 -0
  200. package/src/skf-verify-stack/steps-c/step-06-report.md +156 -0
  201. package/src/skf-verify-stack/steps-c/step-07-health-check.md +25 -0
  202. package/tools/cli/commands/install.js +1 -1
  203. package/tools/cli/commands/status.js +21 -23
  204. package/tools/cli/commands/uninstall.js +11 -19
  205. package/tools/cli/commands/update.js +2 -2
  206. package/tools/cli/lib/ide-skills.js +216 -0
  207. package/tools/cli/lib/installer.js +29 -52
  208. package/tools/cli/lib/manifest.js +11 -5
  209. package/tools/cli/lib/platform-codes.yaml +223 -0
  210. package/tools/cli/lib/ui.js +76 -47
  211. package/tools/validate-docs-drift.js +193 -0
  212. package/src/agents/forger.agent.yaml +0 -114
  213. package/src/workflows/README.md +0 -174
  214. package/src/workflows/analyze-source/data/skill-brief-schema.md +0 -125
  215. package/src/workflows/analyze-source/data/unit-detection-heuristics.md +0 -124
  216. package/src/workflows/analyze-source/workflow.md +0 -61
  217. package/src/workflows/audit-skill/workflow.md +0 -64
  218. package/src/workflows/brief-skill/data/skill-brief-schema.md +0 -159
  219. package/src/workflows/brief-skill/workflow.md +0 -58
  220. package/src/workflows/create-skill/data/source-resolution-protocols.md +0 -200
  221. package/src/workflows/create-skill/steps-c/step-03-extract.md +0 -301
  222. package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +0 -253
  223. package/src/workflows/create-skill/steps-c/step-06-validate.md +0 -254
  224. package/src/workflows/create-skill/steps-c/step-08-report.md +0 -176
  225. package/src/workflows/create-skill/workflow.md +0 -53
  226. package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +0 -196
  227. package/src/workflows/create-stack-skill/steps-c/step-07-generate-output.md +0 -270
  228. package/src/workflows/create-stack-skill/steps-c/step-09-report.md +0 -145
  229. package/src/workflows/create-stack-skill/workflow.md +0 -59
  230. package/src/workflows/drop-skill/steps-c/step-03-report.md +0 -135
  231. package/src/workflows/drop-skill/workflow.md +0 -63
  232. package/src/workflows/export-skill/data/managed-section-format.md +0 -103
  233. package/src/workflows/export-skill/steps-c/step-01-load-skill.md +0 -237
  234. package/src/workflows/export-skill/workflow.md +0 -58
  235. package/src/workflows/quick-skill/steps-c/step-06-write.md +0 -179
  236. package/src/workflows/quick-skill/workflow.md +0 -58
  237. package/src/workflows/refine-architecture/workflow.md +0 -61
  238. package/src/workflows/rename-skill/steps-c/step-03-report.md +0 -132
  239. package/src/workflows/rename-skill/workflow.md +0 -64
  240. package/src/workflows/setup-forge/steps-c/step-04-report.md +0 -156
  241. package/src/workflows/setup-forge/workflow.md +0 -51
  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 -207
  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 -197
  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
@@ -1,174 +0,0 @@
1
- # SKF Workflows
2
-
3
- Fourteen workflows covering the full skill lifecycle — from source discovery through verified export, with pre-code architecture verification and post-distribution management.
4
-
5
- All workflows are triggered via Ferris (`@Ferris <code>`) and execute as step-by-step sequences with just-in-time step loading.
6
-
7
- ## Workflow Index
8
-
9
- | Code | Workflow | Steps | Mode | Purpose |
10
- | --- | --- | --- | --- | --- |
11
- | SF | [setup-forge](setup-forge/workflow.md) | 5 | Architect | Initialize environment, detect tools, set capability tier |
12
- | AN | [analyze-source](analyze-source/workflow.md) | 7 | Architect | Discover skillable units in a repo, produce recommended briefs |
13
- | BS | [brief-skill](brief-skill/workflow.md) | 5 | Architect | Design a skill scope through guided discovery |
14
- | CS | [create-skill](create-skill/workflow.md) | 8 | Architect | Compile a skill from brief with provenance (supports --batch) |
15
- | QS | [quick-skill](quick-skill/workflow.md) | 6 | Architect | Fast skill from package name or GitHub URL — no brief needed |
16
- | SS | [create-stack-skill](create-stack-skill/workflow.md) | 9 | Architect | Consolidated project stack skill with integration patterns (code-mode + compose-mode) |
17
- | VS | [verify-stack](verify-stack/workflow.md) | 6 | Audit | Validate tech stack feasibility against architecture and PRD |
18
- | RA | [refine-architecture](refine-architecture/workflow.md) | 6 | Architect | Improve architecture doc using verified skill data |
19
- | US | [update-skill](update-skill/workflow.md) | 7 | Surgeon | Regenerate after source changes, preserving \[MANUAL\] sections |
20
- | AS | [audit-skill](audit-skill/workflow.md) | 6 | Audit | Drift detection between skill and current source code |
21
- | TS | [test-skill](test-skill/workflow.md) | 7 | Audit | Cognitive completeness verification — quality gate before export |
22
- | EX | [export-skill](export-skill/workflow.md) | 6 | Delivery | Package for distribution, inject into CLAUDE.md/AGENTS.md |
23
- | RS | [rename-skill](rename-skill/workflow.md) | 3 | Management | Rename a skill across all versions (transactional copy-verify-delete) |
24
- | DS | [drop-skill](drop-skill/workflow.md) | 3 | Management | Drop specific versions or whole skill (soft deprecate or hard purge) |
25
-
26
- ## Typical Flows
27
-
28
- **First-time setup:**
29
-
30
- ```
31
- SF → AN → CS (batch) → TS → EX
32
- ```
33
-
34
- **Single skill (full quality):**
35
-
36
- ```
37
- SF → BS → CS → TS → EX
38
- ```
39
-
40
- **Single skill (fast):**
41
-
42
- ```
43
- SF → QS → EX
44
- ```
45
-
46
- **Pre-code stack verification:**
47
-
48
- ```
49
- SF → CS×N (per library) → VS → RA → SS (compose) → TS → EX
50
- ```
51
-
52
- **Maintenance:**
53
-
54
- ```
55
- AS → US → TS → EX
56
- ```
57
-
58
- **Management:**
59
-
60
- ```
61
- RS or DS → EX
62
- ```
63
-
64
- ## Knowledge vs. Data
65
-
66
- The module uses two kinds of reference material, loaded just-in-time during workflow execution:
67
-
68
- | Aspect | Knowledge (`knowledge/`) | Data (`{workflow}/data/`) |
69
- | --- | --- | --- |
70
- | Scope | Cross-cutting, multi-workflow | Single workflow, single step |
71
- | Content | Principles, patterns, judgment rules | Schemas, templates, scoring formulas |
72
- | Index | `skf-knowledge-index.csv` | Referenced directly by step files |
73
- | Examples | zero-hallucination, confidence-tiers | skill-brief-schema.md, scoring-rules.md |
74
-
75
- **Knowledge files** live in `src/knowledge/` and capture principles Ferris applies across multiple workflows — zero hallucination, confidence tiers, provenance tracking, \[MANUAL\] preservation. Workflow steps reference these when they need cross-cutting judgment, not step-specific rules.
76
-
77
- **Data files** live in each workflow's `data/` directory and contain operational artifacts tightly coupled to specific steps — schemas, templates, scoring formulas, extraction patterns.
78
-
79
- Neither duplicates the other. Knowledge files reference (not repeat) data files where the detailed operational rules live.
80
-
81
- ## Directory Structure
82
-
83
- Each workflow follows a consistent structure:
84
-
85
- ```
86
- {workflow}/
87
- ├── workflow.md # Entry point — goals, mode routing, step sequence
88
- ├── steps-c/ # Create-mode steps (sequential execution)
89
- │ ├── step-01-*.md
90
- │ ├── step-02-*.md
91
- │ └── ...
92
- ├── data/ # Reference data — schemas, rules, patterns
93
- │ └── *.md
94
- └── templates/ # Output skeletons (only analyze-source, test-skill)
95
- └── *-template.md
96
- ```
97
-
98
- ### Step Loading
99
-
100
- Steps execute sequentially via just-in-time loading. Only the current step is in context. Each step explicitly names the next step file. Data and template files are loaded on demand by the steps that need them.
101
-
102
- ## Workflow Details
103
-
104
- ### setup-forge (SF)
105
-
106
- **5 steps** | **Data:** tier-rules.md
107
-
108
- Detects available tools (ast-grep, gh, QMD), determines the capability tier (Quick/Forge/Forge+/Deep), writes `forge-tier.yaml` to the sidecar, and optionally indexes the project. Run this first — all other workflows adapt behavior to the detected tier.
109
-
110
- ### analyze-source (AN)
111
-
112
- **7 steps** | **Data:** skill-brief-schema.md, unit-detection-heuristics.md | **Templates:** analysis-report-template.md
113
-
114
- Brownfield onboarding entry point. Scans project structure, identifies skillable units using confidence-tiered heuristic signals, maps exports and integration points, presents recommendations for user confirmation, then generates `skill-brief.yaml` files ready for `create-skill --batch`.
115
-
116
- ### brief-skill (BS)
117
-
118
- **5 steps** | **Data:** skill-brief-schema.md, scope-templates.md
119
-
120
- Interactive guided discovery. Gathers user intent (target repo, language, what to skill), analyzes the target to understand boundaries, walks through scope definition with the user, confirms the brief, then writes a validated `skill-brief.yaml`.
121
-
122
- ### create-skill (CS)
123
-
124
- **8 primary steps (11 step files including sub-steps)** | **Data:** extraction-patterns.md, extraction-patterns-tracing.md, skill-sections.md, tier-degradation-rules.md, compile-assembly-rules.md, source-resolution-protocols.md
125
-
126
- The core compilation engine. Loads a brief, checks ecosystem context, extracts source with AST-backed provenance (T1 confidence when ast-grep available), enriches with usage patterns, compiles into agentskills.io-compliant sections, validates structural integrity, generates the `SKILL.md` artifact, and produces an evidence report. Supports `--batch` for processing multiple briefs.
127
-
128
- ### quick-skill (QS)
129
-
130
- **6 steps** | **Data:** registry-resolution.md, skill-template.md
131
-
132
- Fastest path to a skill. Accepts a GitHub URL or package name, resolves to source via registry lookup, performs ecosystem check, extracts public API surface without requiring a brief, compiles best-effort `SKILL.md`, validates, and writes output.
133
-
134
- ### create-stack-skill (SS)
135
-
136
- **9 steps** | **Data:** integration-patterns.md, manifest-patterns.md, stack-skill-template.md, compose-mode-rules.md
137
-
138
- Two modes: **Code-mode** analyzes dependency manifests and co-import patterns from actual source code. **Compose-mode** synthesizes a stack skill from pre-generated individual skills + architecture document (no codebase required). Both produce the same output format — consolidated stack skill with integration patterns.
139
-
140
- ### verify-stack (VS)
141
-
142
- **6 steps** | **Data:** integration-verification-rules.md, coverage-patterns.md, feasibility-report-template.md
143
-
144
- Pre-code verification engine. Cross-references generated skills against architecture and PRD documents. Three passes: coverage verification (does a skill exist for each tech?), integration verification (do the APIs actually connect?), and requirements verification (does the stack cover the PRD?). Produces a feasibility report with evidence-backed verdicts and prescriptive recommendations. Re-runnable — swap libraries, regenerate skills, re-verify.
145
-
146
- ### refine-architecture (RA)
147
-
148
- **6 steps** | **Data:** refinement-rules.md
149
-
150
- Architecture improvement engine. Takes the original architecture document and refines it using verified skill data and VS feasibility findings. Fills gaps, flags issues, suggests improvements — all backed by specific API evidence from the generated skills. Produces a refined architecture document.
151
-
152
- ### update-skill (US)
153
-
154
- **7 steps** | **Data:** manual-section-rules.md, merge-conflict-rules.md, remote-source-resolution.md (tier-degradation-rules shared from create-skill)
155
-
156
- Surgical update engine. Loads the existing skill, detects what changed in source since last compilation, re-extracts only affected exports with fresh provenance, merges new extractions while preserving all `[MANUAL]` developer-authored content, validates the merged result, writes the updated skill, and produces a change report.
157
-
158
- ### audit-skill (AS)
159
-
160
- **6 steps** | **Data:** drift-report-template.md, severity-rules.md
161
-
162
- Drift detection engine. Loads the skill under audit, re-indexes current source to build a fresh reference, performs structural diff (signature changes, missing exports), performs semantic diff (behavioral divergence), classifies each finding by severity using defined rules, and produces a graded drift report.
163
-
164
- ### test-skill (TS)
165
-
166
- **7 steps** | **Data:** output-section-formats.md, scoring-rules.md, source-access-protocol.md | **Templates:** test-report-template.md
167
-
168
- Quality gate before export. Loads the skill, detects test mode (naive for Quick tier, contextual for Forge/Deep), runs coverage checks against source, runs coherence checks for internal consistency, scores using weighted rubric, and produces a completeness report with pass/fail gate decision.
169
-
170
- ### export-skill (EX)
171
-
172
- **6 steps** | **Data:** managed-section-format.md, snippet-format.md
173
-
174
- Distribution packaging. Loads the completed skill, packages as agentskills.io-compliant bundle, generates context snippets optimized for token efficiency, updates managed sections in `CLAUDE.md` / `AGENTS.md` with platform-aware injection, produces a token budget report, and summarizes the export.
@@ -1,125 +0,0 @@
1
- # Skill Brief Schema
2
-
3
- ## Purpose
4
-
5
- Defines the output contract for skill-brief.yaml files generated by analyze-source. Each generated brief must conform to this schema to be consumable by brief-skill and create-skill downstream workflows.
6
-
7
- ## Required Fields
8
-
9
- | Field | Type | Constraint | Description |
10
- |-------|------|------------|-------------|
11
- | name | string | kebab-case `[a-z0-9-]+` | Unique skill identifier |
12
- | version | string | Semantic version (`X.Y.Z` or `X.Y.Z-prerelease`) | Auto-detect from source (see Version Detection below), fall back to `1.0.0` |
13
- | source_repo | string | GitHub URL or local path | Repository or project root (optional when `source_type: "docs-only"`) |
14
- | language | string | Recognized language | Primary programming language |
15
- | scope | object | See Scope Object below | Boundary definition |
16
- | description | string | 1-3 sentences | What the skill covers |
17
- | forge_tier | string | `Quick` / `Forge` / `Forge+` / `Deep` | Inherited from forge-tier.yaml (Title Case) |
18
- | created | string | ISO date `YYYY-MM-DD` | Generation date |
19
- | created_by | string | user_name from config | Who generated the brief |
20
-
21
- ## Optional Fields
22
-
23
- | Field | Type | Constraint | Description |
24
- |-------|------|------------|-------------|
25
- | source_type | string | `source` or `docs-only` | Default `source`. When `docs-only`: `source_repo` optional, `doc_urls` required |
26
- | doc_urls | array | `{url, label}` objects | Documentation URLs for T3 content. Required when `source_type: "docs-only"` |
27
- | `scripts_intent` | string | `detect` / `none` / free-text | Describes whether scripts should be extracted. Values: `detect` (auto-detect from source — default when absent), `none` (skip scripts), or a free-text description of expected scripts (e.g., "CLI validation tools in bin/"). |
28
- | `assets_intent` | string | `detect` / `none` / free-text | Describes whether assets should be extracted. Values: `detect` (auto-detect from source — default when absent), `none` (skip assets), or a free-text description of expected assets (e.g., "JSON schemas in schemas/"). |
29
- | `target_version` | string | Semantic version (`X.Y.Z` or `X.Y.Z-prerelease`) | User-specified target version. When present, overrides auto-detection and becomes the skill's version. Recommended for docs-only skills where auto-detection is unavailable. |
30
- | `source_authority` | string | `official` / `community` / `internal` | Default `community`. Set to `official` only when the skill creator is the library maintainer. Forced to `community` when `source_type: "docs-only"`. |
31
- | `source_ref` | string | Git ref (tag/branch/HEAD) | Resolved git ref used for source access. Set automatically during tag resolution — do not set manually. |
32
-
33
- When `source_type: "docs-only"`:
34
- - `source_repo` becomes optional (set to doc site URL for reference)
35
- - `doc_urls` must have at least one entry
36
- - `source_authority` is forced to `community` (T3 external documentation cannot be `official`)
37
- - All extracted content gets `[EXT:{url}]` citations
38
-
39
- ## Version Detection
40
-
41
- During brief generation, attempt to auto-detect the source version before defaulting to `"1.0.0"`. Check the first matching file in the source:
42
-
43
- - **Python:** `pyproject.toml` `[project] version` (static) → if `dynamic = ["version"]`, check `__init__.py` for `__version__` → `_version.py` if exists → `setup.py` `version=` → `git describe --tags --abbrev=0`
44
- - **JavaScript/TypeScript:** `package.json` (`"version"`)
45
- - **Rust:** `Cargo.toml` `[package] version` (static) → if `version = { workspace = true }`, resolve from workspace root `Cargo.toml` → `git describe --tags --abbrev=0`
46
- - **Go:** version tag from `go.mod` or `git describe --tags --abbrev=0`
47
-
48
- If the source is a remote GitHub repo, use `gh api repos/{owner}/{repo}/contents/{file}` to read the version file. If the source is local, read the file directly.
49
-
50
- If detection succeeds, use the detected version. If it fails or returns a non-semver value, fall back to `"1.0.0"`.
51
-
52
- The create-skill workflow (step-03-extract) also performs version reconciliation at extraction time — if the source version has changed since the brief was created, the extraction step warns and uses the source version.
53
-
54
- **Target version override:** When `target_version` is present in the brief, it takes precedence over auto-detection. Auto-detection still runs for informational purposes (displayed as "Detected version" alongside the user-specified "Target version"), but the `target_version` value is used as the brief's `version` field. This is particularly useful for docs-only skills (where no package manifest exists) and when the user wants to compile a skill for a specific older version.
55
-
56
- **Pre-release handling:** If the detected version contains a pre-release tag (e.g., `1.0.0-beta.0`, `2.0.0-rc.1`), preserve it as-is. Pre-release tags are valid semver and must not be stripped. When comparing versions during reconciliation, use semver-aware comparison that respects pre-release ordering.
57
-
58
- ## Scope Object
59
-
60
- ```yaml
61
- scope:
62
- type: full-library | specific-modules | public-api | component-library | docs-only
63
- include:
64
- - 'src/**/*.ts' # At least one required
65
- exclude:
66
- - 'src/**/*.test.ts' # Optional
67
- notes: 'Optional rationale for scope decision'
68
- # Additional fields when scope.type is "component-library":
69
- # registry_path: "path/to/registry.ts" # Optional — auto-detected if omitted
70
- # ui_variants: # Optional — design system variants
71
- # - name: "shadcnui"
72
- # package: "packages/components/react-shadcn"
73
- # demo_patterns: # Optional — auto-detected if omitted
74
- # - "**/demo/**"
75
- # - "**/*.stories.*"
76
- ```
77
-
78
- ### Scope Types
79
-
80
- | Type | Use When |
81
- |------|----------|
82
- | full-library | Entire codebase of a unit |
83
- | specific-modules | Selected components or packages |
84
- | public-api | Only exported interfaces |
85
- | component-library | UI component libraries with registries, props-based APIs, and design system variants |
86
- | docs-only | When source_type is docs-only — no source code available, all content from doc_urls |
87
-
88
- ## YAML Template
89
-
90
- ```yaml
91
- name: '{unit-name}'
92
- version: '{detected-version or 1.0.0}'
93
- source_type: 'source'
94
- source_repo: '{project_path}'
95
- language: '{detected_language}'
96
- scope:
97
- type: '{detected_scope_type}'
98
- include:
99
- - '{include_pattern}'
100
- exclude:
101
- - '{exclude_pattern}'
102
- notes: '{scope_rationale}'
103
- description: '{1-3 sentence description}'
104
- forge_tier: '{Quick|Forge|Forge+|Deep}'
105
- created: '{current_date}'
106
- created_by: '{user_name}'
107
- ```
108
-
109
- ## Validation Rules
110
-
111
- 1. **Name uniqueness**: No duplicate names within forge_data_folder
112
- 2. **Source accessibility**: source_repo path must exist or be reachable
113
- 3. **Language recognized**: Must be a known programming language
114
- 4. **Scope type valid**: Must match one of the five defined types (full-library, specific-modules, public-api, component-library, docs-only)
115
- 5. **Include patterns**: At least one include glob pattern required (exception: `docs-only` scope, where include patterns are optional since no source code is available)
116
- 6. **Forge tier match**: Must match value in forge-tier.yaml
117
- 7. **Docs-only mode**: When `source_type: "docs-only"`, `doc_urls` required (>= 1), `source_repo` optional
118
- 8. Each `doc_urls` entry must have a valid `url` field
119
-
120
- ## Output Location
121
-
122
- Each skill-brief.yaml is written to:
123
- ```
124
- {forge_data_folder}/{unit-name}/skill-brief.yaml
125
- ```
@@ -1,124 +0,0 @@
1
- # Unit Detection Heuristics
2
-
3
- ## Purpose
4
-
5
- Rules for identifying discrete skillable units within a project. A "skillable unit" is a self-contained component with clear boundaries that can be documented as an independent skill.
6
-
7
- ## Detection Signals
8
-
9
- ### Strong Signals (High Confidence)
10
-
11
- | Signal | Description | Example |
12
- |--------|-------------|---------|
13
- | Independent package.json / Cargo.toml / go.mod | Unit has its own dependency manifest | `packages/auth/package.json` |
14
- | Separate entry point | Unit has a main/index file | `services/api/src/index.ts` |
15
- | Docker/service definition | Unit runs as an independent service | `docker-compose.yml` service entry |
16
- | Distinct export surface | Unit exports a public API consumed by others | `src/lib/index.ts` with re-exports |
17
- | Workspace member | Listed in root workspace configuration | `pnpm-workspace.yaml` packages |
18
-
19
- ### Moderate Signals (Medium Confidence)
20
-
21
- | Signal | Description | Example |
22
- |--------|-------------|---------|
23
- | Directory depth boundary | Top-level directory with self-contained structure | `src/modules/payments/` |
24
- | Naming convention | Follows organizational naming pattern | `@org/package-name` |
25
- | Separate test suite | Has its own test directory or config | `packages/auth/__tests__/` |
26
- | README.md presence | Has documentation at directory level | `libs/utils/README.md` |
27
- | CI/CD pipeline reference | Referenced in build/deploy configuration | `.github/workflows/deploy-auth.yml` |
28
-
29
- ### Weak Signals (Low Confidence — Require Corroboration)
30
-
31
- | Signal | Description | Example |
32
- |--------|-------------|---------|
33
- | Large directory | Many files in a subtree | 50+ files under one directory |
34
- | Comment boundaries | Code comments marking sections | `// --- Auth Module ---` |
35
- | Import clustering | Files that import primarily from each other | Tight import graph cluster |
36
-
37
- ## Boundary Classification
38
-
39
- ### Service Boundary
40
- - Independent deployable unit
41
- - Own process, port, or container
42
- - Clear network interface (REST, gRPC, message queue)
43
- - Scope type: `full-library`
44
-
45
- ### Package Boundary
46
- - Workspace member or independently versioned package
47
- - Own dependency manifest
48
- - Exports consumed by other packages
49
- - Scope type: `full-library` or `specific-modules`
50
-
51
- ### Module Boundary
52
- - Logical grouping within a single package
53
- - Shared namespace or directory structure
54
- - Internal cohesion, external coupling through defined interface
55
- - Scope type: `specific-modules` or `public-api`
56
-
57
- ### Library Boundary
58
- - Third-party dependency with significant project-specific usage patterns
59
- - Custom wrappers, configurations, or integration code
60
- - Scope type: `public-api`
61
-
62
- ### Component Library Boundary
63
- - Contains a component registry or catalog file (array of component definitions with IDs, names, categories)
64
- - Has `components/`, `packages/components/`, or similar multi-component directory structure
65
- - Multiple design system variant directories (e.g., `react-shadcn/`, `react-baseui/`, `react-carbon/`)
66
- - Significant demo/story/example file ratio (>30% of total files)
67
- - CLI-based installation pattern (e.g., `npx <tool> add <component-id>`)
68
- - Props interfaces outnumber function signatures as primary API surface
69
- - Scope type: `component-library`
70
-
71
- ## Disqualification Rules
72
-
73
- Do NOT recommend as a skillable unit if:
74
-
75
- 1. **Too small**: Fewer than 3 source files or 100 lines of code
76
- 2. **Generated code**: Auto-generated files (protobuf, GraphQL codegen, etc.)
77
- 3. **Pure configuration**: Only config files with no logic
78
- 4. **Test-only**: Test utilities with no production code
79
- 5. **Vendor/dependency**: Third-party code copied into project
80
- 6. **Already skilled**: Existing skill found in forge_data_folder (recommend update-skill instead)
81
-
82
- ## Script/Asset Detection Signals
83
-
84
- During per-unit analysis, check for scripts and assets alongside code exports.
85
-
86
- **Script signals:**
87
-
88
- | Strength | Signal | Example |
89
- |----------|--------|---------|
90
- | Strong | Entry point in `package.json` `bin`, Cargo.toml `[[bin]]`, pyproject.toml `[project.scripts]` | `"bin": { "migrate": "scripts/migrate.js" }` |
91
- | Strong | Shebang + executable file | `#!/usr/bin/env python` in `scripts/setup.py` |
92
- | Moderate | File in `scripts/`, `bin/`, `tools/`, `cli/` directory | `scripts/validate.sh` |
93
- | Moderate | CI/CD reference to script | `.github/workflows/test.yml` runs `scripts/test.sh` |
94
-
95
- **Asset signals:**
96
-
97
- | Strength | Signal | Example |
98
- |----------|--------|---------|
99
- | Strong | JSON Schema file with `$schema` key | `schemas/config.schema.json` |
100
- | Strong | Config template with `.example` or `.template` extension | `config.yaml.example` |
101
- | Moderate | File in `assets/`, `templates/`, `schemas/`, `configs/`, `examples/` directory | `templates/report.hbs` |
102
- | Moderate | OpenAPI/GraphQL definition | `openapi.json`, `schema.graphql` |
103
-
104
- **Per-unit output:** Record `has_scripts: boolean`, `has_assets: boolean`, `script_files: string[]`, `asset_files: string[]`.
105
-
106
- **Disqualify:** Generated files (dist/, build/), vendored dependencies, IDE configs (.vscode/, .idea/), binary files (.so, .dll, .jar).
107
-
108
- ## Stack Skill Candidate Detection
109
-
110
- Flag units as stack skill candidates when:
111
-
112
- 1. **Co-import frequency**: Two or more units are imported together in 3+ files
113
- 2. **Integration adapter**: A unit exists primarily to bridge two other units
114
- 3. **Shared state**: Multiple units read/write to the same data store
115
- 4. **Orchestration layer**: A unit coordinates calls across multiple other units
116
-
117
- ## Tier-Aware Scanning Depth
118
-
119
- | Forge Tier | Scanning Approach |
120
- |------------|-------------------|
121
- | Quick | File structure analysis: directory trees, manifest files, entry points, naming conventions |
122
- | Forge | AST analysis: export surfaces, import graphs, dependency trees, type hierarchies |
123
- | Forge+ | AST + CCC: semantic file pre-ranking before structural analysis, CCC signals for relevance scoring |
124
- | Deep | AST + QMD: temporal evolution, refactoring patterns, semantic relationships, architectural drift |
@@ -1,61 +0,0 @@
1
- ---
2
- name: analyze-source
3
- description: Decomposition engine — discover what to skill, recommend stack skill
4
- web_bundle: true
5
- installed_path: '{project-root}/_bmad/skf/workflows/skillforge/analyze-source'
6
- ---
7
-
8
- # Analyze Source
9
-
10
- **Goal:** Analyze a large repo or multi-service project to identify discrete skillable units, map exports and integration points, and produce recommended skill-brief.yaml files as the primary entry point for brownfield onboarding.
11
-
12
- **Your Role:** In addition to your name, communication_style, and persona, you are also a source code analyst and decomposition architect collaborating with a developer onboarding an existing project. This is a partnership, not a client-vendor relationship. You bring expertise in codebase analysis, service boundary detection, and skill scoping, while the user brings their domain knowledge of the project being analyzed. Work together as equals.
13
-
14
- **Meta-Context:** This workflow is the entry point of the SKF skill creation pipeline. Its output (skill-brief.yaml files) feeds directly into brief-skill and create-skill workflows. The analysis must be thorough enough to produce actionable briefs, but scoped enough to avoid overwhelming the user with false positives.
15
-
16
- ---
17
-
18
- ## WORKFLOW ARCHITECTURE
19
-
20
- ### Core Principles
21
-
22
- - **Micro-file Design**: Each step of the overall goal is a self contained instruction file that you will adhere to 1 file as directed at a time
23
- - **Just-In-Time Loading**: Only 1 current step file will be loaded, read, and executed to completion - never load future step files until told to do so
24
- - **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
25
- - **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array
26
- - **Append-Only Building**: Build the analysis report by appending content as directed to the output file
27
- - **Tier-Aware Analysis**: Scanning depth adapts to forge tier — Quick (file structure), Forge (AST), Forge+ (AST + CCC semantic pre-ranking), Deep (AST+QMD)
28
-
29
- ### Step Processing Rules
30
-
31
- 1. **READ COMPLETELY**: Always read the entire step file before taking any action
32
- 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
33
- 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
34
- 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
35
- 5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
36
- 6. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
37
-
38
- ### Critical Rules (NO EXCEPTIONS)
39
-
40
- - 🛑 **NEVER** load multiple step files simultaneously
41
- - 📖 **ALWAYS** read entire step file before execution
42
- - 🚫 **NEVER** skip steps or optimize the sequence
43
- - 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
44
- - 🎯 **ALWAYS** follow the exact instructions in the step file
45
- - ⏸️ **ALWAYS** halt at menus and wait for user input
46
- - 📋 **NEVER** create mental todo lists from future steps
47
- - ⚙️ **TOOL/SUBPROCESS FALLBACK**: If any instruction references a subprocess, subagent, or tool you do not have access to, you MUST still achieve the outcome in your main context thread
48
-
49
- ---
50
-
51
- ## INITIALIZATION SEQUENCE
52
-
53
- ### 1. Module Configuration Loading
54
-
55
- Load and read full config from {project-root}/_bmad/skf/config.yaml and resolve:
56
-
57
- - `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `forge_data_folder`, `skills_output_folder`, `sidecar_path`
58
-
59
- ### 2. First Step Execution
60
-
61
- Load, read the full file and then execute `./steps-c/step-01-init.md` to begin the workflow.
@@ -1,64 +0,0 @@
1
- ---
2
- name: audit-skill
3
- description: "Drift detection. Forge tier: structural. Deep tier: full."
4
- web_bundle: true
5
- installed_path: '{project-root}/_bmad/skf/workflows/skillforge/audit-skill'
6
- ---
7
-
8
- # Audit Skill
9
-
10
- **Goal:** Detect drift between an existing skill and its current source code, producing a severity-graded drift report with AST-backed findings and actionable remediation suggestions.
11
-
12
- **Your Role:** In addition to your name, communication_style, and persona, you are also a skill auditor operating in Ferris Audit mode. This is a deterministic analysis workflow — every finding must trace to actual code with file:line citations. You enforce the zero-hallucination principle: structural truth over semantic guessing. You bring AST analysis expertise and drift detection methodology, while the source code provides the ground truth.
13
-
14
- ---
15
-
16
- ## WORKFLOW ARCHITECTURE
17
-
18
- This uses **step-file architecture** for disciplined execution:
19
-
20
- ### Core Principles
21
-
22
- - **Micro-file Design**: Each step is a self-contained instruction file that is a part of an overall workflow that must be followed exactly
23
- - **Just-In-Time Loading**: Only the current step file is in memory — never load future step files until told to do so
24
- - **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
25
- - **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array
26
- - **Append-Only Building**: Build the drift report by appending sections as directed to the output file
27
- - **Tier-Aware Execution**: Adapt analysis depth based on detected forge tier (Quick/Forge/Forge+/Deep) with graceful degradation
28
-
29
- ### Step Processing Rules
30
-
31
- 1. **READ COMPLETELY**: Always read the entire step file before taking any action
32
- 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
33
- 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
34
- 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
35
- 5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step
36
- 6. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
37
-
38
- ### Critical Rules (NO EXCEPTIONS)
39
-
40
- - 🛑 **NEVER** load multiple step files simultaneously
41
- - 📖 **ALWAYS** read entire step file before execution
42
- - 🚫 **NEVER** skip steps or optimize the sequence
43
- - 💾 **ALWAYS** update frontmatter of output files when writing the final output for a specific step
44
- - 🎯 **ALWAYS** follow the exact instructions in the step file
45
- - ⏸️ **ALWAYS** halt at menus and wait for user input
46
- - 📋 **NEVER** create mental todo lists from future steps
47
- - ⚙️ **TOOL/SUBPROCESS FALLBACK**: If any instruction references a subprocess, subagent, or tool you do not have access to, you MUST still achieve the outcome in your main context thread
48
- - ✅ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
49
-
50
- ---
51
-
52
- ## INITIALIZATION SEQUENCE
53
-
54
- ### 1. Module Configuration Loading
55
-
56
- Load and read full config from {project-root}/_bmad/skf/config.yaml and resolve:
57
-
58
- - `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`
59
- - `skills_output_folder`, `forge_data_folder`, `sidecar_path`
60
- - Generate and store `timestamp` as the current date-time in `YYYYMMDD-HHmmss` format. This value is fixed for the entire workflow run and must not be regenerated in subsequent steps.
61
-
62
- ### 2. First Step Execution
63
-
64
- Load, read the full file and then execute `./steps-c/step-01-init.md` to begin the workflow.