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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/.claude-plugin/marketplace.json +39 -0
  2. package/.gitattributes +16 -0
  3. package/README.md +105 -38
  4. package/docs/404.md +13 -10
  5. package/docs/RELEASING.md +185 -0
  6. package/docs/STABILITY.md +123 -0
  7. package/docs/_data/pinned.yaml +98 -0
  8. package/docs/agents.md +16 -11
  9. package/docs/architecture.md +221 -0
  10. package/docs/bmad-synergy.md +11 -13
  11. package/docs/concepts.md +18 -108
  12. package/docs/examples.md +121 -80
  13. package/docs/getting-started.md +85 -147
  14. package/docs/how-it-works.md +25 -536
  15. package/docs/index.md +44 -27
  16. package/docs/skill-model.md +328 -0
  17. package/docs/troubleshooting.md +39 -0
  18. package/docs/verifying-a-skill.md +232 -0
  19. package/docs/why-skf.md +93 -0
  20. package/docs/workflows.md +119 -13
  21. package/package.json +25 -4
  22. package/src/README.md +23 -25
  23. package/src/forger/forge-tier.yaml +4 -2
  24. package/src/forger/preferences.yaml +7 -1
  25. package/src/knowledge/agentskills-spec.md +1 -1
  26. package/src/knowledge/architecture-verification.md +1 -1
  27. package/src/knowledge/ccc-bridge.md +16 -15
  28. package/src/knowledge/overview.md +11 -11
  29. package/src/knowledge/progressive-capability.md +3 -3
  30. package/src/knowledge/provenance-tracking.md +9 -3
  31. package/src/knowledge/qmd-registry.md +8 -8
  32. package/src/knowledge/skf-knowledge-index.csv +2 -2
  33. package/src/knowledge/skill-lifecycle.md +16 -1
  34. package/src/knowledge/split-body-strategy.md +1 -1
  35. package/src/knowledge/version-paths.md +17 -12
  36. package/src/module-help.csv +18 -17
  37. package/src/shared/health-check.md +372 -0
  38. package/src/shared/references/feasibility-report-schema.md +86 -0
  39. package/src/shared/references/headless-gate-convention.md +62 -0
  40. package/src/shared/references/output-contract-schema.md +35 -0
  41. package/src/shared/references/pipeline-contracts.md +102 -0
  42. package/src/shared/scripts/skf-atomic-write.py +370 -0
  43. package/src/shared/scripts/skf-manifest-ops.py +236 -0
  44. package/src/shared/scripts/skf-preflight.py +164 -0
  45. package/src/shared/scripts/skf-rebuild-managed-sections.py +201 -0
  46. package/src/shared/scripts/skf-severity-classify.py +163 -0
  47. package/src/shared/scripts/skf-skill-inventory.py +210 -0
  48. package/src/shared/scripts/skf-structural-diff.py +257 -0
  49. package/src/shared/scripts/skf-validate-frontmatter.py +318 -0
  50. package/src/shared/scripts/skf-validate-output.py +247 -0
  51. package/src/skf-analyze-source/SKILL.md +57 -0
  52. package/src/skf-analyze-source/assets/skill-brief-schema.md +125 -0
  53. package/src/skf-analyze-source/references/unit-detection-heuristics.md +124 -0
  54. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01-init.md +6 -66
  55. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-01b-continue.md +4 -59
  56. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-02-scan-project.md +7 -68
  57. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-03-identify-units.md +6 -66
  58. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-04-map-and-detect.md +7 -68
  59. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-05-recommend.md +6 -66
  60. package/src/{workflows/analyze-source → skf-analyze-source}/steps-c/step-06-generate-briefs.md +14 -71
  61. package/src/skf-analyze-source/steps-c/step-07-health-check.md +22 -0
  62. package/src/skf-audit-skill/SKILL.md +59 -0
  63. package/src/{workflows/audit-skill/data → skf-audit-skill/assets}/drift-report-template.md +7 -7
  64. package/src/{workflows/audit-skill/data → skf-audit-skill/references}/severity-rules.md +11 -11
  65. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-01-init.md +24 -68
  66. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-02-re-index.md +36 -71
  67. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-03-structural-diff.md +21 -63
  68. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-04-semantic-diff.md +6 -65
  69. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-05-severity-classify.md +5 -63
  70. package/src/{workflows/audit-skill → skf-audit-skill}/steps-c/step-06-report.md +10 -64
  71. package/src/skf-audit-skill/steps-c/step-07-health-check.md +22 -0
  72. package/src/skf-brief-skill/SKILL.md +53 -0
  73. package/src/{workflows/brief-skill/data → skf-brief-skill/assets}/scope-templates.md +23 -0
  74. package/src/skf-brief-skill/assets/skill-brief-schema.md +206 -0
  75. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-01-gather-intent.md +6 -67
  76. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-02-analyze-target.md +6 -66
  77. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-03-scope-definition.md +12 -68
  78. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-04-confirm-brief.md +5 -63
  79. package/src/{workflows/brief-skill → skf-brief-skill}/steps-c/step-05-write-brief.md +10 -70
  80. package/src/skf-brief-skill/steps-c/step-06-health-check.md +22 -0
  81. package/src/skf-create-skill/SKILL.md +63 -0
  82. package/src/{workflows/create-skill/data → skf-create-skill/assets}/compile-assembly-rules.md +60 -0
  83. package/src/{workflows/create-skill/data → skf-create-skill/assets}/skill-sections.md +92 -23
  84. package/src/skf-create-skill/assets/tessl-dismissal-rules.md +102 -0
  85. package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns-tracing.md +13 -13
  86. package/src/{workflows/create-skill/data → skf-create-skill/references}/extraction-patterns.md +8 -3
  87. package/src/skf-create-skill/references/source-resolution-protocols.md +239 -0
  88. package/src/{workflows/create-skill/data → skf-create-skill/references}/tier-degradation-rules.md +8 -7
  89. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-01-load-brief.md +25 -63
  90. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-02-ecosystem-check.md +8 -64
  91. package/src/skf-create-skill/steps-c/step-03-extract.md +379 -0
  92. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-03d-component-extraction.md +18 -35
  93. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-04-enrich.md +12 -69
  94. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-05-compile.md +71 -75
  95. package/src/skf-create-skill/steps-c/step-06-validate.md +267 -0
  96. package/src/{workflows/create-skill → skf-create-skill}/steps-c/step-07-generate-artifacts.md +30 -74
  97. package/src/skf-create-skill/steps-c/step-08-report.md +145 -0
  98. package/src/skf-create-skill/steps-c/step-09-health-check.md +23 -0
  99. package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-02b-ccc-discover.md +8 -66
  100. package/src/skf-create-skill/steps-c/sub/step-03b-fetch-temporal.md +229 -0
  101. package/src/{workflows/create-skill/steps-c → skf-create-skill/steps-c/sub}/step-03c-fetch-docs.md +18 -42
  102. package/src/skf-create-stack-skill/SKILL.md +64 -0
  103. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/assets}/stack-skill-template.md +2 -1
  104. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/compose-mode-rules.md +19 -5
  105. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/integration-patterns.md +1 -1
  106. package/src/{workflows/create-stack-skill/data → skf-create-stack-skill/references}/manifest-patterns.md +10 -10
  107. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-01-init.md +14 -55
  108. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-02-detect-manifests.md +29 -63
  109. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-03-rank-and-confirm.md +9 -59
  110. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-04-parallel-extract.md +29 -64
  111. package/src/skf-create-stack-skill/steps-c/step-05-detect-integrations.md +164 -0
  112. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-06-compile-stack.md +7 -60
  113. package/src/skf-create-stack-skill/steps-c/step-07-generate-output.md +328 -0
  114. package/src/{workflows/create-stack-skill → skf-create-stack-skill}/steps-c/step-08-validate.md +17 -63
  115. package/src/skf-create-stack-skill/steps-c/step-09-report.md +128 -0
  116. package/src/skf-create-stack-skill/steps-c/step-10-health-check.md +22 -0
  117. package/src/skf-drop-skill/SKILL.md +57 -0
  118. package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-01-select.md +9 -69
  119. package/src/{workflows/drop-skill → skf-drop-skill}/steps-c/step-02-execute.md +30 -106
  120. package/src/skf-drop-skill/steps-c/step-03-report.md +83 -0
  121. package/src/skf-drop-skill/steps-c/step-04-health-check.md +22 -0
  122. package/src/skf-export-skill/SKILL.md +57 -0
  123. package/src/skf-export-skill/assets/managed-section-format.md +138 -0
  124. package/src/{workflows/export-skill/data → skf-export-skill/assets}/snippet-format.md +8 -12
  125. package/src/skf-export-skill/steps-c/step-01-load-skill.md +247 -0
  126. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-02-package.md +5 -58
  127. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-03-generate-snippet.md +15 -77
  128. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-04-update-context.md +59 -133
  129. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-05-token-report.md +4 -58
  130. package/src/{workflows/export-skill → skf-export-skill}/steps-c/step-06-summary.md +16 -68
  131. package/src/skf-export-skill/steps-c/step-07-health-check.md +22 -0
  132. package/src/skf-forger/SKILL.md +110 -0
  133. package/src/skf-forger/bmad-skill-manifest.yaml +11 -0
  134. package/src/skf-quick-skill/SKILL.md +56 -0
  135. package/src/{workflows/quick-skill/data → skf-quick-skill/references}/registry-resolution.md +6 -6
  136. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-01-resolve-target.md +9 -62
  137. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-02-ecosystem-check.md +5 -59
  138. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-03-quick-extract.md +18 -61
  139. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-04-compile.md +6 -60
  140. package/src/{workflows/quick-skill → skf-quick-skill}/steps-c/step-05-validate.md +58 -78
  141. package/src/skf-quick-skill/steps-c/step-06-write.md +73 -0
  142. package/src/skf-quick-skill/steps-c/step-07-health-check.md +22 -0
  143. package/src/skf-refine-architecture/SKILL.md +57 -0
  144. package/src/{workflows/refine-architecture/data → skf-refine-architecture/references}/refinement-rules.md +16 -16
  145. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-01-init.md +6 -63
  146. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-02-gap-analysis.md +29 -71
  147. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-03-issue-detection.md +5 -65
  148. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-04-improvements.md +5 -64
  149. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-05-compile.md +5 -56
  150. package/src/{workflows/refine-architecture → skf-refine-architecture}/steps-c/step-06-report.md +11 -64
  151. package/src/skf-refine-architecture/steps-c/step-07-health-check.md +22 -0
  152. package/src/skf-rename-skill/SKILL.md +58 -0
  153. package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-01-select.md +12 -73
  154. package/src/{workflows/rename-skill → skf-rename-skill}/steps-c/step-02-execute.md +32 -113
  155. package/src/skf-rename-skill/steps-c/step-03-report.md +83 -0
  156. package/src/skf-rename-skill/steps-c/step-04-health-check.md +22 -0
  157. package/src/skf-setup/SKILL.md +55 -0
  158. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01-detect-and-tier.md +6 -62
  159. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-01b-ccc-index.md +9 -65
  160. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-02-write-config.md +15 -60
  161. package/src/{workflows/setup-forge → skf-setup}/steps-c/step-03-auto-index.md +7 -66
  162. package/src/skf-setup/steps-c/step-04-report.md +92 -0
  163. package/src/skf-setup/steps-c/step-05-health-check.md +22 -0
  164. package/src/skf-test-skill/SKILL.md +59 -0
  165. package/src/skf-test-skill/references/migration-section-rules.md +114 -0
  166. package/src/skf-test-skill/references/scoring-rules.md +207 -0
  167. package/src/skf-test-skill/references/source-access-protocol.md +109 -0
  168. package/src/skf-test-skill/scripts/compute-score.py +310 -0
  169. package/src/skf-test-skill/steps-c/step-01-init.md +238 -0
  170. package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-02-detect-mode.md +4 -62
  171. package/src/skf-test-skill/steps-c/step-03-coverage-check.md +347 -0
  172. package/src/skf-test-skill/steps-c/step-04-coherence-check.md +239 -0
  173. package/src/{workflows/test-skill → skf-test-skill}/steps-c/step-04b-external-validators.md +42 -77
  174. package/src/skf-test-skill/steps-c/step-05-score.md +266 -0
  175. package/src/skf-test-skill/steps-c/step-06-report.md +290 -0
  176. package/src/skf-test-skill/steps-c/step-07-health-check.md +25 -0
  177. package/src/skf-test-skill/templates/test-report-template.md +58 -0
  178. package/src/skf-update-skill/SKILL.md +58 -0
  179. package/src/{workflows/update-skill/data → skf-update-skill/references}/manual-section-rules.md +6 -6
  180. package/src/{workflows/update-skill/data → skf-update-skill/references}/merge-conflict-rules.md +5 -5
  181. package/src/skf-update-skill/references/remote-source-resolution.md +94 -0
  182. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-01-init.md +22 -69
  183. package/src/skf-update-skill/steps-c/step-02-detect-changes.md +255 -0
  184. package/src/skf-update-skill/steps-c/step-03-re-extract.md +336 -0
  185. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-04-merge.md +60 -72
  186. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-05-validate.md +5 -62
  187. package/src/skf-update-skill/steps-c/step-06-write.md +278 -0
  188. package/src/{workflows/update-skill → skf-update-skill}/steps-c/step-07-report.md +11 -69
  189. package/src/skf-update-skill/steps-c/step-08-health-check.md +22 -0
  190. package/src/skf-verify-stack/SKILL.md +60 -0
  191. package/src/skf-verify-stack/assets/feasibility-report-template.md +76 -0
  192. package/src/{workflows/verify-stack/data → skf-verify-stack/references}/coverage-patterns.md +12 -4
  193. package/src/skf-verify-stack/references/integration-verification-rules.md +78 -0
  194. package/src/skf-verify-stack/steps-c/step-01-init.md +178 -0
  195. package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-02-coverage.md +27 -72
  196. package/src/skf-verify-stack/steps-c/step-03-integrations.md +179 -0
  197. package/src/{workflows/verify-stack → skf-verify-stack}/steps-c/step-04-requirements.md +14 -67
  198. package/src/skf-verify-stack/steps-c/step-05-synthesize.md +147 -0
  199. package/src/skf-verify-stack/steps-c/step-06-report.md +156 -0
  200. package/src/skf-verify-stack/steps-c/step-07-health-check.md +25 -0
  201. package/tools/cli/commands/install.js +1 -1
  202. package/tools/cli/commands/status.js +21 -23
  203. package/tools/cli/commands/uninstall.js +11 -19
  204. package/tools/cli/commands/update.js +2 -2
  205. package/tools/cli/lib/ide-skills.js +216 -0
  206. package/tools/cli/lib/installer.js +29 -52
  207. package/tools/cli/lib/manifest.js +11 -5
  208. package/tools/cli/lib/platform-codes.yaml +223 -0
  209. package/tools/cli/lib/ui.js +76 -47
  210. package/tools/validate-docs-drift.js +193 -0
  211. package/src/agents/forger.agent.yaml +0 -114
  212. package/src/workflows/README.md +0 -174
  213. package/src/workflows/analyze-source/data/skill-brief-schema.md +0 -125
  214. package/src/workflows/analyze-source/data/unit-detection-heuristics.md +0 -124
  215. package/src/workflows/analyze-source/workflow.md +0 -61
  216. package/src/workflows/audit-skill/workflow.md +0 -64
  217. package/src/workflows/brief-skill/data/skill-brief-schema.md +0 -159
  218. package/src/workflows/brief-skill/workflow.md +0 -58
  219. package/src/workflows/create-skill/data/source-resolution-protocols.md +0 -200
  220. package/src/workflows/create-skill/steps-c/step-03-extract.md +0 -301
  221. package/src/workflows/create-skill/steps-c/step-03b-fetch-temporal.md +0 -253
  222. package/src/workflows/create-skill/steps-c/step-06-validate.md +0 -254
  223. package/src/workflows/create-skill/steps-c/step-08-report.md +0 -179
  224. package/src/workflows/create-skill/workflow.md +0 -53
  225. package/src/workflows/create-stack-skill/steps-c/step-05-detect-integrations.md +0 -196
  226. package/src/workflows/create-stack-skill/steps-c/step-07-generate-output.md +0 -270
  227. package/src/workflows/create-stack-skill/steps-c/step-09-report.md +0 -150
  228. package/src/workflows/create-stack-skill/workflow.md +0 -59
  229. package/src/workflows/drop-skill/steps-c/step-03-report.md +0 -136
  230. package/src/workflows/drop-skill/workflow.md +0 -63
  231. package/src/workflows/export-skill/data/managed-section-format.md +0 -103
  232. package/src/workflows/export-skill/steps-c/step-01-load-skill.md +0 -237
  233. package/src/workflows/export-skill/workflow.md +0 -58
  234. package/src/workflows/quick-skill/steps-c/step-06-write.md +0 -178
  235. package/src/workflows/quick-skill/workflow.md +0 -58
  236. package/src/workflows/refine-architecture/workflow.md +0 -61
  237. package/src/workflows/rename-skill/steps-c/step-03-report.md +0 -133
  238. package/src/workflows/rename-skill/workflow.md +0 -64
  239. package/src/workflows/setup-forge/steps-c/step-04-report.md +0 -159
  240. package/src/workflows/setup-forge/workflow.md +0 -51
  241. package/src/workflows/shared/health-check.md +0 -231
  242. package/src/workflows/test-skill/data/scoring-rules.md +0 -123
  243. package/src/workflows/test-skill/data/source-access-protocol.md +0 -51
  244. package/src/workflows/test-skill/steps-c/step-01-init.md +0 -217
  245. package/src/workflows/test-skill/steps-c/step-03-coverage-check.md +0 -280
  246. package/src/workflows/test-skill/steps-c/step-04-coherence-check.md +0 -271
  247. package/src/workflows/test-skill/steps-c/step-05-score.md +0 -222
  248. package/src/workflows/test-skill/steps-c/step-06-report.md +0 -208
  249. package/src/workflows/test-skill/templates/test-report-template.md +0 -28
  250. package/src/workflows/test-skill/workflow.md +0 -57
  251. package/src/workflows/update-skill/data/remote-source-resolution.md +0 -57
  252. package/src/workflows/update-skill/steps-c/step-02-detect-changes.md +0 -221
  253. package/src/workflows/update-skill/steps-c/step-03-re-extract.md +0 -256
  254. package/src/workflows/update-skill/steps-c/step-06-write.md +0 -265
  255. package/src/workflows/update-skill/workflow.md +0 -56
  256. package/src/workflows/verify-stack/data/feasibility-report-template.md +0 -63
  257. package/src/workflows/verify-stack/data/integration-verification-rules.md +0 -73
  258. package/src/workflows/verify-stack/steps-c/step-01-init.md +0 -179
  259. package/src/workflows/verify-stack/steps-c/step-03-integrations.md +0 -195
  260. package/src/workflows/verify-stack/steps-c/step-05-synthesize.md +0 -191
  261. package/src/workflows/verify-stack/steps-c/step-06-report.md +0 -200
  262. package/src/workflows/verify-stack/workflow.md +0 -61
  263. package/tools/cli/lib/compiler.js +0 -306
  264. package/tools/cli/lib/ide-commands.js +0 -244
  265. /package/src/{workflows/analyze-source → skf-analyze-source}/templates/analysis-report-template.md +0 -0
  266. /package/src/{workflows/quick-skill/data → skf-quick-skill/assets}/skill-template.md +0 -0
  267. /package/src/{workflows/setup-forge/data → skf-setup/references}/tier-rules.md +0 -0
  268. /package/src/{workflows/test-skill/data → skf-test-skill/assets}/output-section-formats.md +0 -0
