@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.
- package/CHANGELOG.md +247 -0
- package/LICENSE +200 -0
- package/NOTICE +62 -0
- package/README.md +398 -0
- package/SKILL_GRAPH.md +443 -0
- package/bin/skill-graph.js +374 -0
- package/docs/ADOPTION.md +117 -0
- package/docs/CONFORMANCE.md +66 -0
- package/docs/PRIMER.md +384 -0
- package/docs/QUICKSTART-30MIN.md +333 -0
- package/docs/ROUTING-METRICS.md +120 -0
- package/docs/SKILL-MD-FORMAT-COMPATIBILITY.md +127 -0
- package/docs/SKILL_AUDIT_CHECKLIST.md +199 -0
- package/docs/SKILL_AUDIT_LOOP.md +195 -0
- package/docs/SKILL_METADATA_PROTOCOL.md +609 -0
- package/docs/_archived/marketplace-publication-priority-2026-05-18.md +239 -0
- package/docs/adr/0001-predicate-set.md +69 -0
- package/docs/adr/0002-json-ld-context.md +82 -0
- package/docs/adr/0003-ontoclean-rigidity-tags.md +65 -0
- package/docs/adr/0004-persistent-identifiers.md +74 -0
- package/docs/adr/0005-freshness-consolidation.md +70 -0
- package/docs/adr/0006-revise-predicate-rename.md +105 -0
- package/docs/adr/0007-audit-loop-cadence.md +99 -0
- package/docs/adr/0008-skill-surface-split-and-curation-policy.md +93 -0
- package/docs/category-consumers.md +168 -0
- package/docs/concept-map.md +194 -0
- package/docs/diagrams/drift-states.mmd +21 -0
- package/docs/diagrams/manifest-pipeline.mmd +25 -0
- package/docs/diagrams/routing-harness.mmd +41 -0
- package/docs/diagrams/starter-graph.mmd +53 -0
- package/docs/field-decision-guide.md +315 -0
- package/docs/field-rationale.md +211 -0
- package/docs/field-reference.generated.md +624 -0
- package/docs/field-reference.md +1426 -0
- package/docs/glossary.md +190 -0
- package/docs/head-noun-glossary.md +63 -0
- package/docs/images/audit-phases.png +0 -0
- package/docs/images/drift-states.png +0 -0
- package/docs/images/graded-mode.png +0 -0
- package/docs/images/manifest-pipeline.png +0 -0
- package/docs/images/routing-harness.png +0 -0
- package/docs/images/skill-anatomy.png +0 -0
- package/docs/images/starter-graph.png +0 -0
- package/docs/images/system-model.png +0 -0
- package/docs/integrations/github-actions.md +155 -0
- package/docs/manifest-field-mapping.md +443 -0
- package/docs/marketplace-publication-queue.generated.md +240 -0
- package/docs/marketplace-release-agent-prompt.md +82 -0
- package/docs/marketplace-skill-candidate-list.md +272 -0
- package/docs/marketplace-syndication.md +222 -0
- package/docs/migration-sample-review.md +155 -0
- package/docs/migrations/v4-to-v5.md +168 -0
- package/docs/migrations/v5-to-v6.md +221 -0
- package/docs/name-exceptions.yaml +37 -0
- package/docs/plans/marketplace-p1-public-migration-plan.md +41 -0
- package/docs/plans/multi-root-workspace.md +148 -0
- package/docs/plans/scripts-roadmap.md +107 -0
- package/docs/plans/v4-schema-bump.md +160 -0
- package/docs/plans/wave-2-extraction.md +122 -0
- package/docs/positioning-vs-marketplaces.md +175 -0
- package/docs/proposals/skill-audit-loop-positioning.md +160 -0
- package/docs/quality-doctrine.md +138 -0
- package/docs/recommended-skills.md +150 -0
- package/docs/research/skill-comprehension-eval-research.md +1830 -0
- package/docs/research/skill-retrieval-evidence.md +66 -0
- package/docs/skill-metadata-protocol.md +471 -0
- package/docs/skills-sh-maintainer-cleanup-request.md +80 -0
- package/examples/audits/a11y/findings.md +52 -0
- package/examples/audits/a11y/scorecard.md +21 -0
- package/examples/audits/a11y/verdict.md +44 -0
- package/examples/audits/debugging/findings.md +59 -0
- package/examples/audits/debugging/scorecard.md +22 -0
- package/examples/audits/debugging/verdict.md +33 -0
- package/examples/audits/documentation/findings.md +59 -0
- package/examples/audits/documentation/scorecard.md +22 -0
- package/examples/audits/documentation/verdict.md +33 -0
- package/examples/evals/a11y.json +140 -0
- package/examples/evals/api-design.json +52 -0
- package/examples/evals/code-review.json +52 -0
- package/examples/evals/data-modeling.json +52 -0
- package/examples/evals/database-migration.json +52 -0
- package/examples/evals/debugging.json +118 -0
- package/examples/evals/dependency-architecture.json +52 -0
- package/examples/evals/design-system-architecture.json +52 -0
- package/examples/evals/error-tracking.json +52 -0
- package/examples/evals/event-contract-design.json +52 -0
- package/examples/evals/form-ux-architecture.json +52 -0
- package/examples/evals/framework-fit-analysis.json +52 -0
- package/examples/evals/graph-audit.json +139 -0
- package/examples/evals/information-architecture.json +52 -0
- package/examples/evals/interaction-feedback.json +52 -0
- package/examples/evals/interaction-patterns.json +52 -0
- package/examples/evals/layout-composition.json +52 -0
- package/examples/evals/lint-overlay.json +117 -0
- package/examples/evals/microcopy.json +52 -0
- package/examples/evals/observability-modeling.json +52 -0
- package/examples/evals/pattern-recognition.json +96 -0
- package/examples/evals/performance-engineering.json +52 -0
- package/examples/evals/refactor.json +128 -0
- package/examples/evals/semiotics.json +52 -0
- package/examples/evals/skill-infrastructure.json +96 -0
- package/examples/evals/skill-router.json +140 -0
- package/examples/evals/skill-router.routing.json +113 -0
- package/examples/evals/system-interface-contracts.json +52 -0
- package/examples/evals/task-analysis.json +52 -0
- package/examples/evals/testing-strategy.json +118 -0
- package/examples/evals/type-safety.json +249 -0
- package/examples/evals/visual-design-foundations.json +52 -0
- package/examples/evals/webhook-integration.json +52 -0
- package/examples/exports/a11y.skill-md.md +80 -0
- package/examples/exports/debugging.skill-md.md +80 -0
- package/examples/exports/refactor.skill-md.md +78 -0
- package/examples/exports/testing-strategy.skill-md.md +81 -0
- package/examples/projects/markdown-static-site/README.md +115 -0
- package/examples/projects/markdown-static-site/skills/content-source-router/SKILL.md +131 -0
- package/examples/projects/markdown-static-site/skills/image-optimization-pipeline-config/SKILL.md +132 -0
- package/examples/projects/markdown-static-site/skills/link-rot-detection/SKILL.md +103 -0
- package/examples/projects/markdown-static-site/skills/markdown-post-frontmatter-validation/SKILL.md +133 -0
- package/examples/projects/markdown-static-site/skills/migrate-posts-to-v2-frontmatter/SKILL.md +140 -0
- package/examples/projects/saas-stripe-postgres/README.md +208 -0
- package/examples/projects/saas-stripe-postgres/db/migrations/0004_canonicalize_orders.sql +37 -0
- package/examples/projects/saas-stripe-postgres/db/schema.sql +112 -0
- package/examples/projects/saas-stripe-postgres/skills/migrate-orders-to-canonical-schema/SKILL.md +149 -0
- package/examples/projects/saas-stripe-postgres/skills/nextjs-server-action-validation/SKILL.md +154 -0
- package/examples/projects/saas-stripe-postgres/skills/payment-provider-router/SKILL.md +153 -0
- package/examples/projects/saas-stripe-postgres/skills/postgres-rls-pattern/SKILL.md +163 -0
- package/examples/projects/saas-stripe-postgres/skills/stripe-webhook-signature-verification/SKILL.md +137 -0
- package/examples/protocol/skill-metadata-template.md +301 -0
- package/examples/protocol/skills.manifest.sample.json +13245 -0
- package/examples/skill-metadata-template.md +317 -0
- package/examples/skills.manifest.sample.json +13519 -0
- package/examples/tests/v3-1-skos-fixture/SKILL.md +93 -0
- package/marketplace/README.md +17 -0
- package/marketplace/skills/a11y/SKILL.md +66 -0
- package/marketplace/skills/acid-fundamentals/SKILL.md +106 -0
- package/marketplace/skills/agent-engineering/SKILL.md +386 -0
- package/marketplace/skills/agent-eval-design/SKILL.md +55 -0
- package/marketplace/skills/ai-native-development/SKILL.md +294 -0
- package/marketplace/skills/api-design/SKILL.md +60 -0
- package/marketplace/skills/architecture-decision-records/SKILL.md +55 -0
- package/marketplace/skills/background-jobs/SKILL.md +265 -0
- package/marketplace/skills/bounded-context-mapping/SKILL.md +55 -0
- package/marketplace/skills/cap-theorem-tradeoffs/SKILL.md +127 -0
- package/marketplace/skills/client-server-boundary/SKILL.md +187 -0
- package/marketplace/skills/code-review/SKILL.md +120 -0
- package/marketplace/skills/color-system-design/SKILL.md +43 -0
- package/marketplace/skills/component-architecture/SKILL.md +126 -0
- package/marketplace/skills/compression/SKILL.md +112 -0
- package/marketplace/skills/conceptual-modeling/SKILL.md +181 -0
- package/marketplace/skills/connection-pooling/SKILL.md +105 -0
- package/marketplace/skills/constraint-awareness/SKILL.md +287 -0
- package/marketplace/skills/content-monitor/SKILL.md +209 -0
- package/marketplace/skills/context-engineering/SKILL.md +320 -0
- package/marketplace/skills/context-graph/SKILL.md +174 -0
- package/marketplace/skills/context-management/SKILL.md +174 -0
- package/marketplace/skills/context-window/SKILL.md +239 -0
- package/marketplace/skills/contract-testing/SKILL.md +120 -0
- package/marketplace/skills/cron-scheduling/SKILL.md +223 -0
- package/marketplace/skills/dark-mode-implementation/SKILL.md +47 -0
- package/marketplace/skills/data-modeling/SKILL.md +59 -0
- package/marketplace/skills/data-modeling-fundamentals/SKILL.md +117 -0
- package/marketplace/skills/database-migration/SKILL.md +429 -0
- package/marketplace/skills/debugging/SKILL.md +67 -0
- package/marketplace/skills/dependency-architecture/SKILL.md +58 -0
- package/marketplace/skills/design-module-composition/SKILL.md +43 -0
- package/marketplace/skills/design-system-architecture/SKILL.md +61 -0
- package/marketplace/skills/design-thinking/SKILL.md +44 -0
- package/marketplace/skills/diagnosis/SKILL.md +296 -0
- package/marketplace/skills/diff-analysis/SKILL.md +188 -0
- package/marketplace/skills/e2e-test-design/SKILL.md +113 -0
- package/marketplace/skills/entity-relationship-modeling/SKILL.md +218 -0
- package/marketplace/skills/epistemic-grounding/SKILL.md +112 -0
- package/marketplace/skills/error-boundary/SKILL.md +235 -0
- package/marketplace/skills/error-tracking/SKILL.md +261 -0
- package/marketplace/skills/eval-driven-development/SKILL.md +147 -0
- package/marketplace/skills/evaluation/SKILL.md +113 -0
- package/marketplace/skills/event-contract-design/SKILL.md +60 -0
- package/marketplace/skills/event-storming/SKILL.md +56 -0
- package/marketplace/skills/form-ux-architecture/SKILL.md +60 -0
- package/marketplace/skills/framework-fit-analysis/SKILL.md +59 -0
- package/marketplace/skills/frontend-architecture/SKILL.md +43 -0
- package/marketplace/skills/generative-ui/SKILL.md +118 -0
- package/marketplace/skills/graph-audit/SKILL.md +81 -0
- package/marketplace/skills/guardrails/SKILL.md +118 -0
- package/marketplace/skills/hooks-patterns/SKILL.md +185 -0
- package/marketplace/skills/http-semantics/SKILL.md +136 -0
- package/marketplace/skills/ideation/SKILL.md +41 -0
- package/marketplace/skills/indexing-strategy/SKILL.md +108 -0
- package/marketplace/skills/information-architecture/SKILL.md +59 -0
- package/marketplace/skills/integration-test-design/SKILL.md +111 -0
- package/marketplace/skills/intent-recognition/SKILL.md +136 -0
- package/marketplace/skills/interaction-feedback/SKILL.md +59 -0
- package/marketplace/skills/interaction-patterns/SKILL.md +59 -0
- package/marketplace/skills/journey-mapping/SKILL.md +41 -0
- package/marketplace/skills/keywords/SKILL.md +213 -0
- package/marketplace/skills/knowledge-modeling/SKILL.md +232 -0
- package/marketplace/skills/layout-composition/SKILL.md +59 -0
- package/marketplace/skills/linguistics/SKILL.md +429 -0
- package/marketplace/skills/lint-overlay/SKILL.md +76 -0
- package/marketplace/skills/mental-models/SKILL.md +126 -0
- package/marketplace/skills/merge-queue/SKILL.md +94 -0
- package/marketplace/skills/methodology/SKILL.md +317 -0
- package/marketplace/skills/microcopy/SKILL.md +232 -0
- package/marketplace/skills/middleware-patterns/SKILL.md +363 -0
- package/marketplace/skills/mobile-responsive-ux/SKILL.md +287 -0
- package/marketplace/skills/mutation-testing/SKILL.md +112 -0
- package/marketplace/skills/naming-conventions/SKILL.md +112 -0
- package/marketplace/skills/observability-modeling/SKILL.md +59 -0
- package/marketplace/skills/ontology-modeling/SKILL.md +67 -0
- package/marketplace/skills/owasp-security/SKILL.md +153 -0
- package/marketplace/skills/pattern-recognition/SKILL.md +472 -0
- package/marketplace/skills/performance-budgets/SKILL.md +185 -0
- package/marketplace/skills/performance-engineering/SKILL.md +58 -0
- package/marketplace/skills/performance-testing/SKILL.md +125 -0
- package/marketplace/skills/printify/SKILL.md +42 -0
- package/marketplace/skills/prioritization/SKILL.md +118 -0
- package/marketplace/skills/problem-framing/SKILL.md +41 -0
- package/marketplace/skills/problem-locating-solving/SKILL.md +203 -0
- package/marketplace/skills/project-knowledge-extraction/SKILL.md +54 -0
- package/marketplace/skills/prompt-craft/SKILL.md +134 -0
- package/marketplace/skills/prompt-injection-defense/SKILL.md +132 -0
- package/marketplace/skills/property-based-testing/SKILL.md +100 -0
- package/marketplace/skills/prototyping/SKILL.md +43 -0
- package/marketplace/skills/query-optimization/SKILL.md +144 -0
- package/marketplace/skills/real-time-updates/SKILL.md +324 -0
- package/marketplace/skills/ref-patterns/SKILL.md +284 -0
- package/marketplace/skills/refactor/SKILL.md +65 -0
- package/marketplace/skills/rendering-models/SKILL.md +142 -0
- package/marketplace/skills/replication-patterns/SKILL.md +110 -0
- package/marketplace/skills/research-synthesis/SKILL.md +41 -0
- package/marketplace/skills/route-handler-design/SKILL.md +347 -0
- package/marketplace/skills/schema-evolution/SKILL.md +140 -0
- package/marketplace/skills/security-fundamentals/SKILL.md +139 -0
- package/marketplace/skills/semantic-center/SKILL.md +194 -0
- package/marketplace/skills/semantic-relations/SKILL.md +250 -0
- package/marketplace/skills/semantics/SKILL.md +366 -0
- package/marketplace/skills/semiotics/SKILL.md +230 -0
- package/marketplace/skills/seo-strategy/SKILL.md +260 -0
- package/marketplace/skills/server-actions-design/SKILL.md +243 -0
- package/marketplace/skills/server-components-design/SKILL.md +190 -0
- package/marketplace/skills/sharding-strategy/SKILL.md +123 -0
- package/marketplace/skills/shopify/SKILL.md +42 -0
- package/marketplace/skills/skill-infrastructure/SKILL.md +320 -0
- package/marketplace/skills/skill-router/SKILL.md +71 -0
- package/marketplace/skills/skill-scaffold/SKILL.md +105 -0
- package/marketplace/skills/snapshot-testing/SKILL.md +120 -0
- package/marketplace/skills/spec-driven-development/SKILL.md +148 -0
- package/marketplace/skills/state-machine-modeling/SKILL.md +56 -0
- package/marketplace/skills/state-management/SKILL.md +134 -0
- package/marketplace/skills/streaming-architecture/SKILL.md +194 -0
- package/marketplace/skills/summarization/SKILL.md +156 -0
- package/marketplace/skills/suspense-patterns/SKILL.md +265 -0
- package/marketplace/skills/system-interface-contracts/SKILL.md +59 -0
- package/marketplace/skills/task-analysis/SKILL.md +201 -0
- package/marketplace/skills/taxonomy-design/SKILL.md +66 -0
- package/marketplace/skills/test-coverage-strategy/SKILL.md +108 -0
- package/marketplace/skills/test-doubles-design/SKILL.md +98 -0
- package/marketplace/skills/test-driven-development/SKILL.md +96 -0
- package/marketplace/skills/testing-strategy/SKILL.md +67 -0
- package/marketplace/skills/theme-system-design/SKILL.md +43 -0
- package/marketplace/skills/tool-call-flow/SKILL.md +229 -0
- package/marketplace/skills/tool-call-strategy/SKILL.md +292 -0
- package/marketplace/skills/transaction-isolation/SKILL.md +98 -0
- package/marketplace/skills/type-safety/SKILL.md +177 -0
- package/marketplace/skills/typography-system/SKILL.md +43 -0
- package/marketplace/skills/usability-testing/SKILL.md +43 -0
- package/marketplace/skills/user-research/SKILL.md +43 -0
- package/marketplace/skills/vercel-composition-patterns/SKILL.md +157 -0
- package/marketplace/skills/version-control/SKILL.md +233 -0
- package/marketplace/skills/visual-design-foundations/SKILL.md +59 -0
- package/marketplace/skills/visual-hierarchy/SKILL.md +43 -0
- package/marketplace/skills/webhook-integration/SKILL.md +331 -0
- package/marketplace/skills/writing-humanizer/SKILL.md +380 -0
- package/package.json +67 -0
- package/schemas/manifest.schema.json +811 -0
- package/schemas/manifest.v2.schema.json +164 -0
- package/schemas/manifest.v3.schema.json +758 -0
- package/schemas/manifest.v4.schema.json +755 -0
- package/schemas/manifest.v5.schema.json +755 -0
- package/schemas/manifest.v6.schema.json +811 -0
- package/schemas/skill.context.jsonld +279 -0
- package/schemas/skill.schema.json +919 -0
- package/schemas/skill.v2.schema.json +201 -0
- package/schemas/skill.v3.schema.json +827 -0
- package/schemas/skill.v4.schema.json +822 -0
- package/schemas/skill.v5.schema.json +830 -0
- package/schemas/skill.v6.schema.json +946 -0
- package/schemas/vocabulary/keywords.json +180 -0
- package/schemas/vocabulary/workspace_tags.json +23 -0
- package/scripts/__tests__/migrate-skill-v2-to-v3.test.js +161 -0
- package/scripts/__tests__/migrate-skill-v3-to-v4.test.js +158 -0
- package/scripts/__tests__/test-export-parser-drift.js +149 -0
- package/scripts/__tests__/test-marketplace-export.js +114 -0
- package/scripts/__tests__/test-router-paths.js +82 -0
- package/scripts/__tests__/test-stability-promotion.js +244 -0
- package/scripts/__tests__/test-v3-1-alias-contract.js +109 -0
- package/scripts/__tests__/test-v3-1-skos-runtime.js +116 -0
- package/scripts/backfill-schema-version.js +198 -0
- package/scripts/build-field-reference.js +160 -0
- package/scripts/build-retrieval-baseline.js +511 -0
- package/scripts/check-markdown-links.js +211 -0
- package/scripts/check-protocol-consistency.js +979 -0
- package/scripts/export-marketplace-skills.js +610 -0
- package/scripts/export-skill.js +374 -0
- package/scripts/generate-manifest.js +787 -0
- package/scripts/lib/alias-contract.js +83 -0
- package/scripts/lib/audit-prompt-builder.js +771 -0
- package/scripts/lib/mock-grader.js +134 -0
- package/scripts/lib/parse-frontmatter.js +429 -0
- package/scripts/lib/roots.js +119 -0
- package/scripts/lint/check-archetype-sections.js +185 -0
- package/scripts/lint/check-category-enum.js +83 -0
- package/scripts/lint/check-routing-eval.js +146 -0
- package/scripts/lint/check-routing-quality.js +211 -0
- package/scripts/lint/check-stability-promotion.js +220 -0
- package/scripts/lint/format-code-frame.js +206 -0
- package/scripts/marketplace-install.js +125 -0
- package/scripts/migrate-category-to-enum.js +169 -0
- package/scripts/migrate-skill-v2-to-v3.js +424 -0
- package/scripts/migrate-skill-v3-to-v4.js +200 -0
- package/scripts/migrate-skill-v5-to-v6.js +304 -0
- package/scripts/restructure-by-category.js +85 -0
- package/scripts/seed-publication-classification.js +282 -0
- package/scripts/skill-audit.js +893 -0
- package/scripts/skill-graph-drift.js +483 -0
- package/scripts/skill-graph-route.js +766 -0
- package/scripts/skill-graph-routing-eval.js +393 -0
- package/scripts/skill-lint.js +1317 -0
- package/scripts/skill-overlap.js +213 -0
- package/scripts/verify-skill-md-export.js +201 -0
package/docs/glossary.md
ADDED
|
@@ -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
|
|
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.
|