@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,211 @@
|
|
|
1
|
+
# Field Rationale — Why These Fields Exist
|
|
2
|
+
|
|
3
|
+
> Hand-authored "why this field" rationale for the ~10 frontmatter fields whose meaning is non-obvious from the schema description alone. For schema-canonical definitions of every field, see [`field-reference.generated.md`](field-reference.generated.md). For full prose with examples and lint notes, see [`field-reference.md`](field-reference.md).
|
|
4
|
+
|
|
5
|
+
This doc exists because the schema description tells you *what* a field stores, but not *why the field exists at all*. For most fields (`name`, `version`, `triggers`) the why is obvious. For ~10 others, the rationale is the load-bearing knowledge — and lives outside any auto-generated index.
|
|
6
|
+
|
|
7
|
+
Each section below has three parts: **Why this field exists**, **Common confusion**, and **Worked example**.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## `scope`
|
|
12
|
+
|
|
13
|
+
### Why this field exists
|
|
14
|
+
|
|
15
|
+
`scope` is the routing-layer signal that tells consumers (and humans) how transferable a skill is between projects. The three values map to three distinct relationships with the codebase:
|
|
16
|
+
|
|
17
|
+
- `codebase` — the skill is coupled to specific repo conventions, file paths, or proprietary terminology. Loading it in another repo would mislead the agent.
|
|
18
|
+
- `reference` — the skill is pure knowledge with no repo coupling (e.g., `wcag-audit-patterns`, `next-best-practices`). Safe to load anywhere.
|
|
19
|
+
- `portable` — the skill captures patterns that transfer between similar repos but may need light adaptation (e.g., `webhook-integration`, `database-migration`).
|
|
20
|
+
|
|
21
|
+
Without `scope`, a consumer cannot tell at glance whether a skill it inherited from another project is safe to use, or whether it's leaking assumptions from that project. The router uses `scope` together with `workspace_tags` to enforce project-fit — a `codebase` skill from project A is filtered out when serving project B even if the keywords match.
|
|
22
|
+
|
|
23
|
+
### Common confusion
|
|
24
|
+
|
|
25
|
+
Authors confuse `scope: portable` with "I haven't bothered to check yet" — using it as the default. The schema accepts that, but the routing decisions downstream are wrong if the skill actually depends on project-specific conventions. Default to `portable` only after a real check that the skill has no hidden repo coupling. When in doubt, use `codebase` and let the consumer relax the constraint explicitly.
|
|
26
|
+
|
|
27
|
+
### Worked example
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
# Coupled to a specific repo's table names + auth helpers
|
|
31
|
+
scope: codebase
|
|
32
|
+
|
|
33
|
+
# Universal patterns; safe to load in any web project
|
|
34
|
+
scope: reference
|
|
35
|
+
|
|
36
|
+
# Pattern transfers but needs light adaptation
|
|
37
|
+
scope: portable
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## `eval_artifacts`
|
|
43
|
+
|
|
44
|
+
### Why this field exists
|
|
45
|
+
|
|
46
|
+
`eval_artifacts` is the disk-truth axis of the eval-health triple: are there actual eval files at `evals/<skill>.json` (or similar)? It exists because three orthogonal questions about eval health needed to be representable separately:
|
|
47
|
+
|
|
48
|
+
1. **Are eval files on disk?** — `eval_artifacts` (`none` / `planned` / `present`)
|
|
49
|
+
2. **What does the eval say?** — `eval_state` (`unverified` / `passing` / `monitored`)
|
|
50
|
+
3. **Is routing coverage evaluated?** — `routing_eval` (`absent` / `present`)
|
|
51
|
+
|
|
52
|
+
Conflating these into a single field hides important information. A skill can have `eval_artifacts: present + eval_state: unverified` (the file exists but has never run); or `eval_artifacts: planned + eval_state: unverified` (no file yet, intent declared). Each combination has a meaningful action — the field must be able to express them all.
|
|
53
|
+
|
|
54
|
+
### Common confusion
|
|
55
|
+
|
|
56
|
+
Authors set `eval_artifacts: planned` and never come back. ADR 0005 introduced a staleness guard: if `freshness` is older than `lifecycle.stale_after_days` (default 180) and `eval_artifacts: planned`, lint warns. Plan or move on; don't park forever.
|
|
57
|
+
|
|
58
|
+
### Worked example
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
eval_artifacts: planned # Intent declared, no file yet
|
|
62
|
+
eval_state: unverified # Nothing has run
|
|
63
|
+
routing_eval: absent # Routing coverage not part of plan
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## `eval_state`
|
|
69
|
+
|
|
70
|
+
### Why this field exists
|
|
71
|
+
|
|
72
|
+
`eval_state` is the runtime-truth axis: when the eval ran, what did it say? Distinct from `eval_artifacts` because a file can exist without ever running, and a file can run repeatedly producing different verdicts. The three values trace the runtime trajectory:
|
|
73
|
+
|
|
74
|
+
- `unverified` — file exists but no recent run, OR no file
|
|
75
|
+
- `passing` — last run was green
|
|
76
|
+
- `monitored` — runs on a cadence, currently green
|
|
77
|
+
|
|
78
|
+
Together with `eval_artifacts`, the two fields capture the eval lifecycle without forcing the author to choose between "is there a file" and "did it pass" — both questions get explicit answers.
|
|
79
|
+
|
|
80
|
+
### Common confusion
|
|
81
|
+
|
|
82
|
+
`eval_state: passing` is a strictly weaker claim than `monitored`. `passing` means "I ran it once and it was green at that moment"; `monitored` means "it runs regularly and the latest run is green". If you don't have a cadence, you have `passing`, not `monitored` — the difference matters for consumers deciding how much to trust the skill.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## `routing_eval`
|
|
87
|
+
|
|
88
|
+
### Why this field exists
|
|
89
|
+
|
|
90
|
+
`routing_eval` was added in v3.x because content-quality evals (which `eval_state` captures) say nothing about whether the router actually picks the skill for the right queries. A skill can have a perfect eval verdict on its content while being completely invisible to the router because its keywords are too generic, or it is being boundary-excluded by another skill, or its `examples[]` overlap with a stronger competitor.
|
|
91
|
+
|
|
92
|
+
The harness at `scripts/skill-graph-routing-eval.js` makes the `present` claim verifiable: it runs every `examples[]` through `scripts/skill-graph-route.js` and asserts the skill wins; runs every `anti_examples[]` and asserts the winner is NOT this skill. Lint check 12 then gates the assertion — `routing_eval: present` cannot ship unless the harness agrees.
|
|
93
|
+
|
|
94
|
+
### Common confusion
|
|
95
|
+
|
|
96
|
+
Authors flip `routing_eval` to `present` because they wrote `examples[]` and feel confident — without ever running the harness. The lint check then refuses the commit. This is intentional: honesty over green checkmarks. Default to `absent`; flip to `present` only when `node scripts/skill-graph-routing-eval.js --skill <name>` exits 0.
|
|
97
|
+
|
|
98
|
+
### Worked example
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
routing_eval: absent # Default — be honest until verified
|
|
102
|
+
|
|
103
|
+
# Once node scripts/skill-graph-routing-eval.js --skill X returns PASS:
|
|
104
|
+
routing_eval: present # Verified, lint check 12 will gate
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## `relations.depends_on`
|
|
110
|
+
|
|
111
|
+
### Why this field exists
|
|
112
|
+
|
|
113
|
+
`depends_on` is the operational-prerequisite predicate. Distinct from `relations.related` (symmetric co-read) and `relations.broader` (cross-skill generalisation), `depends_on` says: "this skill cannot fulfil its claims without the target skill being available". The router treats it as transitive — if A depends on B, and B depends on C, the agent gets all three.
|
|
114
|
+
|
|
115
|
+
The optional `min_version` constraint exists because skill contracts evolve. A dependency on `api-key-management` 1.0 may be incorrect under 2.0 if the target's API surface changed. Authors pin only when the constraint is real; if any version works, omit `min_version`.
|
|
116
|
+
|
|
117
|
+
### Common confusion
|
|
118
|
+
|
|
119
|
+
`depends_on` is for skills the dependent skill needs at *agent runtime* — when the agent loads the dependent, it should also load the dependencies. Conceptual prerequisites that don't need co-loading at runtime belong in `relations.broader` (this skill is a specialisation of …) or in the SKILL.md prose, not in `depends_on`.
|
|
120
|
+
|
|
121
|
+
### Worked example
|
|
122
|
+
|
|
123
|
+
```yaml
|
|
124
|
+
relations:
|
|
125
|
+
depends_on:
|
|
126
|
+
- skill: api-key-management
|
|
127
|
+
min_version: "1.2.0" # constraint is real — broke at 2.0
|
|
128
|
+
- testing-strategy # any version works — bare string
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## `relations.verify_with`
|
|
134
|
+
|
|
135
|
+
### Why this field exists
|
|
136
|
+
|
|
137
|
+
`verify_with` maps to PROV-O `prov:wasInformedBy` — the target skill's claims inform this skill's claims. It's the cross-skill verification predicate. Use when running this skill's checks would benefit from co-loading another skill's verification patterns.
|
|
138
|
+
|
|
139
|
+
The router co-loads `verify_with` partners as a one-hop expansion (Stage 4) — no transitive closure, because verification chains can balloon.
|
|
140
|
+
|
|
141
|
+
### Common confusion
|
|
142
|
+
|
|
143
|
+
`verify_with` is NOT for "this skill is similar to that skill" — that's `relations.related`. And it's NOT for "this skill is a more general skill" — that's `relations.broader`. It's specifically for: when you act on the claims this skill teaches, the target skill's claims help you verify that you did it correctly.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## `relations.broader`
|
|
148
|
+
|
|
149
|
+
### Why this field exists
|
|
150
|
+
|
|
151
|
+
`broader` exists because cross-skill generalisation was unexpressable before v3.1. `category` captures hierarchy WITHIN a single category tree, not across skill instances. A skill like `react-best-practices` is conceptually a specialisation of `frontend` (a more general standalone skill), but `category` cannot represent that relationship because both skills sit in the engineering category at the same depth.
|
|
152
|
+
|
|
153
|
+
`broader` adds SKOS-style cross-skill generalisation (skos:broader). The router uses it for parent recall: when the specific skill matches, the parent is co-loaded as a generalisation companion. The inverse (`narrower`) is NOT used to drive co-load — a parent match should not pull in arbitrary children.
|
|
154
|
+
|
|
155
|
+
### Common confusion
|
|
156
|
+
|
|
157
|
+
`broader` looks similar to `extends` but differs critically. `extends` is overlay-only and creates an existential dependency — the overlay ceases to have meaning without its parent (ADR 0003). `broader` is informational generalisation; the child is a coherent skill on its own and would survive its parent being deleted. Use `extends` only with `type: overlay`; use `broader` for everything else.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## `grounding.evidence_priority`
|
|
162
|
+
|
|
163
|
+
### Why this field exists
|
|
164
|
+
|
|
165
|
+
`grounding.evidence_priority` lets a skill rank evidence when repo files and general knowledge disagree. Without an explicit priority, agents reading the skill have to invent ad-hoc tie-breaking rules, which is unsafe when the skill makes claims about specific code.
|
|
166
|
+
|
|
167
|
+
Three values are valid in v3: `repo_code_first` (repo evidence wins), `general_knowledge_first` (external standard or general doctrine wins), and `equal` (case-by-case judgment required).
|
|
168
|
+
|
|
169
|
+
### Common confusion
|
|
170
|
+
|
|
171
|
+
`repo_code_first` is the right default for skills grounded in a specific repo's code. `general_knowledge_first` is correct only when the skill teaches an external standard and the repo may legitimately lag behind it. Use `equal` when the skill's verification section explains how to resolve conflicts.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## `lifecycle.review_cadence`
|
|
176
|
+
|
|
177
|
+
### Why this field exists
|
|
178
|
+
|
|
179
|
+
`review_cadence` lets the maintainer declare a review rhythm independent of the calendar `freshness` claim. A skill that is reviewed quarterly is in a different posture than one reviewed annually, even if both have the same `freshness` date. Drift-check workflows can read the cadence and warn when a review is overdue relative to the cadence, not just relative to a fixed staleness threshold.
|
|
180
|
+
|
|
181
|
+
### Common confusion
|
|
182
|
+
|
|
183
|
+
`review_cadence` is a process commitment, not a fact about the past. Don't set it to `quarterly` aspirationally if you have no actual cadence; omit it and use `stale_after_days` to drive reviews. Lying in the cadence makes the next maintainer mistrust the whole frontmatter.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## `portability.readiness`
|
|
188
|
+
|
|
189
|
+
### Why this field exists
|
|
190
|
+
|
|
191
|
+
`portability.readiness` exists because `scope` says where a skill applies, while readiness says how proven its export path is. A skill can be `scope: portable` and still have only a declared portability claim. Authors use `declared` for metadata-only portability, `scripted` when an export transform exists for at least one target, and `verified` when the exported output has been checked with a receipt.
|
|
192
|
+
|
|
193
|
+
Consumers use `readiness` together with `scope` to decide whether a skill is only theoretically portable, mechanically exportable, or already verified in a target runtime.
|
|
194
|
+
|
|
195
|
+
### Common confusion
|
|
196
|
+
|
|
197
|
+
Do not use `readiness` as a second taxonomy for project fit. `scope: portable` plus `portability.readiness: declared` is a valid state: the skill is intended to transfer, but no export verification exists yet. Move to `scripted` only when tooling exists, and to `verified` only when there is a concrete verification receipt.
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Cross-references
|
|
202
|
+
|
|
203
|
+
| Topic | Read |
|
|
204
|
+
|---|---|
|
|
205
|
+
| Schema-canonical field definitions (auto-generated) | [`field-reference.generated.md`](field-reference.generated.md) |
|
|
206
|
+
| Full prose reference with examples and lint notes | [`field-reference.md`](field-reference.md) |
|
|
207
|
+
| Decision tree for taxonomy fields (`category`, `category`, `routing_bundles`, `workspace_tags`) | [`field-decision-guide.md`](field-decision-guide.md) |
|
|
208
|
+
| Predicate semantics (relations) | [`glossary.md` § Relation predicates](glossary.md) |
|
|
209
|
+
| Authoring template | [`../examples/skill-metadata-template.md`](../examples/skill-metadata-template.md) |
|
|
210
|
+
| Why archetypes are rigid vs anti-rigid (OntoClean) | [`adr/0003-ontoclean-rigidity-tags.md`](adr/0003-ontoclean-rigidity-tags.md) |
|
|
211
|
+
| Why the eval-health triple is orthogonal | [`adr/0001-predicate-set.md`](adr/0001-predicate-set.md) + [`adr/0006-revise-predicate-rename.md`](adr/0006-revise-predicate-rename.md) |
|