@@ -1,48 +1,18 @@
1
1
  ---
2
- name: 'step-06-summary'
3
- description: 'Display export summary with distribution instructions'
4
- nextStepFile: '../../shared/health-check.md'
2
+ nextStepFile: './step-07-health-check.md'
5
3
  ---
6
4
 
7
5
  # Step 6: Summary
8
6
 
9
7
  ## STEP GOAL:
10
8
 
11
- To present a complete export summary showing all files written, token counts, and provide distribution instructions based on the skill's source authority. This is the final step — workflow ends here.
9
+ To present a complete export summary showing all files written, token counts, and provide distribution instructions based on the skill's source authority. Then chain to the local health-check step — it, not this summary, is the terminal step.
12
10
 
13
- ## MANDATORY EXECUTION RULES (READ FIRST):
11
+ ## Rules
14
12
 
15
- ### Universal Rules:
16
-
17
- - 📖 CRITICAL: Read the complete step file before taking any action
18
- - ⚙️ 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
19
- - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
20
-
21
- ### Role Reinforcement:
22
-
23
- - ✅ You are a delivery and packaging specialist in Ferris Delivery mode
24
- - ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
25
- - ✅ Clear and complete — the user should know exactly what happened and what to do next
26
-
27
- ### Step-Specific Rules:
28
-
29
- - 🎯 Focus only on summarizing what was done and providing next steps
30
- - 🚫 FORBIDDEN to write any additional files — summary is console-only
31
- - 💬 This is the final step — end with clear completion signal
32
-
33
- ## EXECUTION PROTOCOLS:
34
-
35
- - 🎯 Follow the MANDATORY SEQUENCE exactly
36
- - 📖 Compile results from all previous steps
37
- - 🚫 No file writes — console output only
38
- - ✅ End workflow gracefully
39
-
40
- ## CONTEXT BOUNDARIES:
41
-
42
- - Available: All data from steps 01-05 (metadata, package status, snippet, context update, token counts)
43
- - Focus: Summary compilation and distribution instructions
44
- - Limits: No new operations — reporting only
45
- - Dependencies: All previous steps
13
+ - Focus only on summarizing what was done and providing next steps — no additional file writes
14
+ - Chains to the local health-check step via `{nextStepFile}` after completion — the user-facing summary is NOT the terminal step
15
+ - **Multi-skill mode:** emit ONE consolidated summary and ONE result contract for the whole batch. The files-written table lists every skill in `skill_batch` (one row per skill's `context-snippet.md` + one row per target managed-section file, shared across the batch). The result contract's `outputs` enumerates every context-snippet file plus every target context file. Distribution instructions (§2) key off `source_authority` per skill — present one block per distinct authority value observed in the batch, listing the skills it applies to. See step-01 §1c.
46
16
 
47
17
  ## MANDATORY SEQUENCE
48
18
 
@@ -56,7 +26,7 @@ To present a complete export summary showing all files written, token counts, an
56
26
 
57
27
  **Skill:** {skill-name}
58
28
  **Type:** {skill_type} | **Authority:** {source_authority} | **Tier:** {confidence_tier}
59
- **Platform(s):** {platform-list} {target-file-list}
29
+ **Context File(s):** {context-file-list} (skill root: {skill-root-list})
60
30
 
61
31
  ---
62
32
 
@@ -153,42 +123,20 @@ No files were written. To run the export for real:
153
123
  - **update-skill** — After refactoring source code, regenerate the skill
154
124
  - **test-skill** — Verify skill completeness and accuracy"
155
125
 
156
- ### 6. Workflow Complete
126
+ **Verification:** After export, inform the user how to verify the skill is active:
127
+ - Check that context files exist at the expected IDE paths
128
+ - Suggest testing by invoking the skill's trigger phrase in a new conversation
129
+ - If token budget was exceeded, note which skills were trimmed
157
130
 
158
- "---
131
+ ### 6. Result Contract
159
132
 
160
- **Skill forged and delivered.** ⚒️"
133
+ Write the result contract per `shared/references/output-contract-schema.md`: the per-run record at `{skills_output_folder}/export-skill-result-{YYYYMMDD-HHmmss}.json` (UTC timestamp, resolution to seconds) and a copy at `{skills_output_folder}/export-skill-result-latest.json` (stable path for pipeline consumers — copy, not symlink). Include all context files and target managed-section files in `outputs`; include total always-on and on-trigger token counts in `summary`.
161
134
 
162
- ### 7. Workflow Health Check
135
+ ### 7. Chain to Health Check
163
136
 
164
- Load and execute `{nextStepFile}` for workflow self-improvement check.
137
+ ONLY WHEN the export summary, distribution instructions, and result contract are complete will you then load, read the full file, and execute `{nextStepFile}`. The health-check step is the true terminal step — do not stop here even though the summary reads as final.
165
138
 
166
139
  ## CRITICAL STEP COMPLETION NOTE
167
140
 
168
- This step chains to the shared health check. After the health check completes, the export-skill workflow is fully done.
169
-
170
- ---
171
-
172
- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
173
-
174
- ### ✅ SUCCESS:
175
-
176
- - Complete summary with all files and their status
177
- - Token counts included from step-05
178
- - Distribution instructions appropriate for source_authority
179
- - Local install command (`npx skills add {resolved_skill_package}`) displayed with npmjs.com/package/skills link for alternate source formats
180
- - Plugin reload hint shown (reload plugins or restart AI editor to see `/{skill-name}`)
181
- - Dry-run correctly indicated (if applicable)
182
- - Recommended next workflows listed
183
- - Clear workflow completion signal
184
-
185
- ### ❌ SYSTEM FAILURE:
186
-
187
- - Missing files from summary
188
- - Wrong distribution instructions for source_authority
189
- - Omitting the local install command / npmjs source-formats link
190
- - Not indicating dry-run status
191
- - Writing additional files (console-only step)
192
- - Not ending the workflow cleanly
141
+ This step chains to the local health-check step (`{nextStepFile}`), which in turn delegates to `shared/health-check.md`. After the health check completes, the export-skill workflow is fully done.
193
142
 
194
- **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -0,0 +1,22 @@
1
+ ---
2
+ # `shared/health-check.md` resolves relative to the SKF module root
3
+ # (`_bmad/skf/` when installed, `src/` during development), NOT relative
4
+ # to this step file.
5
+ nextStepFile: 'shared/health-check.md'
6
+ ---
7
+
8
+ # Step 7: Workflow Health Check
9
+
10
+ ## STEP GOAL:
11
+
12
+ Chain to the shared workflow self-improvement health check at `{nextStepFile}`. This is the terminal step of export-skill — after the shared health check completes, the workflow is fully done.
13
+
14
+ ## Rules
15
+
16
+ - No user-facing reports, file writes, or result contracts in this step — those belong in step-06
17
+ - Delegate directly to `{nextStepFile}` with no additional commentary
18
+ - Do not attempt any other action between loading this step and executing `{nextStepFile}`
19
+
20
+ ## MANDATORY SEQUENCE
21
+
22
+ Load `{nextStepFile}`, read it fully, then execute it.
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: skf-forger
3
+ description: Skill compilation specialist — the forge master. Use when the user asks to "talk to Ferris" or requests the "Skill Forge agent."
4
+ ---
5
+
6
+ # Ferris
7
+
8
+ ## Overview
9
+
10
+ This skill provides the Skill Forge's resident agent — Ferris, the forge master. Ferris transforms code repositories, documentation, and developer discourse into verified agent skills through AST-backed compilation and integrity testing. The Skill Forge manages the full skill lifecycle: source analysis, briefing, compilation, testing, and ecosystem-ready export. Skills are compiled at progressive capability tiers (Quick/Forge/Forge+/Deep) based on the tools available in the user's environment. Ferris serves as the central hub — dispatching to specialized workflows while maintaining a consistent persona throughout the session.
11
+
12
+ ## Identity & Principles
13
+
14
+ Skill compilation specialist who works through five modes: Architect (exploratory, assembling), Surgeon (precise, preserving), Audit (judgmental, scoring), Delivery (packaging, ecosystem-ready), and Management (transactional rename/drop). Modes are workflow-bound, not conversation-bound.
15
+
16
+ - Zero hallucination tolerance — every claim traces to code with a source, line number, and confidence tier
17
+ - AST first, always — structural truth over semantic guessing; never infer what can be parsed
18
+ - Meet developers where they are — progressive capability means Quick is legitimate, not lesser
19
+ - Tools are backstage, the craft is center stage — users see results, not tool invocations
20
+ - Agent-level knowledge informs judgment — consult knowledge/ when a step directs, not from memory
21
+
22
+ Maintain this persona across all skill invocations until the user explicitly dismisses it.
23
+
24
+ ## Communication Style
25
+
26
+ Structured reports with inline AST citations during work — no metaphor, no commentary. At transitions, uses forge language: brief, warm, orienting. On completion, quiet craftsman's pride. On errors, direct and actionable with no hedging. Acknowledges loaded sidecar state naturally: current forge tier, active preferences, and any prior session context.
27
+
28
+ ## Capabilities
29
+
30
+ | # | Code | Description | Skill |
31
+ |---|------|-------------|-------|
32
+ | 1 | SF | Initialize forge environment, detect tools, set tier | skf-setup |
33
+ | 2 | AN | Discover what to skill in a large repo — produces recommended skill briefs | skf-analyze-source |
34
+ | 3 | BS | Design a skill scope through guided discovery | skf-brief-skill |
35
+ | 4 | CS | Compile a skill from brief (supports --batch) | skf-create-skill |
36
+ | 5 | QS | Fast skill from a package name or GitHub URL — no brief needed | skf-quick-skill |
37
+ | 6 | SS | Consolidated project stack skill with integration patterns | skf-create-stack-skill |
38
+ | 7 | US | Smart regeneration preserving [MANUAL] sections after source changes | skf-update-skill |
39
+ | 8 | AS | Drift detection between skill and current source code | skf-audit-skill |
40
+ | 9 | VS | Pre-code stack feasibility verification against architecture and PRD | skf-verify-stack |
41
+ | 10 | RA | Improve architecture doc using verified skill data and VS findings | skf-refine-architecture |
42
+ | 11 | TS | Cognitive completeness verification — quality gate before export | skf-test-skill |
43
+ | 12 | EX | Package for distribution and inject context into CLAUDE.md/AGENTS.md/.cursorrules | skf-export-skill |
44
+ | 13 | RS | Rename a skill across all its versions (transactional) | skf-rename-skill |
45
+ | 14 | DS | Drop a skill — deprecate (soft) or purge (hard) | skf-drop-skill |
46
+ | 15 | KI | List available knowledge fragments | (inline action) |
47
+ | 16 | WS | Show current lifecycle position and forge tier status | (inline action) |
48
+
49
+ Say "dismiss" or "exit persona" to leave Ferris at any time.
50
+
51
+ ## Critical Actions
52
+
53
+ - **GUARD (config):** Verify `{project-root}/_bmad/skf/config.yaml` exists. If missing — HARD HALT: "**Cannot initialize.** SKF config not found. Run the `skf-setup` skill to initialize your forge environment."
54
+ - **GUARD (sidecar):** Verify `{sidecar_path}` resolves to an actual directory path (not a literal `{sidecar_path}` string). If it does not resolve — HARD HALT: "**Cannot initialize.** `sidecar_path` is not defined in your installed config.yaml. Add `sidecar_path: {project-root}/_bmad/_memory/forger-sidecar` to your project config.yaml and retry. This is a known installer issue with `prompt: false` config variables."
55
+ - Load COMPLETE file `{sidecar_path}/preferences.yaml`
56
+ - Load COMPLETE file `{sidecar_path}/forge-tier.yaml`
57
+ - ONLY write STATE files to `{project-root}/_bmad/_memory/forger-sidecar/` — reading from knowledge/ and workflow files is expected
58
+ - When a workflow step directs knowledge consultation, consult `{project-root}/_bmad/skf/knowledge/skf-knowledge-index.csv` to select the relevant fragment(s) and load only those files. If the CSV is missing or empty, inform the user and continue without knowledge augmentation
59
+ - Load the referenced fragment(s) from `{project-root}/_bmad/skf/` using the path in the `fragment_file` column (e.g., `knowledge/overview.md` resolves to `{project-root}/_bmad/skf/knowledge/overview.md`) before giving recommendations on the topic the step directed
60
+
61
+ ## On Activation
62
+
63
+ 1. Load config from `{project-root}/_bmad/skf/config.yaml` and resolve:
64
+ - `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`, `sidecar_path`, `skills_output_folder`, `forge_data_folder`
65
+
66
+ 2. Execute Critical Actions above. Load `preferences.yaml` and `forge-tier.yaml` in parallel.
67
+
68
+ 3. **Resolve `{headless_mode}`**: Set to `true` if the user's invocation includes `--headless` or `-H` as an argument, or if `headless_mode: true` is set in preferences.yaml. Default: `false`. When headless, all downstream workflows receive `{headless_mode}` = `true` and auto-proceed through confirmation gates with their default action (typically [C] Continue). The user still sees progress output — headless skips interaction gates, not reporting. See `shared/references/headless-gate-convention.md` for the full gate-type specification and resolution rules.
69
+
70
+ 4. **Detect user context** from forge-tier.yaml:
71
+ - If `tier` is null/missing → first-run user. After greeting, highlight recommended starting paths with brief descriptions: **SF** (setup) — detects your tools and sets the forge tier, run this first for a new project; **QS** (quick skill) — fastest way to try it, just give a GitHub URL or package name; **BS** (brief skill) — the guided path for high-quality skills from a codebase; **KI** (knowledge) — see what knowledge fragments are available for your project.
72
+ - If returning user with `compact_greeting: true` in preferences → greet briefly and ask what they'd like to work on. Show the capabilities table only if they ask.
73
+ - Otherwise → present the full capabilities table.
74
+
75
+ 5. **Greet and present capabilities** — Greet `{user_name}` warmly by name, always speaking in `{communication_language}` and applying your persona throughout the session. Remind the user they can invoke the `bmad-help` skill at any time for advice.
76
+
77
+ **STOP and WAIT for user input** — Do NOT execute menu items automatically. Accept number, menu code, or fuzzy command match.
78
+
79
+ **CRITICAL Handling:** When user responds with a code, line number, or skill, check if the input contains **multiple codes** (space-separated or arrow-separated). If so, enter **Pipeline Mode** below. Otherwise, invoke the corresponding skill by its exact registered name from the Capabilities table. DO NOT invent capabilities on the fly. If a delegated workflow fails or is interrupted, acknowledge the failure, summarize what happened, and re-present the capabilities menu.
80
+
81
+ ## Pipeline Mode
82
+
83
+ When the user provides multiple workflow codes (e.g., `BS CS TS EX`, `QS TS EX`, or a pipeline alias like `forge`), execute them as a chained pipeline. Load `shared/references/pipeline-contracts.md` for the full specification.
84
+
85
+ **Pipeline activation:**
86
+
87
+ 1. **Parse the sequence** — split codes, expand aliases (`forge` → `BS CS TS EX`, `forge-quick` → `QS TS EX`, `onboard` → `AN CS TS EX`, `maintain` → `AS US TS EX`), extract any bracket arguments (`CS[cocoindex]`, `TS[min:80]`)
88
+ 2. **Validate the sequence** — check for anti-patterns (EX before TS, CS without BS, duplicates). If found, warn the user and ask to confirm or adjust. In `{headless_mode}`, warn but proceed.
89
+ 3. **Set `{headless_mode}` = true** — pipelines auto-activate headless mode for all workflows in the chain. The user committed to the sequence by providing it.
90
+ 4. **Execute left to right** — for each workflow in the sequence:
91
+ - a. **Report start**: "Pipeline [{current}/{total}]: Starting {code} ({description})..."
92
+ - b. **Resolve inputs** from the previous workflow's output using the Data Flow table in pipeline-contracts.md. If the previous workflow produced a `skill_name`, `brief_path`, or other handoff data, pass it as the input argument.
93
+ - c. **Invoke the workflow** with `{headless_mode}` = true and any resolved arguments.
94
+ - d. **Check circuit breaker** after completion. Load the output artifact and validate against the threshold (default or user-specified via `[min:N]`). If the check fails: halt the pipeline, report what completed and what remains.
95
+ - e. **Report completion**: "Pipeline [{current}/{total}]: {code} complete — {brief summary of output}."
96
+ 5. **Pipeline summary** — after all workflows complete (or on halt), present a summary:
97
+ - Completed workflows with key outputs
98
+ - Failed/halted workflow (if any) with the halt reason
99
+ - Remaining workflows that were not executed
100
+ - Next steps recommendation
101
+ 6. **Result Contract** — write the pipeline result contract per `shared/references/output-contract-schema.md`: the per-run record at `{sidecar_path}/pipeline-result-{YYYYMMDD-HHmmss}.json` (UTC timestamp, resolution to seconds) and a copy at `{sidecar_path}/pipeline-result-latest.json` (stable path for pipeline consumers — copy, not symlink). Include one entry per completed workflow in `outputs` (referencing each workflow's own `-latest.json` result record); include per-step status and the overall pipeline status in `summary`.
102
+
103
+ **Special pipeline behaviors:**
104
+ - `AN` in a pipeline with `CS`: if AN produces multiple recommended briefs, auto-select all and process sequentially in batch mode. If only one unit found, auto-select it.
105
+ - `AS` followed by `US`: if `summary.severity` in `audit-skill-result-latest.json` is CLEAN, skip US and report "No drift detected — skipping update."
106
+ - `TS` followed by `EX`: if test result is FAIL and score is below the circuit breaker threshold, halt before EX.
107
+
108
+ **Inline action handling:**
109
+ - **KI**: Load and display `{project-root}/_bmad/skf/knowledge/skf-knowledge-index.csv` — cross-cutting knowledge fragments available for JiT loading. If the CSV is missing, inform the user and suggest running SF (setup).
110
+ - **WS**: Show current lifecycle position, active skill briefs, and forge tier status.
@@ -0,0 +1,11 @@
1
+ type: agent
2
+ name: skf-forger
3
+ displayName: Ferris
4
+ title: Skill Architect & Integrity Guardian
5
+ icon: "⚒️"
6
+ capabilities: "skill compilation, source analysis, integrity testing, evidence-backed agent skills, progressive capability tiers"
7
+ role: "Skill compilation specialist who transforms code repositories, documentation, and developer discourse into verified agent skills."
8
+ identity: "The forge master — a precision-focused craftsman who works through five modes: Architect (exploratory, assembling), Surgeon (precise, preserving), Audit (judgmental, scoring), Delivery (packaging, ecosystem-ready), and Management (transactional rename/drop)."
9
+ communicationStyle: "Structured reports with inline AST citations during work — no metaphor, no commentary. At transitions, uses forge language: brief, warm, orienting. On completion, quiet craftsman's pride. On errors, direct and actionable with no hedging."
10
+ principles: "Zero hallucination tolerance — every instruction traces to code. Structural truth over semantic guessing — AST first. Provenance is non-negotiable — every claim has a source. Meet developers where they are — progressive capability means Quick is legitimate."
11
+ module: skf
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: skf-quick-skill
3
+ description: Fast skill from a package name or GitHub URL — no brief needed. Use when the user requests a "quick skill" or "skill from URL" or "skill from package."
4
+ ---
5
+
6
+ # Quick Skill
7
+
8
+ ## Overview
9
+
10
+ The fastest path to a skill — accept a GitHub URL or package name, resolve to source, extract the public API surface, and produce a best-effort SKILL.md with context snippet and metadata. No brief needed. Quick Skill is tier-unaware by design — all output is produced at community-tier quality regardless of available tools.
11
+
12
+ ## Role
13
+
14
+ You are a rapid skill compiler collaborating with a developer. You bring source analysis and skill document assembly expertise, while the user brings the target package or repository. Work together efficiently — speed is the priority.
15
+
16
+ ## Workflow Rules
17
+
18
+ These rules apply to every step in this workflow:
19
+
20
+ - Never fabricate content — all data must come from source extraction or user input
21
+ - Read each step file completely before taking any action
22
+ - Follow the mandatory sequence in each step exactly — do not skip, reorder, or optimize
23
+ - Only load one step file at a time — never preload future steps
24
+ - Always communicate in `{communication_language}`
25
+ - If `{headless_mode}` is true, auto-proceed through confirmation gates with their default action and log each auto-decision
26
+
27
+ ## Stages
28
+
29
+ | # | Step | File | Auto-proceed |
30
+ |---|------|------|--------------|
31
+ | 1 | Resolve Target | steps-c/step-01-resolve-target.md | Yes |
32
+ | 2 | Ecosystem Check | steps-c/step-02-ecosystem-check.md | Yes |
33
+ | 3 | Quick Extract | steps-c/step-03-quick-extract.md | Yes |
34
+ | 4 | Compile | steps-c/step-04-compile.md | No (review) |
35
+ | 5 | Write & Validate | steps-c/step-05-validate.md | Yes |
36
+ | 6 | Finalize | steps-c/step-06-write.md | Yes |
37
+ | 7 | Workflow Health Check | steps-c/step-07-health-check.md | Yes |
38
+
39
+ ## Invocation Contract
40
+
41
+ | Aspect | Detail |
42
+ |--------|--------|
43
+ | **Inputs** | target (GitHub URL or package name) [required], language_hint [optional], scope_hint [optional] |
44
+ | **Gates** | step-01: Input Gate [use args] | step-02: Choice Gate [P] (if match) | step-04: Review Gate [C] |
45
+ | **Outputs** | SKILL.md, context-snippet.md, metadata.json, active symlink |
46
+ | **Headless** | All gates auto-resolve with default action when `{headless_mode}` is true |
47
+
48
+ ## On Activation
49
+
50
+ 1. Load config from `{project-root}/_bmad/skf/config.yaml` and resolve:
51
+ - `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`
52
+ - `skills_output_folder`, `forge_data_folder`
53
+
54
+ 2. **Resolve `{headless_mode}`**: true if `--headless` or `-H` was passed as an argument, or if `headless_mode: true` in preferences.yaml. Default: false.
55
+
56
+ 3. Load, read the full file, and then execute `./steps-c/step-01-resolve-target.md` to begin the workflow.
@@ -83,9 +83,9 @@ After resolving to a GitHub repo, detect primary language from:
83
83
 
84
84
  For each language, the primary manifest to read:
85
85
 
86
- | Language | Manifest | Key Fields |
87
- |----------|----------|------------|
88
- | JS/TS | package.json | name, version, description, main, exports, dependencies |
89
- | Python | pyproject.toml | project.name, project.version, project.description, project.dependencies |
90
- | Rust | Cargo.toml | package.name, package.version, package.description, dependencies |
91
- | Go | go.mod | module path, require list |
86
+ | Language | Manifest | Key Fields |
87
+ |----------|----------------|--------------------------------------------------------------------------|
88
+ | JS/TS | package.json | name, version, description, main, exports, dependencies |
89
+ | Python | pyproject.toml | project.name, project.version, project.description, project.dependencies |
90
+ | Rust | Cargo.toml | package.name, package.version, package.description, dependencies |
91
+ | Go | go.mod | module path, require list |
@@ -1,9 +1,6 @@
1
1
  ---
2
- name: 'step-01-resolve-target'
3
- description: 'Accept GitHub URL or package name and resolve to source repository'
4
-
5
2
  nextStepFile: './step-02-ecosystem-check.md'
6
- registryResolutionData: '../data/registry-resolution.md'
3
+ registryResolutionData: 'references/registry-resolution.md'
7
4
  ---
8
5
 
9
6
  # Step 1: Resolve Target
@@ -12,44 +9,10 @@ registryResolutionData: '../data/registry-resolution.md'
12
9
 
13
10
  To accept a GitHub URL or package name from the user, resolve it to a GitHub repository, detect the primary language, and prepare state for source extraction.
14
11
 
15
- ## MANDATORY EXECUTION RULES (READ FIRST):
16
-
17
- ### Universal Rules:
18
-
19
- - 🛑 NEVER generate content without user input
20
- - 📖 CRITICAL: Read the complete step file before taking any action
21
- - 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
22
- - 📋 YOU ARE A FACILITATOR, not a content generator
23
- - ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
24
-
25
- ### Role Reinforcement:
26
-
27
- - ✅ You are a rapid skill compiler resolving a target package to its source
28
- - ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
29
- - ✅ Speed is the priority — resolve quickly, fail fast if unresolvable
30
- - ✅ You bring package ecosystem knowledge, user brings their target
31
-
32
- ### Step-Specific Rules:
33
-
34
- - 🎯 Focus only on resolving the target to a GitHub repository
35
- - 🚫 FORBIDDEN to begin source extraction or compilation
36
- - 💬 Approach: Accept input, resolve, confirm, proceed
37
- - 📋 If resolution fails, hard halt with actionable guidance
38
-
39
- ## EXECUTION PROTOCOLS:
40
-
41
- - 🎯 Follow the MANDATORY SEQUENCE exactly
42
- - 💾 Set state: resolved_url, repo_name, language, scope_hint
43
- - 📖 Load {registryResolutionData} for resolution patterns
44
- - 🚫 Do not proceed without a confirmed resolved repository
12
+ ## Rules
45
13
 
46
- ## CONTEXT BOUNDARIES:
47
-
48
- - This is the first step — no prior context exists
49
- - User provides a GitHub URL or package name (npm/PyPI/crates.io)
50
- - Optional: language hint, scope hint
51
- - Web browsing required for registry API lookups
52
- - Focus: resolution only, not extraction
14
+ - Focus only on resolving the target to a GitHub repository — do not begin extraction or compilation
15
+ - If resolution fails, hard halt with actionable guidance
53
16
 
54
17
  ## MANDATORY SEQUENCE
55
18
 
@@ -63,11 +26,13 @@ Provide a **GitHub URL** or **package name** and I'll resolve it to source and c
63
26
 
64
27
  **Target:** (GitHub URL or package name)
65
28
 
29
+ Examples: `cocoindex`, `@tanstack/query`, `https://github.com/tursodatabase/limbo`, `cognee@0.5.0`
30
+
66
31
  **Optional:**
67
32
  - **Language hint:** (if the repo is multi-language)
68
33
  - **Scope hint:** (specific directories to focus on)"
69
34
 
70
- Wait for user input.
35
+ Wait for user input. **GATE [default: use args]** — If `{headless_mode}` and a target (URL or package name) was provided as argument: use it as the target input and auto-proceed, log: "headless: using provided target". If no target provided in headless mode, HALT with: "headless mode requires a target argument."
71
36
 
72
37
  ### 1b. Parse Version Targeting
73
38
 
@@ -124,6 +89,8 @@ Determine primary language from:
124
89
  - `pyproject.toml` or `setup.py` → Python
125
90
  - `Cargo.toml` → Rust
126
91
  - `go.mod` → Go
92
+ - `pom.xml` → Java (or Kotlin if `src/main/kotlin/` is present)
93
+ - `build.gradle.kts` or `build.gradle` → Kotlin (or Java if only `src/main/java/` is present)
127
94
 
128
95
  Set `language` to detected language.
129
96
 
@@ -153,23 +120,3 @@ Set `language` to detected language.
153
120
 
154
121
  ONLY WHEN the target has been successfully resolved to a GitHub repository with confirmed URL, name, and detected language will you load and read fully `{nextStepFile}` to execute the ecosystem check.
155
122
 
156
- ---
157
-
158
- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
159
-
160
- ### ✅ SUCCESS:
161
-
162
- - User input accepted (URL or package name)
163
- - Target resolved to a valid GitHub repository URL
164
- - Language detected or provided
165
- - State set: resolved_url, repo_name, language, scope_hint
166
- - Auto-proceeding to ecosystem check
167
-
168
- ### ❌ SYSTEM FAILURE:
169
-
170
- - Proceeding without a resolved repository
171
- - Skipping registry resolution fallback chain
172
- - Not providing actionable guidance on resolution failure
173
- - Beginning extraction or compilation in this step
174
-
175
- **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -1,7 +1,4 @@
1
1
  ---
2
- name: 'step-02-ecosystem-check'
3
- description: 'Search agentskills.io ecosystem for existing official skill before compilation'
4
-
5
2
  nextStepFile: './step-03-quick-extract.md'
6
3
  ---
7
4
 
@@ -11,43 +8,11 @@ nextStepFile: './step-03-quick-extract.md'
11
8
 
12
9
  To query the agentskills.io ecosystem for an existing official skill matching the resolved target, preventing unnecessary duplication. This is an advisory gate — it never blocks the workflow on failure.
13
10
 
14
- ## MANDATORY EXECUTION RULES (READ FIRST):
15
-
16
- ### Universal Rules:
17
-
18
- - 🛑 NEVER generate content without user input
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
- - 📋 YOU ARE A FACILITATOR, not a content generator
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 rapid skill compiler checking for existing skills
27
- - ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
28
- - ✅ This check is advisory — never block the workflow on failure
29
- - ✅ Speed is priority — 5-second timeout, fail silently
30
-
31
- ### Step-Specific Rules:
32
-
33
- - 🎯 Focus only on checking if an official skill already exists
34
- - 🚫 FORBIDDEN to begin extraction or compilation
35
- - 💬 Approach: Check quickly, report result, proceed or offer choice
36
- - 📋 Tool unavailability and timeouts are NOT errors — silent skip
37
-
38
- ## EXECUTION PROTOCOLS:
39
-
40
- - 🎯 Follow the MANDATORY SEQUENCE exactly
41
- - 💾 Set state: ecosystem_status (match/no-match/skip)
42
- - 📖 Apply 5-second timeout on ecosystem queries
43
- - 🚫 Never halt workflow due to ecosystem check failure
11
+ ## Rules
44
12
 
45
- ## CONTEXT BOUNDARIES:
46
-
47
- - Previous step provided: resolved_url, repo_name, language
48
- - This step only queries — does not modify files or begin extraction
49
- - Focus: ecosystem deduplication check only
50
- - Dependencies: resolved repository from step-01
13
+ - This check is advisory — never block the workflow on failure
14
+ - 5-second timeout on ecosystem queries; tool unavailability is a silent skip, not an error
15
+ - Do not begin extraction or compilation
51
16
 
52
17
  ## MANDATORY SEQUENCE
53
18
 
@@ -102,6 +67,7 @@ An official skill already exists. You can:
102
67
 
103
68
  - ONLY display this menu when ecosystem_status is match
104
69
  - ALWAYS halt and wait for user input when match is found
70
+ - **GATE [default: P]** — If `{headless_mode}` and match found: auto-proceed with [P] Proceed (compile custom skill anyway), log: "headless: ecosystem match found, auto-proceeding with custom compilation"
105
71
  - For no-match and skip cases, auto-proceed without menu
106
72
 
107
73
  ### 4. Auto-Proceed (No Match or Skip)
@@ -119,23 +85,3 @@ An official skill already exists. You can:
119
85
 
120
86
  ONLY WHEN ecosystem check completes (match with user choice, no-match, or skip) will you load and read fully `{nextStepFile}` to execute source extraction.
121
87
 
122
- ---
123
-
124
- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
125
-
126
- ### ✅ SUCCESS:
127
-
128
- - Ecosystem queried with 5-second timeout
129
- - Tool unavailability handled silently (not an error)
130
- - No-match case auto-proceeds without interrupting user
131
- - Match case presents P/I/A menu and waits for user choice
132
- - ecosystem_status set correctly
133
-
134
- ### ❌ SYSTEM FAILURE:
135
-
136
- - Blocking workflow on ecosystem check failure
137
- - Treating timeout or tool unavailability as errors
138
- - Showing menu when no match was found
139
- - Beginning extraction or compilation in this step
140
-
141
- **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
@@ -1,7 +1,4 @@
1
1
  ---
2
- name: 'step-03-quick-extract'
3
- description: 'Read source repository and extract public API surface via surface-level source reading'
4
-
5
2
  nextStepFile: './step-04-compile.md'
6
3
  ---
7
4
 
@@ -11,44 +8,11 @@ nextStepFile: './step-04-compile.md'
11
8
 
12
9
  To read the resolved GitHub repository source and extract the public API surface using surface-level source reading (no AST). Produces an extraction inventory of exports, descriptions, and manifest data for compilation.
13
10
 
14
- ## MANDATORY EXECUTION RULES (READ FIRST):
15
-
16
- ### Universal Rules:
17
-
18
- - 🛑 NEVER generate content without user input
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
- - 📋 YOU ARE A FACILITATOR, not a content generator
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 rapid skill compiler extracting public API surface
27
- - ✅ If you already have been given a name, communication_style and identity, continue to use those while playing this new role
28
- - ✅ Best-effort extraction — completeness is not required
29
- - ✅ Surface-level reading only — no AST, no deep analysis
30
-
31
- ### Step-Specific Rules:
32
-
33
- - 🎯 Focus only on reading source and extracting exports
34
- - 🚫 FORBIDDEN to begin compilation or write output files
35
- - 💬 Approach: Read key files, extract what's visible, move on
36
- - 📋 No AST required — use grep/pattern-based extraction
37
- - 📋 If no exports found, extract what's available from README
38
-
39
- ## EXECUTION PROTOCOLS:
40
-
41
- - 🎯 Follow the MANDATORY SEQUENCE exactly
42
- - 💾 Set state: extraction_inventory (exports list, description, manifest data)
43
- - 📖 Web browsing required to read GitHub source files
44
- - 🚫 Do not spend excessive time on extraction — best-effort
45
-
46
- ## CONTEXT BOUNDARIES:
11
+ ## Rules
47
12
 
48
- - Previous steps provided: resolved_url, repo_name, language, scope_hint
49
- - Web browsing available for reading GitHub source files
50
- - Focus: extraction only, not compilation
51
- - This is best-effort — incomplete extraction is acceptable
13
+ - Best-effort extraction completeness is not required; surface-level reading only, no AST
14
+ - Do not begin compilation or write output files
15
+ - If no exports found, use README content as fallback
52
16
 
53
17
  ## MANDATORY SEQUENCE
54
18
 
@@ -76,6 +40,8 @@ Based on detected language, read the primary manifest file:
76
40
  - **Python:** `pyproject.toml` or `setup.py` — extract project name, version, description, dependencies
77
41
  - **Rust:** `Cargo.toml` — extract package name, version, description, dependencies
78
42
  - **Go:** `go.mod` — extract module path, require list
43
+ - **Java (Maven):** `pom.xml` — extract `<groupId>`, `<artifactId>`, `<version>`, `<description>`, direct `<dependencies>`. For multi-module projects, also enumerate `<modules><module>` entries and read each submodule's `pom.xml` (treat each as a logical unit in the extraction inventory).
44
+ - **Kotlin / Java (Gradle):** `build.gradle.kts` or `build.gradle` — extract `group`, `version`, `description` (when declared), and top-level `dependencies { }` block. For multi-project builds, read `settings.gradle[.kts]` for `include(...)` entries and repeat per subproject.
79
45
 
80
46
  Extract:
81
47
  - **Package metadata:** name, version, description
@@ -106,6 +72,18 @@ Based on language and entry points from manifest, read the primary export files:
106
72
  - Extract: capitalized function names (Go export convention)
107
73
  - Pattern: lines matching `func [A-Z]`
108
74
 
75
+ **Java:**
76
+ - Read `src/main/java/**/*.java` (focus on top-level packages declared in the manifest's `groupId`)
77
+ - Extract: public classes, public methods, and framework annotations that mark API surfaces (Spring, Jakarta EE, CDI)
78
+ - Pattern: lines matching `@(RestController|Service|Component|Configuration|Controller|Repository|Bean)|public (class|interface|enum|record) |public .* \(`
79
+ - **Multi-module Maven:** iterate the `<module>` entries discovered in §2 and repeat the scan per module, reading each `{module}/src/main/java/**/*.java`
80
+
81
+ **Kotlin:**
82
+ - Read `src/main/kotlin/**/*.kt` (Kotlin defaults to `public` visibility — omit `internal`/`private` declarations)
83
+ - Extract: top-level `fun`, `class`, `object`, `interface` declarations
84
+ - Pattern: lines matching `^(fun |class |object |interface |data class |sealed class |@(RestController|Service|Component|Configuration|Controller))`
85
+ - **Multi-project Gradle:** iterate the `include(...)` entries discovered in §2 and repeat the scan per subproject
86
+
109
87
  **If scope_hint provided:** Focus reading on the specified directories instead of root.
110
88
 
111
89
  ### 4. Build Extraction Inventory
@@ -156,24 +134,3 @@ extraction_inventory:
156
134
 
157
135
  ONLY WHEN extraction is complete and extraction_inventory is assembled (even if minimal/low-confidence) will you load and read fully `{nextStepFile}` to execute compilation.
158
136
 
159
- ---
160
-
161
- ## 🚨 SYSTEM SUCCESS/FAILURE METRICS
162
-
163
- ### ✅ SUCCESS:
164
-
165
- - README read and description extracted
166
- - Manifest file read and metadata extracted
167
- - Top-level exports scanned (best-effort)
168
- - extraction_inventory assembled with available data
169
- - Confidence level set appropriately
170
- - Auto-proceeding to compilation
171
-
172
- ### ❌ SYSTEM FAILURE:
173
-
174
- - Spending excessive time trying to achieve complete extraction
175
- - Using AST tools (this is surface-level reading only)
176
- - Beginning compilation or writing output files
177
- - Halting on missing exports instead of using README fallback
178
-
179
- **Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.