bmad-module-skill-forge 2.1.0 → 3.0.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 (435) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/README.md +51 -49
  3. package/docs/404.md +10 -8
  4. package/docs/_data/pinned.yaml +22 -13
  5. package/docs/_internal/STABILITY.md +58 -35
  6. package/docs/agents.md +39 -53
  7. package/docs/architecture.md +65 -51
  8. package/docs/bmad-synergy.md +53 -51
  9. package/docs/campaign.md +127 -75
  10. package/docs/concepts.md +34 -28
  11. package/docs/examples.md +70 -68
  12. package/docs/forge-auto.md +34 -31
  13. package/docs/getting-started.md +118 -57
  14. package/docs/how-it-works.md +25 -21
  15. package/docs/index.md +15 -15
  16. package/docs/skill-model.md +70 -59
  17. package/docs/troubleshooting.md +135 -18
  18. package/docs/verifying-a-skill.md +83 -57
  19. package/docs/why-skf.md +24 -22
  20. package/docs/workflows.md +274 -110
  21. package/package.json +18 -10
  22. package/src/forger/preferences.yaml +8 -1
  23. package/src/knowledge/agentskills-spec.md +2 -0
  24. package/src/knowledge/ccc-bridge.md +40 -24
  25. package/src/knowledge/confidence-tiers.md +9 -5
  26. package/src/knowledge/overview.md +3 -3
  27. package/src/knowledge/progressive-capability.md +8 -8
  28. package/src/knowledge/provenance-tracking.md +9 -5
  29. package/src/knowledge/qmd-registry.md +2 -2
  30. package/src/knowledge/skf-knowledge-index.csv +2 -2
  31. package/src/knowledge/skill-lifecycle.md +18 -11
  32. package/src/knowledge/split-body-strategy.md +0 -3
  33. package/src/knowledge/tool-resolution.md +4 -2
  34. package/src/knowledge/version-paths.md +101 -15
  35. package/src/module-help.csv +3 -3
  36. package/src/module.yaml +10 -0
  37. package/src/shared/data/ast-grep-recipes.yaml +608 -0
  38. package/src/shared/data/ide-context-files.json +30 -0
  39. package/src/shared/health-check.md +32 -12
  40. package/src/shared/references/description-guard-protocol.md +14 -9
  41. package/src/shared/references/feasibility-report-schema.md +19 -13
  42. package/src/shared/references/headless-gate-convention.md +55 -3
  43. package/src/shared/references/output-contract-schema.md +19 -8
  44. package/src/shared/references/pipeline-contracts.md +94 -29
  45. package/src/shared/references/tessl-review.md +77 -0
  46. package/src/shared/scripts/schemas/skf-analyze-result-envelope.v1.json +194 -0
  47. package/src/shared/scripts/schemas/skf-audit-result-envelope.v1.json +192 -0
  48. package/src/shared/scripts/schemas/skf-brief-result-envelope.v1.json +32 -4
  49. package/src/shared/scripts/schemas/skf-campaign-result-envelope.v1.json +174 -0
  50. package/src/shared/scripts/schemas/skf-create-skill-result-envelope.v1.json +284 -0
  51. package/src/shared/scripts/schemas/skf-drop-skill-result-envelope.v1.json +164 -0
  52. package/src/shared/scripts/schemas/skf-export-result-envelope.v1.json +160 -0
  53. package/src/shared/scripts/schemas/skf-quick-skill-result-envelope.v1.json +261 -0
  54. package/src/shared/scripts/schemas/skf-refine-architecture-result-envelope.v1.json +192 -0
  55. package/src/shared/scripts/schemas/skf-rename-skill-result-envelope.v1.json +179 -0
  56. package/src/shared/scripts/schemas/skf-setup-result-envelope.v1.json +27 -11
  57. package/src/shared/scripts/schemas/skf-stack-result-envelope.v1.json +176 -0
  58. package/src/shared/scripts/schemas/skf-test-result-envelope.v1.json +173 -0
  59. package/src/shared/scripts/schemas/skf-update-result-envelope.v1.json +19 -5
  60. package/src/shared/scripts/schemas/skf-verify-stack-result-envelope.v1.json +180 -0
  61. package/src/shared/scripts/schemas/skill-brief.v1.json +34 -0
  62. package/src/shared/scripts/schemas/workspace-detection.v1.json +1 -1
  63. package/src/shared/scripts/skf-atomic-write.py +30 -14
  64. package/src/shared/scripts/skf-build-change-manifest.py +2203 -24
  65. package/src/shared/scripts/skf-ccc-git-hygiene.py +532 -0
  66. package/src/shared/scripts/skf-check-unit-records.py +184 -0
  67. package/src/shared/scripts/skf-check-workspace-drift.py +538 -9
  68. package/src/shared/scripts/skf-classify-changed-files.py +694 -0
  69. package/src/shared/scripts/skf-comention-pairs.py +1333 -123
  70. package/src/shared/scripts/skf-compare-file-hashes.py +1 -1
  71. package/src/shared/scripts/skf-count-imports.py +1867 -0
  72. package/src/shared/scripts/skf-count-tokens.py +1 -1
  73. package/src/shared/scripts/skf-derive-assembly-shape.py +3 -2
  74. package/src/shared/scripts/skf-description-guard.py +117 -9
  75. package/src/shared/scripts/skf-detect-docs.py +892 -4
  76. package/src/shared/scripts/skf-detect-language.py +486 -107
  77. package/src/shared/scripts/skf-detect-registry.py +887 -0
  78. package/src/shared/scripts/skf-detect-scripts-assets.py +1 -1
  79. package/src/shared/scripts/skf-detect-tools.py +215 -27
  80. package/src/shared/scripts/skf-detect-workspaces.py +506 -30
  81. package/src/shared/scripts/skf-disqualify-candidates.py +821 -182
  82. package/src/shared/scripts/skf-emit-brief-result-envelope.py +69 -191
  83. package/src/shared/scripts/skf-emit-result-envelope.py +1604 -106
  84. package/src/shared/scripts/skf-enumerate-stack-skills.py +986 -117
  85. package/src/shared/scripts/skf-extract-public-api.py +4084 -85
  86. package/src/shared/scripts/skf-extraction-inventory.py +746 -0
  87. package/src/shared/scripts/skf-extraction-snapshot.py +539 -0
  88. package/src/shared/scripts/skf-fetch-temporal.py +674 -0
  89. package/src/shared/scripts/skf-find-cycles.py +97 -29
  90. package/src/shared/scripts/skf-find-test-report.py +476 -0
  91. package/src/shared/scripts/skf-forge-tier-rw.py +444 -203
  92. package/src/shared/scripts/skf-github-fetch.py +365 -0
  93. package/src/shared/scripts/skf-github-probe.py +661 -0
  94. package/src/shared/scripts/skf-hash-content.py +166 -12
  95. package/src/shared/scripts/skf-language-corpora.py +1 -1
  96. package/src/shared/scripts/skf-load-provenance.py +159 -27
  97. package/src/shared/scripts/skf-manifest-ops.py +1 -1
  98. package/src/shared/scripts/skf-merge-ccc-exclusions.py +2307 -223
  99. package/src/shared/scripts/skf-merge-doc-urls.py +1 -1
  100. package/src/shared/scripts/skf-names-present.py +221 -0
  101. package/src/shared/scripts/skf-pair-intersect.py +119 -28
  102. package/src/shared/scripts/skf-parse-gaps.py +1384 -0
  103. package/src/shared/scripts/skf-preapply.py +1 -1
  104. package/src/shared/scripts/skf-preflight.py +161 -27
  105. package/src/shared/scripts/skf-promote-staged.py +430 -0
  106. package/src/shared/scripts/skf-provenance-gap-dispatch.py +39 -7
  107. package/src/shared/scripts/skf-qmd-classify-collections.py +229 -45
  108. package/src/shared/scripts/skf-quick-batch.py +774 -0
  109. package/src/shared/scripts/skf-rebuild-managed-sections.py +972 -88
  110. package/src/shared/scripts/skf-recommend-scope-type.py +323 -156
  111. package/src/shared/scripts/skf-render-metadata-stats.py +156 -12
  112. package/src/shared/scripts/skf-render-quick-metadata.py +132 -28
  113. package/src/shared/scripts/skf-render-stack-metadata.py +976 -0
  114. package/src/shared/scripts/skf-resolve-authoritative-files.py +128 -13
  115. package/src/shared/scripts/skf-resolve-package.py +523 -106
  116. package/src/shared/scripts/skf-rewrite-skill-name.py +433 -47
  117. package/src/shared/scripts/skf-run-lock.py +577 -0
  118. package/src/shared/scripts/skf-scan-manifests.py +998 -57
  119. package/src/shared/scripts/skf-scan-skill-md-structure.py +1341 -37
  120. package/src/shared/scripts/skf-severity-classify.py +712 -108
  121. package/src/shared/scripts/skf-shape-detect.py +298 -204
  122. package/src/shared/scripts/skf-shard-body.py +9 -8
  123. package/src/shared/scripts/skf-skill-inventory.py +2412 -89
  124. package/src/shared/scripts/skf-skills-module.py +472 -0
  125. package/src/shared/scripts/skf-source-tree.py +1796 -0
  126. package/src/shared/scripts/skf-structural-diff.py +670 -119
  127. package/src/shared/scripts/skf-tessl-review.py +706 -0
  128. package/src/shared/scripts/skf-update-active-symlink.py +5 -5
  129. package/src/shared/scripts/skf-update-run-state.py +624 -0
  130. package/src/shared/scripts/skf-validate-brief-inputs.py +92 -29
  131. package/src/shared/scripts/skf-validate-brief-schema.py +4 -1
  132. package/src/shared/scripts/skf-validate-feasibility-report.py +577 -66
  133. package/src/shared/scripts/skf-validate-frontmatter.py +103 -26
  134. package/src/shared/scripts/skf-validate-output.py +712 -64
  135. package/src/shared/scripts/skf-validate-pins.py +1 -1
  136. package/src/shared/scripts/skf-verify-no-trace.py +116 -10
  137. package/src/shared/scripts/skf-verify-provenance-completeness.py +2919 -54
  138. package/src/shared/scripts/skf-write-skill-brief.py +367 -19
  139. package/src/shared/tool-requirements.yaml +201 -0
  140. package/src/skf-analyze-source/SKILL.md +41 -36
  141. package/src/skf-analyze-source/assets/skill-brief-schema.md +7 -8
  142. package/src/skf-analyze-source/customize.toml +36 -24
  143. package/src/skf-analyze-source/references/auto-docs-only.md +58 -20
  144. package/src/skf-analyze-source/references/continue.md +2 -13
  145. package/src/skf-analyze-source/references/discover-additional-source.md +147 -0
  146. package/src/skf-analyze-source/references/generate-briefs.md +121 -55
  147. package/src/skf-analyze-source/references/headless-contract.md +42 -15
  148. package/src/skf-analyze-source/references/identify-units.md +96 -110
  149. package/src/skf-analyze-source/references/init.md +73 -71
  150. package/src/skf-analyze-source/references/map-and-detect.md +123 -105
  151. package/src/skf-analyze-source/references/map-unit-exports.md +68 -0
  152. package/src/skf-analyze-source/references/recommend.md +51 -70
  153. package/src/skf-analyze-source/references/scan-project.md +60 -84
  154. package/src/skf-analyze-source/references/scan-root.md +39 -0
  155. package/src/skf-analyze-source/references/step-auto-scope-coexistence.md +47 -0
  156. package/src/skf-analyze-source/references/step-auto-scope-corpora.md +53 -0
  157. package/src/skf-analyze-source/references/step-auto-scope-split.md +91 -0
  158. package/src/skf-analyze-source/references/step-auto-scope.md +208 -293
  159. package/src/skf-analyze-source/references/step-shape-detect.md +14 -12
  160. package/src/skf-analyze-source/references/unit-detection-heuristics.md +37 -42
  161. package/src/skf-audit-skill/SKILL.md +43 -51
  162. package/src/skf-audit-skill/assets/drift-report-template.md +27 -3
  163. package/src/skf-audit-skill/customize.toml +41 -20
  164. package/src/skf-audit-skill/references/constituent-freshness.md +91 -0
  165. package/src/skf-audit-skill/references/doc-drift.md +141 -0
  166. package/src/skf-audit-skill/references/headless-contract.md +29 -0
  167. package/src/skf-audit-skill/references/init.md +148 -210
  168. package/src/skf-audit-skill/references/re-index.md +96 -108
  169. package/src/skf-audit-skill/references/report.md +96 -33
  170. package/src/skf-audit-skill/references/semantic-diff.md +27 -18
  171. package/src/skf-audit-skill/references/severity-classify.md +79 -65
  172. package/src/skf-audit-skill/references/severity-rules.md +15 -6
  173. package/src/skf-audit-skill/references/structural-diff.md +75 -90
  174. package/src/skf-audit-skill/references/upstream-checkout.md +77 -0
  175. package/src/skf-audit-skill/scripts/render-drift-tables.py +685 -0
  176. package/src/skf-brief-skill/SKILL.md +36 -25
  177. package/src/skf-brief-skill/assets/description-voice-examples.md +1 -1
  178. package/src/skf-brief-skill/assets/scope-templates.md +17 -24
  179. package/src/skf-brief-skill/assets/skill-brief-schema.md +29 -15
  180. package/src/skf-brief-skill/customize.toml +48 -20
  181. package/src/skf-brief-skill/references/analyze-target.md +142 -125
  182. package/src/skf-brief-skill/references/confirm-brief.md +10 -8
  183. package/src/skf-brief-skill/references/draft-checkpoint.md +36 -17
  184. package/src/skf-brief-skill/references/gather-intent-ratify.md +68 -0
  185. package/src/skf-brief-skill/references/gather-intent.md +87 -182
  186. package/src/skf-brief-skill/references/headless-args.md +84 -16
  187. package/src/skf-brief-skill/references/health-check.md +1 -1
  188. package/src/skf-brief-skill/references/invocation-contract.md +18 -13
  189. package/src/skf-brief-skill/references/portfolio-similarity-check.md +1 -1
  190. package/src/skf-brief-skill/references/qmd-collection-registration.md +7 -10
  191. package/src/skf-brief-skill/references/scope-definition.md +123 -47
  192. package/src/skf-brief-skill/references/step-auto-brief.md +24 -80
  193. package/src/skf-brief-skill/references/step-auto-validate.md +20 -121
  194. package/src/skf-brief-skill/references/version-resolution.md +3 -2
  195. package/src/skf-brief-skill/references/write-brief.md +66 -57
  196. package/src/skf-campaign/SKILL.md +31 -34
  197. package/src/skf-campaign/assets/campaign-state-schema.json +25 -4
  198. package/src/skf-campaign/customize.toml +47 -16
  199. package/src/skf-campaign/references/campaign-contracts.md +39 -29
  200. package/src/skf-campaign/references/campaign-directive-spec.md +4 -2
  201. package/src/skf-campaign/references/health-check.md +7 -16
  202. package/src/skf-campaign/references/step-01-setup.md +46 -84
  203. package/src/skf-campaign/references/step-02-strategy.md +31 -30
  204. package/src/skf-campaign/references/step-03-pins.md +26 -18
  205. package/src/skf-campaign/references/step-04-provenance.md +24 -23
  206. package/src/skf-campaign/references/step-05-skill-loop.md +67 -48
  207. package/src/skf-campaign/references/step-06-batch.md +41 -34
  208. package/src/skf-campaign/references/step-07-capstone.md +40 -25
  209. package/src/skf-campaign/references/step-08-verify.md +28 -29
  210. package/src/skf-campaign/references/step-09-refine.md +29 -30
  211. package/src/skf-campaign/references/step-10-export.md +48 -36
  212. package/src/skf-campaign/references/step-11-maintenance.md +31 -34
  213. package/src/skf-campaign/references/step-resume.md +37 -68
  214. package/src/skf-campaign/scripts/campaign-deps.py +57 -18
  215. package/src/skf-campaign/scripts/campaign-parse-manifest.py +361 -54
  216. package/src/skf-campaign/scripts/campaign-provenance.py +96 -53
  217. package/src/skf-campaign/scripts/campaign-quality-gate.py +592 -0
  218. package/src/skf-campaign/scripts/campaign-render-batch.py +257 -49
  219. package/src/skf-campaign/scripts/campaign-render-kickoff.py +343 -50
  220. package/src/skf-campaign/scripts/campaign-report.py +204 -37
  221. package/src/skf-campaign/scripts/campaign-state.py +1128 -0
  222. package/src/skf-campaign/scripts/campaign-status.py +10 -74
  223. package/src/skf-campaign/scripts/campaign-validate-pins.py +30 -3
  224. package/src/skf-campaign/scripts/campaign-validate-state.py +34 -4
  225. package/src/skf-campaign/templates/campaign-brief-template.yaml +4 -5
  226. package/src/skf-campaign/templates/campaign-report-template.md +5 -1
  227. package/src/skf-campaign/templates/kickoff-template.md +0 -14
  228. package/src/skf-create-skill/SKILL.md +27 -20
  229. package/src/skf-create-skill/assets/compile-assembly-rules.md +6 -5
  230. package/src/skf-create-skill/assets/skill-sections.md +17 -6
  231. package/src/skf-create-skill/customize.toml +20 -8
  232. package/src/skf-create-skill/references/authoritative-files-protocol.md +41 -42
  233. package/src/skf-create-skill/references/batch-mode.md +81 -0
  234. package/src/skf-create-skill/references/ccc-index-check.md +27 -0
  235. package/src/skf-create-skill/references/compile.md +107 -29
  236. package/src/skf-create-skill/references/component-extraction.md +113 -91
  237. package/src/skf-create-skill/references/enrich.md +41 -23
  238. package/src/skf-create-skill/references/entry-points-by-hand.md +20 -0
  239. package/src/skf-create-skill/references/extract.md +200 -161
  240. package/src/skf-create-skill/references/extraction-patterns-by-hand.md +141 -0
  241. package/src/skf-create-skill/references/extraction-patterns-tracing.md +2 -2
  242. package/src/skf-create-skill/references/extraction-patterns.md +584 -196
  243. package/src/skf-create-skill/references/generate-artifacts.md +145 -93
  244. package/src/skf-create-skill/references/health-check.md +1 -1
  245. package/src/skf-create-skill/references/load-brief.md +53 -36
  246. package/src/skf-create-skill/references/relabel-rule.md +12 -0
  247. package/src/skf-create-skill/references/report.md +28 -59
  248. package/src/skf-create-skill/references/source-resolution-protocols.md +49 -155
  249. package/src/skf-create-skill/references/step-auto-shard.md +20 -93
  250. package/src/skf-create-skill/references/step-doc-rot.md +44 -60
  251. package/src/skf-create-skill/references/step-doc-sources.md +55 -18
  252. package/src/skf-create-skill/references/sub/ccc-discover.md +18 -7
  253. package/src/skf-create-skill/references/sub/fetch-docs.md +106 -57
  254. package/src/skf-create-skill/references/sub/fetch-temporal.md +53 -166
  255. package/src/skf-create-skill/references/tier-degradation-rules.md +18 -9
  256. package/src/skf-create-skill/references/validate.md +173 -99
  257. package/src/skf-create-skill/scripts/scan-doc-rot.py +232 -99
  258. package/src/skf-create-stack-skill/SKILL.md +29 -56
  259. package/src/skf-create-stack-skill/assets/metadata-contract.md +51 -0
  260. package/src/skf-create-stack-skill/assets/provenance-map-schema.md +15 -15
  261. package/src/skf-create-stack-skill/assets/stack-skill-template.md +23 -57
  262. package/src/skf-create-stack-skill/customize.toml +23 -12
  263. package/src/skf-create-stack-skill/references/compile-stack.md +57 -66
  264. package/src/skf-create-stack-skill/references/compose-mode-rules.md +24 -44
  265. package/src/skf-create-stack-skill/references/detect-integrations.md +92 -95
  266. package/src/skf-create-stack-skill/references/detect-manifests.md +46 -71
  267. package/src/skf-create-stack-skill/references/generate-output.md +138 -128
  268. package/src/skf-create-stack-skill/references/init.md +90 -32
  269. package/src/skf-create-stack-skill/references/integration-patterns.md +1 -17
  270. package/src/skf-create-stack-skill/references/invocation-contract.md +34 -0
  271. package/src/skf-create-stack-skill/references/manifest-patterns.md +32 -20
  272. package/src/skf-create-stack-skill/references/parallel-extract.md +112 -38
  273. package/src/skf-create-stack-skill/references/rank-and-confirm.md +57 -75
  274. package/src/skf-create-stack-skill/references/report.md +39 -33
  275. package/src/skf-create-stack-skill/references/validate.md +20 -39
  276. package/src/skf-drop-skill/SKILL.md +28 -51
  277. package/src/skf-drop-skill/customize.toml +44 -30
  278. package/src/skf-drop-skill/references/execute.md +79 -146
  279. package/src/skf-drop-skill/references/invocation-contract.md +64 -0
  280. package/src/skf-drop-skill/references/report.md +46 -30
  281. package/src/skf-drop-skill/references/select.md +118 -124
  282. package/src/skf-drop-skill/scripts/dir-sizes.py +54 -26
  283. package/src/skf-drop-skill/scripts/drop-roster.py +322 -0
  284. package/src/skf-export-skill/SKILL.md +40 -62
  285. package/src/skf-export-skill/assets/managed-section-format.md +14 -50
  286. package/src/skf-export-skill/assets/snippet-format.md +3 -1
  287. package/src/skf-export-skill/customize.toml +42 -13
  288. package/src/skf-export-skill/references/generate-snippet.md +54 -46
  289. package/src/skf-export-skill/references/health-check.md +2 -0
  290. package/src/skf-export-skill/references/invocation-contract.md +15 -0
  291. package/src/skf-export-skill/references/load-skill.md +88 -62
  292. package/src/skf-export-skill/references/manifest-rebuild.md +9 -10
  293. package/src/skf-export-skill/references/multi-skill-mode.md +4 -4
  294. package/src/skf-export-skill/references/orphan-context-detection.md +13 -5
  295. package/src/skf-export-skill/references/orphan-row-detection.md +31 -22
  296. package/src/skf-export-skill/references/package.md +15 -73
  297. package/src/skf-export-skill/references/preflight-snippet-root-probe.md +51 -70
  298. package/src/skf-export-skill/references/result-envelope.md +31 -16
  299. package/src/skf-export-skill/references/summary.md +41 -17
  300. package/src/skf-export-skill/references/token-report.md +4 -12
  301. package/src/skf-export-skill/references/update-context.md +118 -237
  302. package/src/skf-forger/SKILL.md +61 -37
  303. package/src/skf-forger/bmad-skill-manifest.yaml +4 -1
  304. package/src/skf-forger/customize.toml +43 -0
  305. package/src/skf-forger/references/pipeline-mode.md +73 -18
  306. package/src/skf-forger/scripts/forge-status.py +299 -0
  307. package/src/skf-forger/scripts/parse-pipeline.py +322 -54
  308. package/src/skf-forger/scripts/pipeline-gate.py +428 -0
  309. package/src/skf-forger/scripts/pipeline-journal.py +1052 -0
  310. package/src/skf-quick-skill/SKILL.md +54 -53
  311. package/src/skf-quick-skill/assets/skill-template.md +4 -2
  312. package/src/skf-quick-skill/customize.toml +51 -20
  313. package/src/skf-quick-skill/references/batch-mode.md +74 -21
  314. package/src/skf-quick-skill/references/compile.md +30 -31
  315. package/src/skf-quick-skill/references/ecosystem-check.md +7 -57
  316. package/src/skf-quick-skill/references/finalize.md +69 -18
  317. package/src/skf-quick-skill/references/halt-contract.md +41 -29
  318. package/src/skf-quick-skill/references/health-check.md +5 -3
  319. package/src/skf-quick-skill/references/quick-extract.md +114 -45
  320. package/src/skf-quick-skill/references/registry-resolution.md +9 -64
  321. package/src/skf-quick-skill/references/resolve-target.md +116 -66
  322. package/src/skf-quick-skill/references/write-and-validate.md +79 -40
  323. package/src/skf-refine-architecture/SKILL.md +43 -53
  324. package/src/skf-refine-architecture/customize.toml +49 -20
  325. package/src/skf-refine-architecture/references/compile.md +97 -54
  326. package/src/skf-refine-architecture/references/exit-codes.md +30 -0
  327. package/src/skf-refine-architecture/references/finding-storage.md +21 -0
  328. package/src/skf-refine-architecture/references/gap-analysis.md +101 -38
  329. package/src/skf-refine-architecture/references/improvements.md +14 -20
  330. package/src/skf-refine-architecture/references/init.md +98 -57
  331. package/src/skf-refine-architecture/references/issue-detection.md +32 -39
  332. package/src/skf-refine-architecture/references/refinement-rules.md +37 -48
  333. package/src/skf-refine-architecture/references/report.md +65 -54
  334. package/src/skf-refine-architecture/scripts/skf-check-preservation.py +1619 -0
  335. package/src/skf-rename-skill/SKILL.md +19 -54
  336. package/src/skf-rename-skill/customize.toml +32 -26
  337. package/src/skf-rename-skill/references/execute.md +230 -184
  338. package/src/skf-rename-skill/references/exit-codes.md +7 -7
  339. package/src/skf-rename-skill/references/health-check.md +1 -7
  340. package/src/skf-rename-skill/references/invocation-contract.md +25 -0
  341. package/src/skf-rename-skill/references/report.md +63 -52
  342. package/src/skf-rename-skill/references/select.md +197 -115
  343. package/src/skf-rename-skill/scripts/skf-validate-rename-name.py +161 -21
  344. package/src/skf-setup/SKILL.md +26 -26
  345. package/src/skf-setup/customize.toml +14 -10
  346. package/src/skf-setup/references/auto-index.md +50 -63
  347. package/src/skf-setup/references/ccc-index.md +29 -89
  348. package/src/skf-setup/references/detect-and-tier.md +58 -66
  349. package/src/skf-setup/references/health-check.md +2 -0
  350. package/src/skf-setup/references/invocation-contract.md +14 -0
  351. package/src/skf-setup/references/report.md +43 -166
  352. package/src/skf-setup/references/tier-rules.md +5 -5
  353. package/src/skf-setup/references/write-config.md +34 -57
  354. package/src/skf-test-skill/SKILL.md +17 -57
  355. package/src/skf-test-skill/assets/output-section-formats.md +33 -34
  356. package/src/skf-test-skill/customize.toml +27 -13
  357. package/src/skf-test-skill/references/coherence-check.md +134 -62
  358. package/src/skf-test-skill/references/coverage-check-tiers.md +35 -0
  359. package/src/skf-test-skill/references/coverage-check.md +217 -254
  360. package/src/skf-test-skill/references/detect-mode.md +5 -5
  361. package/src/skf-test-skill/references/external-validators.md +94 -82
  362. package/src/skf-test-skill/references/health-check.md +6 -7
  363. package/src/skf-test-skill/references/init.md +163 -88
  364. package/src/skf-test-skill/references/invocation-contract.md +66 -0
  365. package/src/skf-test-skill/references/migration-section-rules.md +5 -2
  366. package/src/skf-test-skill/references/report.md +162 -142
  367. package/src/skf-test-skill/references/score.md +80 -107
  368. package/src/skf-test-skill/references/scoring-rules.md +41 -155
  369. package/src/skf-test-skill/references/source-access-protocol.md +19 -92
  370. package/src/skf-test-skill/references/step-hard-gate.md +51 -33
  371. package/src/skf-test-skill/scripts/aggregate-coherence.py +218 -30
  372. package/src/skf-test-skill/scripts/build-result-context.py +287 -0
  373. package/src/skf-test-skill/scripts/check-metadata-coherence.py +37 -4
  374. package/src/skf-test-skill/scripts/combine-external-scores.py +23 -6
  375. package/src/skf-test-skill/scripts/compute-score.py +223 -45
  376. package/src/skf-test-skill/scripts/gap-ledger.py +1381 -0
  377. package/src/skf-test-skill/scripts/hard-gate.py +203 -0
  378. package/src/skf-test-skill/scripts/load-coverage-inputs.py +760 -0
  379. package/src/skf-test-skill/scripts/locate-export-segments.py +835 -0
  380. package/src/skf-test-skill/scripts/reconcile-coverage.py +273 -79
  381. package/src/skf-test-skill/scripts/score-signatures.py +459 -0
  382. package/src/skf-test-skill/scripts/stage-helper-payload.py +148 -0
  383. package/src/skf-test-skill/scripts/validate-inventory.py +311 -16
  384. package/src/skf-test-skill/scripts/verify-declared-numerator.py +127 -52
  385. package/src/skf-test-skill/templates/test-report-template.md +21 -15
  386. package/src/skf-update-skill/SKILL.md +38 -25
  387. package/src/skf-update-skill/customize.toml +27 -12
  388. package/src/skf-update-skill/references/detect-changes.md +233 -222
  389. package/src/skf-update-skill/references/gap-driven.md +336 -0
  390. package/src/skf-update-skill/references/health-check.md +31 -5
  391. package/src/skf-update-skill/references/init.md +250 -84
  392. package/src/skf-update-skill/references/invocation-contract.md +12 -0
  393. package/src/skf-update-skill/references/manual-section-rules.md +6 -23
  394. package/src/skf-update-skill/references/merge.md +180 -47
  395. package/src/skf-update-skill/references/re-extract.md +53 -262
  396. package/src/skf-update-skill/references/report.md +100 -35
  397. package/src/skf-update-skill/references/write.md +331 -149
  398. package/src/skf-update-skill/scripts/skf-new-file-diff.py +29 -7
  399. package/src/skf-verify-stack/SKILL.md +23 -42
  400. package/src/skf-verify-stack/assets/feasibility-report-template.md +11 -5
  401. package/src/skf-verify-stack/customize.toml +55 -22
  402. package/src/skf-verify-stack/references/coverage-patterns.md +17 -8
  403. package/src/skf-verify-stack/references/coverage.md +67 -64
  404. package/src/skf-verify-stack/references/exit-codes.md +21 -8
  405. package/src/skf-verify-stack/references/init.md +107 -62
  406. package/src/skf-verify-stack/references/integration-verification-rules.md +12 -13
  407. package/src/skf-verify-stack/references/integrations.md +106 -65
  408. package/src/skf-verify-stack/references/report.md +59 -42
  409. package/src/skf-verify-stack/references/requirements.md +32 -9
  410. package/src/skf-verify-stack/references/synthesize.md +53 -39
  411. package/src/skf-verify-stack/scripts/skf-coverage-tally.py +398 -52
  412. package/src/skf-verify-stack/scripts/skf-previous-report.py +330 -0
  413. package/src/skf-verify-stack/scripts/skf-report-delta.py +453 -49
  414. package/src/skf-verify-stack/scripts/skf-verdict-rollup.py +240 -27
  415. package/tools/cli/commands/install.js +11 -4
  416. package/tools/cli/commands/status.js +15 -3
  417. package/tools/cli/commands/update.js +11 -4
  418. package/tools/cli/lib/tool-check.js +320 -0
  419. package/tools/cli/lib/version-check.js +22 -9
  420. package/tools/cli/skf-cli.js +4 -1
  421. package/.gitattributes +0 -16
  422. package/.nvmrc +0 -1
  423. package/docs/_internal/RELEASING.md +0 -645
  424. package/release-audits/v1.0.0-launch-audit.md +0 -728
  425. package/src/skf-audit-skill/references/step-doc-drift.md +0 -177
  426. package/src/skf-brief-skill/references/headless-source-authority-detection.md +0 -26
  427. package/src/skf-campaign/manifest.yaml +0 -15
  428. package/src/skf-create-skill/assets/tessl-dismissal-rules.md +0 -106
  429. package/src/skf-create-skill/references/ecosystem-check.md +0 -74
  430. package/src/skf-drop-skill/references/headless-contract.md +0 -18
  431. package/src/skf-update-skill/references/merge-conflict-rules.md +0 -15
  432. package/src/skf-update-skill/references/remote-source-resolution.md +0 -98
  433. package/src/skf-update-skill/references/validate.md +0 -124
  434. package/tools/validate-docs-drift.js +0 -233
  435. package/tools/validate-docs-links.js +0 -665
