bmad-module-skill-forge 2.2.0 → 4.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 (437) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/README.md +49 -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 +143 -18
  18. package/docs/verifying-a-skill.md +87 -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 +3 -3
  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 +31 -59
  40. package/src/shared/references/description-guard-protocol.md +12 -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 +233 -64
  64. package/src/shared/scripts/skf-build-change-manifest.py +2753 -28
  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 +772 -0
  69. package/src/shared/scripts/skf-comention-pairs.py +1333 -123
  70. package/src/shared/scripts/skf-compare-file-hashes.py +267 -105
  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 +21 -3
  74. package/src/shared/scripts/skf-description-guard.py +99 -11
  75. package/src/shared/scripts/skf-detect-docs.py +694 -2
  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 +197 -55
  79. package/src/shared/scripts/skf-detect-tools.py +209 -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 +5247 -96
  86. package/src/shared/scripts/skf-extraction-inventory.py +1280 -0
  87. package/src/shared/scripts/skf-extraction-snapshot.py +664 -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 +469 -205
  92. package/src/shared/scripts/skf-github-fetch.py +365 -0
  93. package/src/shared/scripts/skf-github-probe.py +700 -0
  94. package/src/shared/scripts/skf-hash-content.py +180 -20
  95. package/src/shared/scripts/skf-language-corpora.py +1 -1
  96. package/src/shared/scripts/skf-load-provenance.py +161 -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 +143 -20
  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 +176 -28
  105. package/src/shared/scripts/skf-promote-staged.py +430 -0
  106. package/src/shared/scripts/skf-provenance-gap-dispatch.py +64 -8
  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 +155 -14
  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 +787 -121
  127. package/src/shared/scripts/skf-tessl-review.py +706 -0
  128. package/src/shared/scripts/skf-update-active-symlink.py +120 -67
  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 +23 -2
  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 +3945 -152
  138. package/src/shared/scripts/skf-write-skill-brief.py +406 -25
  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 +28 -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/health-check.md +2 -0
  168. package/src/skf-audit-skill/references/init.md +149 -210
  169. package/src/skf-audit-skill/references/re-index.md +103 -110
  170. package/src/skf-audit-skill/references/report.md +96 -33
  171. package/src/skf-audit-skill/references/semantic-diff.md +34 -25
  172. package/src/skf-audit-skill/references/severity-classify.md +79 -65
  173. package/src/skf-audit-skill/references/severity-rules.md +15 -6
  174. package/src/skf-audit-skill/references/structural-diff.md +80 -90
  175. package/src/skf-audit-skill/references/upstream-checkout.md +77 -0
  176. package/src/skf-audit-skill/scripts/render-drift-tables.py +712 -0
  177. package/src/skf-brief-skill/SKILL.md +37 -26
  178. package/src/skf-brief-skill/assets/description-voice-examples.md +1 -1
  179. package/src/skf-brief-skill/assets/scope-templates.md +18 -25
  180. package/src/skf-brief-skill/assets/skill-brief-schema.md +30 -23
  181. package/src/skf-brief-skill/customize.toml +48 -20
  182. package/src/skf-brief-skill/references/analyze-target.md +144 -127
  183. package/src/skf-brief-skill/references/confirm-brief.md +11 -9
  184. package/src/skf-brief-skill/references/draft-checkpoint.md +36 -17
  185. package/src/skf-brief-skill/references/gather-intent-ratify.md +68 -0
  186. package/src/skf-brief-skill/references/gather-intent.md +87 -182
  187. package/src/skf-brief-skill/references/headless-args.md +84 -16
  188. package/src/skf-brief-skill/references/health-check.md +1 -1
  189. package/src/skf-brief-skill/references/invocation-contract.md +18 -13
  190. package/src/skf-brief-skill/references/portfolio-similarity-check.md +1 -1
  191. package/src/skf-brief-skill/references/qmd-collection-registration.md +7 -10
  192. package/src/skf-brief-skill/references/scope-definition.md +123 -47
  193. package/src/skf-brief-skill/references/step-auto-brief.md +26 -100
  194. package/src/skf-brief-skill/references/step-auto-validate.md +20 -121
  195. package/src/skf-brief-skill/references/version-resolution.md +7 -10
  196. package/src/skf-brief-skill/references/write-brief.md +66 -57
  197. package/src/skf-campaign/SKILL.md +31 -34
  198. package/src/skf-campaign/assets/campaign-state-schema.json +25 -4
  199. package/src/skf-campaign/customize.toml +47 -16
  200. package/src/skf-campaign/references/campaign-contracts.md +39 -29
  201. package/src/skf-campaign/references/campaign-directive-spec.md +4 -2
  202. package/src/skf-campaign/references/health-check.md +7 -16
  203. package/src/skf-campaign/references/step-01-setup.md +46 -84
  204. package/src/skf-campaign/references/step-02-strategy.md +31 -30
  205. package/src/skf-campaign/references/step-03-pins.md +26 -18
  206. package/src/skf-campaign/references/step-04-provenance.md +24 -23
  207. package/src/skf-campaign/references/step-05-skill-loop.md +67 -48
  208. package/src/skf-campaign/references/step-06-batch.md +41 -34
  209. package/src/skf-campaign/references/step-07-capstone.md +40 -25
  210. package/src/skf-campaign/references/step-08-verify.md +28 -29
  211. package/src/skf-campaign/references/step-09-refine.md +29 -30
  212. package/src/skf-campaign/references/step-10-export.md +48 -36
  213. package/src/skf-campaign/references/step-11-maintenance.md +31 -34
  214. package/src/skf-campaign/references/step-resume.md +37 -68
  215. package/src/skf-campaign/scripts/campaign-deps.py +57 -18
  216. package/src/skf-campaign/scripts/campaign-parse-manifest.py +361 -54
  217. package/src/skf-campaign/scripts/campaign-provenance.py +96 -53
  218. package/src/skf-campaign/scripts/campaign-quality-gate.py +592 -0
  219. package/src/skf-campaign/scripts/campaign-render-batch.py +257 -49
  220. package/src/skf-campaign/scripts/campaign-render-kickoff.py +343 -50
  221. package/src/skf-campaign/scripts/campaign-report.py +204 -37
  222. package/src/skf-campaign/scripts/campaign-state.py +1128 -0
  223. package/src/skf-campaign/scripts/campaign-status.py +10 -74
  224. package/src/skf-campaign/scripts/campaign-validate-pins.py +30 -3
  225. package/src/skf-campaign/scripts/campaign-validate-state.py +34 -4
  226. package/src/skf-campaign/templates/campaign-brief-template.yaml +4 -5
  227. package/src/skf-campaign/templates/campaign-report-template.md +5 -1
  228. package/src/skf-campaign/templates/kickoff-template.md +0 -14
  229. package/src/skf-create-skill/SKILL.md +27 -20
  230. package/src/skf-create-skill/assets/compile-assembly-rules.md +11 -8
  231. package/src/skf-create-skill/assets/skill-sections.md +21 -11
  232. package/src/skf-create-skill/customize.toml +20 -8
  233. package/src/skf-create-skill/references/authoritative-files-protocol.md +36 -58
  234. package/src/skf-create-skill/references/batch-mode.md +81 -0
  235. package/src/skf-create-skill/references/ccc-index-check.md +27 -0
  236. package/src/skf-create-skill/references/compile.md +119 -70
  237. package/src/skf-create-skill/references/component-extraction.md +113 -91
  238. package/src/skf-create-skill/references/enrich.md +41 -23
  239. package/src/skf-create-skill/references/entry-points-by-hand.md +37 -0
  240. package/src/skf-create-skill/references/extract.md +204 -162
  241. package/src/skf-create-skill/references/extraction-patterns-by-hand.md +141 -0
  242. package/src/skf-create-skill/references/extraction-patterns-tracing.md +11 -11
  243. package/src/skf-create-skill/references/extraction-patterns.md +588 -201
  244. package/src/skf-create-skill/references/generate-artifacts.md +145 -93
  245. package/src/skf-create-skill/references/health-check.md +1 -1
  246. package/src/skf-create-skill/references/load-brief.md +53 -36
  247. package/src/skf-create-skill/references/relabel-rule.md +12 -0
  248. package/src/skf-create-skill/references/report.md +37 -57
  249. package/src/skf-create-skill/references/source-resolution-protocols.md +58 -169
  250. package/src/skf-create-skill/references/step-auto-shard.md +20 -93
  251. package/src/skf-create-skill/references/step-doc-rot.md +44 -60
  252. package/src/skf-create-skill/references/step-doc-sources.md +28 -19
  253. package/src/skf-create-skill/references/sub/ccc-discover.md +18 -7
  254. package/src/skf-create-skill/references/sub/fetch-docs.md +106 -59
  255. package/src/skf-create-skill/references/sub/fetch-temporal.md +53 -166
  256. package/src/skf-create-skill/references/tier-degradation-rules.md +18 -9
  257. package/src/skf-create-skill/references/validate.md +173 -99
  258. package/src/skf-create-skill/scripts/scan-doc-rot.py +232 -99
  259. package/src/skf-create-stack-skill/SKILL.md +29 -56
  260. package/src/skf-create-stack-skill/assets/metadata-contract.md +51 -0
  261. package/src/skf-create-stack-skill/assets/provenance-map-schema.md +15 -15
  262. package/src/skf-create-stack-skill/assets/stack-skill-template.md +23 -57
  263. package/src/skf-create-stack-skill/customize.toml +23 -12
  264. package/src/skf-create-stack-skill/references/compile-stack.md +57 -66
  265. package/src/skf-create-stack-skill/references/compose-mode-rules.md +24 -44
  266. package/src/skf-create-stack-skill/references/detect-integrations.md +92 -95
  267. package/src/skf-create-stack-skill/references/detect-manifests.md +46 -71
  268. package/src/skf-create-stack-skill/references/generate-output.md +138 -128
  269. package/src/skf-create-stack-skill/references/init.md +90 -32
  270. package/src/skf-create-stack-skill/references/integration-patterns.md +1 -17
  271. package/src/skf-create-stack-skill/references/invocation-contract.md +34 -0
  272. package/src/skf-create-stack-skill/references/manifest-patterns.md +32 -20
  273. package/src/skf-create-stack-skill/references/parallel-extract.md +112 -38
  274. package/src/skf-create-stack-skill/references/rank-and-confirm.md +57 -75
  275. package/src/skf-create-stack-skill/references/report.md +39 -33
  276. package/src/skf-create-stack-skill/references/validate.md +20 -39
  277. package/src/skf-drop-skill/SKILL.md +28 -51
  278. package/src/skf-drop-skill/customize.toml +44 -30
  279. package/src/skf-drop-skill/references/execute.md +83 -146
  280. package/src/skf-drop-skill/references/health-check.md +2 -0
  281. package/src/skf-drop-skill/references/invocation-contract.md +64 -0
  282. package/src/skf-drop-skill/references/report.md +46 -30
  283. package/src/skf-drop-skill/references/select.md +122 -124
  284. package/src/skf-drop-skill/scripts/dir-sizes.py +54 -26
  285. package/src/skf-drop-skill/scripts/drop-roster.py +322 -0
  286. package/src/skf-export-skill/SKILL.md +40 -62
  287. package/src/skf-export-skill/assets/managed-section-format.md +14 -50
  288. package/src/skf-export-skill/assets/snippet-format.md +3 -1
  289. package/src/skf-export-skill/customize.toml +42 -13
  290. package/src/skf-export-skill/references/generate-snippet.md +54 -46
  291. package/src/skf-export-skill/references/health-check.md +2 -0
  292. package/src/skf-export-skill/references/invocation-contract.md +15 -0
  293. package/src/skf-export-skill/references/load-skill.md +88 -62
  294. package/src/skf-export-skill/references/manifest-rebuild.md +9 -10
  295. package/src/skf-export-skill/references/multi-skill-mode.md +4 -4
  296. package/src/skf-export-skill/references/orphan-context-detection.md +13 -5
  297. package/src/skf-export-skill/references/orphan-row-detection.md +31 -22
  298. package/src/skf-export-skill/references/package.md +15 -73
  299. package/src/skf-export-skill/references/preflight-snippet-root-probe.md +51 -70
  300. package/src/skf-export-skill/references/result-envelope.md +31 -16
  301. package/src/skf-export-skill/references/summary.md +41 -17
  302. package/src/skf-export-skill/references/token-report.md +4 -12
  303. package/src/skf-export-skill/references/update-context.md +118 -237
  304. package/src/skf-forger/SKILL.md +61 -37
  305. package/src/skf-forger/bmad-skill-manifest.yaml +4 -1
  306. package/src/skf-forger/customize.toml +43 -0
  307. package/src/skf-forger/references/pipeline-mode.md +73 -18
  308. package/src/skf-forger/scripts/forge-status.py +299 -0
  309. package/src/skf-forger/scripts/parse-pipeline.py +322 -54
  310. package/src/skf-forger/scripts/pipeline-gate.py +428 -0
  311. package/src/skf-forger/scripts/pipeline-journal.py +1052 -0
  312. package/src/skf-quick-skill/SKILL.md +54 -53
  313. package/src/skf-quick-skill/assets/skill-template.md +4 -2
  314. package/src/skf-quick-skill/customize.toml +51 -20
  315. package/src/skf-quick-skill/references/batch-mode.md +74 -21
  316. package/src/skf-quick-skill/references/compile.md +30 -31
  317. package/src/skf-quick-skill/references/ecosystem-check.md +7 -57
  318. package/src/skf-quick-skill/references/finalize.md +69 -18
  319. package/src/skf-quick-skill/references/halt-contract.md +41 -29
  320. package/src/skf-quick-skill/references/health-check.md +5 -3
  321. package/src/skf-quick-skill/references/quick-extract.md +114 -45
  322. package/src/skf-quick-skill/references/registry-resolution.md +9 -64
  323. package/src/skf-quick-skill/references/resolve-target.md +116 -66
  324. package/src/skf-quick-skill/references/write-and-validate.md +79 -40
  325. package/src/skf-refine-architecture/SKILL.md +43 -53
  326. package/src/skf-refine-architecture/customize.toml +49 -20
  327. package/src/skf-refine-architecture/references/compile.md +97 -54
  328. package/src/skf-refine-architecture/references/exit-codes.md +30 -0
  329. package/src/skf-refine-architecture/references/finding-storage.md +21 -0
  330. package/src/skf-refine-architecture/references/gap-analysis.md +101 -38
  331. package/src/skf-refine-architecture/references/improvements.md +14 -20
  332. package/src/skf-refine-architecture/references/init.md +98 -57
  333. package/src/skf-refine-architecture/references/issue-detection.md +32 -39
  334. package/src/skf-refine-architecture/references/refinement-rules.md +37 -48
  335. package/src/skf-refine-architecture/references/report.md +65 -54
  336. package/src/skf-refine-architecture/scripts/skf-check-preservation.py +1619 -0
  337. package/src/skf-rename-skill/SKILL.md +19 -54
  338. package/src/skf-rename-skill/customize.toml +32 -26
  339. package/src/skf-rename-skill/references/execute.md +230 -184
  340. package/src/skf-rename-skill/references/exit-codes.md +7 -7
  341. package/src/skf-rename-skill/references/health-check.md +1 -7
  342. package/src/skf-rename-skill/references/invocation-contract.md +25 -0
  343. package/src/skf-rename-skill/references/report.md +63 -52
  344. package/src/skf-rename-skill/references/select.md +197 -115
  345. package/src/skf-rename-skill/scripts/skf-validate-rename-name.py +161 -21
  346. package/src/skf-setup/SKILL.md +26 -26
  347. package/src/skf-setup/customize.toml +14 -10
  348. package/src/skf-setup/references/auto-index.md +50 -63
  349. package/src/skf-setup/references/ccc-index.md +29 -90
  350. package/src/skf-setup/references/detect-and-tier.md +58 -67
  351. package/src/skf-setup/references/health-check.md +2 -0
  352. package/src/skf-setup/references/invocation-contract.md +14 -0
  353. package/src/skf-setup/references/report.md +43 -166
  354. package/src/skf-setup/references/tier-rules.md +5 -5
  355. package/src/skf-setup/references/write-config.md +34 -57
  356. package/src/skf-test-skill/SKILL.md +17 -57
  357. package/src/skf-test-skill/assets/output-section-formats.md +33 -34
  358. package/src/skf-test-skill/customize.toml +27 -13
  359. package/src/skf-test-skill/references/coherence-check.md +134 -62
  360. package/src/skf-test-skill/references/coverage-check-tiers.md +35 -0
  361. package/src/skf-test-skill/references/coverage-check.md +209 -264
  362. package/src/skf-test-skill/references/detect-mode.md +5 -5
  363. package/src/skf-test-skill/references/external-validators.md +94 -82
  364. package/src/skf-test-skill/references/health-check.md +6 -7
  365. package/src/skf-test-skill/references/init.md +164 -91
  366. package/src/skf-test-skill/references/invocation-contract.md +66 -0
  367. package/src/skf-test-skill/references/migration-section-rules.md +5 -2
  368. package/src/skf-test-skill/references/report.md +164 -142
  369. package/src/skf-test-skill/references/score.md +80 -107
  370. package/src/skf-test-skill/references/scoring-rules.md +42 -155
  371. package/src/skf-test-skill/references/source-access-protocol.md +18 -94
  372. package/src/skf-test-skill/references/step-hard-gate.md +51 -33
  373. package/src/skf-test-skill/scripts/aggregate-coherence.py +218 -30
  374. package/src/skf-test-skill/scripts/build-result-context.py +380 -0
  375. package/src/skf-test-skill/scripts/check-metadata-coherence.py +37 -4
  376. package/src/skf-test-skill/scripts/combine-external-scores.py +23 -6
  377. package/src/skf-test-skill/scripts/compute-score.py +223 -45
  378. package/src/skf-test-skill/scripts/gap-ledger.py +1666 -0
  379. package/src/skf-test-skill/scripts/hard-gate.py +203 -0
  380. package/src/skf-test-skill/scripts/load-coverage-inputs.py +1198 -0
  381. package/src/skf-test-skill/scripts/locate-export-segments.py +835 -0
  382. package/src/skf-test-skill/scripts/reconcile-coverage.py +547 -79
  383. package/src/skf-test-skill/scripts/score-signatures.py +479 -0
  384. package/src/skf-test-skill/scripts/stage-helper-payload.py +148 -0
  385. package/src/skf-test-skill/scripts/validate-inventory.py +311 -16
  386. package/src/skf-test-skill/scripts/verify-declared-numerator.py +133 -56
  387. package/src/skf-test-skill/templates/test-report-template.md +21 -15
  388. package/src/skf-update-skill/SKILL.md +38 -25
  389. package/src/skf-update-skill/customize.toml +27 -12
  390. package/src/skf-update-skill/references/detect-changes.md +253 -223
  391. package/src/skf-update-skill/references/gap-driven.md +336 -0
  392. package/src/skf-update-skill/references/health-check.md +31 -5
  393. package/src/skf-update-skill/references/init.md +254 -84
  394. package/src/skf-update-skill/references/invocation-contract.md +12 -0
  395. package/src/skf-update-skill/references/manual-section-rules.md +6 -23
  396. package/src/skf-update-skill/references/merge.md +182 -49
  397. package/src/skf-update-skill/references/re-extract.md +53 -262
  398. package/src/skf-update-skill/references/report.md +102 -35
  399. package/src/skf-update-skill/references/write.md +357 -155
  400. package/src/skf-update-skill/scripts/skf-new-file-diff.py +183 -46
  401. package/src/skf-verify-stack/SKILL.md +23 -42
  402. package/src/skf-verify-stack/assets/feasibility-report-template.md +11 -5
  403. package/src/skf-verify-stack/customize.toml +55 -22
  404. package/src/skf-verify-stack/references/coverage-patterns.md +17 -8
  405. package/src/skf-verify-stack/references/coverage.md +67 -64
  406. package/src/skf-verify-stack/references/exit-codes.md +21 -8
  407. package/src/skf-verify-stack/references/init.md +107 -62
  408. package/src/skf-verify-stack/references/integration-verification-rules.md +12 -13
  409. package/src/skf-verify-stack/references/integrations.md +106 -65
  410. package/src/skf-verify-stack/references/report.md +59 -42
  411. package/src/skf-verify-stack/references/requirements.md +32 -9
  412. package/src/skf-verify-stack/references/synthesize.md +53 -39
  413. package/src/skf-verify-stack/scripts/skf-coverage-tally.py +398 -52
  414. package/src/skf-verify-stack/scripts/skf-previous-report.py +330 -0
  415. package/src/skf-verify-stack/scripts/skf-report-delta.py +453 -49
  416. package/src/skf-verify-stack/scripts/skf-verdict-rollup.py +240 -27
  417. package/tools/cli/commands/install.js +11 -4
  418. package/tools/cli/commands/status.js +15 -3
  419. package/tools/cli/commands/update.js +11 -4
  420. package/tools/cli/lib/tool-check.js +320 -0
  421. package/tools/cli/lib/version-check.js +22 -9
  422. package/tools/cli/skf-cli.js +4 -1
  423. package/.gitattributes +0 -16
  424. package/.nvmrc +0 -1
  425. package/docs/_internal/RELEASING.md +0 -679
  426. package/release-audits/v1.0.0-launch-audit.md +0 -728
  427. package/src/skf-audit-skill/references/step-doc-drift.md +0 -177
  428. package/src/skf-brief-skill/references/headless-source-authority-detection.md +0 -26
  429. package/src/skf-campaign/manifest.yaml +0 -15
  430. package/src/skf-create-skill/assets/tessl-dismissal-rules.md +0 -106
  431. package/src/skf-create-skill/references/ecosystem-check.md +0 -74
  432. package/src/skf-drop-skill/references/headless-contract.md +0 -18
  433. package/src/skf-update-skill/references/merge-conflict-rules.md +0 -15
  434. package/src/skf-update-skill/references/remote-source-resolution.md +0 -98
  435. package/src/skf-update-skill/references/validate.md +0 -124
  436. package/tools/validate-docs-drift.js +0 -233
  437. package/tools/validate-docs-links.js +0 -665
