@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,160 @@
|
|
|
1
|
+
# v4 Schema Bump — Historical Reference
|
|
2
|
+
|
|
3
|
+
> **Status:** Shipped and superseded by v5 (2026-05-16). v4 landed earlier in 2026; v5 closed the `category` field to a 6-value enum (`foundations` / `engineering` / `design` / `quality` / `agent` / `product`) and reframed it as a browse facet. See `docs/migrations/v4-to-v5.md` (in `skill-metadata-protocol`) for the v4→v5 migration matrix and `docs/plans/skill-taxonomy-v5-and-gap-fill.md` (in the Development repo) for the strategy that drove v5.
|
|
4
|
+
>
|
|
5
|
+
> The v4 bump itself was implemented via `scripts/migrate-skill-v3-to-v4.js` with pinned schema copies (`schemas/skill.v4.schema.json`, `schemas/manifest.v4.schema.json`) and migration notes in `docs/manifest-field-mapping.md`. The current pinned-version copies are `schemas/skill.v5.schema.json` and `schemas/manifest.v5.schema.json`.
|
|
6
|
+
>
|
|
7
|
+
> **Original status text (2026-04, pre-ship):** Planned. Not shipped. All items below require coordinated implementation, a codemod (`scripts/migrate-skill-v3-to-v4.js`), pinned schema copies, migration notes, and a full library sweep.
|
|
8
|
+
>
|
|
9
|
+
> **Why a plan doc, not direct changes (2026-04 rationale):** v3 shipped 2026-04-18. A second breaking bump within the same release window burns consumer trust — each bump costs re-tooling downstream. Ship these as a bundle under v4 after v3 settles.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
Five breaking changes that came out of the Opus + Gemini 3.1 Pro + GPT-5.4 v1 + GPT-5.4 v2 audit (see `.artifacts/` in this repo for the full audit artifacts):
|
|
14
|
+
|
|
15
|
+
## Public naming candidates from the open-source docs pass
|
|
16
|
+
|
|
17
|
+
These are naming changes only; do not ship them piecemeal. They need alias handling in v3.x, a codemod in v4, generated-manifest migration notes, and a full starter/template sweep.
|
|
18
|
+
|
|
19
|
+
| Current v3 name | Candidate v4 name | Why |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `type` | `archetype` | The docs and ADRs already teach "archetype"; `type` is too generic for a public schema. |
|
|
22
|
+
| `category` | `domain` | Makes the slash-delimited hierarchy explicit and separates it from flat `category`. |
|
|
23
|
+
| `freshness` | `reviewed_at` | Names the actual authored claim: the skill was reviewed on a date. |
|
|
24
|
+
| `allowed-tools` | `allowed_tools` | Aligns the protocol schema with the rest of its snake_case field names; the SKILL.md export can still emit `allowed-tools`. |
|
|
25
|
+
| `eval_artifacts`, `eval_state`, `routing_eval` | `eval.artifacts`, `eval.content_state`, `eval.routing_coverage` | Groups the eval-health axes and makes the routing axis clearer. |
|
|
26
|
+
| `grounding.domain_object` | `grounding.subject` | Removes DDD jargon; a newcomer can predict what "subject" means. |
|
|
27
|
+
| `grounding.grounding_mode` | `grounding.claim_scope` | Names the semantic axis instead of calling it a mode. |
|
|
28
|
+
| `compatibility.node` | `compatibility.node_version` | Avoids graph-node ambiguity. |
|
|
29
|
+
| `compatibility.runtimes` | `compatibility.agent_runtimes` | Distinguishes agent runtimes from Node/container runtimes. |
|
|
30
|
+
| `portability.targets` | `portability.export_targets` | Names what the target is for. |
|
|
31
|
+
| `drift_check.last_verified` | `drift_check.verified_at` | Aligns date fields with the `_at` convention. |
|
|
32
|
+
|
|
33
|
+
### 1. `name` pattern → kebab-case only
|
|
34
|
+
|
|
35
|
+
**Current (v3):** `^[a-z0-9][a-z0-9-/:]*$` — allows `/` and `:` for hierarchical/namespace-style names (e.g., `codex:codex-rescue`).
|
|
36
|
+
|
|
37
|
+
**v4:** `^[a-z0-9][a-z0-9-]*$` — strict kebab-case. No `/`, no `:`.
|
|
38
|
+
|
|
39
|
+
**Rationale:** `skills/naming-conventions/SKILL.md:85-95` says *"Every identifier falls into exactly one casing bucket"* and skill directories are kebab-case matching `name:`. Allowing `/` and `:` violates the repo's own naming doctrine and breaks the parent-directory-matches-name invariant that lint already enforces. Portability transforms already normalize to kebab-case on export, so the lenient authored pattern serves no real use case.
|
|
40
|
+
|
|
41
|
+
**Migration:** All 8 shipped starters already comply. Any downstream consumer using `name: some/thing` or `name: foo:bar` must rename. Codemod emits WARN and suggests a `s/[/:]/-/g` rewrite; manual review recommended for semantic integrity.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
### 2. `grounding.truth_sources` → object array `{path, start_line?, end_line?}`
|
|
46
|
+
|
|
47
|
+
**Current (v3):** `string[]` — file paths only.
|
|
48
|
+
|
|
49
|
+
**v4:**
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
grounding:
|
|
53
|
+
truth_sources:
|
|
54
|
+
- path: src/integrations/shopify/client.ts
|
|
55
|
+
start_line: 45
|
|
56
|
+
end_line: 120
|
|
57
|
+
- path: docs/skill-metadata-protocol.md # whole-file grounding still valid (omit line range)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Schema:
|
|
61
|
+
```json
|
|
62
|
+
"truth_sources": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"items": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"additionalProperties": false,
|
|
67
|
+
"required": ["path"],
|
|
68
|
+
"properties": {
|
|
69
|
+
"path": { "type": "string", "minLength": 1 },
|
|
70
|
+
"start_line": { "type": "integer", "minimum": 1 },
|
|
71
|
+
"end_line": { "type": "integer", "minimum": 1 }
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Rationale:** Two independent findings converge:
|
|
78
|
+
- GPT-5.4 v2 doctrine audit: `skills/skill-scaffold/SKILL.md:609-610` requires code-grounded skills to list `## Key Files` with line ranges. Skill Graph's `truth_sources` is the frontmatter equivalent but lacks ranges.
|
|
79
|
+
- Opus + DeepDocs research: whole-file SHA-256 hashes in `drift_check.truth_source_hashes` are too coarse. A 1-line edit to an unrelated function invalidates the hash. Symbol/line-range granularity fixes the noise-to-signal ratio.
|
|
80
|
+
|
|
81
|
+
**Migration:** Codemod rewrites each bare string `"file"` → `{"path": "file"}`. Authors manually add `start_line`/`end_line` after the mechanical rewrite, based on what each skill actually depends on. `drift_check.truth_source_hashes` then hashes only the referenced range (computed from start_line/end_line), dramatically reducing drift noise.
|
|
82
|
+
|
|
83
|
+
**Impact on `scripts/skill-graph-drift.js`:** rewrites hash computation to slice the file content by line range before hashing. Line-range keys become `"path#L<start>-<end>"` in `truth_source_hashes`.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### 3. `extends` bidirectional enforcement → via schema, not just lint
|
|
88
|
+
|
|
89
|
+
**Current (v3):** Schema enforces `type: overlay → extends required`. The reverse (non-overlay → no `extends`) is enforced by `scripts/skill-lint.js` (v0.5.0, this session) via an allOf `not` clause. Works, but schema-level + lint-level both belt-and-suspenders is cleaner if the schema itself guarantees the invariant.
|
|
90
|
+
|
|
91
|
+
**v4:** Keep the allOf rule from v0.5.0 in the v4 schema file explicitly, and remove the lint-level duplicate to reduce drift risk.
|
|
92
|
+
|
|
93
|
+
**Rationale:** Belt-and-suspenders is correct for v0.5.0 (lint catches the case even if a consumer uses a validator that mis-handles `allOf` + `not`). v4 is the point to consolidate to schema-only enforcement since v4 consumers are expected to use Ajv or equivalent.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### 4. `paths` all-negation rejection → schema-level
|
|
98
|
+
|
|
99
|
+
**Current (v3):** Lint rejects lists of only-negation patterns (v0.5.0 addition). Schema allows it.
|
|
100
|
+
|
|
101
|
+
**v4:** Schema-level rejection via a JSON Schema pattern-list constraint:
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
"paths": {
|
|
105
|
+
"type": "array",
|
|
106
|
+
"minItems": 1,
|
|
107
|
+
"items": { "type": "string", "minLength": 1 },
|
|
108
|
+
"not": {
|
|
109
|
+
"items": { "pattern": "^!" }
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The `not` clause rejects arrays where EVERY item starts with `!`.
|
|
115
|
+
|
|
116
|
+
**Rationale:** Same as #3 — v4 is the consolidation point where lint-only rules move into the schema for tighter consumer contracts.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### 5. `activation.paths` gitignore negation → actually implemented in the router
|
|
121
|
+
|
|
122
|
+
**Current (v3):** `docs/field-reference.md:562-581` and `schemas/skill.schema.json:138-145` describe gitignore-style negation (`!pattern`). `scripts/skill-graph-route.js:121-128` (v3) explicitly states mixed positive/negative lists are NOT implemented.
|
|
123
|
+
|
|
124
|
+
**v4:** Implement the documented behavior in the router. A path list `["src/**", "!src/generated/**"]` should include everything under `src/` EXCEPT `src/generated/**`. Add test cases in a dedicated `examples/tests/paths-negation.json` that the router consumes as golden fixtures.
|
|
125
|
+
|
|
126
|
+
**Rationale:** This is not a schema change — the schema already allows it. But it IS a contract change: v3 documented a feature that v3 didn't ship. v4 delivers what v3 promised.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Sequence for the v4 bump (when it ships)
|
|
131
|
+
|
|
132
|
+
1. Copy current `skill.schema.json` + `manifest.schema.json` to `skill.v3.schema.json` + `manifest.v3.schema.json` (already done in this session as part of v3 pinning).
|
|
133
|
+
2. Apply changes 1–5 above to the unversioned schemas.
|
|
134
|
+
3. Ship pinned `skill.v4.schema.json` + `manifest.v4.schema.json` (content-identical to unversioned).
|
|
135
|
+
4. Write `scripts/migrate-skill-v3-to-v4.js`:
|
|
136
|
+
- Normalize `name` to kebab-case, WARN on any `/` or `:` replacement so authors review.
|
|
137
|
+
- Rewrite `grounding.truth_sources` from `string[]` → object-array with `{path}` only; authors add line ranges manually.
|
|
138
|
+
- Leave `paths` untouched; lint already rejects all-negation in v0.5.0.
|
|
139
|
+
5. Update `docs/manifest-field-mapping.md` with a new § "Migration Note — v3 → v4" containing the transformations above.
|
|
140
|
+
6. Update `docs/field-reference.md` for the changed fields.
|
|
141
|
+
7. Update `SKILL_AUDIT_CHECKLIST.md` schema_version check.
|
|
142
|
+
8. Bump `CHANGELOG.md` root `schema_version` reference to `4`.
|
|
143
|
+
9. Run migrate on all 8 starters + template. Regenerate manifest. Re-run drift sentinel with new hash key scheme.
|
|
144
|
+
10. Run full lint + manifest validation + audit sweep.
|
|
145
|
+
|
|
146
|
+
## Out of scope for v4 (deferred further)
|
|
147
|
+
|
|
148
|
+
- `utterances[]` / `examples[]` (v0.5.0 additive, shipped this session).
|
|
149
|
+
- `superseded_by` (v0.5.0 additive, shipped this session).
|
|
150
|
+
- Typed audit artifact schemas (`findings.schema.json`, `verdict.schema.json`, `scorecard.schema.json`) — design doc at `docs/plans/audit-artifact-schemas.md` (to be written).
|
|
151
|
+
- `activation.must_activate_for[]` / `must_not_activate_for[]` as hard routing assertions — subsumed by `examples`/`anti_examples` in v0.5.0. Reconsider if routing evaluation shows gaps.
|
|
152
|
+
- `instructions` vs `description` split — rejected after Gemini + GPT-5.4 v2 both disagreed; body H2 sections already serve the instructions role.
|
|
153
|
+
- Symbol-level drift (`truth_source_symbols`) — v4 line-range approach on `truth_sources` subsumes the motivation.
|
|
154
|
+
|
|
155
|
+
## Related artifacts in this repo
|
|
156
|
+
|
|
157
|
+
- `.artifacts/gpt54-audit.md` — v1 audit (schema/lint bugs)
|
|
158
|
+
- `.artifacts/gemini-audit.md` — Gemini 3.1 Pro audit (additional semantics gaps)
|
|
159
|
+
- `.artifacts/gpt54-audit-v2.md` — doctrine-grounded audit (canon fork, process gaps)
|
|
160
|
+
- `.artifacts/audit-brief.md` — the brief used for all three external audits
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Wave 2 Extraction Plan
|
|
2
|
+
|
|
3
|
+
Status: retained as sequencing rationale. The current repository has already shipped the universal Tier A and Tier B recommendations from `docs/recommended-skills.md`; this plan explains the broader extraction strategy that informed those choices.
|
|
4
|
+
|
|
5
|
+
## Goal
|
|
6
|
+
|
|
7
|
+
Wave 2 was the expansion from a small starter set into a library large enough to demonstrate Skill Graph's actual value:
|
|
8
|
+
|
|
9
|
+
- Multiple archetypes, not only `capability`.
|
|
10
|
+
- Multiple scopes, including portable, reference, and codebase skills.
|
|
11
|
+
- Enough relation density for routing, verification, and boundary behavior to matter.
|
|
12
|
+
- Enough domain variety that `category`, `category`, `workspace_tags`, and `routing_bundles` are visibly different axes.
|
|
13
|
+
|
|
14
|
+
The goal was not to maximize skill count. The goal was to make the protocol's graph shape observable in real authored skills.
|
|
15
|
+
|
|
16
|
+
## Selection Axes
|
|
17
|
+
|
|
18
|
+
Wave 2 candidates were evaluated against four axes:
|
|
19
|
+
|
|
20
|
+
| Axis | Question |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Universal utility | Would a broad set of developers or agents benefit immediately? |
|
|
23
|
+
| Graph value | Does this skill create useful `relations`, `grounding`, or routing boundaries? |
|
|
24
|
+
| Archetype coverage | Does it exercise `capability`, `workflow`, `router`, or `overlay` behavior? |
|
|
25
|
+
| Scope coverage | Does it prove the difference between portable, reference, and codebase skills? |
|
|
26
|
+
|
|
27
|
+
The final OSS recommendation split these concerns:
|
|
28
|
+
|
|
29
|
+
- `docs/recommended-skills.md` optimizes for universal adopter utility.
|
|
30
|
+
- This Wave 2 plan optimizes for expressive coverage and graph density.
|
|
31
|
+
|
|
32
|
+
## Candidate Clusters
|
|
33
|
+
|
|
34
|
+
### Core Library Operations
|
|
35
|
+
|
|
36
|
+
These skills make a Skill Graph library self-maintaining:
|
|
37
|
+
|
|
38
|
+
- `skill-router`
|
|
39
|
+
- `skill-scaffold`
|
|
40
|
+
- `graph-audit`
|
|
41
|
+
- `skill-infrastructure`
|
|
42
|
+
- `documentation`
|
|
43
|
+
|
|
44
|
+
### Everyday Engineering
|
|
45
|
+
|
|
46
|
+
These skills earn broad utility across most software projects:
|
|
47
|
+
|
|
48
|
+
- `debugging`
|
|
49
|
+
- `testing-strategy`
|
|
50
|
+
- `refactor`
|
|
51
|
+
- `code-review`
|
|
52
|
+
- `version-control`
|
|
53
|
+
- `database-migration`
|
|
54
|
+
- `webhook-integration`
|
|
55
|
+
- `error-tracking`
|
|
56
|
+
|
|
57
|
+
### AI-Native Engineering
|
|
58
|
+
|
|
59
|
+
These skills address agent-era work directly:
|
|
60
|
+
|
|
61
|
+
- `prompt-craft`
|
|
62
|
+
- `context-engineering`
|
|
63
|
+
- `tool-call-strategy`
|
|
64
|
+
- `agent-engineering`
|
|
65
|
+
- `agent-orchestration`
|
|
66
|
+
- `agent-observability`
|
|
67
|
+
|
|
68
|
+
### Knowledge Organization
|
|
69
|
+
|
|
70
|
+
These skills demonstrate the protocol's semantic and taxonomic range:
|
|
71
|
+
|
|
72
|
+
- `taxonomy-design`
|
|
73
|
+
- `ontology-modeling`
|
|
74
|
+
- `semantics`
|
|
75
|
+
- `knowledge-modeling`
|
|
76
|
+
- `knowledge-graph`
|
|
77
|
+
- `bounded-context-mapping`
|
|
78
|
+
|
|
79
|
+
### Design And UX
|
|
80
|
+
|
|
81
|
+
These skills demonstrate non-codebase expertise while still benefiting from routing groups and boundaries:
|
|
82
|
+
|
|
83
|
+
- `a11y`
|
|
84
|
+
- `task-analysis`
|
|
85
|
+
- `user-research`
|
|
86
|
+
- `research-synthesis`
|
|
87
|
+
- `journey-mapping`
|
|
88
|
+
- `layout-composition`
|
|
89
|
+
- `visual-hierarchy`
|
|
90
|
+
- `typography-system`
|
|
91
|
+
- `color-system-design`
|
|
92
|
+
- `interaction-patterns`
|
|
93
|
+
- `form-ux-architecture`
|
|
94
|
+
- `microcopy`
|
|
95
|
+
|
|
96
|
+
### Doctrine And Strategy
|
|
97
|
+
|
|
98
|
+
These were treated as advanced, demand-driven candidates because they need stronger body prose and clearer routing boundaries:
|
|
99
|
+
|
|
100
|
+
- `theory-of-constraints`
|
|
101
|
+
- `ooda-loop`
|
|
102
|
+
- `shape-up`
|
|
103
|
+
- `wardley-mapping`
|
|
104
|
+
- `domain-driven-design`
|
|
105
|
+
|
|
106
|
+
## Extraction Order
|
|
107
|
+
|
|
108
|
+
1. Ship the original eight starters as the minimal specimen set.
|
|
109
|
+
2. Close universal Tier A utility: authoring, review, naming, prompting, security, and accessibility.
|
|
110
|
+
3. Add Tier B operational skills that most projects eventually need.
|
|
111
|
+
4. Add one specialized cluster at a time only when the cluster demonstrates a new protocol behavior or clear adopter demand.
|
|
112
|
+
5. Use routing evals and overlap checks after every batch; do not let graph density become duplicate activation noise.
|
|
113
|
+
|
|
114
|
+
## Exit Criteria
|
|
115
|
+
|
|
116
|
+
Wave 2 is done when the library has:
|
|
117
|
+
|
|
118
|
+
- A credible universal baseline for everyday engineering and AI-agent work.
|
|
119
|
+
- At least one strong example of every shipped archetype.
|
|
120
|
+
- Relation edges that are useful to routing and verification, not decorative.
|
|
121
|
+
- Drift and eval metadata that reflect real maintenance posture.
|
|
122
|
+
- Documentation that explains why the current inventory exists without relying on private synthesis notes.
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# Positioning — Skill Graph vs Marketplaces, Rules, and Always-On Conventions
|
|
2
|
+
|
|
3
|
+
> **Audience.** A working developer who has heard of Skill Graph and is mentally placing it on the AI-coding-context shelf alongside Cursor rules, Claude skills, GitHub Copilot custom instructions, AGENTS.md, skillsmp.com, and skills.sh. This document is a single-source reference for how Skill Graph relates to each.
|
|
4
|
+
>
|
|
5
|
+
> **Status.** Stable. Updated when a new context tool is named in the skill-library landscape (open an issue if a tool is missing).
|
|
6
|
+
>
|
|
7
|
+
> **Last updated.** 2026-05-06.
|
|
8
|
+
|
|
9
|
+
**Skill Metadata Protocol's job is project-relevance metadata for AI SKILL.md. Skill Graph's job is library-level operation over that metadata.** The protocol asks: which area is this skill for, which angle does it take, which project or stack does it fit, which taxonomy / semantic cluster does it belong to, which methodology or framework does it encode, and how should it be tested or reverified? Skill Graph asks how to index, route, cluster, audit, and reverify a library of skills that expose those declarations. Every comparison below is framed against that split.
|
|
10
|
+
|
|
11
|
+
## Categories on the shelf
|
|
12
|
+
|
|
13
|
+
There are five categories of AI-coding context tool, and they solve different problems:
|
|
14
|
+
|
|
15
|
+
| Category | Examples | What it does |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| **Open standard for skill packaging** | [Anthropic SKILL.md](https://www.claude.com/skills) | The base format for procedural-knowledge folders an agent can discover and load |
|
|
18
|
+
| **Project-relevance metadata protocol on top of the standard** | **Skill Metadata Protocol** | The skill-level contract that makes skills indexable by area, angle, taxonomy, semantics, project fit, methodology, framework, and verification loop |
|
|
19
|
+
| **Library-level system over skill metadata** | **Skill Graph** (this repo) | The index, router, cluster map, lint/eval harness, drift sentinel, and manifest pipeline that works with Skill Metadata Protocol records |
|
|
20
|
+
| **Public skill libraries / registries** | [skillsmp.com](https://skillsmp.com), [skills.sh](https://skills.sh) | The discovery and installation surface — find a skill, install it |
|
|
21
|
+
| **Always-on repo conventions** | CLAUDE.md, AGENTS.md, Cursor rules, Continue rules, GitHub Copilot custom instructions | Per-repo behavior rules the agent reads at session start (always loaded, not on-demand) |
|
|
22
|
+
|
|
23
|
+
Skill Metadata Protocol sits in the second category. Skill Graph sits in the third row above. Neither competes with SKILL.md (the protocol is interoperable with SKILL.md via the export transform), public libraries (those help you find skills; the protocol makes chosen skills relevant; Skill Graph makes them indexable, clusterable, routable, and testable inside a project), or always-on repo rules (those are repo behavior rules; Skill Graph is skill-library structure).
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Pros and cons per neighbor
|
|
28
|
+
|
|
29
|
+
### Anthropic SKILL.md
|
|
30
|
+
|
|
31
|
+
[claude.com/skills](https://www.claude.com/skills) — *"Teach Claude your way of working"*, *"Build once, use everywhere"*, *"Stack skills for complex work"*.
|
|
32
|
+
|
|
33
|
+
| Axis | Anthropic SKILL.md | Skill Metadata Protocol + Skill Graph |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| **Required fields** | 2 (`name`, `description`) | 13 in Skill Metadata Protocol; `name` and `description` remain the base bridge to SKILL.md |
|
|
36
|
+
| **Relevance model** | Mostly lexical retrieval over `description` and tag fields | Area, angle, taxonomy, semantic relations, project fit, grounding, eval state, and file/path relevance |
|
|
37
|
+
| **Drift detection** | None — staleness is invisible to the standard | SHA-256 baselines on `truth_sources`; the drift sentinel reports DRIFT / BROKEN / STALE / NO_BASELINE |
|
|
38
|
+
| **Project scoping** | Folder structure or naming hacks | `workspace_tags` + workspace `semantic_tags` matching, no folder gymnastics |
|
|
39
|
+
| **Eval awareness** | Not standardised | `eval_artifacts` + `eval_state` + `routing_eval` triple; routers can gate by quality |
|
|
40
|
+
| **Inheritance** | None | `type: overlay` + `extends` for specialisation with schema-level body-section enforcement |
|
|
41
|
+
| **Round-trip compatibility** | N/A | One-way export to base SKILL.md via `scripts/export-skill.js`; round-trip back requires re-authoring the lost fields |
|
|
42
|
+
|
|
43
|
+
**When to use both:** when you want Skill Metadata Protocol metadata for authoring and the broader runtime support of SKILL.md' format simultaneously. Author with the protocol; use Skill Graph for library-level operations; export to SKILL.md shape via `scripts/export-skill.js` for runtimes that read only the simpler format. The two contracts are peers, not parent-child.
|
|
44
|
+
|
|
45
|
+
**When this is overhead, not benefit:** library size below ~3 skills, single project, no grounded skills, no eval pipeline. Skill Metadata Protocol's richer required field set and Skill Graph's tooling are pure tax until at least one of those pressures appears — plain SKILL.md covers the simple case.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### skillsmp.com
|
|
50
|
+
|
|
51
|
+
[skillsmp.com](https://skillsmp.com) — *"Discover open-source agent skills from GitHub."*
|
|
52
|
+
|
|
53
|
+
| Axis | skillsmp.com | Skill Metadata Protocol + Skill Graph |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| **What it does** | Public agent-skill library / marketplace that indexes skills from GitHub repositories | Skill Metadata Protocol describes imported or local skills; Skill Graph operates over the resulting library |
|
|
56
|
+
| **Surface** | Discovery and installation (find a skill to install) | Relevance, structure, clustering, routing, testing, and re-verification inside your project |
|
|
57
|
+
| **Hosted** | Yes — independent community-run service | No — the protocol and Skill Graph reference scripts run in your own repo |
|
|
58
|
+
| **Per-skill structure** | Whatever the source repo authored | The 13 required + ~20 optional Skill Metadata Protocol fields |
|
|
59
|
+
|
|
60
|
+
**When to use both:** install a skill from skillsmp.com -> adopt it into your library -> annotate the frontmatter with area, angle, taxonomy, project tags, relations, grounding, and eval metadata -> benefit from lint, routing, clustering, drift checks, and Karpathy-style iteration loops on top of the imported skill. In the other direction, syndicate the full Skill Graph starter library through plain `SKILL.md` exports so SkillsMP can discover the repo while the canonical Skill Metadata Protocol source stays here. The operating plan is [`docs/marketplace-syndication.md`](marketplace-syndication.md).
|
|
61
|
+
|
|
62
|
+
**Mental model:** *skillsmp answers "what skills exist?"; Skill Metadata Protocol answers "what is this skill relevant for?"; Skill Graph answers "how can that relevance be indexed, routed, clustered, tested, and reverified?"*
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
### skills.sh
|
|
67
|
+
|
|
68
|
+
[skills.sh](https://skills.sh) — *"The Open SKILL.md Ecosystem."* The hero copy: *"Skills are reusable capabilities for AI agents. Install them with a single command to enhance your agents with access to procedural knowledge."*
|
|
69
|
+
|
|
70
|
+
Same category as skillsmp.com. Same distinction: discovery / installation surface vs Skill Metadata Protocol plus Skill Graph. The two public libraries differ in their cataloging conventions and ranking surface (skills.sh leads with a popularity leaderboard, skillsmp leads with GitHub-source provenance), but neither tells a local project which area, angle, taxonomy cluster, semantic relation, methodology, framework, or verification loop a skill belongs to.
|
|
71
|
+
|
|
72
|
+
**When to use both:** install a popular skill from skills.sh -> adopt the imported folder into your library -> upgrade the frontmatter to Skill Graph spec so it becomes relevant, indexable, clusterable, and testable in your project. In the other direction, export and publish the full Skill Graph library to the plain `SKILL.md` shape, use examples only as entry points, and keep provenance metadata pointing back to the canonical repo.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
### Cursor rules
|
|
77
|
+
|
|
78
|
+
[cursor.com/docs](https://cursor.com/docs) — `.cursor/rules/*.mdc` files the IDE applies to every Cursor agent action.
|
|
79
|
+
|
|
80
|
+
| Axis | Cursor rules | Skill Graph |
|
|
81
|
+
|---|---|---|
|
|
82
|
+
| **What it does** | Repo-behavior guardrails ("always treat this folder as auth-critical", "never modify schemas without a migration") | Skill-library structure (typed relations between many skills, drift detection, eval state) |
|
|
83
|
+
| **Loading model** | Always-on for the IDE's agent — every action consumes the rule context | On-demand — the router selects skills per query, only the selected ones load |
|
|
84
|
+
| **Granularity** | Behavior constraints | Procedural knowledge packages |
|
|
85
|
+
| **Per-runtime** | Cursor IDE specifically | Any agent runtime that supports SKILL.md |
|
|
86
|
+
|
|
87
|
+
**Take a position:** Cursor rules are repo-behavior guardrails. Skill Graph is skill-library structure. They solve different problems and complement each other in the same repo. A repo can have `.cursor/rules/*.mdc` for IDE-wide behavior rules AND a Skill Graph library at `skills/**` for on-demand skill packaging — these do not compete; they layer.
|
|
88
|
+
|
|
89
|
+
**When to use both:** always, in a Cursor-using repo with a non-trivial skill library.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Continue rules
|
|
94
|
+
|
|
95
|
+
`.continue/rules/*` — the [Continue](https://continue.dev) IDE's analog of Cursor rules. Same shape as Cursor: per-repo behavior constraints applied always-on to agent actions.
|
|
96
|
+
|
|
97
|
+
Same distinction as Cursor: behavior rules vs library structure. Use both.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### GitHub Copilot custom instructions
|
|
102
|
+
|
|
103
|
+
`.github/instructions/*` — per-repo prompt augmentation that ships with every Copilot completion request.
|
|
104
|
+
|
|
105
|
+
| Axis | Copilot custom instructions | Skill Graph |
|
|
106
|
+
|---|---|---|
|
|
107
|
+
| **What it does** | Inline prompt content prepended to every Copilot request | Routable, validatable, droppable skill-library contract |
|
|
108
|
+
| **Loading model** | Always — every Copilot completion includes the custom instructions | On-demand — only selected skills load |
|
|
109
|
+
| **Routing** | None — Copilot does not load skills dynamically | The router selects per query, with auditable reasoning |
|
|
110
|
+
| **Token impact** | Constant overhead per completion | Variable (depends on which skills the router picks) |
|
|
111
|
+
|
|
112
|
+
**The honest constraint:** Copilot does not load skills dynamically — Skill Graph assumes a runtime that does (Claude Code, agent runtimes that read SKILL.md). For Copilot specifically, custom instructions and Skill Graph are complementary: custom instructions for the prompt context Copilot always sees, Skill Graph for the on-demand skills a more capable runtime would route to.
|
|
113
|
+
|
|
114
|
+
**When to use both:** in a Copilot-primary repo where you also use Claude Code or another Skill-Graph-aware runtime — custom instructions handle the always-on baseline, Skill Graph handles the on-demand depth.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### CLAUDE.md and AGENTS.md
|
|
119
|
+
|
|
120
|
+
Plain-text repo-level conventions that Claude Code or generic agent runtimes read at session start.
|
|
121
|
+
|
|
122
|
+
| Axis | CLAUDE.md / AGENTS.md | Skill Graph |
|
|
123
|
+
|---|---|---|
|
|
124
|
+
| **What it does** | Always-on repo context (small, opinionated, ~100-500 lines typically) | On-demand skill packaging (many, structured, routable, ~50-300 lines per skill) |
|
|
125
|
+
| **Cardinality** | Usually 1 file per repo (sometimes 2-3 with descendant loading) | Many — usually 10+ skills per library |
|
|
126
|
+
| **Update cadence** | Slow (changes when repo conventions shift) | Per-skill (changes when the specific skill's domain or truth source changes) |
|
|
127
|
+
| **Loading** | Read once per session | Per query, by the router |
|
|
128
|
+
|
|
129
|
+
**When to use both:** AGENTS.md for non-negotiable repo rules (security policies, commit conventions, banned patterns); Skill Graph for the skills the agent reaches for when those rules don't cover the specific task. Together they form a two-layer context: always-on rules + on-demand skills.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## What Skill Graph deliberately is not
|
|
134
|
+
|
|
135
|
+
For symmetry with the README's negative framing:
|
|
136
|
+
|
|
137
|
+
- **Not a marketplace.** Skill Graph does not host or distribute skills. Use skillsmp.com or skills.sh for that.
|
|
138
|
+
- **Not a runtime.** Skill Graph can feed agent runtimes; it is not one. Claude Code, custom agent harnesses, or any runtime that reads SKILL.md can consume a Skill Graph library at whatever level of awareness it chooses.
|
|
139
|
+
- **Not a prompt library.** The skills' content is your team's procedural knowledge, authored by you; Skill Metadata Protocol structures the relevance metadata around it, not the prose inside it.
|
|
140
|
+
- **Not a competing format.** Skill Metadata Protocol enriches SKILL.md and can be exported to base SKILL.md via `scripts/export-skill.js`.
|
|
141
|
+
- **Not always-on context.** Skills managed by Skill Graph are loaded on-demand by a router; they are not appended to every agent request the way CLAUDE.md or Copilot custom instructions are.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Decision shortcut
|
|
146
|
+
|
|
147
|
+
If you're trying to decide which tool to reach for:
|
|
148
|
+
|
|
149
|
+
| You want to… | Reach for |
|
|
150
|
+
|---|---|
|
|
151
|
+
| Find a community-authored skill to install | skillsmp.com or skills.sh |
|
|
152
|
+
| Author a procedural-knowledge folder for an agent | Anthropic SKILL.md (the base standard) |
|
|
153
|
+
| Make a multi-skill library project-relevant, indexable, and testable | **Skill Graph** |
|
|
154
|
+
| Apply repo-wide behavior constraints to every IDE agent action | Cursor rules / Continue rules |
|
|
155
|
+
| Prepend always-on context to every Copilot completion | Copilot custom instructions |
|
|
156
|
+
| Document repo conventions for any agent at session start | CLAUDE.md / AGENTS.md |
|
|
157
|
+
| Detect when a skill's truth source has silently moved | **Skill Graph** (drift sentinel) |
|
|
158
|
+
| Express that one skill depends on another | **Skill Graph** (`relations.depends_on`) |
|
|
159
|
+
| Share some skills across two projects but not all | **Skill Graph** (multi-root workspace mode + `workspace_tags`) |
|
|
160
|
+
|
|
161
|
+
If your need is in the **Skill Graph** rows, this contract is for you. If your need is in any other row, the named tool is the right primary fit; Skill Graph still complements it where the use cases overlap.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Source URLs (verified 2026-05-06)
|
|
166
|
+
|
|
167
|
+
- Anthropic SKILL.md: https://www.claude.com/skills
|
|
168
|
+
- Anthropic engineering on Skills: https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
|
|
169
|
+
- Cursor docs: https://cursor.com/docs
|
|
170
|
+
- Continue: https://continue.dev
|
|
171
|
+
- skillsmp.com: https://skillsmp.com
|
|
172
|
+
- skills.sh: https://skills.sh
|
|
173
|
+
- SKILL.md open standard: https://agentskills.io/specification
|
|
174
|
+
|
|
175
|
+
Each was reachable at the time of writing. URL drift is monitored via the sources cited in the README's positioning table.
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Skill Audit Loop — Positioning Proposal
|
|
2
|
+
|
|
3
|
+
> Type: Proposal
|
|
4
|
+
> Status: Draft for review
|
|
5
|
+
> Date: 2026-05-14
|
|
6
|
+
> Scope: Documentation and positioning only. No schema, field, script, or CLI changes.
|
|
7
|
+
|
|
8
|
+
## Why this proposal exists
|
|
9
|
+
|
|
10
|
+
The Skill Audit Loop is currently documented as a maintenance workflow —
|
|
11
|
+
something a library maintainer runs to keep a growing collection of skills
|
|
12
|
+
healthy. That description is accurate but it undersells what the loop does. It
|
|
13
|
+
describes the loop's cadence and outputs without stating its purpose.
|
|
14
|
+
|
|
15
|
+
This proposal supplies the missing purpose statement and proposes where it goes.
|
|
16
|
+
It does not change the loop, the protocol, or the graph. It changes how two
|
|
17
|
+
documents introduce the loop.
|
|
18
|
+
|
|
19
|
+
## 1. The conceptual frame
|
|
20
|
+
|
|
21
|
+
### What the loop is for
|
|
22
|
+
|
|
23
|
+
A portable capability skill ships as a contract about a subject. The contract
|
|
24
|
+
states what the skill is for, what grounds it, what it must not own, and how it
|
|
25
|
+
should be checked. But the contract is inert on its own. It is a frame, not an
|
|
26
|
+
answer. It becomes useful only when an agent applies it to a specific situation,
|
|
27
|
+
and it stays useful only while the things it was written against still hold.
|
|
28
|
+
|
|
29
|
+
Two of those things move. The first is the user's codebase: files get renamed,
|
|
30
|
+
patterns get replaced, the truth sources a skill points at drift out from under
|
|
31
|
+
it. The second is the subject itself: specifications get revised, conventions
|
|
32
|
+
shift, the guidance a skill encodes goes from current to dated. A skill written
|
|
33
|
+
against either moving target will, given enough time, describe a world that no
|
|
34
|
+
longer exists.
|
|
35
|
+
|
|
36
|
+
The Skill Audit Loop is the mechanism that re-grounds a skill against both. It
|
|
37
|
+
is not an optional polish step layered on top of skills that already work — it
|
|
38
|
+
is what keeps a skill working at all once time has passed. A maintainer running
|
|
39
|
+
the loop across their own library is one instance of this. An adopter running
|
|
40
|
+
the loop against their own repository is another instance of the same loop.
|
|
41
|
+
Both are doing the same thing: checking a skill's declared grounding against
|
|
42
|
+
current reality and recording the result.
|
|
43
|
+
|
|
44
|
+
This is not a new capability. The protocol fields that make the loop possible —
|
|
45
|
+
`grounding.truth_sources`, `grounding.failure_modes`, `freshness`, and
|
|
46
|
+
`drift_check` — already exist and already carry this meaning. The loop has
|
|
47
|
+
always been a re-grounding mechanism. The current documentation describes the
|
|
48
|
+
activity, auditing many skills on a cadence, without naming the purpose:
|
|
49
|
+
keeping each skill true to what it was grounded against.
|
|
50
|
+
|
|
51
|
+
### The two axes of re-grounding
|
|
52
|
+
|
|
53
|
+
The loop re-grounds along two independent axes. Both are already expressed in
|
|
54
|
+
protocol fields; neither needs a new term.
|
|
55
|
+
|
|
56
|
+
| Axis | What moves | Protocol fields that express it | How the loop checks it |
|
|
57
|
+
|---|---|---|---|
|
|
58
|
+
| **Codebase** | The repo the skill is grounded in — renamed files, replaced patterns, moved code. | `grounding.truth_sources` with `path:` entries, `grounding_mode: repo_specific`, `evidence_priority: repo_code_first`, `drift_check.truth_source_hashes` | The drift sentinel hashes each local truth source and reports `DRIFT` or `BROKEN`. Loop Step 5 classifies a mismatch as skill drift, code drift, or documentation drift. |
|
|
59
|
+
| **World** | The subject the skill describes — revised specs, shifted conventions, updated guidance. | `grounding.truth_sources` with URL entries, `grounding_mode: universal`, `grounding.failure_modes`, `freshness`, `lifecycle.review_cadence: on-truth-source-change` | The sentinel marks URL sources `EXTERNAL_UNHASHED` — valid but unfetched, so a human must re-check them. `freshness` is the authored claim that the body was last checked against current understanding on a given date. |
|
|
60
|
+
|
|
61
|
+
A skill grounded only in local code drifts when the code moves. A skill grounded
|
|
62
|
+
in an external standard drifts when the standard moves. Most real skills are
|
|
63
|
+
`grounding_mode: hybrid` and drift along both axes. The loop is the single
|
|
64
|
+
procedure that checks both, because both are declared in the same `grounding`
|
|
65
|
+
block.
|
|
66
|
+
|
|
67
|
+
## 2. Where the frame goes
|
|
68
|
+
|
|
69
|
+
### 2a. README.md — Skill Audit Loop section (proposed rewrite)
|
|
70
|
+
|
|
71
|
+
Keep the section in its current position. Keep both reference links. Open with
|
|
72
|
+
the frame, then the mechanics.
|
|
73
|
+
|
|
74
|
+
> ## Skill Audit Loop
|
|
75
|
+
>
|
|
76
|
+
> A skill is a contract about a subject. The contract is inert on its own — it stays useful only while the things it was written against still hold. Two of those things move: the codebase the skill is grounded in, and the subject the skill describes. The Skill Audit Loop re-grounds a skill against both. It is what keeps a skill true to its declared `grounding.truth_sources` once time has passed — whether a maintainer runs it across a whole library or an adopter runs it against their own repo.
|
|
77
|
+
>
|
|
78
|
+
> The loop adapts two useful patterns:
|
|
79
|
+
>
|
|
80
|
+
> - From [Karpathy's `autoresearch`](https://github.com/karpathy/autoresearch): a tight loop with a constrained action surface, a fixed experiment, a measurable result, and keep-or-revert pressure.
|
|
81
|
+
> - From [Stanford d.school design thinking](https://dschool.stanford.edu/resources/design-thinking-bootleg) and [IDEO's design thinking framing](https://designthinking.ideo.com/faq/isnt-design-thinking-a-set-step-by-step-process): human-centered iteration through discovery, framing, ideation, prototyping, testing, and loop-back when evidence changes the problem.
|
|
82
|
+
>
|
|
83
|
+
> For skills, the loop is:
|
|
84
|
+
>
|
|
85
|
+
> 1. Pick a skill or project area.
|
|
86
|
+
> 2. Gather evidence: the `SKILL.md`, eval files, manifest entry, related skills, and `grounding.truth_sources`.
|
|
87
|
+
> 3. Run deterministic checks first: schema lint, relation integrity, manifest validation, routing evals, overlap checks, and drift checks.
|
|
88
|
+
> 4. Audit the skill as a contract: activation, boundaries, taxonomy, grounding, examples, anti-examples, and verification partners.
|
|
89
|
+
> 5. Fix the skill or its metadata when the evidence supports the change.
|
|
90
|
+
> 6. Re-run checks and record the new state.
|
|
91
|
+
> 7. Move to the next skill or loop back if the fix changed the graph.
|
|
92
|
+
>
|
|
93
|
+
> This is not "self-improving skills" as a slogan. It is a re-grounding loop with evidence, constraints, and repeatable checks.
|
|
94
|
+
|
|
95
|
+
Changes from current text: one new opening paragraph before "The loop adapts
|
|
96
|
+
two useful patterns"; the closing line changes "maintenance loop" to
|
|
97
|
+
"re-grounding loop" to match the frame. The two bullet references and the
|
|
98
|
+
seven-step list are unchanged.
|
|
99
|
+
|
|
100
|
+
### 2b. SKILL_AUDIT_LOOP.md — opening (proposed rewrite)
|
|
101
|
+
|
|
102
|
+
The current opening goes straight to scope ("This document standardizes the
|
|
103
|
+
repeatable loop..."). Establish purpose first.
|
|
104
|
+
|
|
105
|
+
> # Skill Audit Loop
|
|
106
|
+
>
|
|
107
|
+
> A skill is a contract about a subject, and the contract is only true while the things it was written against still hold. The codebase a skill is grounded in changes. The subject a skill describes changes. The Skill Audit Loop is the procedure that re-grounds a skill against both — it checks a skill's declared `grounding.truth_sources` against current reality and records the result.
|
|
108
|
+
>
|
|
109
|
+
> This document standardizes that procedure so it can be run repeatably across many skills.
|
|
110
|
+
>
|
|
111
|
+
> ## Goal
|
|
112
|
+
>
|
|
113
|
+
> The loop exists to keep each skill true to what it was grounded against, and therefore to keep a skill library healthy over time.
|
|
114
|
+
>
|
|
115
|
+
> It should continuously detect:
|
|
116
|
+
>
|
|
117
|
+
> - metadata drift
|
|
118
|
+
> - routing drift
|
|
119
|
+
> - relation drift
|
|
120
|
+
> - stale grounding
|
|
121
|
+
> - weak eval coverage
|
|
122
|
+
> - portability hazards
|
|
123
|
+
|
|
124
|
+
Changes from current text: two new paragraphs before "This document
|
|
125
|
+
standardizes..."; the Goal sentence is extended to name the per-skill purpose
|
|
126
|
+
ahead of the library-health outcome. The six drift types are unchanged.
|
|
127
|
+
|
|
128
|
+
## 3. How the loop relates to the other two layers
|
|
129
|
+
|
|
130
|
+
Short paragraph, suitable for inclusion in README.md or SKILL_GRAPH.md:
|
|
131
|
+
|
|
132
|
+
> The three layers divide the work cleanly. The Skill Metadata Protocol declares what each skill is grounded against — its `truth_sources`, `grounding_mode`, and `failure_modes`. The Skill Graph operates across the whole library of those declarations, compiling, routing, clustering, and checking them. The Skill Audit Loop is the part of the Skill Graph that re-grounds each skill against its declared sources on a cadence, so the declarations the protocol captured stay true to the reality they point at.
|
|
133
|
+
|
|
134
|
+
The loop stays inside the Skill Graph layer. It is not promoted to a fourth
|
|
135
|
+
layer and not raised above the protocol.
|
|
136
|
+
|
|
137
|
+
## 4. What does not change
|
|
138
|
+
|
|
139
|
+
This repositioning is prose only. Explicitly, it does **not**:
|
|
140
|
+
|
|
141
|
+
- **rename anything** — Skill Metadata Protocol, Skill Graph, and Skill Audit Loop keep their names.
|
|
142
|
+
- **change the three-layer model** — SKILL.md format → Skill Metadata Protocol → Skill Graph is unchanged. The loop remains a function of the Skill Graph layer.
|
|
143
|
+
- **promote the loop** — the loop is not raised above the protocol or the graph, and the loop is not the product.
|
|
144
|
+
- **add or change schema** — no new fields, no new enum values, no `schema_version` bump.
|
|
145
|
+
- **add scripts or CLI verbs** — `skill-audit.js`, the five loop phases, and the `skill-graph` binary are untouched.
|
|
146
|
+
- **introduce new terms** — the frame is stated entirely in existing protocol vocabulary (`grounding.truth_sources`, `grounding_mode`, `failure_modes`, `freshness`, `drift_check`, `lifecycle`). In particular it does not introduce "concept-shaped skill" or any other new skill category.
|
|
147
|
+
- **replace the protocol** — the loop checks declarations; it does not define them. The protocol is still where grounding is declared.
|
|
148
|
+
- **claim "self-improving skills"** — the existing disclaimer stays. The loop is a re-grounding procedure with evidence and constraints, not an autonomous improver.
|
|
149
|
+
- **change the loop mechanics** — the five phases, the Karpathy and d.school/IDEO references, the cadence table, the artifact contract, and the non-goals are all unchanged.
|
|
150
|
+
|
|
151
|
+
## 5. Voice check
|
|
152
|
+
|
|
153
|
+
The proposed prose was checked against the existing README voice:
|
|
154
|
+
|
|
155
|
+
- **Short declarative sentences.** "The contract is inert on its own." "Two of those things move." Matches the README's "The distinction matters." and "Tags are not a global ontology."
|
|
156
|
+
- **"This is not X" disclaimers preserved.** The "self-improving skills" disclaimer is kept verbatim; the new "not an optional polish step" line follows the same pattern.
|
|
157
|
+
- **No exclamation, no slogans.** None used.
|
|
158
|
+
- **Restraint about novelty.** The frame is explicitly stated as "not a new capability" — consistent with the README's habit of underclaiming ("not a guarantee that every skill is correct").
|
|
159
|
+
- **Tables for structured comparison.** The two-axis table follows the existing README pattern of one concept per row.
|
|
160
|
+
- **Existing terminology only.** Every field name used (`grounding.truth_sources`, `grounding_mode`, `freshness`, `drift_check`, `failure_modes`, `lifecycle.review_cadence`, `evidence_priority`) appears verbatim in SKILL_METADATA_PROTOCOL.md.
|