@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
|
@@ -0,0 +1,624 @@
|
|
|
1
|
+
# Skill Graph Field Reference (Generated)
|
|
2
|
+
|
|
3
|
+
> **Generated from** `schemas/skill.schema.json` on 2026-05-18 by `scripts/build-field-reference.js`.
|
|
4
|
+
> **Do not edit by hand.** The canonical prose reference is [`docs/field-reference.md`](field-reference.md).
|
|
5
|
+
> **Predicate glossary:** [`docs/glossary.md`](glossary.md).
|
|
6
|
+
> **JSON-LD @context:** [`schemas/skill.context.jsonld`](../schemas/skill.context.jsonld).
|
|
7
|
+
|
|
8
|
+
Schema version: **6** · Field count: **52** · Required: **13**
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
### `schema_version` *(required)*
|
|
13
|
+
|
|
14
|
+
**Type:** multiple — see schema
|
|
15
|
+
|
|
16
|
+
Major contract shape version. Integer for v6+; string '6' tolerated for back-compat with hand-rolled YAML. Bumps when shape changes break consumers. v6 promotes the seven `concept.*` sub-fields to flat top-level fields and adds the flat Health block (`last_audited`, `last_changed`, `audit_verdict`, `eval_score`, `eval_failed_ids`, `lint_verdict`, `drift_status`) so a skill's audit fingerprint lives in its own frontmatter instead of scattered log files. See skill-metadata-protocol/docs/migrations/v5-to-v6.md.
|
|
17
|
+
|
|
18
|
+
**Full reference:** [`docs/field-reference.md#schema_version`](field-reference.md#schema_version)
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
### `name` *(required)*
|
|
23
|
+
|
|
24
|
+
**Type:** string
|
|
25
|
+
|
|
26
|
+
Stable display-layer skill identifier. Lowercase kebab-case; allows `/` and `:` for hierarchical/namespaced names. Must equal the parent directory name (skills/<name>/SKILL.md). The URN at `urn` is the long-term globally-unique identifier; `name` is the local handle.
|
|
27
|
+
|
|
28
|
+
**Pattern:** `^[a-z0-9][a-z0-9-/:]*$`
|
|
29
|
+
|
|
30
|
+
**Full reference:** [`docs/field-reference.md#name`](field-reference.md#name)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
### `urn` *(optional)*
|
|
35
|
+
|
|
36
|
+
**Type:** string
|
|
37
|
+
|
|
38
|
+
Optional globally-unique persistent identifier in the `urn:skill:<repo>:<skill-name>` form (RFC 8141). Consumers treat the URN as the stable identity across repos and federated registries; `name` is the display-layer handle. The `<skill-name>` segment MUST equal the `name` field.
|
|
39
|
+
|
|
40
|
+
**Pattern:** `^urn:skill:[a-z0-9][a-z0-9-]*:[a-z0-9][a-z0-9-/:]*$`
|
|
41
|
+
|
|
42
|
+
**Full reference:** [`docs/field-reference.md#urn`](field-reference.md#urn)
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### `description` *(required)*
|
|
47
|
+
|
|
48
|
+
**Type:** string
|
|
49
|
+
|
|
50
|
+
The routing contract: tells a router whether this skill should activate for a given query. Pushy, specific, boundary-aware. Should include an explicit negative boundary so the router does not over-activate. No protocol length cap.
|
|
51
|
+
|
|
52
|
+
**Full reference:** [`docs/field-reference.md#description`](field-reference.md#description)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### `version` *(required)*
|
|
57
|
+
|
|
58
|
+
**Type:** string
|
|
59
|
+
|
|
60
|
+
Skill content version (semver). Bumps when the SKILL.md body or contract changes meaningfully. Distinct from `schema_version` (the contract shape). Used by `relations.depends_on` for `min_version` constraints.
|
|
61
|
+
|
|
62
|
+
**Pattern:** `^[0-9]+\.[0-9]+\.[0-9]+$`
|
|
63
|
+
|
|
64
|
+
**Full reference:** [`docs/field-reference.md#version`](field-reference.md#version)
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### `type` *(required)*
|
|
69
|
+
|
|
70
|
+
**Type:** `capability` | `workflow` | `router` | `overlay`
|
|
71
|
+
|
|
72
|
+
Archetype classifier — what kind of skill this is. `capability` (knows how to do something), `workflow` (orchestrates a sequence), `router` (dispatches to other skills), `overlay` (specialises a parent via `extends`). `archetype` is the supported alias.
|
|
73
|
+
|
|
74
|
+
**Full reference:** [`docs/field-reference.md#type`](field-reference.md#type)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### `archetype` *(optional)*
|
|
79
|
+
|
|
80
|
+
**Type:** `capability` | `workflow` | `router` | `overlay`
|
|
81
|
+
|
|
82
|
+
Archetype classifier (v3.1 preferred alias for `type`). When both are present they must match.
|
|
83
|
+
|
|
84
|
+
**Full reference:** [`docs/field-reference.md#archetype`](field-reference.md#archetype)
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### `category` *(required)*
|
|
89
|
+
|
|
90
|
+
**Type:** `foundations` | `engineering` | `design` | `quality` | `agent` | `product`
|
|
91
|
+
|
|
92
|
+
Browse facet — answers 'where should a human browse to find this skill first?' Not ontology truth. Closed enum of 6 values in v5: foundations | engineering | design | quality | agent | product. Cross-cutting truth lives in `relations.related`. For hierarchical sub-domain use `domain`. `foundations` is gated — see SKILL_METADATA_PROTOCOL.md § Classification.
|
|
93
|
+
|
|
94
|
+
**Full reference:** [`docs/field-reference.md#category`](field-reference.md#category)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### `domain` *(optional)*
|
|
99
|
+
|
|
100
|
+
**Type:** string
|
|
101
|
+
|
|
102
|
+
Hierarchical domain path using slash-delimited segments (e.g., `ecommerce/integrations/shopify`). Complements `category`; the flat browse shelf and the domain tree answer different questions.
|
|
103
|
+
|
|
104
|
+
**Pattern:** `^[a-z0-9][a-z0-9-]*(/[a-z0-9][a-z0-9-]*)*$`
|
|
105
|
+
|
|
106
|
+
**Full reference:** [`docs/field-reference.md#domain`](field-reference.md#domain)
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### `scope` *(required)*
|
|
111
|
+
|
|
112
|
+
**Type:** `codebase` | `reference` | `portable`
|
|
113
|
+
|
|
114
|
+
Where this skill applies. `codebase` — coupled to a specific repo's code/conventions; `reference` — pure knowledge (no repo coupling); `portable` — repo-agnostic patterns. Drives multi-project overlay decisions and informs the router's project-fit check.
|
|
115
|
+
|
|
116
|
+
**Full reference:** [`docs/field-reference.md#scope`](field-reference.md#scope)
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### `owner` *(required)*
|
|
121
|
+
|
|
122
|
+
**Type:** string
|
|
123
|
+
|
|
124
|
+
Maintainer or team accountable for keeping this skill correct. Free-form string; conventional values: `skill-graph-maintainer`, GitHub team handles, individual usernames. Used by drift-check workflows to route review requests.
|
|
125
|
+
|
|
126
|
+
**Full reference:** [`docs/field-reference.md#owner`](field-reference.md#owner)
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### `freshness` *(required)*
|
|
131
|
+
|
|
132
|
+
**Type:** string
|
|
133
|
+
|
|
134
|
+
ISO date (YYYY-MM-DD) of the last meaningful content review. The author's claim that the skill was current as of this date. Complemented by `drift_check.truth_source_hashes` for grounded skills. `reviewed_at` is the supported alias.
|
|
135
|
+
|
|
136
|
+
**Format:** date
|
|
137
|
+
|
|
138
|
+
**Full reference:** [`docs/field-reference.md#freshness`](field-reference.md#freshness)
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### `reviewed_at` *(optional)*
|
|
143
|
+
|
|
144
|
+
**Type:** string
|
|
145
|
+
|
|
146
|
+
ISO date (YYYY-MM-DD) of the last meaningful content review (v3.1 preferred alias for `freshness`). When both are present they must match.
|
|
147
|
+
|
|
148
|
+
**Format:** date
|
|
149
|
+
|
|
150
|
+
**Full reference:** [`docs/field-reference.md#reviewed_at`](field-reference.md#reviewed_at)
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### `drift_check` *(required)*
|
|
155
|
+
|
|
156
|
+
**Type:** object
|
|
157
|
+
|
|
158
|
+
Drift-detection record for grounded skills. `last_verified` is the author's claim; `truth_source_hashes` is content-addressable evidence keyed by each normalized `grounding.truth_sources` entry. Whole-file sources hash normalized file content; line-range sources hash only the cited slice; anchor-only sources hash the resolved Markdown section or literal text. The combination lets `scripts/skill-graph-drift.js` detect when underlying truth has changed without an accompanying review.
|
|
159
|
+
|
|
160
|
+
**Sub-fields:**
|
|
161
|
+
|
|
162
|
+
- `last_verified` *required* — ISO date of the last verification against truth sources.
|
|
163
|
+
- `verified_at` *optional* — ISO date of the last verification against truth sources (v3.
|
|
164
|
+
- `truth_source_hashes` *optional* — Map of normalized truth source key to SHA-256 hex digest at the time of last verification.
|
|
165
|
+
|
|
166
|
+
**Full reference:** [`docs/field-reference.md#drift_check`](field-reference.md#drift_check)
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
### `eval_artifacts` *(required)*
|
|
171
|
+
|
|
172
|
+
**Type:** `none` | `planned` | `present`
|
|
173
|
+
|
|
174
|
+
Are eval artifacts present on disk for this skill? `none` (no evals planned), `planned` (eval intent declared but not yet shipped), `present` (eval JSON exists at `evals/<skill>.json` or similar). Lint enforces the `present` claim by requiring a real file. The `planned` state has a staleness guard — see lint check 6.
|
|
175
|
+
|
|
176
|
+
**Full reference:** [`docs/field-reference.md#eval_artifacts`](field-reference.md#eval_artifacts)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### `eval_state` *(required)*
|
|
181
|
+
|
|
182
|
+
**Type:** `unverified` | `passing` | `monitored`
|
|
183
|
+
|
|
184
|
+
What does the eval say about content quality? `unverified` (no eval has run), `passing` (last run passed), `monitored` (eval runs on a cadence and is currently passing). Independent of `routing_eval` (the routing-coverage axis). Use to express content-level quality grading orthogonal to routing coverage.
|
|
185
|
+
|
|
186
|
+
**Full reference:** [`docs/field-reference.md#eval_state`](field-reference.md#eval_state)
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### `routing_eval` *(required)*
|
|
191
|
+
|
|
192
|
+
**Type:** `absent` | `present`
|
|
193
|
+
|
|
194
|
+
Is routing / trigger coverage explicitly evaluated? `absent` (router behaviour is not part of the eval set), `present` (the skill's `examples[]` and `anti_examples[]` pass `scripts/skill-graph-routing-eval.js`). When `present`, lint check 12 requires the harness to agree. Honesty over green checkmarks — flip to `present` only after the harness PASSes. The nested `eval.routing_coverage` is the v3.1 preferred alias.
|
|
195
|
+
|
|
196
|
+
**Full reference:** [`docs/field-reference.md#routing_eval`](field-reference.md#routing_eval)
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### `last_audited` *(optional)*
|
|
201
|
+
|
|
202
|
+
**Type:** string
|
|
203
|
+
|
|
204
|
+
ISO date (YYYY-MM-DD) the `audit` command last ran against this skill. Written by `scripts/skill/skill-audit.js`. Independent of `freshness` (which is the author's claim of content-level review) and `drift_check.last_verified` (which is the truth-source verification). Loop priority uses `last_audited` to pick the stalest skill.
|
|
205
|
+
|
|
206
|
+
**Format:** date
|
|
207
|
+
|
|
208
|
+
**Full reference:** [`docs/field-reference.md#last_audited`](field-reference.md#last_audited)
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
### `last_changed` *(optional)*
|
|
213
|
+
|
|
214
|
+
**Type:** string
|
|
215
|
+
|
|
216
|
+
ISO date (YYYY-MM-DD) the SKILL.md body or frontmatter was last edited. Written automatically by `improve` operations. Distinct from `freshness` (review claim) — `last_changed` is the editor's footprint, `freshness` is the reviewer's footprint.
|
|
217
|
+
|
|
218
|
+
**Format:** date
|
|
219
|
+
|
|
220
|
+
**Full reference:** [`docs/field-reference.md#last_changed`](field-reference.md#last_changed)
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
### `audit_verdict` *(optional)*
|
|
225
|
+
|
|
226
|
+
**Type:** `PASS` | `PASS_WITH_FIXES` | `PARTIAL` | `FAIL` | `UNKNOWN`
|
|
227
|
+
|
|
228
|
+
Aggregate result of the most recent `audit` run. Combines `lint_verdict`, `drift_status`, and (when run with `--graded`) the seven dimension scores. Lives on the skill itself instead of in a separate `audits/<skill>/verdict.md` so the audit fingerprint is portable with the skill. `UNKNOWN` is the initial state before any audit has run.
|
|
229
|
+
|
|
230
|
+
**Full reference:** [`docs/field-reference.md#audit_verdict`](field-reference.md#audit_verdict)
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
### `eval_score` *(optional)*
|
|
235
|
+
|
|
236
|
+
**Type:** number
|
|
237
|
+
|
|
238
|
+
Latest aggregate eval grade on a 0.0–5.0 scale, written by `scripts/skill/evaluate-skill.js`. Replaces the read-the-log dance for knowing how this skill scored. When `evals/comprehension.json` exists, the comprehension grader's score lands here; otherwise the standard eval-suite score. Use `eval_failed_ids` to inspect the failing cases.
|
|
239
|
+
|
|
240
|
+
**Full reference:** [`docs/field-reference.md#eval_score`](field-reference.md#eval_score)
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
### `eval_failed_ids` *(optional)*
|
|
245
|
+
|
|
246
|
+
**Type:** array of string
|
|
247
|
+
|
|
248
|
+
Eval IDs that failed in the most recent run. Empty array when clean. Populated alongside `eval_score` by the eval runner. Surfaces failures without forcing readers to crawl `eval-history.jsonl`.
|
|
249
|
+
|
|
250
|
+
**Full reference:** [`docs/field-reference.md#eval_failed_ids`](field-reference.md#eval_failed_ids)
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
### `lint_verdict` *(optional)*
|
|
255
|
+
|
|
256
|
+
**Type:** `PASS` | `FAIL` | `UNKNOWN`
|
|
257
|
+
|
|
258
|
+
Result of the most recent deterministic-lint pass against this skill (`scripts/skill/skill-lint.js`). Schema validation, relation-target existence, archetype section presence, routing quality. `PASS` means zero lint errors; warnings do not flip the verdict. `UNKNOWN` is the initial state.
|
|
259
|
+
|
|
260
|
+
**Full reference:** [`docs/field-reference.md#lint_verdict`](field-reference.md#lint_verdict)
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
### `drift_status` *(optional)*
|
|
265
|
+
|
|
266
|
+
**Type:** `OK` | `DRIFT` | `BROKEN` | `STALE` | `NO_BASELINE` | `EXTERNAL_UNHASHED` | `UNKNOWN`
|
|
267
|
+
|
|
268
|
+
Current truth-source drift status, mirroring the `scripts/skill-graph-drift.js` sentinel verdicts. `OK` (live hashes match recorded), `DRIFT` (mismatch), `BROKEN` (declared truth source missing), `STALE` (older than `lifecycle.stale_after_days`), `NO_BASELINE` (local truth sources declared but no hashes recorded), `EXTERNAL_UNHASHED` (URL truth sources not fetched), `UNKNOWN` (no drift check has run). Written by the drift sentinel; read by the loop to prioritise re-grounding work.
|
|
269
|
+
|
|
270
|
+
**Full reference:** [`docs/field-reference.md#drift_status`](field-reference.md#drift_status)
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
### `comprehension_state` *(optional)*
|
|
275
|
+
|
|
276
|
+
**Type:** `absent` | `present`
|
|
277
|
+
|
|
278
|
+
Does this skill carry a comprehension eval (typically `evals/comprehension.json`) and the Understanding fields authored for the comprehension grader? `absent` (no comprehension grading), `present` (comprehension evals exist; the five flat Understanding fields `mental_model`, `purpose`, `boundary`, `analogy`, `misconception` are required by the allOf rule, OR the legacy `concept` block satisfies the requirement for v5 skills not yet migrated). Independent of `routing_eval` (router-level) and `eval_state` (content-level). The nested `eval.comprehension_state` is the v3.1 preferred alias.
|
|
279
|
+
|
|
280
|
+
**Full reference:** [`docs/field-reference.md#comprehension_state`](field-reference.md#comprehension_state)
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
### `concept` *(optional)*
|
|
285
|
+
|
|
286
|
+
**Type:** object
|
|
287
|
+
|
|
288
|
+
DEPRECATED in v6: the seven sub-fields below are promoted to flat top-level fields (`mental_model`, `purpose`, `boundary`, `analogy`, `misconception`; `definition` is covered by `description`; `taxonomy` is covered by `category` + `relations.broader`). The nested block is retained for v5 backwards-compatibility but new skills should populate the flat fields instead. The comprehension grader reads either location; when both are present, the flat fields win.
|
|
289
|
+
|
|
290
|
+
**Sub-fields:**
|
|
291
|
+
|
|
292
|
+
- `definition` *required* — What the concept IS.
|
|
293
|
+
- `mental_model` *required* — Primitives and their relationships.
|
|
294
|
+
- `purpose` *required* — What problem the concept solves and the alternative it replaced.
|
|
295
|
+
- `boundary` *required* — Things commonly confused with the concept but that are NOT it.
|
|
296
|
+
- `taxonomy` *required* — Nearby concepts with their relationship type (subset / alternative / prerequisite / composition / specialization).
|
|
297
|
+
- `analogy` *required* — Analogy that preserves the core mechanism.
|
|
298
|
+
- `misconception` *required* — The wrong mental model people bring and why it misleads.
|
|
299
|
+
|
|
300
|
+
**Full reference:** [`docs/field-reference.md#concept`](field-reference.md#concept)
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
### `mental_model` *(optional)*
|
|
305
|
+
|
|
306
|
+
**Type:** string
|
|
307
|
+
|
|
308
|
+
Primitives and their relationships. Name primitives and the relationships between them. Markdown permitted. Author with the depth the concept needs — no protocol length cap. Graded by the comprehension grader's `mental_model` dimension (weight 1.5). Replaces nested `concept.mental_model` in v6 — see the v5-to-v6 migration note.
|
|
309
|
+
|
|
310
|
+
**Full reference:** [`docs/field-reference.md#mental_model`](field-reference.md#mental_model)
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
### `purpose` *(optional)*
|
|
315
|
+
|
|
316
|
+
**Type:** string
|
|
317
|
+
|
|
318
|
+
What problem the concept solves and the alternative it replaced. Concrete pain point + prior alternative. No length cap. Graded by the comprehension grader's `purpose` dimension (weight 1.0). Replaces nested `concept.purpose` in v6.
|
|
319
|
+
|
|
320
|
+
**Full reference:** [`docs/field-reference.md#purpose`](field-reference.md#purpose)
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
### `boundary` *(optional)*
|
|
325
|
+
|
|
326
|
+
**Type:** string
|
|
327
|
+
|
|
328
|
+
Things commonly confused with the concept but that are NOT it. Express each difference as a mechanism (different primitives, purpose, or scope) — not just different names. No length cap. Graded by the comprehension grader's `boundary` dimension (weight 1.5). Replaces nested `concept.boundary` in v6. Distinct from `relations.boundary` (routing-layer handoff).
|
|
329
|
+
|
|
330
|
+
**Full reference:** [`docs/field-reference.md#boundary`](field-reference.md#boundary)
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
### `analogy` *(optional)*
|
|
335
|
+
|
|
336
|
+
**Type:** string
|
|
337
|
+
|
|
338
|
+
Analogy that preserves the core mechanism. Translates the concept for a non-expert without breaking the structural relationship between primitives. No length cap. Graded by the comprehension grader's `analogy` dimension (weight 0.5). Replaces nested `concept.analogy` in v6.
|
|
339
|
+
|
|
340
|
+
**Full reference:** [`docs/field-reference.md#analogy`](field-reference.md#analogy)
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
### `misconception` *(optional)*
|
|
345
|
+
|
|
346
|
+
**Type:** string
|
|
347
|
+
|
|
348
|
+
The wrong mental model people bring and why it misleads. Authored hint to inoculate the agent against the common error trap. No length cap. Not directly graded; complements `boundary`. Replaces nested `concept.misconception` in v6.
|
|
349
|
+
|
|
350
|
+
**Full reference:** [`docs/field-reference.md#misconception`](field-reference.md#misconception)
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
### `eval_last_run` *(optional)*
|
|
355
|
+
|
|
356
|
+
**Type:** object
|
|
357
|
+
|
|
358
|
+
Optional receipt for the most recent eval run. Complements `eval_state` so `passing` and `monitored` claims can point at evidence instead of remaining self-attested.
|
|
359
|
+
|
|
360
|
+
**Sub-fields:**
|
|
361
|
+
|
|
362
|
+
- `at` *required* — Timestamp for the eval run that supports the current eval_state claim.
|
|
363
|
+
- `status` *required* (`pass` | `fail` | `mixed`)
|
|
364
|
+
- `runner` *optional* — Eval runner or command used, e.
|
|
365
|
+
- `model` *optional* — Optional grader/model identifier when an LLM grader was used.
|
|
366
|
+
- `receipt` *optional* — Path or URL to the eval receipt, scorecard, grader history, or CI run.
|
|
367
|
+
- `receipt_hash` *optional* — Optional SHA-256 digest of the receipt artifact.
|
|
368
|
+
|
|
369
|
+
**Full reference:** [`docs/field-reference.md#eval_last_run`](field-reference.md#eval_last_run)
|
|
370
|
+
|
|
371
|
+
---
|
|
372
|
+
|
|
373
|
+
### `eval` *(optional)*
|
|
374
|
+
|
|
375
|
+
**Type:** object
|
|
376
|
+
|
|
377
|
+
Nested eval-health record (v3.1 preferred alias for the sibling triple `eval_artifacts` / `eval_state` / `routing_eval`). When both the top-level and nested forms are present they must match.
|
|
378
|
+
|
|
379
|
+
**Sub-fields:**
|
|
380
|
+
|
|
381
|
+
- `artifacts` *optional* (`none` | `planned` | `present`) — Are eval artifacts present on disk for this skill? Mirrors top-level `eval_artifacts`.
|
|
382
|
+
- `content_state` *optional* (`unverified` | `passing` | `monitored`) — What does the eval say about content quality? Mirrors top-level `eval_state`.
|
|
383
|
+
- `routing_coverage` *optional* (`absent` | `present`) — Is routing / trigger coverage explicitly evaluated? Mirrors top-level `routing_eval`.
|
|
384
|
+
- `comprehension_state` *optional* (`absent` | `present`) — Mirrors top-level `comprehension_state`.
|
|
385
|
+
|
|
386
|
+
**Full reference:** [`docs/field-reference.md#eval`](field-reference.md#eval)
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
### `stability` *(optional)*
|
|
391
|
+
|
|
392
|
+
**Type:** `experimental` | `stable` | `frozen` | `deprecated`
|
|
393
|
+
|
|
394
|
+
Lifecycle posture for consumers. `experimental` (subject to change), `stable` (production-ready), `frozen` (no further changes expected), `deprecated` (use `superseded_by` to name the replacement). Drives consumer pinning decisions.
|
|
395
|
+
|
|
396
|
+
**Full reference:** [`docs/field-reference.md#stability`](field-reference.md#stability)
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
### `superseded_by` *(optional)*
|
|
401
|
+
|
|
402
|
+
**Type:** string
|
|
403
|
+
|
|
404
|
+
Name of the skill that replaces this one. Required when `stability: deprecated` — enforced by the allOf rule so every deprecated skill names its successor and consumers can follow the chain automatically. Omit on non-deprecated skills.
|
|
405
|
+
|
|
406
|
+
**Full reference:** [`docs/field-reference.md#superseded_by`](field-reference.md#superseded_by)
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
### `license` *(optional)*
|
|
411
|
+
|
|
412
|
+
**Type:** string
|
|
413
|
+
|
|
414
|
+
SPDX license identifier (e.g., `MIT`, `Apache-2.0`, `CC-BY-4.0`). Resolved against the SPDX license list (ISO/IEC 5962:2021). Required for skills shipped externally; optional for codebase-internal skills.
|
|
415
|
+
|
|
416
|
+
**Full reference:** [`docs/field-reference.md#license`](field-reference.md#license)
|
|
417
|
+
|
|
418
|
+
---
|
|
419
|
+
|
|
420
|
+
### `compatibility` *(optional)*
|
|
421
|
+
|
|
422
|
+
**Type:** object
|
|
423
|
+
|
|
424
|
+
Cross-runtime compatibility envelope. `runtimes` lists target agent runtimes with version constraints; `node` is the Node.js version requirement; `notes` is free-text overflow. Distinct from `extends` (overlay parent) and `relations.depends_on` (sibling skill dependency).
|
|
425
|
+
|
|
426
|
+
**Sub-fields:**
|
|
427
|
+
|
|
428
|
+
- `runtimes` *optional* — Target agent runtimes with optional version constraints (e.
|
|
429
|
+
- `agent_runtimes` *optional* — Target agent runtimes (v3.
|
|
430
|
+
- `node` *optional* — Node.
|
|
431
|
+
- `node_version` *optional* — Node.
|
|
432
|
+
- `notes` *optional* — Free-text additional compatibility notes.
|
|
433
|
+
|
|
434
|
+
**Full reference:** [`docs/field-reference.md#compatibility`](field-reference.md#compatibility)
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
### `allowed-tools` *(optional)*
|
|
439
|
+
|
|
440
|
+
**Type:** string
|
|
441
|
+
|
|
442
|
+
Optional space-separated whitelist of tools the skill is permitted to use (e.g., `Read Edit Bash`). Honoured by harnesses that gate tool calls per skill. Kebab-case spelling matches the common SKILL.md field name and Claude Code's `--allowed-tools` CLI flag. `allowed_tools` (snake_case) is the v3.1 preferred protocol alias; the export transform writes the kebab-case form for SKILL.md consumers.
|
|
443
|
+
|
|
444
|
+
**Full reference:** [`docs/field-reference.md#allowed-tools`](field-reference.md#allowed-tools)
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
### `allowed_tools` *(optional)*
|
|
449
|
+
|
|
450
|
+
**Type:** string
|
|
451
|
+
|
|
452
|
+
Space-separated whitelist of tools (v3.1 preferred snake_case alias for `allowed-tools`). When both are present they must match. The SKILL.md export transform rewrites this to the kebab-case form.
|
|
453
|
+
|
|
454
|
+
**Full reference:** [`docs/field-reference.md#allowed_tools`](field-reference.md#allowed_tools)
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
### `extends` *(optional)*
|
|
459
|
+
|
|
460
|
+
**Type:** string
|
|
461
|
+
|
|
462
|
+
Overlay parent skill name. Only valid when `type: overlay`. The overlay specialises the parent and ceases to have meaning without it; its identity is INHERITED from the parent, not REPLACED. For non-existential cross-skill generalisation, use `relations.broader` instead.
|
|
463
|
+
|
|
464
|
+
**Full reference:** [`docs/field-reference.md#extends`](field-reference.md#extends)
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
### `triggers` *(optional)*
|
|
469
|
+
|
|
470
|
+
**Type:** array of string
|
|
471
|
+
|
|
472
|
+
Exact phrase or label triggers that activate this skill. For semantic phrases use `keywords`; for example user prompts use `examples`.
|
|
473
|
+
|
|
474
|
+
**Full reference:** [`docs/field-reference.md#triggers`](field-reference.md#triggers)
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
### `keywords` *(optional)*
|
|
479
|
+
|
|
480
|
+
**Type:** array of string
|
|
481
|
+
|
|
482
|
+
Semantic keywords for discovery and fuzzy matching. Complements `triggers` (exact) and `examples` (full prompts).
|
|
483
|
+
|
|
484
|
+
**Full reference:** [`docs/field-reference.md#keywords`](field-reference.md#keywords)
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
### `examples` *(optional)*
|
|
489
|
+
|
|
490
|
+
**Type:** array of string
|
|
491
|
+
|
|
492
|
+
Positive-class activation examples — realistic user prompts the skill SHOULD activate for. 2–5 entries recommended. Improves recall for embedding-based routers (SkillRouter-style few-shot retrieval) that find `keywords` alone insufficient at library scale. Groups under `activation.examples` in the manifest.
|
|
493
|
+
|
|
494
|
+
**Full reference:** [`docs/field-reference.md#examples`](field-reference.md#examples)
|
|
495
|
+
|
|
496
|
+
---
|
|
497
|
+
|
|
498
|
+
### `anti_examples` *(optional)*
|
|
499
|
+
|
|
500
|
+
**Type:** array of string
|
|
501
|
+
|
|
502
|
+
Negative-class activation examples — realistic user prompts that look topically related but a DIFFERENT skill should handle. Used as hard-negative training signal. Pair with `relations.boundary` to name the skill that should activate instead. Groups under `activation.anti_examples` in the manifest.
|
|
503
|
+
|
|
504
|
+
**Full reference:** [`docs/field-reference.md#anti_examples`](field-reference.md#anti_examples)
|
|
505
|
+
|
|
506
|
+
---
|
|
507
|
+
|
|
508
|
+
### `paths` *(optional)*
|
|
509
|
+
|
|
510
|
+
**Type:** array of string
|
|
511
|
+
|
|
512
|
+
Glob patterns that identify code surfaces this skill governs. Patterns prefixed with `!` are negations (gitignore-style). Negations only subtract from prior includes; a pattern list consisting only of negations matches nothing and is rejected by lint.
|
|
513
|
+
|
|
514
|
+
**Full reference:** [`docs/field-reference.md#paths`](field-reference.md#paths)
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
### `workspace_tags` *(optional)*
|
|
519
|
+
|
|
520
|
+
**Type:** array of string
|
|
521
|
+
|
|
522
|
+
Literal workspace/project handles or semantic tags identifying which workspaces this skill is relevant to. Absent = ambient / cross-project. A workspace config at `.skill-graph/config.json` may map literal project handles to semantic tag sets so one skill tag matches many projects. Do not confuse this authored relevance field with generated manifest `project` ownership.
|
|
523
|
+
|
|
524
|
+
**Full reference:** [`docs/field-reference.md#workspace_tags`](field-reference.md#workspace_tags)
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
|
|
528
|
+
### `routing_bundles` *(optional)*
|
|
529
|
+
|
|
530
|
+
**Type:** array of string
|
|
531
|
+
|
|
532
|
+
Tags that group skills into activation bundles (e.g., `frontend`, `data-pipeline`). Routers use these for batch retrieval: when a query matches a routing bundle, all skills tagged with that bundle become candidates. Distinct from `category` (single-value human shelf) and `domain` (hierarchical taxonomy path).
|
|
533
|
+
|
|
534
|
+
**Full reference:** [`docs/field-reference.md#routing_bundles`](field-reference.md#routing_bundles)
|
|
535
|
+
|
|
536
|
+
---
|
|
537
|
+
|
|
538
|
+
### `relations` *(optional)*
|
|
539
|
+
|
|
540
|
+
**Type:** object
|
|
541
|
+
|
|
542
|
+
Typed edges to sibling skills. Lint verifies every target exists. Predicate-to-W3C-vocabulary mapping is provided via schemas/skill.context.jsonld (JSON-LD @context). `boundary` is routing-layer asymmetric handoff; `disjoint_with` is the optional OWL class-disjointness predicate — they are distinct, not aliases.
|
|
543
|
+
|
|
544
|
+
**Sub-fields:**
|
|
545
|
+
|
|
546
|
+
- `adjacent` *optional* — DEPRECATED ALIAS of `related`.
|
|
547
|
+
- `related` *optional* — Symmetric associative relation (skos:related).
|
|
548
|
+
- `boundary` *optional* — Anti-ownership / routing handoff edge — directional.
|
|
549
|
+
- `disjoint_with` *optional* — Optional OWL class-disjointness assertion.
|
|
550
|
+
- `broader` *optional* — Cross-skill generalisation (skos:broader).
|
|
551
|
+
- `narrower` *optional* — Cross-skill specialisation (skos:narrower).
|
|
552
|
+
- `verify_with` *optional* — Skills to co-load for verification.
|
|
553
|
+
- `depends_on` *optional* — Skills this skill requires conceptually or operationally.
|
|
554
|
+
|
|
555
|
+
**Full reference:** [`docs/field-reference.md#relations`](field-reference.md#relations)
|
|
556
|
+
|
|
557
|
+
---
|
|
558
|
+
|
|
559
|
+
### `grounding` *(optional)*
|
|
560
|
+
|
|
561
|
+
**Type:** object
|
|
562
|
+
|
|
563
|
+
Records what the skill is grounded against — the truth sources, the grounding mode, and the failure modes when the truth drifts. Required when the skill makes claims about specific code or external systems. Optional for purely conceptual skills.
|
|
564
|
+
|
|
565
|
+
**Sub-fields:**
|
|
566
|
+
|
|
567
|
+
- `domain_object` *required* — What the skill is about (e.
|
|
568
|
+
- `subject` *optional* — What the skill is about (v3.
|
|
569
|
+
- `grounding_mode` *required* (`repo_specific` | `universal` | `hybrid`) — Whether the skill's claims are repo-specific, universal, or a hybrid.
|
|
570
|
+
- `claim_scope` *optional* (`repo_specific` | `universal` | `hybrid`) — Whether the skill's claims are repo-specific, universal, or a hybrid (v3.
|
|
571
|
+
- `truth_sources` *required* — Files, docs, or URLs that ground the skill's claims.
|
|
572
|
+
- `failure_modes` *required*
|
|
573
|
+
- `evidence_priority` *required* (`repo_code_first` | `general_knowledge_first` | `equal`)
|
|
574
|
+
|
|
575
|
+
**Full reference:** [`docs/field-reference.md#grounding`](field-reference.md#grounding)
|
|
576
|
+
|
|
577
|
+
---
|
|
578
|
+
|
|
579
|
+
### `portability` *(optional)*
|
|
580
|
+
|
|
581
|
+
**Type:** object
|
|
582
|
+
|
|
583
|
+
Portability execution signal. `readiness` declares whether portability is only declared (`declared`), covered by export tooling (`scripted`), or verified with a target-runtime receipt (`verified`). `targets` lists supported export destinations, currently `skill-md`.
|
|
584
|
+
|
|
585
|
+
**Sub-fields:**
|
|
586
|
+
|
|
587
|
+
- `readiness` *required* (`declared` | `scripted` | `verified`)
|
|
588
|
+
- `targets` *required* — Supported export destinations.
|
|
589
|
+
- `export_targets` *optional* — Supported export destinations (v3.
|
|
590
|
+
|
|
591
|
+
**Full reference:** [`docs/field-reference.md#portability`](field-reference.md#portability)
|
|
592
|
+
|
|
593
|
+
---
|
|
594
|
+
|
|
595
|
+
### `lifecycle` *(optional)*
|
|
596
|
+
|
|
597
|
+
**Type:** object
|
|
598
|
+
|
|
599
|
+
Per-skill maintenance policy consumed by the drift sentinel.
|
|
600
|
+
|
|
601
|
+
**Sub-fields:**
|
|
602
|
+
|
|
603
|
+
- `stale_after_days` *optional* — Days after `drift_check.
|
|
604
|
+
- `review_cadence` *optional* (`per-commit` | `weekly` | `quarterly` | `on-truth-source-change`) — How frequently the skill should be re-verified.
|
|
605
|
+
|
|
606
|
+
**Full reference:** [`docs/field-reference.md#lifecycle`](field-reference.md#lifecycle)
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
### `runtime_telemetry` *(optional)*
|
|
611
|
+
|
|
612
|
+
**Type:** object
|
|
613
|
+
|
|
614
|
+
Optional pointer to a real-world success/failure feed. Consumers may use telemetry to corroborate or override `eval_state`.
|
|
615
|
+
|
|
616
|
+
**Sub-fields:**
|
|
617
|
+
|
|
618
|
+
- `feedback_source` *required* — Path or URL to a JSONL of run receipts.
|
|
619
|
+
- `last_updated` *optional*
|
|
620
|
+
- `metrics` *optional*
|
|
621
|
+
|
|
622
|
+
**Full reference:** [`docs/field-reference.md#runtime_telemetry`](field-reference.md#runtime_telemetry)
|
|
623
|
+
|
|
624
|
+
---
|