package/docs/examples.md CHANGED
@@ -35,19 +35,19 @@ description: >
35
35
  |----------|---------|------------|--------|
36
36
  | add() | Ingest text, files, binary data | data, dataset_name | [AST:cognee/api/v1/add/add.py:L22] |
37
37
  | cognify() | Build knowledge graph | datasets, graph_model | [AST:cognee/api/v1/cognify/cognify.py:L44] |
38
- | search() | Query knowledge graph | query_text, query_type | [AST:cognee/api/v1/search/search.py:L26] |
38
+ | search() | Query knowledge graph | query_text, query_type | [AST:cognee/api/v1/search/search.py:L27] |
39
39
  | memify() | Enrich graph with custom tasks | extraction_tasks, data | [AST:cognee/modules/memify/memify.py:L25] |
40
40
  | remember() | V2 one-shot memory ingest | data, dataset_name | [AST:cognee/api/v1/remember/remember.py:L339] |
41
41
  | DataPoint | Base class for custom graph nodes | inherit and add fields | [EXT:docs.cognee.ai/guides/custom-data-models] |
42
42
  ```
43
43
 
44
- Every line number above is verbatim from the real [`forge-data/oms-cognee/1.0.0/provenance-map.json`](https://github.com/armelhbobdad/oh-my-skills/blob/main/forge-data/oms-cognee/1.0.0/provenance-map.json) shipped with oh-my-skills — not illustrative.
44
+ Every line number above is copied from the real SKILL.md and points at the line where that function is defined in the cognee source, so none of it is illustrative. SKF also ships its extraction record for this skill in oh-my-skills: [`forge-data/oms-cognee/1.0.0/provenance-map.json`](https://github.com/armelhbobdad/oh-my-skills/blob/main/forge-data/oms-cognee/1.0.0/provenance-map.json). The tags are copied as published too, and they predate labels that follow the tool: that record lists these functions as read by eye (`source-read`), so SKF 3.0.0 would tag them `[SRC:...]` (T1-low) and keep `[AST:...]` for a definition an ast-grep rule matched. [Verifying a Skill](/docs/verifying-a-skill.md#2-open-the-skills-provenance-mapjson) walks through the `search` entry.
45
45
 
46
46
  Provenance tags trace each instruction to its source:
47
- - `[AST:file:line]` — extracted from code via AST parsing (highest confidence)
48
- - `[SRC:file:line]` — read from source code without AST verification
49
- - `[EXT:url]` — sourced from external documentation
50
- - `[QMD:collection:doc]` — surfaced from indexed developer discourse (issues, PRs, changelogs)
47
+ - `[AST:file:Lnn]` (T1): an ast-grep rule matched the definition in the code (highest confidence)
48
+ - `[SRC:file:Lnn]` (T1-low): read from source code by eye, without an ast-grep match, at any forge tier
49
+ - `[QMD:collection:doc]` (T2): surfaced from indexed developer discourse (issues, PRs, changelogs)
50
+ - `[EXT:url]` (T3): sourced from external documentation (lowest confidence)
51
51
 
52
52
  See [Skill Model → Output Architecture](/docs/skill-model.md#output-architecture) for the full output structure.
53
53
 
@@ -74,13 +74,13 @@ skills/oms-cognee/
74
74
  └── pipelines-and-datapoints.md
75
75
  ```
