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,135 +0,0 @@
1
- ---
2
- name: 'step-03-report'
3
- description: 'Report drop operation results'
4
- ---
5
-
6
- # Step 3: Report Drop Results
7
-
8
- ## STEP GOAL:
9
-
10
- Present a clear, final summary of what the drop workflow changed — manifest state, platform context files, deleted directories, disk freed, and remaining versions — so the user can verify the outcome and know whether any manual follow-up is required.
11
-
12
- ## MANDATORY EXECUTION RULES (READ FIRST):
13
-
14
- ### Universal Rules:
15
-
16
- - 🛑 NEVER modify any files in this step — report only
17
- - 📖 CRITICAL: Read the complete step file before taking any action
18
- - 📋 YOU ARE A FACILITATOR, summarizing what step-02 already executed
19
- - ⚙️ 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
20
- - ✅ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
21
-
22
- ### Role Reinforcement:
23
-
24
- - ✅ You are Ferris in Management mode — summarizing a destructive operation with precision
25
- - ✅ Be explicit about what changed and what did not — no glossing over partial failures
26
- - ✅ Surface recovery guidance when any stage in step-02 reported an error
27
-
28
- ### Step-Specific Rules:
29
-
30
- - 🎯 Focus only on reporting the results stored in context by step-02
31
- - 🚫 FORBIDDEN to re-execute any part of the drop
32
- - 🚫 FORBIDDEN to hide verification errors or failed platform rebuilds
33
- - 💬 Present the final state clearly, including remaining versions for the affected skill
34
-
35
- ## EXECUTION PROTOCOLS:
36
-
37
- - 🎯 Render the report using the context values set in step-02 (`target_skill`, `target_versions`, `drop_mode`, `is_skill_level`, `files_deleted`, `disk_freed`, `manifest_updated`, `platform_files_updated`, `platform_files_failed`, `verification_errors`)
38
- - 📖 For the "remaining versions" section, re-read `{skills_output_folder}/.export-manifest.json` (already updated by step-02) to show the current state
39
- - 💬 Include the reversibility note only when `drop_mode == "deprecate"`
40
-
41
- ## CONTEXT BOUNDARIES:
42
-
43
- - Available: All decision and result values stored in context by step-01 and step-02, plus the updated export manifest on disk
44
- - Focus: Rendering the final report
45
- - Limits: No file writes, no deletions, no further execution
46
- - Dependencies: Step-02 must have completed (or attempted all stages) and stored its results
47
-
48
- ## MANDATORY SEQUENCE
49
-
50
- **CRITICAL:** Follow this sequence exactly.
51
-
52
- ### 1. Determine Remaining Versions
53
-
54
- **If `is_skill_level == true`:**
55
-
56
- Set `remaining_versions_display = "(skill fully removed)"`.
57
-
58
- **If `is_skill_level == false`:**
59
-
60
- Read `{skills_output_folder}/.export-manifest.json` and look up `exports.{target_skill}.versions`. Build a human-readable list of every remaining version with its status, with the active one marked:
61
-
62
- ```
63
- - 0.1.0 (deprecated)
64
- - 0.5.0 (archived)
65
- - 0.6.0 (active) *
66
- ```
67
-
68
- ### 2. Render the Report
69
-
70
- Display the following block, filling in values from context:
71
-
72
- ```
73
- **Drop operation complete.**
74
-
75
- Operation: {Deprecate | Purge}
76
- Skill: {target_skill}
77
- Version(s): {comma-separated target_versions or "ALL"}
78
-
79
- Changes:
80
- - Manifest updated: {yes | no}
81
- - Platform files rebuilt: {list from platform_files_updated, or "(none)"}
82
- {if platform_files_failed is non-empty:}
83
- - Platform files FAILED: {list from platform_files_failed}
84
- {if drop_mode == "purge":}
85
- - Files deleted: {list from files_deleted, or "(none — nothing on disk)"}
86
- - Disk space freed: {disk_freed}
87
-
88
- Remaining versions for {target_skill}:
89
- {remaining_versions_display}
90
-
91
- {if drop_mode == "deprecate":}
92
- **Note:** Files remain on disk. This operation is reversible by manually editing
93
- `{skills_output_folder}/.export-manifest.json` and changing the version's `status`
94
- field back to `"active"` or `"archived"`, then re-running `[EX] Export Skill` to
95
- restore the managed section entry.
96
-
97
- {if verification_errors is non-empty:}
98
- **Verification warnings:**
99
- {list each verification error}
100
- These require manual review — see the error-handling guidance in step-02.
101
- ```
102
-
103
- ### 3. Close the Workflow
104
-
105
- After rendering the report, the workflow is complete. Do not load any further step file — there is no `nextStepFile`.
106
-
107
- ## CRITICAL STEP COMPLETION NOTE
108
-
109
- This is the final step. Once the report has been rendered, the drop-skill workflow is finished. Do not re-run any earlier step automatically — if the user wants another drop, they should re-invoke the workflow from the top.
110
-
111
- ---
112
-
113
- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
114
-
115
- ### ✅ SUCCESS:
116
-
117
- - Report rendered with operation type, skill, version(s), and mode
118
- - Manifest update outcome clearly stated (yes/no)
119
- - Platform files rebuilt listed (and failures surfaced when present)
120
- - Purge mode: files deleted and disk freed reported
121
- - Soft drop: reversibility note included with concrete instructions
122
- - Remaining versions for the affected skill accurately listed from the updated manifest (or "(skill fully removed)" for skill-level drops)
123
- - Verification warnings surfaced, not hidden
124
- - No further file writes or executions performed
125
-
126
- ### ❌ SYSTEM FAILURE:
127
-
128
- - Hiding failed platform rebuilds or verification errors
129
- - Reporting "complete" when step-02 partially failed without flagging it
130
- - Reading stale manifest data instead of the post-drop state
131
- - Re-executing any part of the drop workflow
132
- - Omitting the reversibility note in soft drop mode
133
- - Displaying remaining versions from memory rather than from the updated manifest
134
-
135
- **Master Rule:** The report must be an honest, complete summary of what step-02 actually did. Every partial failure must be visible so the user knows exactly what manual follow-up, if any, is required.
@@ -1,63 +0,0 @@
1
- ---
2
- name: drop-skill
3
- description: "Drop (deprecate or purge) skill versions. Soft drop keeps files; hard drop deletes them. Active version guarded."
4
- web_bundle: true
5
- installed_path: '{project-root}/_bmad/skf/workflows/skillforge/drop-skill'
6
- ---
7
-
8
- # Drop Skill
9
-
10
- **Goal:** Drop a specific skill version or an entire skill, either as a soft deprecation (manifest-only, files retained) or a hard purge (files deleted). Ensures platform context files are rebuilt to exclude dropped versions.
11
-
12
- **Your Role:** In addition to your name, communication_style, and persona, you are also Ferris in Delivery/Management mode — a destructive operation specialist who enforces safety guards. You treat every drop as potentially irreversible and require explicit user confirmation before touching the manifest or the filesystem. You protect the active version, keep the export manifest consistent with on-disk state, and ensure that downstream platform context files (CLAUDE.md / AGENTS.md / .cursorrules) are rebuilt so dropped versions disappear cleanly.
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
- - **Safety-First Destruction**: Every destructive action is preceded by an explicit user confirmation gate; nothing is deleted silently
26
- - **Manifest-Driven Truth**: The export manifest is the source of truth for what exists and what is active; the filesystem is updated to match
27
-
28
- ### Step Processing Rules
29
-
30
- 1. **READ COMPLETELY**: Always read the entire step file before taking any action
31
- 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
32
- 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
33
- 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
34
- 5. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
35
-
36
- ### Critical Rules (NO EXCEPTIONS)
37
-
38
- - 🛑 **NEVER** load multiple step files simultaneously
39
- - 📖 **ALWAYS** read entire step file before execution
40
- - 🚫 **NEVER** skip steps or optimize the sequence
41
- - 🎯 **ALWAYS** follow the exact instructions in the step file
42
- - ⏸️ **ALWAYS** halt at menus and wait for user input
43
- - 📋 **NEVER** create mental todo lists from future steps
44
- - ⚙️ **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
45
- - 🛡️ **NEVER** delete files without explicit user confirmation in purge mode
46
- - 🛡️ **NEVER** drop an active version when other non-deprecated versions exist — enforce the active version guard
47
- - ✅ YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
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`
58
- - `skills_output_folder`, `forge_data_folder`, `sidecar_path`
59
- - 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.
60
-
61
- ### 2. First Step Execution
62
-
63
- Load, read the full file and then execute `./steps-c/step-01-select.md` to begin the workflow.
@@ -1,103 +0,0 @@
1
- # Managed Section Format (ADR-J)
2
-
3
- ## Marker Format
4
-
5
- ```markdown
6
- <!-- SKF:BEGIN updated:{YYYY-MM-DD} -->
7
- [SKF Skills]|{n} skills|{m} stack
8
- |IMPORTANT: Prefer documented APIs over training data.
9
- |When using a listed library, read its SKILL.md before writing code.
10
- |
11
- |{skill-snippet-1}
12
- |
13
- |{skill-snippet-2}
14
- <!-- SKF:END -->
15
- ```
16
-
17
- ## Platform Target Files
18
-
19
- | Platform | Flag Value | Target File |
20
- |----------|-----------|-------------|
21
- | Copilot | `copilot` (default) | AGENTS.md |
22
- | Claude | `claude` | CLAUDE.md |
23
- | Cursor | `cursor` | .cursorrules |
24
-
25
- ## IDE → Platform Mapping (config.yaml `ides` list)
26
-
27
- The installer writes installer-specific IDE identifiers to `config.yaml` under the `ides` key (not platform values). Any workflow that rebuilds platform context files from `config.yaml` MUST map each entry to a platform before looking up its target file.
28
-
29
- | config.yaml IDE value | Platform | Target File | Rationale |
30
- |----------------------|----------|-------------|-----------|
31
- | `claude-code` | `claude` | CLAUDE.md | native — reads `CLAUDE.md` and `.claude/skills/` |
32
- | `cursor` | `cursor` | .cursorrules | native — reads `.cursorrules` and `.cursor/skills/` |
33
- | `github-copilot` | `copilot` | AGENTS.md | native — reads `AGENTS.md` and `.agents/skills/` |
34
- | `codex` | `copilot` | AGENTS.md | OpenAI Codex reads `AGENTS.md` (same convention as copilot) |
35
- | `cline` | `copilot` | AGENTS.md | uses `AGENTS.md` as fallback context file |
36
- | `roo` | `copilot` | AGENTS.md | uses `AGENTS.md` as fallback context file |
37
- | `windsurf` | `copilot` | AGENTS.md | uses `AGENTS.md` as fallback context file |
38
- | `other` | `copilot` | AGENTS.md | generic AGENTS.md fallback |
39
- | _(any unknown value)_ | `copilot` | AGENTS.md | warn: "Unknown IDE '{value}' in config.yaml — defaulting to copilot" |
40
-
41
- **Deduplication:** When multiple IDE entries map to the same platform (e.g. `codex` and `cline` both → `copilot`), deduplicate so each platform is processed exactly once. Report the deduplication to the user.
42
-
43
- **Missing `ides` key:** If the `ides` key is absent from `config.yaml`, treat it as an empty list. If the resulting platform set is empty (no recognized entries), fall back to `["copilot"]`.
44
-
45
- This mapping is the single source of truth. Workflows that need it: `export-skill/step-01` (resolves `target_platforms` for the export), `drop-skill/step-02` and `rename-skill/step-02` (rebuild platform context files after a management operation).
46
-
47
- ## Four-Case Logic
48
-
49
- ### Case 1: Create (No File Exists)
50
-
51
- Target file does not exist. Create new file with managed section only.
52
-
53
- ```markdown
54
- <!-- SKF:BEGIN updated:{date} -->
55
- {managed section content}
56
- <!-- SKF:END -->
57
- ```
58
-
59
- ### Case 2: Append (File Exists, No Section)
60
-
61
- Target file exists but contains no `<!-- SKF:BEGIN` marker. Append managed section at end of file.
62
-
63
- 1. Read existing file content
64
- 2. Append two blank lines
65
- 3. Append managed section with markers
66
- 4. Write file
67
-
68
- ### Case 3: Regenerate (Existing Section)
69
-
70
- Target file contains `<!-- SKF:BEGIN` and `<!-- SKF:END -->` markers. Replace content between markers.
71
-
72
- 1. Read existing file content
73
- 2. Find `<!-- SKF:BEGIN` line (preserve everything before it)
74
- 3. Find `<!-- SKF:END -->` line (preserve everything after it)
75
- 4. Replace everything between markers (inclusive) with new managed section
76
- 5. Write file
77
-
78
- ### Case 4: Malformed Markers (Halt)
79
-
80
- Target file contains `<!-- SKF:BEGIN` but no matching `<!-- SKF:END -->` marker. This indicates a corrupted managed section.
81
-
82
- 1. Halt workflow with error: "Malformed managed section — `<!-- SKF:BEGIN` found but no `<!-- SKF:END -->`. Fix the markers manually before re-running export."
83
- 2. Do not modify the file
84
-
85
- ## Regeneration: Full Index Rebuild
86
-
87
- When regenerating (Case 3) or creating/appending (Cases 1-2), rebuild the skill index from the **exported skill set** only:
88
-
89
- 1. Read `{skills_output_folder}/.export-manifest.json` (v2 schema — see [knowledge/version-paths.md](../../../knowledge/version-paths.md)) to determine which skills have been explicitly exported and their `active_version` (if no manifest exists, only the current export target qualifies)
90
- 2. For each skill in the exported set, resolve the snippet at `{skills_output_folder}/{skill-name}/{active_version}/{skill-name}/context-snippet.md` (i.e., `{skill_package}/context-snippet.md`). Do NOT use glob patterns across version directories — always resolve via manifest `active_version` or `active` symlink
91
- 3. Count total skills and stack skills (from filtered set only)
92
- 4. Assemble filtered snippets into managed section
93
- 5. Sort alphabetically by skill name
94
- 6. Update the header line with correct counts
95
-
96
- **Rationale:** create-skill and update-skill also write `context-snippet.md` as a build artifact, but only export-skill is the publishing gate (ADR-K). The `.export-manifest.json` file tracks which skills have passed through export-skill, preventing draft skills from leaking into the agent's passive context.
97
-
98
- ## Safety Rules
99
-
100
- - NEVER modify content outside the `<!-- SKF:BEGIN/END -->` markers
101
- - ALWAYS preserve existing file content above and below markers
102
- - ALWAYS verify file was written correctly after write
103
- - If write fails, report error — do not attempt partial writes
@@ -1,237 +0,0 @@
1
- ---
2
- name: 'step-01-load-skill'
3
- description: 'Load skill artifacts and validate spec compliance before export'
4
-
5
- nextStepFile: './step-02-package.md'
6
- ---
7
-
8
- # Step 1: Load Skill
9
-
10
- ## STEP GOAL:
11
-
12
- To load the target skill's artifacts, validate they meet agentskills.io spec compliance, parse export flags, and confirm with the user before proceeding to packaging.
13
-
14
- ## MANDATORY EXECUTION RULES (READ FIRST):
15
-
16
- ### Universal Rules:
17
-
18
- - 🛑 NEVER proceed without user confirmation of the loaded skill
19
- - 📖 CRITICAL: Read the complete step file before taking any action
20
- - 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
21
- - ⚙️ 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
22
- - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
23
-
24
- ### Role Reinforcement:
25
-
26
- - ✅ You are a delivery and packaging specialist in Ferris Delivery mode
27
- - ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
28
- - ✅ Precise and efficient — validate thoroughly, report clearly
29
- - ✅ User brings the skill path and export preferences
30
-
31
- ### Step-Specific Rules:
32
-
33
- - 🎯 Focus only on loading, validating, and confirming the skill
34
- - 🚫 FORBIDDEN to modify any skill files — this is read-only
35
- - 🚫 FORBIDDEN to write any output files yet — packaging starts in step-02
36
- - 💬 Present a clear summary of what was found for user confirmation
37
-
38
- ## EXECUTION PROTOCOLS:
39
-
40
- - 🎯 Follow the MANDATORY SEQUENCE exactly
41
- - 💾 Hold all loaded data in context for subsequent steps
42
- - 📖 Validate against agentskills.io spec requirements
43
- - 🚫 Hard halt if required files are missing — do not proceed with incomplete skill
44
-
45
- ## CONTEXT BOUNDARIES:
46
-
47
- - Available: SKF module config (skills_output_folder, forge_data_folder)
48
- - Focus: Skill discovery, loading, and validation
49
- - Limits: Read-only — no file writes in this step
50
- - Dependencies: Skill must have been created by create-skill or update-skill
51
-
52
- ## MANDATORY SEQUENCE
53
-
54
- **CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise unless user explicitly requests a change.
55
-
56
- ### 1. Parse Export Arguments
57
-
58
- "**Starting skill export...**"
59
-
60
- Determine the skill to export and any flags:
61
-
62
- **Skill Path Discovery (version-aware — see [knowledge/version-paths.md](../../../knowledge/version-paths.md)):**
63
- - If user provided a skill name or path as argument, use that
64
- - If not provided, discover available skills using the export manifest:
65
- 1. Read `{skills_output_folder}/.export-manifest.json` — list skill names from `exports`
66
- 2. For each skill group directory in `{skills_output_folder}/`, check for `{skill_group}/active/{skill-name}/SKILL.md`
67
- 3. If neither manifest nor `active` symlink yields results, fall back to flat path: `{skills_output_folder}/{skill-name}/SKILL.md`
68
- - If multiple skills found, present list and ask user to select
69
- - If no skills found, halt: "No skills found in {skills_output_folder}/. Run create-skill first."
70
-
71
- **Flag Parsing:**
72
- - `--platform` flag: Check if explicitly provided (claude/cursor/copilot)
73
- - `--dry-run` flag: Check if provided. Default: `false`
74
-
75
- **Platform Resolution:**
76
-
77
- If `--platform` is explicitly provided, use that single platform as the sole target. If other IDEs are configured in config.yaml, emit a note: "**Note:** Exporting to {platform} only. config.yaml also lists: {other-ides}. Run without `--platform` to export to all configured IDEs."
78
-
79
- If `--platform` is NOT provided, read the `ides` list from config.yaml and map each IDE to a target platform. Every IDE the installer offers has an explicit mapping — no silent skips.
80
-
81
- | config.yaml IDE value | Platform | Rationale |
82
- |----------------------|----------|-----------|
83
- | `claude-code` | `claude` | native — reads `CLAUDE.md` and `.claude/skills/` |
84
- | `cursor` | `cursor` | native — reads `.cursorrules` and `.cursor/skills/` |
85
- | `github-copilot` | `copilot` | native — reads `AGENTS.md` and `.agents/skills/` |
86
- | `codex` | `copilot` | OpenAI Codex reads `AGENTS.md` (same convention as copilot) |
87
- | `cline` | `copilot` | uses `AGENTS.md` as a fallback context file |
88
- | `roo` | `copilot` | uses `AGENTS.md` as a fallback context file |
89
- | `windsurf` | `copilot` | uses `AGENTS.md` as a fallback context file |
90
- | `other` | `copilot` | generic AGENTS.md fallback |
91
- | Any other value | `copilot` | warn: "Unknown IDE '{value}' in config.yaml — defaulting to copilot (AGENTS.md)" |
92
-
93
- When the same platform is produced by multiple IDE entries (e.g. both `codex` and `cline` map to `copilot`), deduplicate so each platform appears in `target_platforms` only once. Report the deduplication: "Multiple IDEs target the same platform — exporting to {platform} once."
94
-
95
- **Missing-key handling:** If the `ides` key is absent from config.yaml (older installation or manually edited file), treat it as an empty list.
96
-
97
- - If mapping produces one or more platforms (after dedup), store as `target_platforms` list
98
- - If mapping produces zero platforms (empty ides list and no recognized entries), fall back to `["copilot"]` with note: "No IDEs configured in config.yaml — defaulting to copilot (AGENTS.md / .agents/skills/)."
99
-
100
- "**Skill:** {skill-name}
101
- **Platform(s):** {platform-list} ({target-file-list})
102
- **Dry Run:** {yes/no}"
103
-
104
- ### 2. Load and Validate Skill Artifacts
105
-
106
- Resolve the skill's versioned path before loading artifacts:
107
-
108
- 1. Read `{skills_output_folder}/.export-manifest.json` and look up `{skill-name}` in `exports` to get `active_version`
109
- 2. If found: resolve to `{skill_package}` = `{skills_output_folder}/{skill-name}/{active_version}/{skill-name}/`
110
- 3. If not in manifest: check for `active` symlink at `{skills_output_folder}/{skill-name}/active` — resolve to `{skill_group}/active/{skill-name}/`
111
- 4. If neither: fall back to flat path `{skills_output_folder}/{skill-name}/`. If SKILL.md exists at the flat path, auto-migrate per `knowledge/version-paths.md` migration rules
112
- 5. Store the resolved path as `{resolved_skill_package}` for all subsequent artifact loading
113
-
114
- Load all files from `{resolved_skill_package}`:
115
-
116
- **Required Files (hard halt if missing):**
117
- - `SKILL.md` — The main skill document
118
- - `metadata.json` — Machine-readable skill metadata
119
-
120
- **Optional Files (note presence):**
121
- - `references/` — Progressive disclosure directory
122
- - `context-snippet.md` — Existing snippet (will be regenerated)
123
-
124
- **Validation Checks:**
125
- 1. `SKILL.md` exists and is non-empty
126
- 2. `metadata.json` exists and is valid JSON
127
- 3. `metadata.json` contains required fields: `name`, `version`, `skill_type`, `source_authority`, `exports`, `generation_date`, `confidence_tier`
128
- 4. `metadata.json.exports` is a non-empty array (warn if empty — graceful handling)
129
-
130
- **If any required validation fails:**
131
- "**Export cannot proceed.** Missing or invalid: {list failures}
132
- Run create-skill to generate a complete skill first."
133
-
134
- ### 3. Read Skill Metadata
135
-
136
- Extract from `metadata.json`:
137
- - `name` — Skill display name
138
- - `skill_type` — `single` or `stack`
139
- - `source_authority` — `official`, `internal`, or `community`
140
- - `exports` — Array of exported functions/types
141
- - `generation_date` — When the skill was last generated
142
- - `confidence_tier` — Quick/Forge/Forge+/Deep
143
-
144
- **For stack skills, also extract:**
145
- - `components` — Array of dependencies with versions
146
- - `integrations` — Array of co-import patterns
147
-
148
- ### 4. Check Forge Configuration
149
-
150
- Load `{sidecar_path}/preferences.yaml` (if exists):
151
- - Check `passive_context` setting
152
- - If `passive_context: false` — note that steps 03-04 (snippet + context update) will be skipped
153
-
154
- ### 4b. Check Test Report (Quality Gate)
155
-
156
- Search for a test report at `{forge_data_folder}/{skill_name}/{active_version}/test-report-{skill_name}.md` (i.e., `{forge_version}/test-report-{skill_name}.md`). If not found at the versioned path, fall back to `{forge_data_folder}/{skill_name}/test-report-{skill_name}.md`:
157
-
158
- **If test report found:**
159
- - Read frontmatter `testResult` and `score`
160
- - If `testResult: fail`: warn: "**Warning:** This skill failed its last test (score: {score}%). Consider running `@Ferris TS` and addressing gaps before export."
161
- - If `testResult: pass`: note: "Last test: **PASS** ({score}%)"
162
-
163
- **If no test report found:**
164
- - Warn: "**Note:** No test report found for this skill. Consider running `@Ferris TS` before export to verify completeness."
165
-
166
- Continue to step 5 regardless — this is advisory, not blocking.
167
-
168
- ### 5. Present Skill Summary
169
-
170
- "**Skill loaded and validated.**
171
-
172
- | Field | Value |
173
- |-------|-------|
174
- | **Name** | {name} |
175
- | **Type** | {skill_type} |
176
- | **Authority** | {source_authority} |
177
- | **Confidence** | {confidence_tier} |
178
- | **Exports** | {count} functions/types |
179
- | **Generated** | {generation_date} |
180
- | **References** | {count files or 'none'} |
181
-
182
- **Export Configuration:**
183
- | Setting | Value |
184
- |---------|-------|
185
- | **Platform(s)** | {platform-list} → {target-file-list} |
186
- | **Explicit --platform** | {yes (user-specified) / no (from config.yaml)} |
187
- | **Dry Run** | {yes/no} |
188
- | **Passive Context** | {enabled/disabled} |
189
-
190
- **Top Exports:**
191
- {list top 5 exports from metadata}
192
-
193
- **Is this the correct skill to export?**"
194
-
195
- ### 6. Present MENU OPTIONS
196
-
197
- Display: "**Select:** [C] Continue to packaging"
198
-
199
- #### Menu Handling Logic:
200
-
201
- - IF C: Proceed with loaded skill data, then load, read entire file, then execute {nextStepFile}
202
- - IF Any other: help user respond, then [Redisplay Menu Options](#6-present-menu-options)
203
-
204
- #### EXECUTION RULES:
205
-
206
- - ALWAYS halt and wait for user input after presenting menu
207
- - ONLY proceed to next step when user selects 'C'
208
-
209
- ## CRITICAL STEP COMPLETION NOTE
210
-
211
- ONLY WHEN the user confirms the correct skill is loaded by selecting 'C' will you load and read fully `{nextStepFile}` to execute packaging.
212
-
213
- ---
214
-
215
- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
216
-
217
- ### ✅ SUCCESS:
218
-
219
- - Skill path resolved (from argument or discovery)
220
- - All required files loaded and validated
221
- - metadata.json parsed with required fields
222
- - Export flags parsed (platform, dry-run)
223
- - config.yaml ides list consumed for multi-platform resolution when --platform not provided
224
- - Forge config checked for passive_context
225
- - Clear summary presented to user
226
- - User confirms correct skill
227
-
228
- ### ❌ SYSTEM FAILURE:
229
-
230
- - Proceeding without finding SKILL.md or metadata.json
231
- - Not validating metadata.json fields
232
- - Not checking preferences.yaml for passive_context opt-out
233
- - Proceeding without user confirmation
234
- - Ignoring config.yaml ides list when no --platform flag is provided
235
- - Modifying any skill files (read-only step)
236
-
237
- **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -1,58 +0,0 @@
1
- ---
2
- name: export-skill
3
- description: Package for distribution + platform-aware context injection
4
- web_bundle: true
5
- installed_path: '{project-root}/_bmad/skf/workflows/skillforge/export-skill'
6
- ---
7
-
8
- # Export Skill
9
-
10
- **Goal:** Package a completed skill as an agentskills.io-compliant package, generate context snippets, and update the managed section in CLAUDE.md/.cursorrules/AGENTS.md for platform-aware context injection.
11
-
12
- **Your Role:** In addition to your name, communication_style, and persona, you are also a delivery and packaging specialist collaborating with a skill developer. This is a partnership, not a client-vendor relationship. You bring expertise in skill packaging, ecosystem compliance, and context injection patterns, while the user brings their completed skill and distribution requirements. Work together as equals.
13
-
14
- **Meta-Context:** This workflow is the sole publishing gate for skills (ADR-K). Create-skill and update-skill produce draft artifacts — only export-skill writes to CLAUDE.md/AGENTS.md and prepares packages for distribution. This prevents half-baked snippets from entering the agent's passive context.
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
- - **Action-Based Output**: This workflow performs file operations (writes, updates) rather than building a progressive document
26
-
27
- ### Step Processing Rules
28
-
29
- 1. **READ COMPLETELY**: Always read the entire step file before taking any action
30
- 2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
31
- 3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
32
- 4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
33
- 5. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
34
-
35
- ### Critical Rules (NO EXCEPTIONS)
36
-
37
- - 🛑 **NEVER** load multiple step files simultaneously
38
- - 📖 **ALWAYS** read entire step file before execution
39
- - 🚫 **NEVER** skip steps or optimize the sequence
40
- - 🎯 **ALWAYS** follow the exact instructions in the step file
41
- - ⏸️ **ALWAYS** halt at menus and wait for user input
42
- - 📋 **NEVER** create mental todo lists from future steps
43
- - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
44
-
45
- ---
46
-
47
- ## INITIALIZATION SEQUENCE
48
-
49
- ### 1. Module Configuration Loading
50
-
51
- Load and read full config from {project-root}/_bmad/skf/config.yaml and resolve:
52
-
53
- - `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`
54
- - `skills_output_folder`, `forge_data_folder`, `sidecar_path`
55
-
56
- ### 2. First Step Execution
57
-
58
- Load, read the full file and then execute `./steps-c/step-01-load-skill.md` to begin the workflow.