@@ -0,0 +1,608 @@
1
+ # The ast-grep recipes that find the exports create-skill extracts. Each
2
+ # item of `recipes` is one recipe: the same rule as its copy in create-skill's
3
+ # references/extraction-patterns.md, which holds the forms it does not cover
4
+ # (its notes are in extraction-patterns-by-hand.md beside it;
5
+ # test/test-skf-create-skill-recipes.py keeps the two copies identical). skf-extract-public-api.py --mode full runs these,
6
+ # and skf-verify-provenance-completeness.py kind-at reads them as well as the
7
+ # markdown copies.
8
+ #
9
+ # A recipe is an ast-grep rule (id, language, rule, constraints) with a
10
+ # `metadata` block, which ast-grep accepts and does not use:
11
+ # languages the languages this form runs in: its own `language`, then
12
+ # each language it also runs in unchanged, with `language`
13
+ # rewritten (the language selection note in
14
+ # extraction-patterns-by-hand.md)
15
+ # sets the recipe sets that run it: `standard` (every scope type
16
+ # but component-library) and `component-library` (the
17
+ # recipes component-extraction.md names)
18
+ # export_type what an export it matches is: function, class, const,
19
+ # interface, type, enum or re-export; a list means the
20
+ # declaration keyword before the name picks one. It is the
21
+ # form of the declaration, not its role: a component is a
22
+ # function when declared as one or bound to an arrow
23
+ # function, and a const when bound to a call (memo,
24
+ # forwardRef, lazy), as js-exported-constants records it.
25
+ # An item of a local `export { ... }` list takes the type
26
+ # of the binding it names in its file (re-export for an
27
+ # import), and this one when the runner finds none
28
+ # prefer_over when this recipe and one it lists match one name on one
29
+ # line, the export records this recipe
30
+
31
+ recipes:
32
+ - id: python-public-functions
33
+ language: python
34
+ metadata:
35
+ languages: [python]
36
+ sets: [standard]
37
+ export_type: function
38
+ rule:
39
+ pattern: "def $NAME"
40
+ kind: function_definition
41
+ inside:
42
+ kind: module
43
+ stopBy:
44
+ any:
45
+ - kind: function_definition
46
+ - kind: class_definition
47
+ not:
48
+ inside:
49
+ kind: block
50
+ stopBy: end
51
+ inside:
52
+ kind: if_statement
53
+ has:
54
+ field: condition
55
+ regex: '^\(?\s*(__name__\s*==\s*[''"]__main__[''"]|[''"]__main__[''"]\s*==\s*__name__)\s*\)?$'
56
+ constraints:
57
+ NAME:
58
+ regex: "^[^_]"
59
+ - id: python-public-classes
60
+ language: python
61
+ metadata:
62
+ languages: [python]
63
+ sets: [standard]
64
+ export_type: class
65
+ rule:
66
+ pattern: "class $NAME"
67
+ kind: class_definition
68
+ inside:
69
+ kind: module
70
+ stopBy:
71
+ any:
72
+ - kind: function_definition
73
+ - kind: class_definition
74
+ not:
75
+ inside:
76
+ kind: block
77
+ stopBy: end
78
+ inside:
79
+ kind: if_statement
80
+ has:
81
+ field: condition
82
+ regex: '^\(?\s*(__name__\s*==\s*[''"]__main__[''"]|[''"]__main__[''"]\s*==\s*__name__)\s*\)?$'
83
+ constraints:
84
+ NAME:
85
+ regex: "^[^_]"
86
+ - id: js-exported-functions
87
+ language: typescript
88
+ metadata:
89
+ languages: [typescript, tsx]
90
+ sets: [standard]
91
+ export_type: function
92
+ rule:
93
+ kind: export_statement
94
+ inside:
95
+ kind: program
96
+ any:
97
+ - has:
98
+ field: declaration
99
+ any:
100
+ - kind: function_declaration
101
+ - kind: generator_function_declaration
102
+ - kind: function_signature
103
+ has:
104
+ field: name
105
+ pattern: $NAME
106
+ - has:
107
+ field: declaration
108
+ kind: ambient_declaration
109
+ has:
110
+ kind: function_signature
111
+ has:
112
+ field: name
113
+ pattern: $NAME
114
+ not:
115
+ has:
116
+ field: declaration
117
+ any:
118
+ - kind: function_declaration
119
+ - kind: generator_function_declaration
120
+ follows:
121
+ stopBy:
122
+ not:
123
+ kind: comment
124
+ kind: export_statement
125
+ has:
126
+ field: declaration
127
+ kind: function_signature
128
+ - id: js-exported-functions
129
+ language: javascript
130
+ metadata:
131
+ languages: [javascript]
132
+ sets: [standard]
133
+ export_type: function
134
+ rule:
135
+ kind: export_statement
136
+ inside:
137
+ kind: program
138
+ has:
139
+ field: declaration
140
+ any:
141
+ - kind: function_declaration
142
+ - kind: generator_function_declaration
143
+ has:
144
+ field: name
145
+ pattern: $NAME
146
+ - id: js-exported-constants
147
+ language: typescript
148
+ metadata:
149
+ languages: [typescript, tsx, javascript]
150
+ sets: [standard]
151
+ export_type: const
152
+ rule:
153
+ kind: export_statement
154
+ inside:
155
+ kind: program
156
+ has:
157
+ field: declaration
158
+ kind: lexical_declaration
159
+ all:
160
+ - has:
161
+ field: kind
162
+ regex: "^const$"
163
+ - has:
164
+ kind: variable_declarator
165
+ all:
166
+ - has:
167
+ field: name
168
+ kind: identifier
169
+ pattern: $NAME
170
+ - has:
171
+ field: value
172
+ pattern: $VALUE
173
+ - id: js-exported-arrow-functions
174
+ language: typescript
175
+ metadata:
176
+ languages: [typescript, tsx, javascript]
177
+ sets: [standard]
178
+ export_type: function
179
+ prefer_over: [js-exported-constants]
180
+ rule:
181
+ kind: export_statement
182
+ inside:
183
+ kind: program
184
+ has:
185
+ field: declaration
186
+ kind: lexical_declaration
187
+ all:
188
+ - has:
189
+ field: kind
190
+ regex: "^const$"
191
+ - has:
192
+ kind: variable_declarator
193
+ all:
194
+ - has:
195
+ field: name
196
+ kind: identifier
197
+ pattern: $NAME
198
+ - has:
199
+ field: value
200
+ kind: arrow_function
201
+ pattern: $VALUE
202
+ - id: js-exported-classes
203
+ language: typescript
204
+ metadata:
205
+ languages: [typescript, tsx, javascript]
206
+ sets: [standard]
207
+ export_type: class
208
+ rule:
209
+ kind: export_statement
210
+ inside:
211
+ kind: program
212
+ not:
213
+ has:
214
+ regex: "^default$"
215
+ has:
216
+ field: declaration
217
+ all:
218
+ - has:
219
+ field: name
220
+ pattern: $NAME
221
+ - has:
222
+ field: body
223
+ kind: class_body
224
+ - id: ts-exported-types
225
+ language: typescript
226
+ metadata:
227
+ languages: [typescript, tsx]
228
+ sets: [standard, component-library]
229
+ export_type: [interface, type, enum]
230
+ rule:
231
+ kind: export_statement
232
+ inside:
233
+ kind: program
234
+ not:
235
+ has:
236
+ regex: "^default$"
237
+ has:
238
+ field: declaration
239
+ any:
240
+ - any:
241
+ - kind: interface_declaration
242
+ - kind: type_alias_declaration
243
+ - kind: enum_declaration
244
+ has:
245
+ field: name
246
+ pattern: $NAME
247
+ - kind: ambient_declaration
248
+ has:
249
+ any:
250
+ - kind: interface_declaration
251
+ - kind: type_alias_declaration
252
+ - kind: enum_declaration
253
+ has:
254
+ field: name
255
+ pattern: $NAME
256
+ - id: js-reexports
257
+ language: typescript
258
+ metadata:
259
+ languages: [typescript, tsx, javascript]
260
+ sets: [standard]
261
+ export_type: re-export
262
+ rule:
263
+ kind: export_specifier
264
+ inside:
265
+ kind: export_clause
266
+ inside:
267
+ kind: export_statement
268
+ inside:
269
+ kind: program
270
+ has:
271
+ field: source
272
+ has:
273
+ kind: string_fragment
274
+ pattern: $SOURCE
275
+ any:
276
+ - has:
277
+ field: alias
278
+ any:
279
+ - has:
280
+ kind: string_fragment
281
+ pattern: $NAME
282
+ - not:
283
+ kind: string
284
+ pattern: $NAME
285
+ - all:
286
+ - not:
287
+ has:
288
+ field: alias
289
+ regex: "."
290
+ - has:
291
+ field: name
292
+ any:
293
+ - has:
294
+ kind: string_fragment
295
+ pattern: $NAME
296
+ - not:
297
+ kind: string
298
+ pattern: $NAME
299
+ - id: js-namespace-reexports
300
+ language: typescript
301
+ metadata:
302
+ languages: [typescript, tsx, javascript]
303
+ sets: [standard]
304
+ export_type: re-export
305
+ rule:
306
+ kind: export_statement
307
+ inside:
308
+ kind: program
309
+ all:
310
+ - has:
311
+ field: source
312
+ has:
313
+ kind: string_fragment
314
+ pattern: $SOURCE
315
+ - has:
316
+ kind: namespace_export
317
+ any:
318
+ - has:
319
+ kind: identifier
320
+ pattern: $NAME
321
+ - has:
322
+ kind: string
323
+ has:
324
+ kind: string_fragment
325
+ pattern: $NAME
326
+ - id: js-local-exports
327
+ language: typescript
328
+ metadata:
329
+ languages: [typescript, tsx, javascript]
330
+ sets: [standard, component-library]
331
+ export_type: const
332
+ rule:
333
+ kind: export_specifier
334
+ inside:
335
+ kind: export_clause
336
+ inside:
337
+ kind: export_statement
338
+ inside:
339
+ kind: program
340
+ not:
341
+ has:
342
+ field: source
343
+ kind: string
344
+ any:
345
+ - has:
346
+ field: alias
347
+ any:
348
+ - has:
349
+ kind: string_fragment
350
+ pattern: $NAME
351
+ - not:
352
+ kind: string
353
+ pattern: $NAME
354
+ - all:
355
+ - not:
356
+ has:
357
+ field: alias
358
+ regex: "."
359
+ - has:
360
+ field: name
361
+ pattern: $NAME
362
+ - id: rust-public-functions
363
+ language: rust
364
+ metadata:
365
+ languages: [rust]
366
+ sets: [standard]
367
+ export_type: function
368
+ rule:
369
+ kind: function_item
370
+ has:
371
+ field: name
372
+ pattern: $NAME
373
+ all:
374
+ - has:
375
+ kind: visibility_modifier
376
+ regex: "^pub$"
377
+ - inside:
378
+ any:
379
+ - kind: source_file
380
+ - kind: declaration_list
381
+ inside:
382
+ kind: mod_item
383
+ - not:
384
+ inside:
385
+ kind: mod_item
386
+ stopBy: end
387
+ not:
388
+ has:
389
+ kind: visibility_modifier
390
+ regex: "^pub$"
391
+ - not:
392
+ inside:
393
+ kind: block
394
+ stopBy: end
395
+ - id: go-exported-functions
396
+ language: go
397
+ metadata:
398
+ languages: [go]
399
+ sets: [standard]
400
+ export_type: function
401
+ rule:
402
+ kind: function_declaration
403
+ has:
404
+ field: name
405
+ pattern: $NAME
406
+ not:
407
+ has:
408
+ field: receiver
409
+ kind: parameter_list
410
+ constraints:
411
+ NAME:
412
+ regex: "^\\p{Lu}"
413
+ - id: react-props-interfaces
414
+ language: typescript
415
+ metadata:
416
+ languages: [typescript, tsx]
417
+ sets: [component-library]
418
+ export_type: interface
419
+ prefer_over: [ts-exported-types]
420
+ rule:
421
+ kind: export_statement
422
+ inside:
423
+ kind: program
424
+ not:
425
+ has:
426
+ regex: "^default$"
427
+ has:
428
+ field: declaration
429
+ kind: interface_declaration
430
+ has:
431
+ field: name
432
+ pattern: $NAME
433
+ constraints:
434
+ NAME:
435
+ regex: ".*Props$"
436
+ - id: react-component-functions
437
+ language: tsx
438
+ metadata:
439
+ languages: [tsx, typescript]
440
+ sets: [component-library]
441
+ export_type: function
442
+ prefer_over: [js-exported-functions]
443
+ rule:
444
+ kind: export_statement
445
+ inside:
446
+ kind: program
447
+ any:
448
+ - has:
449
+ field: declaration
450
+ any:
451
+ - kind: function_declaration
452
+ - kind: function_signature
453
+ has:
454
+ field: name
455
+ pattern: $NAME
456
+ - has:
457
+ field: declaration
458
+ kind: ambient_declaration
459
+ has:
460
+ kind: function_signature
461
+ has:
462
+ field: name
463
+ pattern: $NAME
464
+ not:
465
+ has:
466
+ field: declaration
467
+ kind: function_declaration
468
+ follows:
469
+ stopBy:
470
+ not:
471
+ kind: comment
472
+ kind: export_statement
473
+ has:
474
+ field: declaration
475
+ kind: function_signature
476
+ constraints:
477
+ NAME:
478
+ regex: "^\\p{Lu}"
479
+ - id: react-component-functions
480
+ language: javascript
481
+ metadata:
482
+ languages: [javascript]
483
+ sets: [component-library]
484
+ export_type: function
485
+ prefer_over: [js-exported-functions]
486
+ rule:
487
+ kind: export_statement
488
+ inside:
489
+ kind: program
490
+ has:
491
+ field: declaration
492
+ kind: function_declaration
493
+ has:
494
+ field: name
495
+ pattern: $NAME
496
+ constraints:
497
+ NAME:
498
+ regex: "^\\p{Lu}"
499
+ - id: react-component-arrow-functions
500
+ language: typescript
501
+ metadata:
502
+ languages: [typescript, tsx, javascript]
503
+ sets: [component-library]
504
+ export_type: function
505
+ prefer_over: [js-exported-arrow-functions, js-exported-constants]
506
+ rule:
507
+ kind: export_statement
508
+ inside:
509
+ kind: program
510
+ has:
511
+ field: declaration
512
+ kind: lexical_declaration
513
+ all:
514
+ - has:
515
+ field: kind
516
+ regex: "^const$"
517
+ - has:
518
+ kind: variable_declarator
519
+ all:
520
+ - has:
521
+ field: name
522
+ kind: identifier
523
+ regex: "^\\p{Lu}"
524
+ pattern: $NAME
525
+ - has:
526
+ field: value
527
+ kind: arrow_function
528
+ pattern: $VALUE
529
+ constraints:
530
+ NAME:
531
+ regex: "^\\p{Lu}"
532
+ - id: react-wrapped-components
533
+ language: tsx
534
+ metadata:
535
+ languages: [tsx, typescript, javascript]
536
+ sets: [component-library]
537
+ export_type: const
538
+ prefer_over: [js-exported-constants]
539
+ rule:
540
+ kind: export_statement
541
+ inside:
542
+ kind: program
543
+ has:
544
+ field: declaration
545
+ kind: lexical_declaration
546
+ all:
547
+ - has:
548
+ field: kind
549
+ regex: "^const$"
550
+ - has:
551
+ kind: variable_declarator
552
+ all:
553
+ - has:
554
+ field: name
555
+ kind: identifier
556
+ regex: "^\\p{Lu}"
557
+ pattern: $NAME
558
+ - has:
559
+ field: value
560
+ kind: call_expression
561
+ has:
562
+ field: function
563
+ regex: '^(React\.)?(memo|forwardRef|lazy)$'
564
+ constraints:
565
+ NAME:
566
+ regex: "^\\p{Lu}"
567
+ - id: vue-define-props
568
+ language: typescript
569
+ metadata:
570
+ languages: [typescript]
571
+ sets: [standard, component-library]
572
+ export_type: type
573
+ rule:
574
+ pattern: "defineProps<$NAME>()"
575
+ kind: call_expression
576
+ not:
577
+ inside:
578
+ stopBy: end
579
+ any:
580
+ - kind: statement_block
581
+ - kind: arrow_function
582
+ - kind: class_body
583
+ - kind: if_statement
584
+ - kind: for_statement
585
+ - kind: for_in_statement
586
+ - kind: while_statement
587
+ - kind: switch_case
588
+ - id: vue-define-props-tsx
589
+ language: tsx
590
+ metadata:
591
+ languages: [tsx]
592
+ sets: [standard, component-library]
593
+ export_type: type
594
+ rule:
595
+ pattern: "defineProps<$NAME>()"
596
+ kind: call_expression
597
+ not:
598
+ inside:
599
+ stopBy: end
600
+ any:
601
+ - kind: statement_block
602
+ - kind: arrow_function
603
+ - kind: class_body
604
+ - kind: if_statement
605
+ - kind: for_statement
606
+ - kind: for_in_statement
607
+ - kind: while_statement
608
+ - kind: switch_case
@@ -0,0 +1,30 @@
1
+ {
2
+ "_comment": "Where each IDE reads the SKF managed section: the one mapping export-skill, drop-skill and rename-skill resolve their context files from, through `skf-rebuild-managed-sections.py resolve-targets`. Each key under `ides` is an IDE identifier as the installer writes it to config.yaml `ides`. `context_file` is the file that IDE reads for passive skill context, and `skill_root` is the folder the installer puts its skills in (its `target_dir` in tools/cli/lib/platform-codes.yaml, with a trailing slash). An IDE not listed here resolves to `unknown_ide`. skf-export-skill/assets/managed-section-format.md shows the same mapping as a table for readers, and test/test-skf-rebuild-managed-sections.py pins that table and platform-codes.yaml to this file.",
3
+ "unknown_ide": { "context_file": "AGENTS.md", "skill_root": ".agents/skills/" },
4
+ "ides": {
5
+ "claude-code": { "context_file": "CLAUDE.md", "skill_root": ".claude/skills/" },
6
+ "cursor": { "context_file": ".cursorrules", "skill_root": ".cursor/skills/" },
7
+ "github-copilot": { "context_file": "AGENTS.md", "skill_root": ".github/skills/" },
8
+ "codex": { "context_file": "AGENTS.md", "skill_root": ".agents/skills/" },
9
+ "windsurf": { "context_file": "AGENTS.md", "skill_root": ".windsurf/skills/" },
10
+ "cline": { "context_file": "AGENTS.md", "skill_root": ".cline/skills/" },
11
+ "roo": { "context_file": "AGENTS.md", "skill_root": ".roo/skills/" },
12
+ "auggie": { "context_file": "AGENTS.md", "skill_root": ".augment/skills/" },
13
+ "antigravity": { "context_file": "AGENTS.md", "skill_root": ".agent/skills/" },
14
+ "codebuddy": { "context_file": "AGENTS.md", "skill_root": ".codebuddy/skills/" },
15
+ "crush": { "context_file": "AGENTS.md", "skill_root": ".crush/skills/" },
16
+ "gemini": { "context_file": "AGENTS.md", "skill_root": ".gemini/skills/" },
17
+ "iflow": { "context_file": "AGENTS.md", "skill_root": ".iflow/skills/" },
18
+ "junie": { "context_file": "AGENTS.md", "skill_root": ".junie/skills/" },
19
+ "kilo": { "context_file": "AGENTS.md", "skill_root": ".kilocode/skills/" },
20
+ "kiro": { "context_file": "AGENTS.md", "skill_root": ".kiro/skills/" },
21
+ "ona": { "context_file": "AGENTS.md", "skill_root": ".ona/skills/" },
22
+ "opencode": { "context_file": "AGENTS.md", "skill_root": ".opencode/skills/" },
23
+ "pi": { "context_file": "AGENTS.md", "skill_root": ".pi/skills/" },
24
+ "qoder": { "context_file": "AGENTS.md", "skill_root": ".qoder/skills/" },
25
+ "qwen": { "context_file": "AGENTS.md", "skill_root": ".qwen/skills/" },
26
+ "rovo-dev": { "context_file": "AGENTS.md", "skill_root": ".rovodev/skills/" },
27
+ "trae": { "context_file": "AGENTS.md", "skill_root": ".trae/skills/" },
28
+ "other": { "context_file": "AGENTS.md", "skill_root": ".agents/skills/" }
29
+ }
30
+ }