@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,190 @@
1
+ # Skill Graph Glossary
2
+
3
+ > Canonical definitions for every domain term used by Skill Metadata Protocol and Skill Graph. Field-reference doc links to these entries instead of redefining terms inline.
4
+
5
+ ## Relation predicates
6
+
7
+ ### `adjacent` *(deprecated alias of `related`)*
8
+
9
+ The v3.0 name for the symmetric associative relation. Still valid in v3.x; lint emits a soft warning pointing at `related`. Removal target: v4 (ADR 0001).
10
+
11
+ ### `related`
12
+
13
+ *v3.1 preferred name; W3C mapping: `skos:related`*
14
+
15
+ Symmetric co-read relation. Use for skills that teach the same surface from different angles — reading one prompts a reader to want the other. Relation is symmetric in intent but the schema does not enforce reciprocity; lint-level reciprocity checking is a future feature. Max 5 entries recommended per skill to avoid hub-and-spoke clutter.
16
+
17
+ ### `boundary`
18
+
19
+ Routing-layer anti-ownership edge. Use for skills this skill explicitly does NOT own, where the router should hand a near-miss prompt to a different skill. This relation is directional and Skill-Graph-specific; it is intentionally weaker than formal OWL disjointness. Item shape: bare string OR `{skill, reason}`. Reasons are strongly recommended because routing handoffs need an explicit boundary rule.
20
+
21
+ ### `disjoint_with`
22
+
23
+ *v3.1 addition; W3C mapping: `owl:disjointWith`*
24
+
25
+ Formal class-disjointness assertion. Use only when the two skill concepts are genuinely disjoint in the ontology sense. This is rare in day-to-day routing; most wrong-skill prevention belongs in `boundary`. `disjoint_with` is symmetric in meaning even though the schema does not enforce reciprocal authoring.
26
+
27
+ ### `broader`
28
+
29
+ *v3.1 addition; W3C mapping: `skos:broader`*
30
+
31
+ Cross-skill generalisation. Use when this skill is a *specialisation* of another skill that is NOT its overlay parent (if it were, use `extends` instead). Closes the gap where `category` cannot express skill-to-skill generalisation across taxonomy branches.
32
+
33
+ Example: `react-best-practices` has `broader: [frontend]`.
34
+
35
+ ### `narrower`
36
+
37
+ *v3.1 addition; W3C mapping: `skos:narrower`*
38
+
39
+ Cross-skill specialisation. The inverse of `broader` — this skill is more general than the targets. Tooling can infer `narrower` from other skills' `broader` edges, so explicit authoring is optional.
40
+
41
+ ### `verify_with`
42
+
43
+ *W3C mapping: `prov:wasInformedBy`*
44
+
45
+ Skills that should be co-loaded for verification or that provide cross-checks. This is a provenance-style relation (PROV-O), not a classification relation — it captures "A's claims are informed by B's claims", not "A is-a B" or "A is-related-to B". Keep to 1-3 high-signal verifiers.
46
+
47
+ ### `depends_on`
48
+
49
+ *W3C mapping: `dcterms:requires`*
50
+
51
+ Pragmatic prerequisite — this skill requires the target conceptually or operationally. Item shape: bare string OR `{skill, min_version}`. Use `min_version` when the depended-on skill's contract has versioned and this skill's claims depend on a specific version.
52
+
53
+ ### `extends`
54
+
55
+ *W3C mapping: `prov:wasDerivedFrom`*
56
+
57
+ Overlay specialisation. Single-parent only (ADR 0001). Required when `type: overlay`. The overlay existentially depends on the parent: if the parent were deleted, the overlay loses its meaning (OntoClean +D; ADR 0003).
58
+
59
+ ## Archetypes
60
+
61
+ ### `capability`
62
+
63
+ *OntoClean: +R (rigid), +I (identity), +U (unity), -D (dependence)*
64
+
65
+ A standalone functional skill — what the agent *can do*. Has its own identity criteria and scope. Does not existentially depend on another skill.
66
+
67
+ Required body sections: `## Coverage`, `## Philosophy`, `## Verification`, `## Do NOT Use When`.
68
+
69
+ ### `workflow`
70
+
71
+ *OntoClean: +R, +I, +U, -D*
72
+
73
+ A step-by-step procedural skill. Adds `## Workflow` to the required body sections.
74
+
75
+ Required body sections: `## Coverage`, `## Philosophy`, `## Workflow`, `## Verification`, `## Do NOT Use When`.
76
+
77
+ ### `router`
78
+
79
+ *OntoClean: ~R (semi-rigid), -I, ~U, +D*
80
+
81
+ A skill that dispatches to other skills. Its essence is defined by what it dispatches to, so its identity shifts when the dispatch set shifts.
82
+
83
+ Required body sections: `## Coverage`, `## Routing Rules`, `## Do NOT Use When`.
84
+
85
+ ### `overlay`
86
+
87
+ *OntoClean: -R (anti-rigid), -I, -U, +D*
88
+
89
+ A skill that specialises another skill. The overlay's essence is "specialisation of X" — it vanishes if X is deleted. Identity is inherited from the parent, not redefined.
90
+
91
+ Required body sections: `## Coverage`, `## Overlay Rules`, `## Extends`, `## Do NOT Use When`. Also requires the `extends` field at the top level.
92
+
93
+ The key OntoClean constraint: an anti-rigid property cannot subsume a rigid one. In practice: an overlay *specialises* its parent, it does not *replace* the parent's identity. If an overlay's body rewrites the parent's `## Coverage`, it is not an overlay — it is a separate capability. Change the `type` accordingly.
94
+
95
+ ## Grounding modes
96
+
97
+ ### `repo_specific`
98
+
99
+ Skill claims are grounded in a specific codebase. `scope: codebase` requires this mode or `hybrid`. `grounding.truth_sources` lists concrete file paths.
100
+
101
+ ### `universal`
102
+
103
+ Skill claims are grounded in a language, framework, or specification that exists independently of any one codebase. `grounding.truth_sources` lists external specs or canonical docs.
104
+
105
+ ### `hybrid`
106
+
107
+ Skill claims blend `repo_specific` and `universal` grounding. Use when a framework's general rules interact with repo-specific patterns.
108
+
109
+ ## Evidence priority
110
+
111
+ ### `repo_code_first`
112
+
113
+ When repo code and general knowledge disagree, trust the repo code. Default for `scope: codebase` skills.
114
+
115
+ ### `general_knowledge_first`
116
+
117
+ When repo code and general knowledge disagree, trust the general knowledge. Rare; use for skills where the repo is known to be behind the standard.
118
+
119
+ ### `equal`
120
+
121
+ No presumption. The skill's `## Verification` section tells the reader how to resolve conflicts.
122
+
123
+ ## Portability readiness
124
+
125
+ ### `declared`
126
+
127
+ Portability is asserted in metadata only. The author claims the skill is portable; no export tooling has been run.
128
+
129
+ ### `scripted`
130
+
131
+ Export tooling exists for at least one target. `scripts/export-skill.js` can transform this skill.
132
+
133
+ ### `verified`
134
+
135
+ Export tooling exists AND the exported output has been checked against the target runtime. A receipt artifact (test run, import check) proves the exported skill works.
136
+
137
+ ## Eval-health triple
138
+
139
+ ### `eval_artifacts`
140
+
141
+ Does an eval file exist on disk? Values: `none` (no work started), `planned` (intended, not yet authored), `present` (file exists and is referenced).
142
+
143
+ ### `eval_state`
144
+
145
+ Have the evals been run and passed? Values: `unverified` (no passing run recorded), `passing` (recent green run), `monitored` (continuously verified by a live toolchain).
146
+
147
+ ### `routing_eval`
148
+
149
+ Is routing explicitly evaluated? Values: `absent`, `present`. `present` requires the harness at `scripts/skill-graph-routing-eval.js` to return PASS for the skill.
150
+
151
+ ## Identity terms
152
+
153
+ ### `urn`
154
+
155
+ *v3.1 addition, optional; target-required in v4. W3C mapping: `@id`.*
156
+
157
+ Globally-unique persistent identifier in the `urn:skill:<repo>:<skill-name>` form (RFC 8141). Unlocks FAIR Findability across repos. Consumers treat the URN as stable identity; `name` is display-layer.
158
+
159
+ ## Contract-version terms
160
+
161
+ ### `schema_version`
162
+
163
+ Integer or string-of-integer identifying the Skill Metadata Protocol version. Currently `3`. Bumps on breaking changes to field semantics, shape, or required-ness. Additive additions (new optional fields, new enum values, new lint warnings) do not bump the version.
164
+
165
+ ### `stability`
166
+
167
+ Lifecycle state of the skill: `experimental`, `stable`, `frozen`, `deprecated`. `deprecated` requires `superseded_by`.
168
+
169
+ ### `superseded_by`
170
+
171
+ Name of the skill that replaces this one. Mandatory when `stability: deprecated`. W3C mapping: `prov:wasRevisionOf` (inverted).
172
+
173
+ ## FAIR mapping
174
+
175
+ Each term below names the FAIR dimension(s) the Skill Graph field covers (Wilkinson et al. 2016):
176
+
177
+ - **Findable:** `name`, `urn`, `description`, `keywords`, `triggers`, `examples`, `category`, `domain`, `routing_bundles`
178
+ - **Accessible:** `paths`, `allowed-tools`, `compatibility`, `portability`
179
+ - **Interoperable:** `schema_version`, the JSON-LD `@context`, SPDX in `license`, all typed predicates
180
+ - **Reusable:** `license`, `compatibility`, `portability.targets`, `grounding.truth_sources`, `freshness`, `drift_check`, `lifecycle`, `grounding.evidence_priority`
181
+
182
+ ## References
183
+
184
+ - SKOS Reference — https://www.w3.org/TR/skos-reference/
185
+ - PROV-O — https://www.w3.org/TR/prov-o/
186
+ - Dublin Core Metadata Terms — https://www.dublincore.org/specifications/dublin-core/dcmi-terms/
187
+ - OntoClean (Guarino & Welty 2002) — Communications of the ACM 45(2):61-65
188
+ - FAIR Principles (Wilkinson et al. 2016) — Scientific Data 3:160018. DOI:10.1038/sdata.2016.18
189
+ - RFC 8141 (URN Syntax) — https://datatracker.ietf.org/doc/html/rfc8141
190
+ - SPDX License List — https://spdx.org/licenses/
@@ -0,0 +1,63 @@
1
+ # Head-Noun Glossary
2
+
3
+ > Type: Reference
4
+ > Purpose: Canonical head nouns for skill names, derived from current live usage.
5
+ > Last updated: 2026-05-17 (Wave 6 closure: `patterns` 6→7 from ref-patterns; Wave 6 batch 3 had bumped `design` 10→12 — the count fix resolved a pre-existing off-by-one — and `patterns` 5→6)
6
+
7
+ ## What this is
8
+
9
+ A skill name is a **noun-anchored compound**, not a verb. The **head noun** is the rightmost segment of the kebab-case name and tells the reader what kind of thing the skill is.
10
+
11
+ - `component-architecture` — head = `architecture`, modifier = `component`
12
+ - `client-server-boundary` — head = `boundary`, modifiers = `client`, `server`
13
+ - `epistemic-grounding` — head = `grounding`, modifier = `epistemic`
14
+
15
+ This file enumerates head nouns currently in use across the 102 skills in `skill-graph/skills/`, plus head nouns reserved for upcoming gap-fill skills. Adding a new head noun to a skill name should require justifying it here.
16
+
17
+ ## Why head nouns matter
18
+
19
+ Verb-prefix names (`polish-`, `audit-`, `critique-`, `improve-`) don't compose with the protocol's taxonomy axes. They look like commands, not concepts. Noun-anchored names compose: `category × head-noun` is a clean two-dimensional lookup that the router can reason about.
20
+
21
+ The skills that violate this convention live in `name-exceptions.yaml` with citations for why they're industry term-of-art.
22
+
23
+ ## Active head nouns (derived from live skill names)
24
+
25
+ | Head noun | Live count | Example skills |
26
+ |---|---|---|
27
+ | `modeling` | 7 | conceptual-modeling, data-modeling, entity-relationship-modeling, knowledge-modeling, ontology-modeling, state-machine-modeling, observability-modeling |
28
+ | `design` | 12 | api-design, agent-eval-design, color-system-design, event-contract-design, taxonomy-design, theme-system-design, test-doubles-design, integration-test-design, e2e-test-design, server-components-design, server-actions-design, route-handler-design |
29
+ | `testing` | 5 | contract-testing, mutation-testing, property-based-testing, snapshot-testing, performance-testing |
30
+ | `architecture` | 7 | component-architecture, dependency-architecture, design-system-architecture, form-ux-architecture, frontend-architecture, streaming-architecture, agent-engineering (umbrella) |
31
+ | `strategy` | 6 | testing-strategy, seo-strategy, tool-call-strategy, test-coverage-strategy, indexing-strategy, sharding-strategy |
32
+ | `development` | 4 | spec-driven-development, ai-native-development, eval-driven-development, test-driven-development |
33
+ | `engineering` | 3 | agent-engineering, performance-engineering, prompt-craft (suffix-style) |
34
+ | `analysis` | 3 | diff-analysis, research-synthesis, task-analysis |
35
+ | `patterns` | 7 | interaction-patterns, vercel-composition-patterns, replication-patterns, hooks-patterns, suspense-patterns, middleware-patterns, ref-patterns |
36
+ | `fundamentals` | 3 | acid-fundamentals, data-modeling-fundamentals, security-fundamentals |
37
+ | `mapping` | 2 | bounded-context-mapping, journey-mapping |
38
+ | `recognition` | 2 | intent-recognition, pattern-recognition |
39
+ | `composition` | 2 | design-module-composition, layout-composition |
40
+ | `boundary` | 2 | client-server-boundary, error-boundary |
41
+
42
+ ## Single-instance head nouns (kept for completeness)
43
+
44
+ `audit`, `cognition`, `craft`, `defense` (live in `prompt-injection-defense`), `evolution` (live in `schema-evolution`), `extraction`, `feedback`, `flow` (live in `tool-call-flow`), `foundations`, `governance`, `hierarchy`, `humanizer`, `infrastructure`, `isolation` (live in `transaction-isolation`), `management` (live in `state-management`), `migration`, `models` (live in `mental-models`), `monitor`, `optimization` (live in `query-optimization`), `palette`, `pooling` (live in `connection-pooling`), `queue`, `relations`, `review`, `router`, `routing`, `scaffold`, `scheduling`, `semantics`, `semiotics`, `solving`, `storming`, `summarization`, `synthesis`, `system`, `thinking`, `tracking`, `tradeoffs` (live in `cap-theorem-tradeoffs`), `ui` (live in `generative-ui`), `updates`, `ux`, `window`.
45
+
46
+ ## Reserved head nouns (gap-fill skills, not yet authored)
47
+
48
+ All Wave 1–5 reservations are now live in source. New gap-fill waves will populate this section.
49
+
50
+ _(empty — all reservations promoted to Active or Single-instance lists)_
51
+
52
+ ## Rules
53
+
54
+ 1. **Use an existing head noun when one fits.** Don't invent new ones for nominal variation.
55
+ 2. **One head noun per skill name.** The compound is `<modifier(s)>-<head>`. Modifiers can be multi-segment (`client-server-`), the head is always the last segment.
56
+ 3. **No verb prefixes.** Banned in the head position and as standalone names: `audit-X`, `polish-X`, `critique-X`, `improve-X`, `fix-X`. Exception: when the verb has a noun reading that is the industry term-of-art (e.g. `code-review`, `design-review`, `event-storming`). These must be enumerated in `docs/name-exceptions.yaml` with a citation.
57
+ 4. **Adding a new head noun.** Update this glossary in the same commit as the skill, with the live example and a one-line rationale. Drift between glossary and live names is a lint warning candidate.
58
+
59
+ ## See also
60
+
61
+ - `docs/name-exceptions.yaml` — Established industry term-of-art skills that violate the head-noun rule.
62
+ - `SKILL_METADATA_PROTOCOL.md` § `name` — the schema pattern (`^[a-z0-9][a-z0-9-/:]*$`) is the shape; this glossary is the policy.
63
+ - `scripts/lint/check-category-enum.js` — companion lint check for the category axis.
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,155 @@
1
+ # GitHub Actions Integration
2
+
3
+ Add Skill Graph lint to your own repository's CI pipeline.
4
+
5
+ > **Package shape.** The GitHub repository is `jacob-balslev/skill-graph`. The npm package is `@skill-graph/cli`, and it exposes the `skill-graph` binary. The CLI is a thin dispatcher over the same zero-dependency scripts used in this repo, so local development, CI, and installed usage share one code path.
6
+
7
+ ## Installation (npm package)
8
+
9
+ After the package is published, install it as a dev dependency and run the binary through `npx`:
10
+
11
+ ```bash
12
+ npm install --save-dev @skill-graph/cli
13
+ ```
14
+
15
+ ```yaml
16
+ # .github/workflows/skill-graph-lint.yml
17
+ name: Skill Graph Lint
18
+
19
+ on:
20
+ push:
21
+ branches: [main]
22
+ paths:
23
+ - 'skills/**'
24
+ pull_request:
25
+ paths:
26
+ - 'skills/**'
27
+
28
+ jobs:
29
+ lint:
30
+ name: Lint skills
31
+ runs-on: ubuntu-latest
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+ - uses: actions/setup-node@v4
35
+ with:
36
+ node-version: '20'
37
+ - name: Install Skill Graph
38
+ run: npm install --save-dev @skill-graph/cli
39
+ - name: Run skill lint
40
+ run: npx skill-graph lint
41
+ - name: Verify SKILL.md export
42
+ run: npx skill-graph export-verify
43
+ ```
44
+
45
+ For local release testing before npm publish, run `npm link` from a clone of this repo, then use `skill-graph lint`, `skill-graph manifest`, `skill-graph route`, and `skill-graph drift` from the consumer repository.
46
+
47
+ ## Installation (clone and vendor)
48
+
49
+ For air-gapped environments or repos with strict supply-chain policy, copy the self-contained scripts into your repository and commit them alongside your skills. The scripts use only Node built-ins once vendored.
50
+
51
+ ### 1. Vendor the scripts
52
+
53
+ From the Skill Graph repo, copy these paths into your own repository under a path you control (example uses `tools/skill-graph/`):
54
+
55
+ ```
56
+ scripts/skill-lint.js → tools/skill-graph/skill-lint.js
57
+ scripts/lib/ → tools/skill-graph/lib/
58
+ scripts/lint/ → tools/skill-graph/lint/
59
+ scripts/check-protocol-consistency.js (optional) → tools/skill-graph/check-protocol-consistency.js
60
+ scripts/generate-manifest.js (optional) → tools/skill-graph/generate-manifest.js
61
+ scripts/export-skill.js (optional) → tools/skill-graph/export-skill.js
62
+ schemas/skill.schema.json → tools/skill-graph/schemas/skill.schema.json
63
+ schemas/manifest.schema.json → tools/skill-graph/schemas/manifest.schema.json
64
+ ```
65
+
66
+ The lint script resolves its schema location relative to its own file path, so keep the `schemas/` directory alongside the scripts in whichever target layout you pick.
67
+
68
+ ### 2. Commit and reference from CI
69
+
70
+ ```yaml
71
+ # .github/workflows/skill-graph-lint.yml
72
+ name: Skill Graph Lint
73
+
74
+ on:
75
+ push:
76
+ branches: [main]
77
+ paths:
78
+ - 'skills/**'
79
+ - 'tools/skill-graph/**'
80
+ pull_request:
81
+ paths:
82
+ - 'skills/**'
83
+ - 'tools/skill-graph/**'
84
+
85
+ jobs:
86
+ lint:
87
+ name: Lint skills
88
+ runs-on: ubuntu-latest
89
+ steps:
90
+ - uses: actions/checkout@v4
91
+ - uses: actions/setup-node@v4
92
+ with:
93
+ node-version: '20'
94
+ - name: Run skill lint
95
+ run: node tools/skill-graph/skill-lint.js
96
+ ```
97
+
98
+ This triggers on any PR or push to `main` that touches a file under `skills/` or the vendored scripts. It exits 1 (failing the job) when any skill file has a schema or structural error.
99
+
100
+ **Trade-off.** No external dependency. You own the script and update it manually by re-copying from the Skill Graph repo when you want a newer version. This is the right path for air-gapped environments and repos with strict supply-chain policies.
101
+
102
+ ### 3. Pointing at a non-default skills directory
103
+
104
+ If your skills live somewhere other than `skills/`, either declare the roots in `.skill-graph/config.json` or pass the root directory explicitly. The linter treats a directory containing many `<skill>/SKILL.md` folders as a skill root:
105
+
106
+ ```yaml
107
+ - name: Run skill lint
108
+ run: node tools/skill-graph/skill-lint.js src/skills
109
+ ```
110
+
111
+ Update the `paths:` filter to match:
112
+
113
+ ```yaml
114
+ paths:
115
+ - 'src/skills/**'
116
+ ```
117
+
118
+ ### 4. Skipping generator parity when you intentionally diverge
119
+
120
+ When `examples/skills.manifest.sample.json` is absent, generator parity is skipped automatically. Use `--skip-generator-parity` only when the sample manifest exists but your CI job intentionally does not want to compare it with freshly generated output:
121
+
122
+ ```yaml
123
+ - name: Run skill lint
124
+ run: node tools/skill-graph/skill-lint.js --skip-generator-parity
125
+ ```
126
+
127
+ ## What the lint checks
128
+
129
+ The same checks run whether you install the npm package or vendor the script:
130
+
131
+ 1. Schema validation against `skill.schema.json`
132
+ 2. Parent-directory-matches-name (SKILL.md compatibility)
133
+ 3. Relation target existence (linked skills must exist in the repo)
134
+ 4. Eval artifact coherence (`eval_artifacts: present` requires at least one eval file)
135
+ 5. Archetype-aware section validation (required H2 sections per archetype)
136
+ 6. Routing quality (keywords required for `scope: codebase` skills)
137
+ 7. SKILL.md export compatibility (when `export-verify` is run)
138
+
139
+ See [`SKILL_AUDIT_CHECKLIST.md`](https://github.com/jacob-balslev/skill-audit-loop/blob/main/SKILL_AUDIT_CHECKLIST.md) for the full list of what each check catches.
140
+
141
+ ## Example: PR blocked by a malformed skill
142
+
143
+ Given a skill file with a missing required `description` field:
144
+
145
+ ```
146
+ ERR skills/my-skill/SKILL.md:3:1
147
+ |
148
+ 3 | name: my-skill
149
+ | ^
150
+ |
151
+ = description: required field is missing
152
+ Add a one-line routing contract: `description: "What this skill does and when to use it."`
153
+ ```
154
+
155
+ The job exits 1 and GitHub blocks the merge until the field is added.