@skill-graph/cli 0.5.6

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 (330) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/LICENSE +200 -0
  3. package/NOTICE +62 -0
  4. package/README.md +398 -0
  5. package/SKILL_GRAPH.md +443 -0
  6. package/bin/skill-graph.js +374 -0
  7. package/docs/ADOPTION.md +117 -0
  8. package/docs/CONFORMANCE.md +66 -0
  9. package/docs/PRIMER.md +384 -0
  10. package/docs/QUICKSTART-30MIN.md +333 -0
  11. package/docs/ROUTING-METRICS.md +120 -0
  12. package/docs/SKILL-MD-FORMAT-COMPATIBILITY.md +127 -0
  13. package/docs/SKILL_AUDIT_CHECKLIST.md +199 -0
  14. package/docs/SKILL_AUDIT_LOOP.md +195 -0
  15. package/docs/SKILL_METADATA_PROTOCOL.md +609 -0
  16. package/docs/_archived/marketplace-publication-priority-2026-05-18.md +239 -0
  17. package/docs/adr/0001-predicate-set.md +69 -0
  18. package/docs/adr/0002-json-ld-context.md +82 -0
  19. package/docs/adr/0003-ontoclean-rigidity-tags.md +65 -0
  20. package/docs/adr/0004-persistent-identifiers.md +74 -0
  21. package/docs/adr/0005-freshness-consolidation.md +70 -0
  22. package/docs/adr/0006-revise-predicate-rename.md +105 -0
  23. package/docs/adr/0007-audit-loop-cadence.md +99 -0
  24. package/docs/adr/0008-skill-surface-split-and-curation-policy.md +93 -0
  25. package/docs/category-consumers.md +168 -0
  26. package/docs/concept-map.md +194 -0
  27. package/docs/diagrams/drift-states.mmd +21 -0
  28. package/docs/diagrams/manifest-pipeline.mmd +25 -0
  29. package/docs/diagrams/routing-harness.mmd +41 -0
  30. package/docs/diagrams/starter-graph.mmd +53 -0
  31. package/docs/field-decision-guide.md +315 -0
  32. package/docs/field-rationale.md +211 -0
  33. package/docs/field-reference.generated.md +624 -0
  34. package/docs/field-reference.md +1426 -0
  35. package/docs/glossary.md +190 -0
  36. package/docs/head-noun-glossary.md +63 -0
  37. package/docs/images/audit-phases.png +0 -0
  38. package/docs/images/drift-states.png +0 -0
  39. package/docs/images/graded-mode.png +0 -0
  40. package/docs/images/manifest-pipeline.png +0 -0
  41. package/docs/images/routing-harness.png +0 -0
  42. package/docs/images/skill-anatomy.png +0 -0
  43. package/docs/images/starter-graph.png +0 -0
  44. package/docs/images/system-model.png +0 -0
  45. package/docs/integrations/github-actions.md +155 -0
  46. package/docs/manifest-field-mapping.md +443 -0
  47. package/docs/marketplace-publication-queue.generated.md +240 -0
  48. package/docs/marketplace-release-agent-prompt.md +82 -0
  49. package/docs/marketplace-skill-candidate-list.md +272 -0
  50. package/docs/marketplace-syndication.md +222 -0
  51. package/docs/migration-sample-review.md +155 -0
  52. package/docs/migrations/v4-to-v5.md +168 -0
  53. package/docs/migrations/v5-to-v6.md +221 -0
  54. package/docs/name-exceptions.yaml +37 -0
  55. package/docs/plans/marketplace-p1-public-migration-plan.md +41 -0
  56. package/docs/plans/multi-root-workspace.md +148 -0
  57. package/docs/plans/scripts-roadmap.md +107 -0
  58. package/docs/plans/v4-schema-bump.md +160 -0
  59. package/docs/plans/wave-2-extraction.md +122 -0
  60. package/docs/positioning-vs-marketplaces.md +175 -0
  61. package/docs/proposals/skill-audit-loop-positioning.md +160 -0
  62. package/docs/quality-doctrine.md +138 -0
  63. package/docs/recommended-skills.md +150 -0
  64. package/docs/research/skill-comprehension-eval-research.md +1830 -0
  65. package/docs/research/skill-retrieval-evidence.md +66 -0
  66. package/docs/skill-metadata-protocol.md +471 -0
  67. package/docs/skills-sh-maintainer-cleanup-request.md +80 -0
  68. package/examples/audits/a11y/findings.md +52 -0
  69. package/examples/audits/a11y/scorecard.md +21 -0
  70. package/examples/audits/a11y/verdict.md +44 -0
  71. package/examples/audits/debugging/findings.md +59 -0
  72. package/examples/audits/debugging/scorecard.md +22 -0
  73. package/examples/audits/debugging/verdict.md +33 -0
  74. package/examples/audits/documentation/findings.md +59 -0
  75. package/examples/audits/documentation/scorecard.md +22 -0
  76. package/examples/audits/documentation/verdict.md +33 -0
  77. package/examples/evals/a11y.json +140 -0
  78. package/examples/evals/api-design.json +52 -0
  79. package/examples/evals/code-review.json +52 -0
  80. package/examples/evals/data-modeling.json +52 -0
  81. package/examples/evals/database-migration.json +52 -0
  82. package/examples/evals/debugging.json +118 -0
  83. package/examples/evals/dependency-architecture.json +52 -0
  84. package/examples/evals/design-system-architecture.json +52 -0
  85. package/examples/evals/error-tracking.json +52 -0
  86. package/examples/evals/event-contract-design.json +52 -0
  87. package/examples/evals/form-ux-architecture.json +52 -0
  88. package/examples/evals/framework-fit-analysis.json +52 -0
  89. package/examples/evals/graph-audit.json +139 -0
  90. package/examples/evals/information-architecture.json +52 -0
  91. package/examples/evals/interaction-feedback.json +52 -0
  92. package/examples/evals/interaction-patterns.json +52 -0
  93. package/examples/evals/layout-composition.json +52 -0
  94. package/examples/evals/lint-overlay.json +117 -0
  95. package/examples/evals/microcopy.json +52 -0
  96. package/examples/evals/observability-modeling.json +52 -0
  97. package/examples/evals/pattern-recognition.json +96 -0
  98. package/examples/evals/performance-engineering.json +52 -0
  99. package/examples/evals/refactor.json +128 -0
  100. package/examples/evals/semiotics.json +52 -0
  101. package/examples/evals/skill-infrastructure.json +96 -0
  102. package/examples/evals/skill-router.json +140 -0
  103. package/examples/evals/skill-router.routing.json +113 -0
  104. package/examples/evals/system-interface-contracts.json +52 -0
  105. package/examples/evals/task-analysis.json +52 -0
  106. package/examples/evals/testing-strategy.json +118 -0
  107. package/examples/evals/type-safety.json +249 -0
  108. package/examples/evals/visual-design-foundations.json +52 -0
  109. package/examples/evals/webhook-integration.json +52 -0
  110. package/examples/exports/a11y.skill-md.md +80 -0
  111. package/examples/exports/debugging.skill-md.md +80 -0
  112. package/examples/exports/refactor.skill-md.md +78 -0
  113. package/examples/exports/testing-strategy.skill-md.md +81 -0
  114. package/examples/projects/markdown-static-site/README.md +115 -0
  115. package/examples/projects/markdown-static-site/skills/content-source-router/SKILL.md +131 -0
  116. package/examples/projects/markdown-static-site/skills/image-optimization-pipeline-config/SKILL.md +132 -0
  117. package/examples/projects/markdown-static-site/skills/link-rot-detection/SKILL.md +103 -0
  118. package/examples/projects/markdown-static-site/skills/markdown-post-frontmatter-validation/SKILL.md +133 -0
  119. package/examples/projects/markdown-static-site/skills/migrate-posts-to-v2-frontmatter/SKILL.md +140 -0
  120. package/examples/projects/saas-stripe-postgres/README.md +208 -0
  121. package/examples/projects/saas-stripe-postgres/db/migrations/0004_canonicalize_orders.sql +37 -0
  122. package/examples/projects/saas-stripe-postgres/db/schema.sql +112 -0
  123. package/examples/projects/saas-stripe-postgres/skills/migrate-orders-to-canonical-schema/SKILL.md +149 -0
  124. package/examples/projects/saas-stripe-postgres/skills/nextjs-server-action-validation/SKILL.md +154 -0
  125. package/examples/projects/saas-stripe-postgres/skills/payment-provider-router/SKILL.md +153 -0
  126. package/examples/projects/saas-stripe-postgres/skills/postgres-rls-pattern/SKILL.md +163 -0
  127. package/examples/projects/saas-stripe-postgres/skills/stripe-webhook-signature-verification/SKILL.md +137 -0
  128. package/examples/protocol/skill-metadata-template.md +301 -0
  129. package/examples/protocol/skills.manifest.sample.json +13245 -0
  130. package/examples/skill-metadata-template.md +317 -0
  131. package/examples/skills.manifest.sample.json +13519 -0
  132. package/examples/tests/v3-1-skos-fixture/SKILL.md +93 -0
  133. package/marketplace/README.md +17 -0
  134. package/marketplace/skills/a11y/SKILL.md +66 -0
  135. package/marketplace/skills/acid-fundamentals/SKILL.md +106 -0
  136. package/marketplace/skills/agent-engineering/SKILL.md +386 -0
  137. package/marketplace/skills/agent-eval-design/SKILL.md +55 -0
  138. package/marketplace/skills/ai-native-development/SKILL.md +294 -0
  139. package/marketplace/skills/api-design/SKILL.md +60 -0
  140. package/marketplace/skills/architecture-decision-records/SKILL.md +55 -0
  141. package/marketplace/skills/background-jobs/SKILL.md +265 -0
  142. package/marketplace/skills/bounded-context-mapping/SKILL.md +55 -0
  143. package/marketplace/skills/cap-theorem-tradeoffs/SKILL.md +127 -0
  144. package/marketplace/skills/client-server-boundary/SKILL.md +187 -0
  145. package/marketplace/skills/code-review/SKILL.md +120 -0
  146. package/marketplace/skills/color-system-design/SKILL.md +43 -0
  147. package/marketplace/skills/component-architecture/SKILL.md +126 -0
  148. package/marketplace/skills/compression/SKILL.md +112 -0
  149. package/marketplace/skills/conceptual-modeling/SKILL.md +181 -0
  150. package/marketplace/skills/connection-pooling/SKILL.md +105 -0
  151. package/marketplace/skills/constraint-awareness/SKILL.md +287 -0
  152. package/marketplace/skills/content-monitor/SKILL.md +209 -0
  153. package/marketplace/skills/context-engineering/SKILL.md +320 -0
  154. package/marketplace/skills/context-graph/SKILL.md +174 -0
  155. package/marketplace/skills/context-management/SKILL.md +174 -0
  156. package/marketplace/skills/context-window/SKILL.md +239 -0
  157. package/marketplace/skills/contract-testing/SKILL.md +120 -0
  158. package/marketplace/skills/cron-scheduling/SKILL.md +223 -0
  159. package/marketplace/skills/dark-mode-implementation/SKILL.md +47 -0
  160. package/marketplace/skills/data-modeling/SKILL.md +59 -0
  161. package/marketplace/skills/data-modeling-fundamentals/SKILL.md +117 -0
  162. package/marketplace/skills/database-migration/SKILL.md +429 -0
  163. package/marketplace/skills/debugging/SKILL.md +67 -0
  164. package/marketplace/skills/dependency-architecture/SKILL.md +58 -0
  165. package/marketplace/skills/design-module-composition/SKILL.md +43 -0
  166. package/marketplace/skills/design-system-architecture/SKILL.md +61 -0
  167. package/marketplace/skills/design-thinking/SKILL.md +44 -0
  168. package/marketplace/skills/diagnosis/SKILL.md +296 -0
  169. package/marketplace/skills/diff-analysis/SKILL.md +188 -0
  170. package/marketplace/skills/e2e-test-design/SKILL.md +113 -0
  171. package/marketplace/skills/entity-relationship-modeling/SKILL.md +218 -0
  172. package/marketplace/skills/epistemic-grounding/SKILL.md +112 -0
  173. package/marketplace/skills/error-boundary/SKILL.md +235 -0
  174. package/marketplace/skills/error-tracking/SKILL.md +261 -0
  175. package/marketplace/skills/eval-driven-development/SKILL.md +147 -0
  176. package/marketplace/skills/evaluation/SKILL.md +113 -0
  177. package/marketplace/skills/event-contract-design/SKILL.md +60 -0
  178. package/marketplace/skills/event-storming/SKILL.md +56 -0
  179. package/marketplace/skills/form-ux-architecture/SKILL.md +60 -0
  180. package/marketplace/skills/framework-fit-analysis/SKILL.md +59 -0
  181. package/marketplace/skills/frontend-architecture/SKILL.md +43 -0
  182. package/marketplace/skills/generative-ui/SKILL.md +118 -0
  183. package/marketplace/skills/graph-audit/SKILL.md +81 -0
  184. package/marketplace/skills/guardrails/SKILL.md +118 -0
  185. package/marketplace/skills/hooks-patterns/SKILL.md +185 -0
  186. package/marketplace/skills/http-semantics/SKILL.md +136 -0
  187. package/marketplace/skills/ideation/SKILL.md +41 -0
  188. package/marketplace/skills/indexing-strategy/SKILL.md +108 -0
  189. package/marketplace/skills/information-architecture/SKILL.md +59 -0
  190. package/marketplace/skills/integration-test-design/SKILL.md +111 -0
  191. package/marketplace/skills/intent-recognition/SKILL.md +136 -0
  192. package/marketplace/skills/interaction-feedback/SKILL.md +59 -0
  193. package/marketplace/skills/interaction-patterns/SKILL.md +59 -0
  194. package/marketplace/skills/journey-mapping/SKILL.md +41 -0
  195. package/marketplace/skills/keywords/SKILL.md +213 -0
  196. package/marketplace/skills/knowledge-modeling/SKILL.md +232 -0
  197. package/marketplace/skills/layout-composition/SKILL.md +59 -0
  198. package/marketplace/skills/linguistics/SKILL.md +429 -0
  199. package/marketplace/skills/lint-overlay/SKILL.md +76 -0
  200. package/marketplace/skills/mental-models/SKILL.md +126 -0
  201. package/marketplace/skills/merge-queue/SKILL.md +94 -0
  202. package/marketplace/skills/methodology/SKILL.md +317 -0
  203. package/marketplace/skills/microcopy/SKILL.md +232 -0
  204. package/marketplace/skills/middleware-patterns/SKILL.md +363 -0
  205. package/marketplace/skills/mobile-responsive-ux/SKILL.md +287 -0
  206. package/marketplace/skills/mutation-testing/SKILL.md +112 -0
  207. package/marketplace/skills/naming-conventions/SKILL.md +112 -0
  208. package/marketplace/skills/observability-modeling/SKILL.md +59 -0
  209. package/marketplace/skills/ontology-modeling/SKILL.md +67 -0
  210. package/marketplace/skills/owasp-security/SKILL.md +153 -0
  211. package/marketplace/skills/pattern-recognition/SKILL.md +472 -0
  212. package/marketplace/skills/performance-budgets/SKILL.md +185 -0
  213. package/marketplace/skills/performance-engineering/SKILL.md +58 -0
  214. package/marketplace/skills/performance-testing/SKILL.md +125 -0
  215. package/marketplace/skills/printify/SKILL.md +42 -0
  216. package/marketplace/skills/prioritization/SKILL.md +118 -0
  217. package/marketplace/skills/problem-framing/SKILL.md +41 -0
  218. package/marketplace/skills/problem-locating-solving/SKILL.md +203 -0
  219. package/marketplace/skills/project-knowledge-extraction/SKILL.md +54 -0
  220. package/marketplace/skills/prompt-craft/SKILL.md +134 -0
  221. package/marketplace/skills/prompt-injection-defense/SKILL.md +132 -0
  222. package/marketplace/skills/property-based-testing/SKILL.md +100 -0
  223. package/marketplace/skills/prototyping/SKILL.md +43 -0
  224. package/marketplace/skills/query-optimization/SKILL.md +144 -0
  225. package/marketplace/skills/real-time-updates/SKILL.md +324 -0
  226. package/marketplace/skills/ref-patterns/SKILL.md +284 -0
  227. package/marketplace/skills/refactor/SKILL.md +65 -0
  228. package/marketplace/skills/rendering-models/SKILL.md +142 -0
  229. package/marketplace/skills/replication-patterns/SKILL.md +110 -0
  230. package/marketplace/skills/research-synthesis/SKILL.md +41 -0
  231. package/marketplace/skills/route-handler-design/SKILL.md +347 -0
  232. package/marketplace/skills/schema-evolution/SKILL.md +140 -0
  233. package/marketplace/skills/security-fundamentals/SKILL.md +139 -0
  234. package/marketplace/skills/semantic-center/SKILL.md +194 -0
  235. package/marketplace/skills/semantic-relations/SKILL.md +250 -0
  236. package/marketplace/skills/semantics/SKILL.md +366 -0
  237. package/marketplace/skills/semiotics/SKILL.md +230 -0
  238. package/marketplace/skills/seo-strategy/SKILL.md +260 -0
  239. package/marketplace/skills/server-actions-design/SKILL.md +243 -0
  240. package/marketplace/skills/server-components-design/SKILL.md +190 -0
  241. package/marketplace/skills/sharding-strategy/SKILL.md +123 -0
  242. package/marketplace/skills/shopify/SKILL.md +42 -0
  243. package/marketplace/skills/skill-infrastructure/SKILL.md +320 -0
  244. package/marketplace/skills/skill-router/SKILL.md +71 -0
  245. package/marketplace/skills/skill-scaffold/SKILL.md +105 -0
  246. package/marketplace/skills/snapshot-testing/SKILL.md +120 -0
  247. package/marketplace/skills/spec-driven-development/SKILL.md +148 -0
  248. package/marketplace/skills/state-machine-modeling/SKILL.md +56 -0
  249. package/marketplace/skills/state-management/SKILL.md +134 -0
  250. package/marketplace/skills/streaming-architecture/SKILL.md +194 -0
  251. package/marketplace/skills/summarization/SKILL.md +156 -0
  252. package/marketplace/skills/suspense-patterns/SKILL.md +265 -0
  253. package/marketplace/skills/system-interface-contracts/SKILL.md +59 -0
  254. package/marketplace/skills/task-analysis/SKILL.md +201 -0
  255. package/marketplace/skills/taxonomy-design/SKILL.md +66 -0
  256. package/marketplace/skills/test-coverage-strategy/SKILL.md +108 -0
  257. package/marketplace/skills/test-doubles-design/SKILL.md +98 -0
  258. package/marketplace/skills/test-driven-development/SKILL.md +96 -0
  259. package/marketplace/skills/testing-strategy/SKILL.md +67 -0
  260. package/marketplace/skills/theme-system-design/SKILL.md +43 -0
  261. package/marketplace/skills/tool-call-flow/SKILL.md +229 -0
  262. package/marketplace/skills/tool-call-strategy/SKILL.md +292 -0
  263. package/marketplace/skills/transaction-isolation/SKILL.md +98 -0
  264. package/marketplace/skills/type-safety/SKILL.md +177 -0
  265. package/marketplace/skills/typography-system/SKILL.md +43 -0
  266. package/marketplace/skills/usability-testing/SKILL.md +43 -0
  267. package/marketplace/skills/user-research/SKILL.md +43 -0
  268. package/marketplace/skills/vercel-composition-patterns/SKILL.md +157 -0
  269. package/marketplace/skills/version-control/SKILL.md +233 -0
  270. package/marketplace/skills/visual-design-foundations/SKILL.md +59 -0
  271. package/marketplace/skills/visual-hierarchy/SKILL.md +43 -0
  272. package/marketplace/skills/webhook-integration/SKILL.md +331 -0
  273. package/marketplace/skills/writing-humanizer/SKILL.md +380 -0
  274. package/package.json +67 -0
  275. package/schemas/manifest.schema.json +811 -0
  276. package/schemas/manifest.v2.schema.json +164 -0
  277. package/schemas/manifest.v3.schema.json +758 -0
  278. package/schemas/manifest.v4.schema.json +755 -0
  279. package/schemas/manifest.v5.schema.json +755 -0
  280. package/schemas/manifest.v6.schema.json +811 -0
  281. package/schemas/skill.context.jsonld +279 -0
  282. package/schemas/skill.schema.json +919 -0
  283. package/schemas/skill.v2.schema.json +201 -0
  284. package/schemas/skill.v3.schema.json +827 -0
  285. package/schemas/skill.v4.schema.json +822 -0
  286. package/schemas/skill.v5.schema.json +830 -0
  287. package/schemas/skill.v6.schema.json +946 -0
  288. package/schemas/vocabulary/keywords.json +180 -0
  289. package/schemas/vocabulary/workspace_tags.json +23 -0
  290. package/scripts/__tests__/migrate-skill-v2-to-v3.test.js +161 -0
  291. package/scripts/__tests__/migrate-skill-v3-to-v4.test.js +158 -0
  292. package/scripts/__tests__/test-export-parser-drift.js +149 -0
  293. package/scripts/__tests__/test-marketplace-export.js +114 -0
  294. package/scripts/__tests__/test-router-paths.js +82 -0
  295. package/scripts/__tests__/test-stability-promotion.js +244 -0
  296. package/scripts/__tests__/test-v3-1-alias-contract.js +109 -0
  297. package/scripts/__tests__/test-v3-1-skos-runtime.js +116 -0
  298. package/scripts/backfill-schema-version.js +198 -0
  299. package/scripts/build-field-reference.js +160 -0
  300. package/scripts/build-retrieval-baseline.js +511 -0
  301. package/scripts/check-markdown-links.js +211 -0
  302. package/scripts/check-protocol-consistency.js +979 -0
  303. package/scripts/export-marketplace-skills.js +610 -0
  304. package/scripts/export-skill.js +374 -0
  305. package/scripts/generate-manifest.js +787 -0
  306. package/scripts/lib/alias-contract.js +83 -0
  307. package/scripts/lib/audit-prompt-builder.js +771 -0
  308. package/scripts/lib/mock-grader.js +134 -0
  309. package/scripts/lib/parse-frontmatter.js +429 -0
  310. package/scripts/lib/roots.js +119 -0
  311. package/scripts/lint/check-archetype-sections.js +185 -0
  312. package/scripts/lint/check-category-enum.js +83 -0
  313. package/scripts/lint/check-routing-eval.js +146 -0
  314. package/scripts/lint/check-routing-quality.js +211 -0
  315. package/scripts/lint/check-stability-promotion.js +220 -0
  316. package/scripts/lint/format-code-frame.js +206 -0
  317. package/scripts/marketplace-install.js +125 -0
  318. package/scripts/migrate-category-to-enum.js +169 -0
  319. package/scripts/migrate-skill-v2-to-v3.js +424 -0
  320. package/scripts/migrate-skill-v3-to-v4.js +200 -0
  321. package/scripts/migrate-skill-v5-to-v6.js +304 -0
  322. package/scripts/restructure-by-category.js +85 -0
  323. package/scripts/seed-publication-classification.js +282 -0
  324. package/scripts/skill-audit.js +893 -0
  325. package/scripts/skill-graph-drift.js +483 -0
  326. package/scripts/skill-graph-route.js +766 -0
  327. package/scripts/skill-graph-routing-eval.js +393 -0
  328. package/scripts/skill-lint.js +1317 -0
  329. package/scripts/skill-overlap.js +213 -0
  330. package/scripts/verify-skill-md-export.js +201 -0