76
76
 
77
- This is the real directory listing from [`oh-my-skills/skills/oms-cognee/`](https://github.com/armelhbobdad/oh-my-skills/tree/main/skills/oms-cognee) after cognee shipped v1.0.0 upstream. SKF recompiled the skill from the v1.0.0 commit and wrote it next to the existing 0.5.8 tree — the older version stays pinned to its original commit (`b51dcce1`) and is still installable by any project that hasn't bumped its `CLAUDE.md` pin yet. The `active` symlink and the [`.export-manifest.json`](https://github.com/armelhbobdad/oh-my-skills/blob/main/skills/.export-manifest.json) both point at the current version. Some skills also include `scripts/` and `assets/` directories when the source repository contains executable scripts or static assets — oms-cognee doesn't have either, but see [Skill Model → Per-Skill Output](/docs/skill-model.md#per-skill-output) for the full schema.
77
+ This is the real directory listing from [`oh-my-skills/skills/oms-cognee/`](https://github.com/armelhbobdad/oh-my-skills/tree/main/skills/oms-cognee) after cognee shipped v1.0.0 upstream. SKF recompiled the skill from the v1.0.0 commit and wrote it next to the existing 0.5.8 tree. The older version stays pinned to its original commit (`b51dcce1`) and is still installable by any project that hasn't bumped its `CLAUDE.md` pin yet. The `active` symlink and the [`.export-manifest.json`](https://github.com/armelhbobdad/oh-my-skills/blob/main/skills/.export-manifest.json) both point at the current version. Some skills also include `scripts/` and `assets/` directories when the source repository contains executable scripts or static assets. oms-cognee has neither; see [Skill Model → Per-Skill Output](/docs/skill-model.md#per-skill-output) for the full schema.
78
78
 
79
79
  ---
80
80
 
81
81
  ## Example Workflows
82
82
 
83
- ### Quick Skill — Under a minute
83
+ ### Quick Skill: Under a minute
84
84
 
85
85
  Developer adds [cognee](https://github.com/topoteretes/cognee) to a Python project for AI memory management. Agent keeps hallucinating method signatures and config options.
86
86
 
@@ -88,7 +88,7 @@ Developer adds [cognee](https://github.com/topoteretes/cognee) to a Python proje
88
88
  @Ferris QS https://github.com/topoteretes/cognee
89
89
  ```
90
90
 
91
- Ferris reads the repository, extracts the public API, and validates against the agentskills.io spec. The skill is written to `skills/cognee/<version>/cognee/` (auto-detected from the source manifest). The agent now reads the real signatures from the skill instead of guessing.
91
+ Ferris reads the repository, lists its public exports, and validates against the agentskills.io spec. The skill is written to `skills/cognee/<version>/cognee/` (the version is detected from the source manifest). The agent now reads the real export names and usage examples from the skill instead of guessing. Quick Skill does not extract full signatures or cite a source line for each export. When you need those, run `@Ferris forge-auto https://github.com/topoteretes/cognee` instead.
92
92
 
93
93
  Need a specific version? Append `@version`:
94
94
 
@@ -96,28 +96,30 @@ Need a specific version? Append `@version`:
96
96
  @Ferris QS cognee@1.0.0
97
97
  ```
98
98
 
99
- ### Brownfield Platform — Pipeline or per-workflow
99
+ ### Brownfield Platform: Pipeline or per-workflow
100
100
 
101
101
  Alex, a platform engineer, adopts BMAD for 10 microservices spanning TypeScript, Go, and Rust.
102
102
 
103
103
  ```
104
- @Ferris SF # Setup — Deep tier detected
105
- # — clear session —
106
- @Ferris forge-auto https://github.com/acme/auth-service # one service: Analyze → Brief → Create → Test → Export
104
+ @Ferris SF # Setup: Deep tier detected
105
+ # clear session
106
+ @Ferris forge-auto https://github.com/acme/auth-service # one service per run: Analyze → Brief → Create → Test → Export
107
107
  ```
108
108
 
109
109
  Or one workflow per session:
110
110
  ```
111
- @Ferris SF # Setup — Deep tier detected
112
- # — clear session —
113
- @Ferris AN # Analyze — 10 services mapped
114
- # — clear session —
115
- @Ferris CS --batch # Create — batch generation
111
+ @Ferris SF # Setup: Deep tier detected
112
+ # clear session
113
+ @Ferris AN # Analyze: 10 services mapped
114
+ # clear session
115
+ @Ferris CS --batch # Create: batch generation
116
+ # clear session
117
+ @Ferris SS # Stack Skill: one platform skill for how the services connect
116
118
  ```
117
119
 
118
- 10 individual skills + 1 platform stack skill. The [BMM](/docs/bmad-synergy.md#skf-and-bmm-phase-by-phase-playbook) architect then navigates cross-service flows using verified knowledge.
120
+ The result is 10 individual skills plus 1 platform stack skill, which SS builds once the individual skills exist. The [BMM](/docs/bmad-synergy.md#skf-and-bmm-phase-by-phase-playbook) architect then navigates cross-service flows using verified knowledge.
119
121
 
120
- ### Release Prep — Trust Builder
122
+ ### Release Prep: Trust Builder
121
123
 
122
124
  Jin, a Rust library maintainer, is preparing v1.0.0 with breaking changes she wants consumers' agents to pick up automatically.
123
125
 
@@ -127,18 +129,18 @@ Jin, a Rust library maintainer, is preparing v1.0.0 with breaking changes she wa
127
129
 
128
130
  Or one workflow per session:
129
131
  ```
130
- @Ferris AS # Audit — finds 3 renames, 1 removal, 1 addition
131
- # — clear session —
132
- @Ferris US # Update — preserves [MANUAL] sections, adds annotations
133
- # — clear session —
134
- @Ferris TS # Test — verify completeness
135
- # — clear session —
136
- @Ferris EX # Export — package for npm release
132
+ @Ferris AS # Audit: finds 3 renames, 1 removal, 1 addition
133
+ # clear session
134
+ @Ferris US # Update: preserves [MANUAL] sections, adds annotations
135
+ # clear session
136
+ @Ferris TS # Test: verify completeness
137
+ # clear session
138
+ @Ferris EX # Export: package for distribution
137
139
  ```
138
140
 
139
- Ships with the npm release. Consumers upgrade and their agents use the correct function names — no more "wrong signature" support tickets.
141
+ Jin publishes the updated skill alongside the release (for an official skill, EX prints the `npx skills publish` command). Consumers upgrade and their agents use the correct function names, with no more "wrong signature" support tickets.
140
142
 
141
- ### Stack Skill — Integration Intelligence
143
+ ### Stack Skill: Integration Intelligence
142
144
 
143
145
  Armel, building a full-stack side project on Next.js + Serwist + SpacetimeDB + better-auth.
144
146
 
@@ -148,20 +150,20 @@ Armel, building a full-stack side project on Next.js + Serwist + SpacetimeDB + b
148
150
 
149
151
  Ferris detects 8 significant dependencies, finds 5 co-import integration points. Generates a consolidated stack skill. The agent now knows: "When you modify the auth flow, update the Serwist cache exclusion at `src/sw.ts:L23`." That integration detail isn't available from any other tool in the [comparison table](/docs/index.md#how-skf-compares).
150
152
 
151
- ### Pre-Code Architecture Verification — Greenfield Confidence
153
+ ### Pre-Code Architecture Verification: Greenfield Confidence
152
154
 
153
- Gery, a backend architect, is designing a new TypeScript service on Hono + Drizzle + SpacetimeDB. Architecture doc is written but no code exists yet — he wants to verify the stack holds together before anyone starts building.
155
+ Gery, a backend architect, is designing a new TypeScript service on Hono + Drizzle + SpacetimeDB. The architecture doc is written but no code exists yet, and he wants to verify the stack holds together before anyone starts building.
154
156
 
155
157
  ```
156
158
  @Ferris QS hono # Quick Skill per library
157
159
  @Ferris QS drizzle-orm
158
160
  @Ferris QS spacetimedb-sdk
159
- @Ferris VS # Verify Stack — feasibility report
160
- @Ferris RA # Refine Architecture — enrich with API evidence
161
- @Ferris SS # Stack Skill — compose-mode (no codebase needed)
161
+ @Ferris VS # Verify Stack: feasibility report
162
+ @Ferris RA # Refine Architecture: enrich with API evidence
163
+ @Ferris SS # Stack Skill: compose-mode (no codebase needed)
162
164
  ```
163
165
 
164
- VS flags the Drizzle↔SpacetimeDB integration as incompatible (query-model mismatch) and returns CONDITIONALLY FEASIBLE. Gery adds a bridge layer to the architecture, re-runs VS → FEASIBLE. RA fills in verified API signatures. SS compose-mode synthesizes the stack skill from existing skills + refined architecture. The agent now has integration intelligence for a project that doesn't have code yet.
166
+ VS rates the Drizzle↔SpacetimeDB pair `Risky` (a query-model mismatch that a workaround may resolve) and returns an overall verdict of `CONDITIONALLY_FEASIBLE`. Gery adds a bridge layer to the architecture and re-runs VS, which now returns `FEASIBLE`. RA fills in verified API signatures. SS compose-mode builds the stack skill from the existing skills and the refined architecture. The agent now has integration intelligence for a project that doesn't have code yet.
165
167
 
166
168
  ---
167
169
 
@@ -172,10 +174,10 @@ VS flags the Drizzle↔SpacetimeDB integration as incompatible (query-model mism
172
174
  BMAD user starts a new project. [BMM](/docs/bmad-synergy.md#skf-and-bmm-phase-by-phase-playbook) architect suggests skill generation after retrospective.
173
175
 
174
176
  ```
175
- @Ferris BS # Brief — scope the skill
176
- @Ferris CS # Create — compile from brief
177
- @Ferris TS # Test — verify completeness
178
- @Ferris EX # Export — inject into platform context files
177
+ @Ferris BS # Brief: scope the skill
178
+ @Ferris CS # Create: compile from brief
179
+ @Ferris TS # Test: verify completeness
180
+ @Ferris EX # Export: inject into platform context files
179
181
  ```
180
182
 
181
183
  Skills accumulate over sprints. The agent's coverage improves each iteration.
@@ -188,21 +190,21 @@ Blondin, a platform lead, needs cross-service knowledge for 10 microservices so
188
190
  @Ferris campaign # Orchestrate all 10 skills across sessions, in dependency order
189
191
  ```
190
192
 
191
- Campaign reads the dependency graph, sorts the skills topologically, and drives each one through the full pipeline (brief, generate, compile, test) with quality gates enforced. State is written to disk, so Blondin can walk away and `@Ferris campaign resume` after a context death or a session break — picking up exactly where the last session stopped. One forge project, multiple QMD collections, hub-and-spoke skills with integration patterns. See [Campaign Orchestration](/docs/campaign.md) for the full stage-by-stage flow.
193
+ Campaign reads the dependencies you declare for each skill, orders the skills so each one comes after the skills it depends on, and drives each full-pipeline (Tier A) skill through brief, compile and test, with quality gates enforced. Libraries marked Tier B are built faster, in one Quick Skill batch. It then composes a capstone stack skill that shows how the services connect, and asks for your go-ahead before it exports the skills that clear the quality gate. State is written to disk, so Blondin can walk away and run `@Ferris campaign resume` after the conversation runs out of context or after a break, picking up exactly where the last session stopped. See [Campaign Orchestration](/docs/campaign.md) for the full stage-by-stage flow.
192
194
 
193
195
  ### Scenario C: External Dependency
194
196
 
195
- Kossi, a developer integrating an uncommon library, needs a skill for it — nothing official exists yet.
197
+ Kossi, a developer integrating an uncommon library, needs a skill for it, and nothing official exists yet.
196
198
 
197
199
  ```
198
200
  @Ferris QS better-auth
199
201
  ```
200
202
 
201
- Checks ecosystem first. If no official skill exists: generates from source. `source_authority: community`.
203
+ Resolves the package name to its GitHub repository and generates the skill from source, with `source_authority: community`. Quick Skill skips its check for an existing official skill until agentskills.io offers a registry API to ask.
202
204
 
203
205
  ### Scenario D: Docs-Only (SaaS/Closed Source)
204
206
 
205
- No source code to clone — only API documentation. Example: you're integrating the [Stripe API](https://docs.stripe.com/api) and want your agent to know the real endpoints, parameters, and error codes instead of hallucinating from training data.
207
+ There is no source code to clone, only API documentation. Example: you're integrating the [Stripe API](https://docs.stripe.com/api) and want your agent to know the real endpoints, parameters, and error codes instead of hallucinating from training data.
206
208
 
207
209
  ```
208
210
  @Ferris BS
@@ -214,11 +216,11 @@ No source code to clone — only API documentation. Example: you're integrating
214
216
  # When asked for target version, specify: 2025-04-30.basil
215
217
  # Ferris confirms your doc URLs match that API version
216
218
  @Ferris CS
217
- # step 3 skips (no source to clone), step 3c fetches docs via doc_fetcher
219
+ # step 3 finds no source to extract; step 3c (Fetch Docs) downloads the doc pages
218
220
  # All content is T3 [EXT:url] confidence. source_authority: community
219
221
  ```
220
222
 
221
- The brief's `doc_urls` field drives the doc_fetcher step. The agent uses whatever web fetching tool is available in its environment (Firecrawl, WebFetch, curl, etc.) to retrieve documentation as markdown and extract API information with `[EXT:url]` citations. No AST parsing is possible without source code — every instruction carries T3 provenance instead of T1, and the skill is tagged `source_authority: community` regardless of tier.
223
+ The brief's `doc_urls` field drives the Fetch Docs step (step 3c). The agent uses whatever web fetching tool is available in its environment (Firecrawl, WebFetch, curl, etc.) to retrieve documentation as markdown and extract API information with `[EXT:url]` citations. No AST parsing is possible without source code, so every instruction carries T3 provenance (external documentation, the lowest confidence) instead of T1, and the skill is tagged `source_authority: community` regardless of tier.
222
224
 
223
225
  ### Scenario E: Rename a Skill
224
226
 
@@ -251,7 +253,7 @@ Version 0.6.0 remains active. Version 0.5.0 is untouched. The managed sections i
251
253
 
252
254
  ### Scenario G: Maximum Accuracy for a High-Stakes Library
253
255
 
254
- You're building skills for a production payments library and need maximum citation density. Every signature must be AST-verified, and you want historical context (deprecations, migration notes) baked into the skill.
256
+ You're building skills for a production payments library and need maximum citation density. You want as many signatures as possible AST-verified, and historical context (deprecations, migration notes) baked into the skill.
255
257
 
256
258
  **Workflow:**
257
259
 
@@ -259,31 +261,31 @@ You're building skills for a production payments library and need maximum citati
259
261
  @Ferris SF
260
262
  # Ferris detects installed tools and sets your tier automatically:
261
263
  # - Quick: no tools required (best-effort, source-read only)
262
- # - Forge: + ast-grep (T1 AST-verified signatures)
263
- # - Forge+: + cocoindex-code (semantic pre-ranking for large repos)
264
- # - Deep: + gh + qmd (T2 evidence — issues, PRs, changelogs)
264
+ # - Forge: ast-grep (T1 for each export an ast-grep rule matches)
265
+ # - Forge+: ast-grep + cocoindex-code (semantic pre-ranking for large repos)
266
+ # - Deep: ast-grep + gh + qmd (T2 evidence from issues, PRs, changelogs; cocoindex-code optional)
265
267
  # Install the missing tools, then re-run @Ferris SF to promote your tier.
266
- @Ferris BS # Scope — confirm the forge tier is Deep (+ ccc if installed)
267
- @Ferris CS # Extract — AST + QMD enrichment
268
- @Ferris TS # Completeness score — 80%+ threshold
268
+ @Ferris BS # Scope: confirm the forge tier is Deep (+ ccc if installed)
269
+ @Ferris CS # Extract: AST + QMD enrichment
270
+ @Ferris TS # Completeness score: 80%+ threshold
269
271
  ```
270
272
 
271
- **What you get:** Every signature carries `[AST:file:Lnn]` at T1. Deprecation warnings and design rationale carry `[QMD:collection:doc]` at T2. Install tooling once, every downstream skill benefits. See [Capability Tiers](/docs/concepts.md#capability-tiers-quickforgeforgedeep).
273
+ **What you get:** Every signature an ast-grep rule matched carries `[AST:file:Lnn]` at T1. An export it could not match is read by eye and carries `[SRC:file:Lnn]` at T1-low, so you know which signatures to check by hand. Deprecation warnings and design rationale carry `[QMD:collection:doc]` at T2. Install tooling once, every downstream skill benefits. See [Capability Tiers](/docs/concepts.md#capability-tiers-quickforgeforgedeep).
272
274
 
273
275
  ### Scenario H: OSS Maintainer Publishing Official Skills
274
276
 
275
- You maintain an OSS library and want to ship official agent skills alongside each release — distributed via [skills.sh](https://skills.sh) or [oh-my-skills](https://github.com/armelhbobdad/oh-my-skills) so consumers install them with `npx skills add`.
277
+ You maintain an OSS library and want to ship official agent skills alongside each release, distributed via [skills.sh](https://skills.sh) or [oh-my-skills](https://github.com/armelhbobdad/oh-my-skills) so consumers install them with `npx skills add`.
276
278
 
277
279
  **Workflow:**
278
280
 
279
281
  ```
280
- @Ferris BS # Scope the skill — set source_authority: official in the brief
281
- @Ferris CS # Compile — AST extraction + QMD enrichment (Deep tier recommended)
282
- @Ferris TS # Verify completeness before publishing (target: 90%+)
283
- @Ferris EX # Package for distribution — emits npx skills publish instructions
282
+ @Ferris BS # Scope the skill: set source_authority: official in the brief
283
+ @Ferris CS # Compile: AST extraction + QMD enrichment (Deep tier recommended)
284
+ @Ferris TS # Verify completeness before publishing (aim for 90%+; the pass line is 80%)
285
+ @Ferris EX # Export: validate the package, write its context snippet, update the managed section in CLAUDE.md, AGENTS.md or .cursorrules
284
286
  ```
285
287
 
286
- **What you get:** A verified skill pinned to the release commit, with `source_authority: official` surfaced in metadata as a trust signal so downstream tooling (and the ecosystem check in `@Ferris QS`) recognize it as maintainer-published rather than community-forged. Re-run `@Ferris maintain <skill>` (AS → US → TS → EX) on every release to keep published skills current.
288
+ **What you get:** A verified skill pinned to the release commit, with `source_authority: official` surfaced in metadata as a trust signal so downstream tooling recognizes it as maintainer-published rather than community-forged. For an official skill, EX also prints the `npx skills publish` command. Re-run `@Ferris maintain <skill>` (AS → US → TS → EX) on every release to keep published skills current.
287
289
 
288
290
  ---
289
291
 
@@ -291,15 +293,15 @@ You maintain an OSS library and want to ship official agent skills alongside eac
291
293
 
292
294
  ### Skip Permissions for Faster Forging
293
295
 
294
- > **Tip from Armel:** When forging skills with Claude Code, I run `claude --dangerously-skip-permissions` to bypass all permission prompts. SKF workflows only read source code, write to `skills/` and `forge-data/`, and call local tools (ast-grep, qmd, gh) — every step is auditable in the [open source](https://github.com/armelhbobdad/bmad-module-skill-forge). Skipping permissions drastically reduces forge time: I start a pipeline, go [grab one of those coffees ☕ you keep offering](https://buymeacoffee.com/armelhbobdad), and come back to a completed workflow. Review the output at the end, not at every gate.
296
+ > **Tip from Armel:** When forging skills with Claude Code, I run `claude --dangerously-skip-permissions` to bypass all permission prompts. SKF workflows read source code, clone remote repositories into `~/.skf/workspace/`, write skills to `skills/` and working files to `forge-data/`, keep their state in `_bmad/_memory/forger-sidecar/`, update the SKF section of CLAUDE.md, AGENTS.md or .cursorrules when you export, and call tools such as git, ast-grep, qmd, gh and npx. Every step is auditable in the [open source](https://github.com/armelhbobdad/bmad-module-skill-forge). Skipping permissions drastically reduces forge time: I start a pipeline, go [grab one of those coffees ☕ you keep offering](https://buymeacoffee.com/armelhbobdad), and come back to a completed workflow. Review the output at the end, not at every gate.
295
297
 
296
298
  ### Progressive Capability
297
299
 
298
- Start with the Quick tier (no setup required), upgrade to Forge (install ast-grep), then Forge+ (install cocoindex-code for semantic discovery), then Deep (install QMD). Each tier builds on the previous — you never lose capability.
300
+ Start with the Quick tier (no setup required). Install ast-grep to reach Forge. From there, add cocoindex-code for Forge+ (semantic discovery), or add the GitHub CLI (gh) and QMD for Deep (evidence from issues, PRs and changelogs). Deep does not need cocoindex-code, but it still uses it when installed, so adding a tool never takes a capability away. Re-run `@Ferris SF` after installing tools to update your tier.
299
301
 
300
302
  ### Batch Operations
301
303
 
302
- Use `--batch` with `create-skill` to process multiple briefs at once. Progress is checkpointed — if interrupted, re-run `@Ferris CS --batch` and Ferris will resume automatically from where it left off.
304
+ Use `--batch` with `create-skill` to process multiple briefs at once. Progress is checkpointed per brief: if a batch is interrupted, re-run `@Ferris CS --batch` and Ferris resumes with the brief it was working on (that brief compiles again from the start).
303
305
 
304
306
  ### Stack Skills + Individual Skills
305
307
 
@@ -307,15 +309,15 @@ Stack skills focus on integration patterns. Individual skills focus on API surfa
307
309
 
308
310
  ### The Loop
309
311
 
310
- After each sprint's refactor, run `@Ferris US` to regenerate changed components. Export updates your platform context files (CLAUDE.md, AGENTS.md, .cursorrules) automatically. Skill generation becomes routine — like running tests.
312
+ After each sprint's refactor, run `@Ferris maintain <skill>` to audit, update, test and export the skill in one go. Update changes only the skill itself; Export is the step that refreshes the skill index in your platform context files (CLAUDE.md, AGENTS.md, .cursorrules). Skill generation becomes routine, like running tests.
311
313
 
312
314
  ### One Workflow Per Session
313
315
 
314
- Clear your conversation context (start a new chat) before invoking a new workflow. Each SKF workflow loads step files, knowledge fragments, and extraction data into context. Starting fresh ensures the next workflow operates without interference from prior steps. Sidecar state (forge tier, preferences) persists automatically across sessions — you don't lose configuration.
316
+ Clear your conversation context (start a new chat) before invoking a new workflow. Each SKF workflow loads step files, knowledge fragments, and extraction data into context. Starting fresh ensures the next workflow operates without interference from prior steps. A pipeline such as `forge-auto` or `maintain` counts as one invocation: Ferris chains its workflows for you. Sidecar state (forge tier, preferences) persists automatically across sessions, so you don't lose configuration.
315
317
 
316
318
  ### Full Control Over Scope
317
319
 
318
- You can compile multiple skills from the same target (repo or docs) with different scopes and intents. Each brief defines what to extract and why, producing a distinct skill from the same source. For example, from a single library you could compile `cognee-core` for the public API, `cognee-graph-types` for the type system, and `cognee-migration` for upgrade patterns — each serving a different use case.
320
+ You can compile multiple skills from the same target (repo or docs) with different scopes and intents. Each brief defines what to extract and why, producing a distinct skill from the same source. For example, from a single library you could compile `cognee-core` for the public API, `cognee-graph-types` for the type system, and `cognee-migration` for upgrade patterns, each serving a different use case.
319
321
 
320
322
  ### Best Practices Built In
321
323
 
@@ -323,14 +325,14 @@ Generated skills automatically follow authoring best practices: third-person des
323
325
 
324
326
  ### Scripts & Assets
325
327
 
326
- If your source repo includes executable scripts (`scripts/`, `bin/`) or static assets (`templates/`, `schemas/`), SKF detects and packages them automatically with provenance tracking. Custom scripts you add to `scripts/[MANUAL]/` are preserved during updates — just like `<!-- [MANUAL] -->` markers in SKILL.md.
328
+ If your source repo includes executable scripts (such as `scripts/`, `bin/` or `tools/`) or static assets (such as `assets/`, `templates/` or `schemas/`), SKF detects and packages them automatically with provenance tracking. Scripts and assets you add yourself under `scripts/[MANUAL]/` or `assets/[MANUAL]/` are preserved during updates, just like `<!-- [MANUAL] -->` markers in SKILL.md.
327
329
 
328
330
  ### Let the Health Check Run
329
331
 
330
- Every SKF workflow ends with a shared **health check** step where Ferris reflects on the session and offers to file friction, bugs, or gaps as GitHub issues (with your approval). Clean runs exit in one line — zero overhead. When something breaks, it's SKF's primary feedback channel, so **please let workflows run to completion**. If you had to cancel before the health check fired, ask Ferris to run it (`@Ferris please run the workflow health check for this session`) or [open an issue directly](https://github.com/armelhbobdad/bmad-module-skill-forge/issues/new/choose). See [Workflow Health Check](/docs/workflows.md#terminal-step-health-check) for details.
332
+ Every SKF workflow ends with a shared **health check** step where Ferris reflects on the session and lists any bugs, friction, or gaps it hit. With your approval, it files bugs as GitHub issues; friction and gaps go to a local queue in `forge-data/improvement-queue/` unless you also agree to file them. Clean runs end with a one-line all-clear and no extra work. When something breaks, it's SKF's primary feedback channel, so **please let workflows run to completion**. If you had to cancel before the health check fired, ask Ferris to run it (`@Ferris please run the workflow health check for this session`) or [open an issue directly](https://github.com/armelhbobdad/bmad-module-skill-forge/issues/new/choose). See [Workflow Health Check](/docs/workflows.md#terminal-step-health-check) for details.
331
333
 
332
334
  ---
333
335
 
334
336
  ## Something not working?
335
337
 
336
- See [Troubleshooting](/docs/troubleshooting.md) for common errors (ast-grep unavailable, "no brief found", ecosystem check messages) and how to resolve them. For general setup help, see [Getting Started → Need help?](/docs/getting-started.md#need-help).
338
+ See [Troubleshooting](/docs/troubleshooting.md) for common errors (ast-grep unavailable, "no brief found", a run lock another run holds, a campaign that stopped partway) and how to resolve them. For general setup help, see [Getting Started → Need help?](/docs/getting-started.md#need-help).
@@ -1,43 +1,43 @@
1
1
  ---
2
2
  title: Forge-Auto
3
- description: Zero-ceremony skill creation — one command turns a GitHub repo, doc URL, or pinned version into a verified skill
3
+ description: Zero-ceremony skill creation. One command turns a GitHub repo (optionally pinned to a version) or a documentation URL into a verified skill
4
4
  ---
5
5
 
6
- Forge-Auto is a [pipeline alias](/docs/workflows.md#pipeline-aliases) that chains five workflows into a single command. Give it a repo URL, a documentation URL, or a pinned version, and it produces a verified skill in 3–5 minutes with zero configuration.
6
+ Forge-Auto turns a library's repo or documentation site into a verified skill with one command. Under the hood it is a [pipeline alias](/docs/workflows.md#pipeline-aliases): a short name that runs five workflows in a row. You write no brief and make no scope decisions, and a typical run takes about 3 to 5 minutes.
7
7
 
8
- If you're new to SKF and want to try it without reading anything else, start here.
8
+ If you're new to SKF and want to try it without reading anything else, start here. Do one thing first: after installing SKF, run `@Ferris SF` once so SKF can detect your tools and set your forge tier (Quick, Forge, Forge+ or Deep). Without it, the first stage stops and asks you to run setup.
9
9
 
10
10
  ---
11
11
 
12
12
  ## Invocation
13
13
 
14
- Three input types, one command pattern:
14
+ Two kinds of target, one command pattern. The lines below are a repo URL, a doc URL (docs-only), and a repo URL pinned to a version:
15
15
 
16
16
  ```
17
- @Ferris forge-auto https://github.com/honojs/hono — repo URL
18
- @Ferris forge-auto https://docs.example.com — doc URL (docs-only)
19
- @Ferris forge-auto https://github.com/honojs/hono --pin v4.6.0 — pinned version
17
+ @Ferris forge-auto https://github.com/honojs/hono
18
+ @Ferris forge-auto https://docs.example.com
19
+ @Ferris forge-auto https://github.com/honojs/hono --pin v4.6.0
20
20
  ```
21
21
 
22
- - **Repo URL** — analyzes the full source repository, extracts exports, and compiles a skill from code + docs.
23
- - **Doc URL** — skips source analysis entirely and builds the skill from documentation alone. Useful for closed-source libraries or when the docs are the canonical reference.
24
- - **`--pin <version>`** — targets a specific release. The version tag is resolved during analysis so the resulting skill is locked to that exact API surface.
22
+ - **Repo URL**: analyzes the source repository (GitHub, GitLab or Bitbucket; on any other host, its `.git` clone URL, its address without `https://` or its SSH address), extracts its exports, and compiles a skill from code and docs. A path to a folder on your machine works the same way.
23
+ - **Doc URL**: any other `http://` or `https://` address that is not a clone URL (one ending in `.git` or holding `/_git/`). SKF skips source analysis and builds the skill from the documentation alone, naming it after the site (`docs.example.com` becomes `docs-example-com`). Useful for closed-source libraries or when the docs are the canonical reference. SKF first asks git about the address, and stops in three cases. When git reads the address as a repository, which on most hosts (a self-hosted GitLab, Gitea or Codeberg, for example) is the repository's main page, SKF asks for its `.git` clone URL, its address without `https://` or its SSH address. When the server asks for credentials (a private repository's page, for example), SKF stops too, since it reads no documentation behind a login. When git gets no answer from the address in 20 seconds, SKF asks for the repository's clone URL or SSH address, or a documentation URL that answers. A repository browser page that git cannot read at its address is still read as documentation: a Bitbucket Data Center `/projects/<p>/repos/<r>` page, a SourceForge or Launchpad code page, or a link to a file or folder inside a repository. Give its clone URL instead. Without git installed, SKF reads the address as documentation and warns that it was not checked.
24
+ - **`--pin <version>`**: add it to a GitHub repo URL to target a specific release tag or branch, so the skill is locked to that exact API surface. SKF checks the pin with the GitHub CLI (`gh`), so `gh` must be installed, and it stops if no tag or branch matches. Without `--pin`, SKF pins a GitHub repo to its latest release tag, and otherwise uses the latest commit. A doc URL ignores `--pin`.
25
25
 
26
26
  ---
27
27
 
28
28
  ## Pipeline Stages
29
29
 
30
- forge-auto expands to `AN[auto] BS[auto] CS TS[min:90] EX`. The two analysis stages (AN, BS) run in [headless mode](/docs/workflows.md#headless-mode) via their `[auto]` flags — no confirmation gates, no interactive prompts. The compile, test, and export stages then proceed with their standard behaviors once the analysis context is ready.
30
+ forge-auto expands to `AN[auto] BS[auto] CS TS[min:90] EX`. The `[auto]` flag on the two analysis stages (AN, BS) swaps their question-and-answer steps for automatic scoping and briefing. Like every pipeline, forge-auto also runs all five stages in [headless mode](/docs/workflows.md#headless-mode), so no stage stops to ask you anything: each confirmation takes its default answer. The compile, test, and export stages run their usual steps once the analysis context is ready.
31
31
 
32
32
  | Stage | Workflow | Mode | What Happens |
33
33
  |-------|----------|------|-------------|
34
- | 1 | **Analyze Source** (AN) | `[auto]` | Scans the target, detects shape (`library-API`, `reference-app`, `language-reference`, `stack-compose`, or `unknown`), discovers exports, and generates a scope + brief automatically. |
35
- | 2 | **Brief Skill** (BS) | `[auto]` | Enriches the auto-generated brief with doc detection results. No interactive scoping — the brief is assembled from AN's output. |
34
+ | 1 | **Analyze Source** (AN) | `[auto]` | Scans the target, detects its shape (`library-API`, `reference-app`, `language-reference` or `stack-compose`), counts its exports, and writes a scope and brief automatically. If the shape is `unknown`, or the repo has no package manifest or language signal SKF can read, AN switches to its full step-by-step analysis instead. |
35
+ | 2 | **Brief Skill** (BS) | `[auto]` | Enriches the auto-generated brief with doc detection results. No interactive scoping: the brief is assembled from AN's output. |
36
36
  | 3 | **Create Skill** (CS) | standard | Compiles the skill from the enriched brief. Extracts exports, resolves documentation sources, validates structure. |
37
- | 4 | **Test Skill** (TS) | `[min:90]` | Verifies completeness with a **90% quality threshold** (stricter than the default 80%). Fail halts the pipeline. |
37
+ | 4 | **Test Skill** (TS) | `[min:90]` | Verifies completeness against a **90% quality threshold** (stricter than the default 80%). A score of at least 80% but under 90% still passes, with an evidence report on what kept it under 90%. A score below 80% fails and stops the pipeline before export. |
38
38
  | 5 | **Export Skill** (EX) | standard | Validates the package, generates context snippets, and injects into your IDE's context file. |
39
39
 
40
- Data flows automatically between stages — the brief path from AN feeds BS, the skill name from CS feeds TS, and so on. See [Pipeline Mode](/docs/workflows.md#pipeline-mode) for the general mechanics.
40
+ Data flows automatically between stages: the brief path from AN feeds BS, the skill name from CS feeds TS, and so on. See [Pipeline Mode](/docs/workflows.md#pipeline-mode) for the general mechanics.
41
41
 
42
42
  ---
43
43
 
@@ -45,23 +45,26 @@ Data flows automatically between stages — the brief path from AN feeds BS, the
45
45
 
46
46
  forge-auto's `[auto]` flags activate several behaviors that normally require manual input:
47
47
 
48
- - **Auto-scope** — shape detection (`library-API`, `reference-app`, `language-reference`, `stack-compose`) drives scope decisions, mapping onto `scope.type` values like `full-library`, `public-api`, and `reference-app`. No interactive scope confirmation.
49
- - **Auto-brief** — the brief is generated and enriched with doc-detection results in one pass, without the interactive discovery flow that `BS` uses standalone.
50
- - **Coexistence detection** — if a skill for the same target already exists, forge-auto detects it and offers three options: create alongside (new version), merge into the existing skill, or skip.
51
- - **Auto-decomposition** — multi-package monorepos (>3 packages) flag a *decomposition candidate*; a cohesion check then decides whether to merge into one cohesive skill (the usual outcome — published monorepos are mostly cohesive) or split into N. Exceeding 500 exports also flags a candidate. The default leans toward a single skill, not one-per-package.
52
- - **Language-reference handling** — for compiler, interpreter, or parser repos, AN classifies the target as a `language-reference`. For a *whole-language* reference (a compiler/interpreter), the skill's value is the language's prose — the guide and standard-library docs — not compiler internals, so AN seeds the canonical corpora. If none are found it records an honest **DEGRADED** caveat: the skill is low-value as code-only until you attach the language's guide and std/library docs (re-run with a doc URL, or enrich via `US`).
48
+ - **Auto-scope**: shape detection (`library-API`, `reference-app`, `language-reference`, `stack-compose`) decides the scope, and each shape maps to one of three scope types in the brief: `full-library`, `public-api` (a library with more than 200 exports), or `reference-app`. No interactive scope confirmation.
49
+ - **Auto-brief**: the brief is generated and enriched with doc-detection results in one pass, without the interactive discovery flow that `BS` uses standalone.
50
+ - **Coexistence detection**: if a skill with the same source or name already exists, forge-auto leaves it untouched and creates the new skill beside it under a new name ending in `-wiki` (for example `hono-wiki`). The new skill is separate, not a new version of the old one. forge-auto makes this choice for you, because pipelines run without prompts.
51
+ - **Auto-decomposition**: a monorepo with more than 3 packages is a *decomposition candidate*, meaning it could become several skills. A cohesion check then decides whether to merge it into one skill (the usual outcome, since most published monorepos hang together) or split it into one skill per package. When in doubt it merges. A single package with a very large API is never split: it stays one skill, and create-skill moves the detail into `references/` files.
52
+ - **Language-reference handling**: when the repo is a compiler, interpreter, or parser, AN classifies it as a `language-reference`. For a whole language (a compiler or interpreter), the useful content is the language's guide and standard-library docs, not the compiler's internals, so AN adds links to the language's official docs to the brief. If it finds none, the analysis report marks the skill **DEGRADED**: built from code alone, it has little value until you add the guide and standard-library docs. The report suggests enriching the skill with `US`, or running forge-auto on the docs' URL, which builds a separate docs-only skill.
53
53
 
54
54
  ---
55
55
 
56
56
  ## Expected Output
57
57
 
58
- A successful forge-auto run produces a complete skill package in your forge data directory, exported and ready for use. The skill includes:
58
+ A successful forge-auto run writes a complete skill package to your skills folder (`skills/<name>/<version>/<name>/` by default), then exports it, ready for use. The package includes:
59
59
 
60
- - `SKILL.md` — the compiled skill with provenance-cited instructions
61
- - `metadata.json` — version, source, confidence tier breakdown
62
- - Context snippet injected into your IDE context file (CLAUDE.md, .cursorrules, AGENTS.md, etc.)
60
+ - `SKILL.md`: the compiled skill, where each instruction cites the source it came from
61
+ - `references/`: detail files, one per group of functions or types
62
+ - `metadata.json`: version, source, and how many exports landed in each confidence tier
63
+ - `context-snippet.md`: a short index of the skill, which export adds to your IDE's context file (CLAUDE.md, AGENTS.md or .cursorrules)
63
64
 
64
- The quality threshold is 90% — if the skill scores below that, the pipeline halts at TS with a gap report. Run `@Ferris US` to address gaps, then `@Ferris TS EX` to re-test and export.
65
+ The working files (the brief, the test report and the evidence report) stay in your forge data folder (`forge-data/<name>/` by default). To install the skill in your project, run the `npx skills add ./skills/...` command that export prints.
66
+
67
+ The quality threshold is 90%. A skill that scores at least 80% but under 90% still passes and is exported, and SKF writes `evidence-report-fallback.md` next to the test report (in `forge-data/<name>/<version>/`) listing the findings that kept it under 90%. The pipeline goes on to export only when Test Skill settles a PASS. A skill that scores below 80% fails: the pipeline stops at TS, before export, and the test report's gap report lists what is missing. Every other verdict but PASS stops it there too: a FAIL that a cap forced although the score clears 90%, INCONCLUSIVE (Test Skill had too little evidence to grade the skill) and pass-with-drift. Any Critical or High gap, such as a wrong or fabricated signature, also stops the pipeline at TS, before a score is computed: Test Skill lists each blocking gap, and the test report's Gap Report puts them first. A missing export is a Medium gap, so it lowers the score and blocks nothing on its own. To fix the gaps, run `@Ferris US <name> --from-test-report`, then `@Ferris TS[<name>] EX` to re-test and export (the brackets give Test Skill the skill's name). That chain has no alias, so Test Skill re-tests it at the default 80% bar. The next time you start Ferris, he offers that repair route himself, at the recorded 90% threshold: accept his offer to keep forge-auto's 90%, or run `@Ferris TS <name> --threshold=90`, then `@Ferris EX <name>`. A plain `@Ferris US <name>` also finds a failed or pass-with-drift test report that is newer than the skill and that no repair has applied, and offers to repair its gaps (`[G]`) or check the source (`[S]`); a headless run checks the source and adds an `unconsumed-test-report` warning.
65
68
 
66
69
  ---
67
70
 
@@ -71,20 +74,20 @@ A typical library (50–200 exports) takes **3–5 minutes** end to end. Factors
71
74
 
72
75
  - Multi-package monorepos (>3 packages) flag a decomposition candidate; if the cohesion check splits the repo into N skills, add 1–3 minutes
73
76
  - Doc-only targets depend on documentation site size and structure
74
- - Deep-tier projects (with QMD and CCC) spend more time on enrichment
77
+ - The Deep tier (ast-grep, the GitHub CLI and QMD all installed) spends more time on enrichment
75
78
 
76
79
  ---
77
80
 
78
81
  ## Migration from `deepwiki` and `onboard`
79
82
 
80
- This pipeline was briefly named `deepwiki`. It was renamed to **`forge-auto`** to avoid confusion with the [DeepWiki MCP](https://deepwiki.com) — `forge-auto` compiles a verified skill from source and **does not** call that MCP or ingest a generated wiki. `deepwiki` still works as a **deprecated alias** (it resolves to `forge-auto` and prints a one-time notice); prefer `forge-auto` going forward.
83
+ This pipeline was briefly named `deepwiki`. It was renamed to **`forge-auto`** to avoid confusion with the [DeepWiki MCP](https://deepwiki.com): `forge-auto` compiles a verified skill from source and **does not** call that MCP or ingest a generated wiki. `deepwiki` still works as a **deprecated alias** (it resolves to `forge-auto` and prints a one-time notice); prefer `forge-auto` going forward.
81
84
 
82
- Before that, the auto pipeline replaced the older `onboard` alias. `onboard` has been removed — running it returns an error directing you to `forge-auto`. The key differences from `onboard`: it ran `AN CS TS EX` with standard (interactive) modes at an 80% quality threshold, whereas `forge-auto` adds auto-scope, auto-brief, a stricter quality gate (90% vs 80%), and accepts repo URLs and doc URLs — not just project paths.
85
+ Before that, the auto pipeline replaced the older `onboard` alias. `onboard` has been removed: running it returns an error directing you to `forge-auto`. The key differences from `onboard`: it ran `AN CS TS EX` at an 80% quality threshold, whereas `forge-auto` adds auto-scope, auto-brief, a higher quality target (90% vs 80%), and accepts doc URLs as well as repo URLs and local project paths.
83
86
 
84
87
  ---
85
88
 
86
89
  ## Related
87
90
 
88
- - [Workflows](/docs/workflows.md) — pipeline mode mechanics, headless mode, circuit breakers
89
- - [Concepts](/docs/concepts.md) — provenance, confidence tiers, drift, version pinning
90
- - [BMAD Synergy](/docs/bmad-synergy.md) — how forge-auto fits into BMAD phases, and standalone SKF usage
91
+ - [Workflows](/docs/workflows.md): pipeline mode mechanics, headless mode, circuit breakers
92
+ - [Concepts](/docs/concepts.md): provenance, confidence tiers, drift, version pinning
93
+ - [BMAD Synergy](/docs/bmad-synergy.md): how forge-auto fits into BMAD phases, and standalone SKF usage