@@ -0,0 +1,317 @@
1
+ ---
2
+ # yaml-language-server: $schema=https://skillgraph.dev/schemas/skill.v6.schema.json
3
+ #
4
+ # ============================================================================
5
+ # SCAFFOLD — this file is a skill template, not a production skill.
6
+ # ============================================================================
7
+ #
8
+ # Adopters COPY this file to `skills/<new-name>/SKILL.md` and then edit it to
9
+ # author a new skill. Every `# TEMPLATE NOTE:` YAML comment and every
10
+ # `> **TEMPLATE NOTE:**` body blockquote is authoring scaffolding that MUST be
11
+ # stripped from the derived copy before shipping.
12
+ #
13
+ # Field values here are deliberate authoring-time defaults, not aspirational
14
+ # targets. In particular `eval_artifacts: planned`, `eval_state: unverified`,
15
+ # and `routing_eval: absent` (see comment on the routing_eval line below)
16
+ # encode the correct starting state for a brand-new un-verified skill —
17
+ # flipping them to `present` on this scaffold would make every derived skill
18
+ # inherit a false attestation until the author noticed.
19
+ #
20
+ # Build automation treats this file specially: the sample manifest
21
+ # generator ingests it only under `--include-template`, and the library-wide
22
+ # harness counts it as the 9th "skill" only when the flag is set. It is NOT
23
+ # routable in day-to-day skill dispatch — `scope: reference` keeps it out of
24
+ # the normal routing pool.
25
+ # ============================================================================
26
+ schema_version: 6
27
+ name: skill-metadata-template
28
+ # TEMPLATE NOTE: Be pushy in your description — Claude tends to under-trigger
29
+ # skills, so descriptions should read as commands ("Use when X", "Activate
30
+ # this skill whenever Y") not as polite suggestions ("This skill provides Z").
31
+ # State both WHAT the skill does AND WHEN to use it, and include an explicit
32
+ # negative boundary ("Do NOT use for ..." with a pointer to the right
33
+ # alternative skill). The 3-test quality gate for descriptions is:
34
+ # (1) names a real domain object (file path, function name, route),
35
+ # (2) has an explicit "Do NOT use for X (use Y)" exclusion clause,
36
+ # (3) names a concrete trigger (code pattern, file path, command).
37
+ # Keep the description concise enough to route well, but do not treat runtime
38
+ # wording guidelines as protocol limits.
39
+ # for Anthropic's own guidance on pushy descriptions.
40
+ description: "Use when creating a new SKILL.md, adapting an existing skill to a different archetype, or teaching an author the canonical frontmatter and body structure. Covers schema-conformant frontmatter, archetype-aware body layout, semantic-layer discipline (description vs Coverage), teaching-layer mechanics (TEMPLATE NOTE blockquotes and YAML comments), and the authoring gate. Do NOT use when modifying an already-written skill (edit that skill directly) or when writing general technical documentation (use the documentation skill)."
41
+ version: 1.0.0
42
+ type: capability
43
+ # TEMPLATE NOTE: category is the closed v5 enum — exactly one of:
44
+ # foundations / engineering / design / quality / agent / product. See
45
+ # docs/skill-metadata-protocol.md § Category and docs/migrations/v4-to-v5.md
46
+ # for the migration mapping. The scaffold itself is an agent-system authoring
47
+ # tool, hence `agent`; replace with the correct value for your subject when
48
+ # adapting.
49
+ category: agent
50
+ # TEMPLATE NOTE: domain is the OPTIONAL hierarchical domain path (slash-
51
+ # delimited, lowercase kebab-case segments). Use it only when the skill library
52
+ # is large enough that a tree structure helps readers find related skills.
53
+ # Remove this line entirely when the flat `category` above is sufficient.
54
+ domain: agent/skill-system
55
+ scope: reference
56
+ owner: skill-graph-maintainer
57
+ freshness: "2026-04-17"
58
+ # TEMPLATE NOTE: drift_check is an object. `last_verified` is required.
59
+ # `truth_source_hashes` is optional — record it with `node scripts/skill-graph-drift.js
60
+ # --record --apply <skill-dir>`.
61
+ drift_check:
62
+ last_verified: "2026-04-17"
63
+ # TEMPLATE NOTE: eval_artifacts, eval_state, and routing_eval are the three
64
+ # orthogonal eval-health axes introduced in schema_version 2. Set eval_artifacts
65
+ # to `planned` only as a temporary state — move to `present` once the artifact
66
+ # ships. Set eval_state to `unverified` when no run has been recorded yet.
67
+ #
68
+ # routing_eval: `present` is LINT-ENFORCED since [Unreleased]. Setting `present`
69
+ # requires (1) populated `examples` + `anti_examples` below, AND (2) a passing
70
+ # run of `node scripts/skill-graph-routing-eval.js --skill <name>`. Lint check
71
+ # 12 surfaces each failing prompt. Default to `absent` when authoring; flip
72
+ # to `present` only after the harness agrees. See docs/field-reference.md §
73
+ # routing_eval for the full enforcement contract.
74
+ #
75
+ # SCAFFOLD NOTE — on this specific file (`examples/skill-metadata-template.md`),
76
+ # routing_eval MUST stay `absent` even though the harness happens to report
77
+ # every case passing. The scaffold's job is to model the correct authoring-
78
+ # time default for a brand-new un-verified skill. If this line were flipped
79
+ # to `present`, every skill copy-pasted from the scaffold would inherit a
80
+ # false attestation until the author noticed and downgraded. In your
81
+ # derived copy, leave this line `absent` at first commit; flip it to
82
+ # `present` only after `node scripts/skill-graph-routing-eval.js --skill
83
+ # <your-skill-name>` exits 0 on YOUR skill's own examples + anti_examples.
84
+ eval_artifacts: planned
85
+ eval_state: unverified
86
+ routing_eval: absent
87
+ # TEMPLATE NOTE: Optional. Populate eval_last_run only after the skill has a
88
+ # real eval receipt (scorecard, grader history, CI run). Leave it absent for a
89
+ # brand-new skill with eval_state: unverified.
90
+ # eval_last_run:
91
+ # at: "2026-05-12T09:30:00Z"
92
+ # status: pass
93
+ # runner: "node scripts/skill-audit.js --graded"
94
+ # receipt: "examples/audits/<skill>/scorecard.md"
95
+ # TEMPLATE NOTE: stability values are `experimental` / `stable` / `frozen` /
96
+ # `deprecated`. When you move a skill to `deprecated`, the schema's `allOf`
97
+ # rule REQUIRES you to also add `superseded_by: <replacement-skill-name>` —
98
+ # without it the skill fails validation. A deprecated + superseded skill looks
99
+ # like:
100
+ #
101
+ # stability: deprecated
102
+ # superseded_by: new-skill-name
103
+ #
104
+ # The replacement must be a real skill in the same library. Omit `superseded_by`
105
+ # for any stability other than `deprecated`. See `docs/field-reference.md §
106
+ # superseded_by` for the full rules and the schema's `allOf` enforcement.
107
+ stability: stable
108
+ license: MIT
109
+ # TEMPLATE NOTE: compatibility is an object. Prefer structured fields
110
+ # (`runtimes`, `node`) over free-text `notes`.
111
+ compatibility:
112
+ notes: "Markdown, YAML, JSON Schema"
113
+ allowed-tools: Read Grep
114
+ # TEMPLATE NOTE: keywords are the pushy activation surface for authoring tasks.
115
+ # Keep terms that a human would type when starting a new skill.
116
+ keywords:
117
+ - how to write a SKILL.md file
118
+ - SKILL.md frontmatter YAML
119
+ - Skill Metadata Protocol v4
120
+ - Skill Graph schema fields
121
+ - skill archetype capability vs workflow
122
+ - skill description routing contract
123
+ - drift_check eval_artifacts routing_eval
124
+ - new skill scaffold template
125
+ - SKILL.md authoring gate
126
+ # TEMPLATE NOTE: triggers is present because this skill is routable by explicit label.
127
+ # Remove this block if your skill activates only by keyword or path matching.
128
+ triggers:
129
+ - skill-metadata-template
130
+ # TEMPLATE NOTE: paths is present because this template is the entry point whenever
131
+ # examples/skill-metadata-template.md itself is touched. the protocol supports gitignore-style negation —
132
+ # e.g. `- "!skills/experimental/**"` excludes a subdirectory from an otherwise broad
133
+ # glob. Remove this block if your skill is purely conceptual and has no file surface.
134
+ #
135
+ # Previous versions of this block also listed `skills/**/SKILL.md` but that glob is
136
+ # owned by `graph-audit` (the audit tooling that verifies every SKILL.md against the
137
+ # schema). Two skills claiming the same glob produces router ambiguity — the scope
138
+ # tiebreaker (`codebase` > `reference`) picks graph-audit anyway, and reference-scope
139
+ # skills are looked-up rather than path-routed. Lesson: each path glob should map to
140
+ # ONE canonical skill; `scripts/skill-overlap.js` surfaces duplicates as warnings.
141
+ paths:
142
+ - examples/skill-metadata-template.md
143
+ # TEMPLATE NOTE: examples is new in v0.5.0. 2–5 realistic user prompts the skill
144
+ # SHOULD activate for. Improves retrieval recall over keywords alone. Write in
145
+ # the user's voice, not imperative abstract form. See docs/field-reference.md §
146
+ # examples for full guidance. Omit this block for purely label-routed skills.
147
+ examples:
148
+ - "I'm writing a new skill from scratch — where do I start?"
149
+ - "how do I pick between capability and workflow for my skill type?"
150
+ - "what's the difference between description and the ## Coverage section?"
151
+ # TEMPLATE NOTE: anti_examples names near-miss prompts that should route ELSEWHERE.
152
+ # Pair with relations.boundary to tell the router which skill owns the confusable
153
+ # territory. Leave this block absent until you have seen the router misfire —
154
+ # speculative anti_examples rarely match reality. See docs/field-reference.md §
155
+ # anti_examples.
156
+ anti_examples:
157
+ - "refactor this skill to be more concise" # → refactor, not authoring
158
+ - "my skill's routing isn't activating — why?" # → skill-router, not template
159
+ # TEMPLATE NOTE: workspace_tags replaces v3 project_tags. Omit it for ambient / cross-project
160
+ # skills (the common case). Add literal project handles or semantic tags when
161
+ # the skill is relevant to a subset of projects in a multi-project workspace.
162
+ # See docs/field-decision-guide.md § 4 for the full decision tree.
163
+ #
164
+ # Example — this template is useful across every skill-authoring project, but
165
+ # the semantic tag scopes it to the Skill Graph authoring workflow rather than
166
+ # arbitrary project docs. A workspace config at `.skill-graph/config.json` can
167
+ # map your literal project handles to tag sets that include `skill-authoring`,
168
+ # so one tag reaches many projects.
169
+ workspace_tags:
170
+ - skill-authoring
171
+ relations:
172
+ # TEMPLATE NOTE: boundary items may be bare skill names OR `{skill, reason}`
173
+ # objects (v3). Reasons are strongly recommended — they make the boundary
174
+ # self-documenting.
175
+ #
176
+ # This scaffold ships with empty `boundary` and `verify_with` arrays because
177
+ # the skill-graph tooling repo has no peer skill library — lint resolves
178
+ # relation targets against `<workspace>/skills/`, which is intentionally
179
+ # empty here. In a real library, populate the arrays as shown in the
180
+ # commented example below (uncomment and replace with skills that exist in
181
+ # YOUR workspace):
182
+ #
183
+ # boundary:
184
+ # - skill: refactor
185
+ # reason: "refactor is behavior-preserving code modification, not skill authoring"
186
+ # - skill: skill-router
187
+ # reason: "skill-router dispatches between existing skills at request time; this template creates a NEW skill"
188
+ # - skill: graph-audit
189
+ # reason: "graph-audit verifies the authored metadata of an existing skill; this template is the authoring-time guide"
190
+ # verify_with:
191
+ # - documentation
192
+ boundary: []
193
+ verify_with: []
194
+ # TEMPLATE NOTE: grounding is REQUIRED for grounded skills that make concrete
195
+ # repo claims. Remove this entire block if your skill has grounding_mode: universal
196
+ # and does not anchor to truth sources in the repo.
197
+ grounding:
198
+ domain_object: Skill authoring for the Skill Metadata Protocol frontmatter
199
+ grounding_mode: repo_specific
200
+ truth_sources:
201
+ - path: docs/skill-metadata-protocol.md
202
+ anchor: the-52-authored-fields-grouped-by-purpose
203
+ note: "Protocol anatomy and field requiredness"
204
+ - path: schemas/skill.schema.json
205
+ line_range:
206
+ start: 480
207
+ end: 590
208
+ note: "Grounding schema shape"
209
+ # TEMPLATE NOTE: The canonical SKILL_AUDIT_CHECKLIST.md lives in the
210
+ # `skill-audit-loop` repo as of the 2026-05-16 monorepo split. The scaffold
211
+ # cannot anchor across repos, so the previous `SKILL_AUDIT_CHECKLIST.md`
212
+ # entry has been removed. See the `skill-audit-loop` README for the
213
+ # canonical authoring-gate checklist.
214
+ failure_modes:
215
+ - placeholder_sludge
216
+ - cargo_cult_meta_sections
217
+ - description_coverage_collapse
218
+ - authoring_gate_skipped
219
+ evidence_priority: repo_code_first
220
+ # TEMPLATE NOTE: portability declares which external agent runtimes this skill is
221
+ # known to work on. `readiness` is the operational rating: `declared` (claim only),
222
+ # `scripted` (export tooling exists), or `verified` (proven with a receipt). `targets`
223
+ # is the list of destination runtimes. Today the supported portable target is `skill-md`
224
+ # (see `schemas/skill.schema.json`). Other runtimes (cursor, windsurf, copilot, agents-md)
225
+ # were removed from the enum in 0.3.0 pending working transforms — re-add via RFC if
226
+ # adoption pressure appears. Remove this block if the skill is internal-only.
227
+ portability:
228
+ readiness: scripted
229
+ targets:
230
+ - skill-md
231
+ # TEMPLATE NOTE: lifecycle declares maintenance policy for the drift sentinel.
232
+ # `stale_after_days` flags the skill as STALE when more than N days have passed
233
+ # since `drift_check.last_verified`. Integration skills (third-party APIs) want
234
+ # shorter values; pure-concept skills want longer. Omit if staleness is not
235
+ # meaningful for your skill.
236
+ lifecycle:
237
+ stale_after_days: 180
238
+ review_cadence: quarterly
239
+ # TEMPLATE NOTE: runtime_telemetry is optional. It points at a JSONL feed of
240
+ # real-world success/failure receipts so consumers can corroborate or override
241
+ # `eval_state`. Omit the entire block when no feedback pipeline exists — the
242
+ # skill is still graded on authored `eval_state` and `eval_artifacts`.
243
+ # Each run receipt should carry at minimum `{ timestamp, skill, outcome }`.
244
+ # `metrics.sample_size` and `metrics.success_rate` are the aggregate summary;
245
+ # consumers may compute their own from the raw feed.
246
+ runtime_telemetry:
247
+ feedback_source: .skill-graph/telemetry/skill-metadata-template.jsonl
248
+ last_updated: "2026-04-17"
249
+ metrics:
250
+ sample_size: 0
251
+ success_rate: 0
252
+ ---
253
+
254
+ # Skill Template — Scaffold
255
+
256
+ > **SCAFFOLD — NOT A PRODUCTION SKILL.** This file is the starting point authors copy when creating a new skill. It lives at `examples/skill-metadata-template.md` deliberately; production skills live at `skills/<name>/SKILL.md`. The authoring flow is: copy → rename → adapt → strip teaching annotations → verify → commit. Until you have completed those steps, the file you are editing is a *scaffold*, not a skill.
257
+
258
+ > **TEMPLATE NOTE — HOW TO READ THIS FILE:** This file is a real, valid, schema-conformant Skill Metadata Protocol skill whose *subject* is skill authoring itself. Read it as a finished specimen of the contract, then adapt it by (1) renaming the identity, (2) rewriting `description`, `## Coverage`, `## Philosophy`, and `## Key Files` for your subject, (3) rewriting `## Verification` to be your skill's self-check, (4) removing any section or field that does not apply to your archetype, and (5) stripping the `> **TEMPLATE NOTE:**` blockquotes and `# TEMPLATE NOTE:` YAML comments — they are authoring scaffolding, never skill content. Never ship placeholder sludge (`your-skill-name`, `path/to/file`, `todo`). If a section does not apply, remove it — do not keep it and fill it with fake content.
259
+
260
+ > **TEMPLATE NOTE — CONDITIONAL FIELDS:** `extends` is valid only when `type: overlay`. `routing_bundles` only applies when routing-group ownership is part of the skill contract. `triggers` and `paths` are shown because this template is both label-routable and file-activated; most skills need only one. `grounding` is REQUIRED for `scope: codebase` skills; remove the block entirely for `scope: portable` or `scope: reference`. `workspace_tags` is optional — omit for ambient / cross-project skills. `lifecycle` is optional — omit when staleness is not meaningful. `runtime_telemetry` is optional — omit when no feedback pipeline exists. Generated manifest health fields belong in `skills.manifest.json`, not in the authored `SKILL.md`.
261
+
262
+ ## Coverage
263
+
264
+ - Frontmatter identity: `name`, `description`, `version`, `type`, `category`, `scope`, `owner`, and the governance fields required by every Skill Metadata Protocol skill
265
+ - Semantic layer discipline: how `description:` (routing contract, ≤ 3 sentences) differs from `## Coverage` (scope map, bulleted topic list) and why each must stay in its own layer
266
+ - Teaching-layer delivery: how to use `> **TEMPLATE NOTE:**` blockquotes and `# TEMPLATE NOTE:` YAML comments to teach authors without cargo-culting meta sections into every new skill
267
+ - Archetype-driven body structure: which `## H2` sections each of the four archetypes (`capability`, `workflow`, `router`, `overlay`) must contain
268
+ - Grounding via `grounding`: when a skill should declare truth sources and failure modes, and when it should stay `grounding_mode: universal`
269
+ - drift evidence: when to record `drift_check.truth_source_hashes` and how the drift sentinel consumes them
270
+ - v4 workspace tagging: when to add `workspace_tags`, when to leave a skill ambient, and how workspace semantic-tag mapping composes
271
+ - Adapter workflow: how to strip a template down, how to detect and remove cargo-culted meta, and how to verify a new skill against `schemas/skill.schema.json` before committing
272
+
273
+ ## Philosophy
274
+
275
+ A template teaches by example, not by placeholder. A concrete, internally consistent specimen of a finished skill is a more reliable authoring reference than any amount of abstract scaffolding. The teaching layer — meta-commentary about how to read and adapt the template — must live in structurally distinct slots that disappear when the author tightens a new skill, never in the `## H2` section slots that AI agents copy verbatim when adapting the file.
276
+
277
+ ## Key Files
278
+
279
+ | File | Purpose |
280
+ |---|---|
281
+ | `docs/skill-metadata-protocol.md` | Authoritative field semantics: required vs optional, conditional requiredness, relationship to the plain `SKILL.md` format, archetype section map |
282
+ | `schemas/skill.schema.json` | Enforceable JSON Schema for the frontmatter protocol |
283
+ | `../skill-audit-loop/SKILL_AUDIT_CHECKLIST.md` | The audit checklist every new skill should pass before commit (lives in the `skill-audit-loop` repo post-2026-05-16 monorepo split) |
284
+
285
+ ## Verification
286
+
287
+ Use this checklist as the authoring gate before committing a skill adapted from this template. Every item must pass.
288
+
289
+ - [ ] Every retained field has a real reason to exist in the new skill
290
+ - [ ] Every removed field was removed because of archetype or grounding mismatch, not laziness
291
+ - [ ] Body sections match the skill's declared archetype per `docs/skill-metadata-protocol.md § Archetype section map`
292
+ - [ ] `description:` is ≤ 3 sentences, contains pushy trigger phrases, and names an explicit negative boundary
293
+ - [ ] `## Coverage` is a scope map of distinct topics, not a one-line restate of the description
294
+ - [ ] `drift_check` is an object with `last_verified`; `truth_source_hashes` has been recorded when truth sources exist
295
+ - [ ] `compatibility` is an object (not a free-text string) when present
296
+ - [ ] `eval_artifacts` matches actual artifact presence (if `present`, an eval file exists under `examples/evals/` or alongside the skill); `eval_state` reflects whether a real passing run has been recorded; `routing_eval` reflects whether trigger/routing coverage is explicitly checked
297
+ - [ ] All `relations` entries point to skills that exist in the target repo; `boundary` entries with unclear rationale use the `{skill, reason}` form
298
+ - [ ] `workspace_tags` is present when the skill is project-specific OR absent when the skill is ambient — not left at a stale value
299
+ - [ ] No placeholder sludge (`your-skill-name`, `path/to/file`, `todo`) remains
300
+ - [ ] No `> **TEMPLATE NOTE:**` blockquotes or `# TEMPLATE NOTE:` YAML comments remain in the adapted skill
301
+ - [ ] The adapted skill validates against `schemas/skill.schema.json` as a real skill
302
+
303
+ ## Do NOT Use When
304
+
305
+ | Instead of this template | Use | Why |
306
+ |---|---|---|
307
+ | `skill-metadata-template` | the target skill directly | Editing an existing skill is refactor-in-place, not authoring from a template |
308
+ | `skill-metadata-template` | `documentation` | General technical writing is not skill authoring; use `documentation` for docs, guides, and specs |
309
+ | `skill-metadata-template` | `docs/skill-metadata-protocol.md` | When you need the full field reference, read the contract document directly |
310
+
311
+ ## References
312
+
313
+ - `docs/skill-metadata-protocol.md § Relationship to the SKILL.md format` - how Skill Metadata Protocol extends the base format
314
+ - `docs/skill-metadata-protocol.md § Example Template Rule` — the no-placeholder-sludge rule this template enforces
315
+ - `docs/skill-metadata-protocol.md § Archetype section map` — required H2 sections per archetype
316
+ - `docs/manifest-field-mapping.md § Migration Note — v2 → v3` — the field-name cleanup the v4 bump introduced
317
+ - `../skill-audit-loop/SKILL_AUDIT_CHECKLIST.md` — the checklist this template's Verification section is derived from (lives in the `skill-audit-loop` repo post-2026-05-16 monorepo split)