@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,222 @@
|
|
|
1
|
+
# Marketplace Syndication and Gap Discovery
|
|
2
|
+
|
|
3
|
+
> **Audience.** Maintainers preparing Skill Graph and the full starter library for public discovery through `skills.sh`, SkillsMP, and other `SKILL.md` registries.
|
|
4
|
+
>
|
|
5
|
+
> **Status.** Working strategy. Update after each marketplace indexing experiment.
|
|
6
|
+
>
|
|
7
|
+
> **Last verified.** 2026-05-13.
|
|
8
|
+
|
|
9
|
+
> **CLI vs skill library distribution:** This document covers skill library syndication — publishing `SKILL.md` files to registries like `skills.sh` and SkillsMP. CLI distribution via npm (`@skill-graph/cli`) is a separate concern: the CLI is published from this repo via the `.github/workflows/publish.yml` pipeline on `v*.*.*` tags. See `SH-6110` for install verification and the [Releasing section in README.md](../README.md#releasing-maintainers) for the release procedure.
|
|
10
|
+
|
|
11
|
+
Skill Graph should use public skill marketplaces as discovery channels, not as the source of truth. The canonical artifacts stay in this repo: protocol-enriched `skills/**/SKILL.md` files, schemas, docs, evals, manifests, and reference tooling. Marketplaces receive plain `SKILL.md` exports or GitHub-indexable surfaces that point back to the canonical Skill Graph source.
|
|
12
|
+
|
|
13
|
+
The goal is twofold:
|
|
14
|
+
|
|
15
|
+
1. Syndicate the full library so people can discover and install the skills.
|
|
16
|
+
2. Mine marketplace gaps and add new Skill Metadata Protocol skills where Skill Graph can contribute real coverage.
|
|
17
|
+
|
|
18
|
+
This is additive. Do not shrink the library for marketplace presentation. Use indexes, generated views, metadata, and entry points.
|
|
19
|
+
|
|
20
|
+
## Short Advertising Description
|
|
21
|
+
|
|
22
|
+
Use this when a marketplace, README badge area, social post, repository description, or outreach note needs a compact project summary:
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
Skills that know your project and codebase. Structured and categorized. Skill Metadata Protocol is a structured frontmatter contract for SKILL.md. Skill Graph is the local library tooling that works across those structured skills.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Source Landscape
|
|
29
|
+
|
|
30
|
+
| Surface | What it is useful for | Practical note |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| `skills.sh` | Installable `SKILL.md` discovery, install telemetry, leaderboard, README badge. | The docs show `npx skills add owner/repo` and a badge at `https://skills.sh/b/owner/repo`. |
|
|
33
|
+
| SkillsMP | GitHub-scale discovery, keyword search, semantic search, categories, occupations, popularity/recent sorting. | The site describes public GitHub syncing and exposes `/api/v1/skills/search`; anonymous keyword search is rate-limited. |
|
|
34
|
+
| Agent Skills spec | The base portability target. | The base shape supports `name`, `description`, optional `license`, optional `compatibility`, optional `metadata`, optional `allowed-tools`, plus body content and optional `scripts/`, `references/`, and `assets/`. |
|
|
35
|
+
|
|
36
|
+
Source URLs:
|
|
37
|
+
|
|
38
|
+
- `skills.sh` docs: https://www.skills.sh/docs
|
|
39
|
+
- `skills.sh` CLI docs: https://www.skills.sh/docs/cli
|
|
40
|
+
- SkillsMP: https://skillsmp.com/
|
|
41
|
+
- SkillsMP API docs: https://skillsmp.com/docs/api
|
|
42
|
+
- Agent Skills specification: https://agentskills.io/specification
|
|
43
|
+
|
|
44
|
+
## Syndication Policy
|
|
45
|
+
|
|
46
|
+
Syndicate all public Skill Graph skills that pass export validation. A short demo list is allowed only as a front door in docs, posts, and outreach. It is never a cap on what gets exported or indexed. This follows the repository quality doctrine: organize and adapt exports, do not trim the canonical source. See [`quality-doctrine.md`](quality-doctrine.md).
|
|
47
|
+
|
|
48
|
+
The canonical source remains:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
skills/<skill-name>/SKILL.md
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The plain marketplace artifact should be generated, not hand-edited. If a marketplace needs stricter base `SKILL.md` constraints than Skill Metadata Protocol uses internally, fix the export path or add an export-specific normalization step. Do not weaken the canonical protocol record just to satisfy a registry.
|
|
55
|
+
|
|
56
|
+
## Release Target Decision
|
|
57
|
+
|
|
58
|
+
Use a dedicated export repository as the public GitHub target:
|
|
59
|
+
|
|
60
|
+
```text
|
|
61
|
+
jacob-balslev/skills
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Do not point marketplace indexers at this canonical protocol repo as the first
|
|
65
|
+
install target. The canonical `skills/` directory intentionally contains
|
|
66
|
+
Skill Metadata Protocol frontmatter, not plain marketplace frontmatter. A
|
|
67
|
+
dedicated export repository avoids mixed indexing, keeps the marketplace surface
|
|
68
|
+
small, and lets `skills/` sit at the repository root with one plain
|
|
69
|
+
`SKILL.md` per public skill.
|
|
70
|
+
|
|
71
|
+
The local staging surface is generated in this repo under:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
marketplace/skills/<name>/SKILL.md
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
After generation and verification, push that generated surface to the dedicated
|
|
78
|
+
export repository. The install command to validate after publishing is:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx skills add jacob-balslev/skills
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Export Provenance
|
|
85
|
+
|
|
86
|
+
Marketplace exports should carry a small, factual provenance block in `metadata`. Do not put advertising copy in every skill body; the body is operational context loaded by agents.
|
|
87
|
+
|
|
88
|
+
Use string values so the result stays compatible with the base `SKILL.md` metadata shape:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
metadata:
|
|
92
|
+
skill_graph_source_repo: "https://github.com/jacob-balslev/skill-graph"
|
|
93
|
+
skill_graph_protocol: "Skill Metadata Protocol v4"
|
|
94
|
+
skill_graph_project: "Skill Graph"
|
|
95
|
+
skill_graph_canonical_skill: "skills/<name>/SKILL.md"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
If a generated export already nests protocol fields under `metadata`, keep these `skill_graph_*` keys alongside that export metadata. The purpose is provenance, not keyword stuffing.
|
|
99
|
+
|
|
100
|
+
## Marketplace Preparation Checklist
|
|
101
|
+
|
|
102
|
+
Before publishing or asking a marketplace to index the library:
|
|
103
|
+
|
|
104
|
+
- Use [`marketplace-release-agent-prompt.md`](marketplace-release-agent-prompt.md) when handing the export-surface implementation to another agent.
|
|
105
|
+
- Run `npm run verify`.
|
|
106
|
+
- Generate plain `SKILL.md` exports for the whole public library.
|
|
107
|
+
- Generate the marketplace surface with `node scripts/export-marketplace-skills.js`.
|
|
108
|
+
- Verify the generated surface with `node scripts/export-marketplace-skills.js --check`.
|
|
109
|
+
- Verify the generated plain shape with `node scripts/verify-skill-md-export.js --plain marketplace/skills`.
|
|
110
|
+
- Run a privacy gate before creating row-level marketplace lists or export surfaces.
|
|
111
|
+
- Exclude any skill that exposes private projects, customer workflows, local runtime paths, personal names, email addresses, token-like strings, private repository names, or local operating context.
|
|
112
|
+
- Keep excluded rows out of public reports, generated exports, marketplace metadata, social posts, and outreach notes until they are rewritten as general public skills and re-scanned cleanly.
|
|
113
|
+
- Verify exported `name` values match the base `SKILL.md` pattern and parent directory names.
|
|
114
|
+
- Verify exported `description` values fit the base `SKILL.md` limit.
|
|
115
|
+
- Verify exported `compatibility` values are flattened strings, not objects.
|
|
116
|
+
- Verify exported `metadata` values are string-to-string.
|
|
117
|
+
- Add or update README install instructions for the export surface.
|
|
118
|
+
- Add the `skills.sh` badge only after the install path works.
|
|
119
|
+
- Confirm ignored local artifacts are not staged.
|
|
120
|
+
- Review generated exports for secrets, private paths, telemetry, customer data, personal data, and accidental local-only research.
|
|
121
|
+
|
|
122
|
+
## Gap Discovery Loop
|
|
123
|
+
|
|
124
|
+
Run this loop periodically, especially before outreach or a release.
|
|
125
|
+
|
|
126
|
+
1. Build the Skill Graph inventory from `examples/skills.manifest.sample.json` or a freshly generated manifest.
|
|
127
|
+
2. Query `skills.sh` and SkillsMP for Skill Graph domains, adjacent domains, and obvious missing terms.
|
|
128
|
+
3. Normalize marketplace results into a small working table: query, marketplace, skill name, repo, description, category, occupation, popularity signal, and last update when available.
|
|
129
|
+
4. Classify each query result against the current library:
|
|
130
|
+
- `covered`: Skill Graph already has meaningful coverage.
|
|
131
|
+
- `covered-needs-syndication`: Skill Graph has coverage, but marketplace search cannot see it yet.
|
|
132
|
+
- `thin`: Skill Graph has adjacent coverage, but the marketplace exposes a real user task we should cover more directly.
|
|
133
|
+
- `gap`: The marketplace has demand or repeated examples and Skill Graph has no matching skill.
|
|
134
|
+
- `out-of-scope`: The gap belongs to a hosted service, proprietary workflow, prompt library, runtime implementation, or other excluded area.
|
|
135
|
+
5. For `thin` and `gap`, write a short skill spec and plan before authoring content.
|
|
136
|
+
6. Add the new skill under `skills/<skill-name>/SKILL.md` with the full Skill Metadata Protocol contract.
|
|
137
|
+
7. Add `examples`, `anti_examples`, and `relations.boundary` so the new skill improves the graph instead of creating duplicate activation.
|
|
138
|
+
8. Run lint, routing evals, overlap checks, and manifest validation.
|
|
139
|
+
9. Re-export the full library and repeat the marketplace search to confirm the gap is now discoverable.
|
|
140
|
+
|
|
141
|
+
The output of gap work is a better library, not a list of deleted or hidden skills.
|
|
142
|
+
|
|
143
|
+
## Initial Query Set
|
|
144
|
+
|
|
145
|
+
Use these queries as the first reproducible marketplace sweep. Add more as new domains appear.
|
|
146
|
+
|
|
147
|
+
| Query | What it probes |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `SKILL.md audit` | Whether registries have skills for checking skill quality and conformance. |
|
|
150
|
+
| `skill routing` | Whether registries cover multi-skill routing and wrong-skill activation. |
|
|
151
|
+
| `skill drift detection` | Whether registries cover stale grounded skills and truth-source drift. |
|
|
152
|
+
| `skill manifest` | Whether registries expose generated inventory and library metadata workflows. |
|
|
153
|
+
| `agent skill eval` | Whether registries cover eval artifacts, routing evals, and quality states. |
|
|
154
|
+
| `skill overlap` | Whether registries cover duplicate activation and ownership boundaries. |
|
|
155
|
+
| `skill provenance` | Whether registries cover source, license, and trust metadata. |
|
|
156
|
+
| `skill graph` | Whether the Skill Graph concept itself is visible. |
|
|
157
|
+
| `context graph` | Whether larger context-library architecture is covered. |
|
|
158
|
+
| `tool call strategy` | Whether tool-use discipline is represented as a skill. |
|
|
159
|
+
| `agent workflow design` | Whether workflow-level agent engineering is covered. |
|
|
160
|
+
| `AI coding workspace` | Whether project-level AI workspace structure is covered. |
|
|
161
|
+
| `design thinking agent skill` | Whether design methodology skills are discoverable. |
|
|
162
|
+
| `ontology modeling agent skill` | Whether semantic modeling skills exist. |
|
|
163
|
+
| `webhook integration skill` | Whether integration-specific skills exist and how they are framed. |
|
|
164
|
+
| `Shopify skill` | Whether commerce-specific skills exist and where Skill Graph has differentiated coverage. |
|
|
165
|
+
|
|
166
|
+
Treat this table as a starting queue. The gap ledger should record exact dates and marketplace responses, because both registries change over time.
|
|
167
|
+
|
|
168
|
+
## Gap Candidates To Verify
|
|
169
|
+
|
|
170
|
+
These are hypotheses, not claims. Validate them with the gap loop before creating new skills.
|
|
171
|
+
|
|
172
|
+
| Candidate area | Why it may be useful | Likely Skill Graph shape |
|
|
173
|
+
|---|---|---|
|
|
174
|
+
| Skill registry hygiene | Marketplace users need to inspect third-party skills before installing them. | `capability`, portable, strong `relations.verify_with` to `security` and `graph-audit`. |
|
|
175
|
+
| Skill provenance review | Public registries need source, license, compatibility, and trust review. | `workflow`, portable, grounded in Agent Skills spec and Skill Graph export docs. |
|
|
176
|
+
| Marketplace export packaging | Authors need to publish Skill Metadata Protocol skills as plain `SKILL.md`. | `workflow`, reference or portable, tied to `scripts/export-skill.js`. |
|
|
177
|
+
| Skill gap analysis | Teams need to compare their library against marketplace demand. | `workflow`, portable, depends on `skill-router`, `graph-audit`, and `skill-infrastructure`. |
|
|
178
|
+
| Skill install risk triage | Installing a public skill is supply-chain work, not only copy-paste. | `capability`, portable, verify with `owasp-security` and `dependency-architecture`. |
|
|
179
|
+
| Cross-runtime compatibility notes | Skills may behave differently across Claude Code, Codex, Cursor, Windsurf, and others. | `capability`, portable, with conservative compatibility language. |
|
|
180
|
+
| Skill library release checklist | A multi-skill library needs release hygiene before public distribution. | `workflow`, portable, depends on `version-control`, `documentation`, and `graph-audit`. |
|
|
181
|
+
|
|
182
|
+
Do not create a new skill just because a keyword is popular. Create one when Skill Graph can provide a useful, maintainable contract with clear activation, boundaries, relations, and verification.
|
|
183
|
+
|
|
184
|
+
## Outreach Path
|
|
185
|
+
|
|
186
|
+
Use a two-step outreach path:
|
|
187
|
+
|
|
188
|
+
1. Ask maintainers for indexing and compatibility feedback.
|
|
189
|
+
2. After the export and install path works, post the full project publicly.
|
|
190
|
+
|
|
191
|
+
Suggested maintainer note:
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
Skills that know your project and codebase. Structured and categorized. Skill Metadata Protocol is a structured frontmatter contract for SKILL.md. Skill Graph is the local library tooling that works across those structured skills.
|
|
195
|
+
|
|
196
|
+
We are preparing to syndicate the full public starter library and would like feedback on the best shape for indexing generated exports while preserving canonical Skill Metadata Protocol metadata.
|
|
197
|
+
|
|
198
|
+
Repo: https://github.com/jacob-balslev/skill-graph
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Suggested public note:
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
Skills that know your project and codebase. Structured and categorized. Skill Metadata Protocol is a structured frontmatter contract for SKILL.md. Skill Graph is the local library tooling that works across those structured skills.
|
|
205
|
+
|
|
206
|
+
The full starter library is published from one canonical repo:
|
|
207
|
+
https://github.com/jacob-balslev/skill-graph
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
For broader creator outreach, lead with the full library and the protocol/tooling story. Mention examples only as entry points.
|
|
211
|
+
|
|
212
|
+
## Acceptance Criteria
|
|
213
|
+
|
|
214
|
+
Marketplace syndication is ready when:
|
|
215
|
+
|
|
216
|
+
- Every public skill has a generated plain `SKILL.md` export or a documented reason it is not exported yet.
|
|
217
|
+
- Exported skills include factual Skill Graph provenance metadata.
|
|
218
|
+
- The README explains how to install or inspect the exported library.
|
|
219
|
+
- `skills.sh` can install the intended surface.
|
|
220
|
+
- SkillsMP can discover the GitHub source or exports.
|
|
221
|
+
- A gap ledger exists with dated marketplace queries and classifications.
|
|
222
|
+
- New gap-driven skills go through the normal spec, plan, lint, manifest, routing, overlap, and export checks.
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Migration Sample Review — v4 → v5 Category Enum
|
|
2
|
+
|
|
3
|
+
> **Status:** Active. Created 2026-05-16.
|
|
4
|
+
> **Plan:** [`/Users/jacobbalslev/Development/docs/plans/skill-taxonomy-v5-and-gap-fill.md`](../../docs/plans/skill-taxonomy-v5-and-gap-fill.md) § Phase 0b.
|
|
5
|
+
> **Gate verdict:** **PASS** — 26 of 30 assignments agree (86.67% ≥ 85% threshold). Phase 1 schema bump is unblocked, with four specific revisions recommended below.
|
|
6
|
+
|
|
7
|
+
## Method
|
|
8
|
+
|
|
9
|
+
The v5 category migration landed in skill-graph commit `210ac69` (2026-05-16) without a recorded reviewer-agreement check. This document supplies the missing gate retrospectively: a stratified sample of 30 skills spanning all 12 pre-migration `category` values, scored against the A′ mapping rules from the v5 plan, with disagreements flagged for follow-up.
|
|
10
|
+
|
|
11
|
+
**Sampling.** Pre-migration categories extracted from `git show 210ac69^` (102 skills). Stratified to span every pre-migration value:
|
|
12
|
+
|
|
13
|
+
| Pre-migration `category` | In-population N | Sample N | Coverage |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| `knowledge` | 29 | 5 | 17% |
|
|
16
|
+
| `engineering` | 23 | 4 | 17% |
|
|
17
|
+
| `design` | 15 | 3 | 20% |
|
|
18
|
+
| `frontend` | 9 | 3 | 33% |
|
|
19
|
+
| `ai-engineering` | 9 | 2 | 22% |
|
|
20
|
+
| `quality` | 8 | 4 | 50% |
|
|
21
|
+
| `integrations` | 2 | 2 | 100% |
|
|
22
|
+
| `integration` | 2 | 2 | 100% |
|
|
23
|
+
| `data` | 2 | 2 | 100% |
|
|
24
|
+
| `workflow` | 1 | 1 | 100% |
|
|
25
|
+
| `security` | 1 | 1 | 100% |
|
|
26
|
+
| `product` | 1 | 1 | 100% |
|
|
27
|
+
| **Total** | **102** | **30** | **29%** |
|
|
28
|
+
|
|
29
|
+
Sample is deterministic (seeded `random.seed(20260516)`) so a second reviewer can reproduce it from `/tmp/sample-30.json` or re-sample with the same seed.
|
|
30
|
+
|
|
31
|
+
**Scoring rules.** Each assignment scored AGREE / DISAGREE / BORDERLINE against the v5 plan's A′ rules:
|
|
32
|
+
|
|
33
|
+
1. **Primary surface** — category names what the skill is *about*, not what it *enables*
|
|
34
|
+
2. **Property vs subject** — a11y, perf, security, testing, type-safety are properties → `quality`; how to build is a subject → `engineering` / `design` / `agent`
|
|
35
|
+
3. **`foundations` gate** — reserved for epistemic preconditions; skill must NOT be plausibly assignable to `agent` / `engineering` / `quality` / `design`
|
|
36
|
+
4. **6-category enum**: `foundations` / `engineering` / `design` / `quality` / `agent` / `product`
|
|
37
|
+
|
|
38
|
+
## Sample Results — All 30 Skills
|
|
39
|
+
|
|
40
|
+
| # | Skill | Pre-migration | Post-migration (v5) | A′ Verdict | Notes |
|
|
41
|
+
|---|---|---|---|---|---|
|
|
42
|
+
| 1 | `command-palette` | `ai-engineering` | `design` | ✓ AGREE | Pure UI interaction pattern; pre-migration value was wrong |
|
|
43
|
+
| 2 | `guardrails` | `ai-engineering` | `quality` | ✓ AGREE | Safety = quality property (Rule 2) |
|
|
44
|
+
| 3 | `compression` | `data` | `engineering` | ✓ AGREE | Per plan: data → engineering w/ `domain: engineering/data` |
|
|
45
|
+
| 4 | `entity-relationship-modeling` | `data` | `engineering` | ✓ AGREE | Same as #3 |
|
|
46
|
+
| 5 | `color-system-design` | `design` | `design` | ✓ AGREE | No transition needed |
|
|
47
|
+
| 6 | `design-module-composition` | `design` | `design` | ✓ AGREE | Component-system design |
|
|
48
|
+
| 7 | `vercel-composition-patterns` | `design` | `design` | ❌ DISAGREE | Should be `engineering` w/ `domain: engineering/frontend`. The skill teaches React code patterns (compound components, render props, context providers, React 19 APIs) — engineering, not visual design. Vercel-Labs publishes this under the React / frontend topic shelf on skills.sh, not design. |
|
|
49
|
+
| 8 | `architecture-decision-records` | `engineering` | `engineering` | ✓ AGREE | Engineering process artifact |
|
|
50
|
+
| 9 | `event-storming` | `engineering` | `engineering` | ✓ AGREE | Domain discovery for engineering |
|
|
51
|
+
| 10 | `framework-fit-analysis` | `engineering` | `engineering` | ✓ AGREE | Engineering technique |
|
|
52
|
+
| 11 | `performance-engineering` | `engineering` | `engineering` | ❌ DISAGREE | Should be `quality` per Rule 2. Performance is one of the explicit `quality` properties listed in the v5 plan (alongside a11y, security, testing, type-safety). The "engineering" suffix in the skill name describes the *practice*, not the *category*. Co-located with `performance-budgets` (which IS in `quality`) — the two should share a primary surface. |
|
|
53
|
+
| 12 | `form-ux-architecture` | `frontend` | `design` | ✓ AGREE | Form UX is design |
|
|
54
|
+
| 13 | `interaction-patterns` | `frontend` | `design` | ✓ AGREE | UI controls are design |
|
|
55
|
+
| 14 | `visual-design-foundations` | `frontend` | `design` | ✓ AGREE | Obviously design |
|
|
56
|
+
| 15 | `cron-scheduling` | `integration` | `engineering` | ✓ AGREE | Per plan: integration → engineering w/ `domain: engineering/integrations` (or engineering/scheduling) |
|
|
57
|
+
| 16 | `real-time-updates` | `integration` | `engineering` | ✓ AGREE | Same as #15 (also engineering/realtime) |
|
|
58
|
+
| 17 | `printify` | `integrations` | `engineering` | ✓ AGREE | Vendor integration is engineering |
|
|
59
|
+
| 18 | `shopify` | `integrations` | `engineering` | ✓ AGREE | Same as #17 |
|
|
60
|
+
| 19 | `conceptual-modeling` | `knowledge` | `engineering` | ⚠ BORDERLINE-AGREE | Could plausibly be `foundations` (epistemic precondition for engineering). Accepted as `engineering` because the description emphasizes practical translation to DB schemas / API endpoints / DDD aggregates. If migration-sample reviewer disagrees, foundations is the strong alternative. |
|
|
61
|
+
| 20 | `constraint-awareness` | `knowledge` | `foundations` | ✓ AGREE | Theory of Constraints = epistemic discipline; passes foundations-gate |
|
|
62
|
+
| 21 | `semantic-center` | `knowledge` | `foundations` | ✓ AGREE | "How parts of a system connect" = epistemic reasoning; passes gate |
|
|
63
|
+
| 22 | `semiotics` | `knowledge` | `foundations` | ❌ DISAGREE | Should be `design`. Description: "Use when designing or auditing icon systems, colors/badges/shapes, visual metaphors, interface signs..." — every use case is design. Fails the foundations-gate: the skill IS plausibly assignable to `design` (interface signs, icon design). Semiotic theory grounds design semantics, but applied semiotics is a design discipline. |
|
|
64
|
+
| 23 | `skill-router` | `knowledge` | `agent` | ✓ AGREE | Agent-system tooling |
|
|
65
|
+
| 24 | `keywords` | `product` | `product` | ✓ AGREE | Lone product skill; appropriate primary surface |
|
|
66
|
+
| 25 | `agent-eval-design` | `quality` | `quality` | ⚠ BORDERLINE-AGREE | Evaluation is a quality property per Rule 2, so quality fits. **Plan tension:** `eval-driven-development` (Wave 3) is `agent`, not `quality`. The two are conceptually adjacent — eval-driven-development is the *practice* of evaluation while agent-eval-design is the *design* of evaluation artifacts. The plan should explicitly resolve whether evaluation is a `quality` property (per Rule 2) or an `agent` practice (per Wave 3). Recommendation: keep agent-eval-design in `quality`, surface `agent` via `relations.related`. |
|
|
67
|
+
| 26 | `code-review` | `quality` | `quality` | ✓ AGREE | Quality workflow |
|
|
68
|
+
| 27 | `lint-overlay` | `quality` | `quality` | ✓ AGREE | Linting is quality practice |
|
|
69
|
+
| 28 | `ontology` | `quality` | `quality` | ❌ DISAGREE | Should be `engineering` (with strong `foundations` crossover). Description: "designing domain models that need formal type hierarchies, entity classification, knowledge-graph structure, category/type design, or ontology-driven APIs and databases." This is *not* about verifying quality of an artifact — it's about modeling domain structure. The pre-migration `quality` value appears to have been wrong, and the migration carried it forward unchanged. |
|
|
70
|
+
| 29 | `owasp-security` | `security` | `quality` | ✓ AGREE | Security = quality property per Rule 2; aligns with plan's mapping |
|
|
71
|
+
| 30 | `background-jobs` | `workflow` | `engineering` | ✓ AGREE | Workflow re-categorized by subject (engineering) — per plan |
|
|
72
|
+
|
|
73
|
+
## Aggregate Results
|
|
74
|
+
|
|
75
|
+
| Verdict | Count | % |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| AGREE | 26 | 86.67% |
|
|
78
|
+
| DISAGREE | 4 | 13.33% |
|
|
79
|
+
| BORDERLINE-AGREE | 2 (counted in AGREE) | — |
|
|
80
|
+
|
|
81
|
+
**Threshold:** ≥ 85% reviewer-agreement on category gates Phase 1.
|
|
82
|
+
**Outcome:** **PASS** (86.67%). The gate is just above threshold — Phase 1 schema bump is unblocked, but four specific revisions are recommended below to strengthen the mapping rules before bulk migration of the broader 287-skill library (Phase 5).
|
|
83
|
+
|
|
84
|
+
## Disagreement Patterns
|
|
85
|
+
|
|
86
|
+
Three structural patterns surface across the 4 DISAGREE cases:
|
|
87
|
+
|
|
88
|
+
### Pattern 1: Properties-as-subject confusion (1 case)
|
|
89
|
+
|
|
90
|
+
`performance-engineering` is in `engineering` but per A′ Rule 2 it's a quality property. The skill's *name* contains "engineering" but its *primary surface* is a non-functional property (latency, throughput, CWV).
|
|
91
|
+
|
|
92
|
+
**Recommendation:** Move `performance-engineering` to `quality`. Verify against `performance-budgets` (already `quality`) — the two should share category. Add a lint warning: when a skill name ends in `-engineering` but its primary domain is a property in {a11y, performance, security, testing, type-safety, reliability}, propose `quality`.
|
|
93
|
+
|
|
94
|
+
### Pattern 2: foundations-gate not enforced (1 case)
|
|
95
|
+
|
|
96
|
+
`semiotics` is in `foundations` but is plausibly assignable to `design`. The plan's foundations-gate explicitly says: "the skill teaches an epistemic precondition AND the skill cannot be plausibly assigned to `agent`, `engineering`, `quality`, or `design`."
|
|
97
|
+
|
|
98
|
+
**Recommendation:** Move `semiotics` to `design`. Apply the foundations-gate check to every other current foundations member. If `foundations` ends up smaller than 8 entries post-fix, the v5 plan's expected size (8–15) is itself the upper bound and the category remains valid.
|
|
99
|
+
|
|
100
|
+
### Pattern 3: Carried-over wrong values (2 cases)
|
|
101
|
+
|
|
102
|
+
`ontology` and `vercel-composition-patterns` had wrong values pre-migration that the codemod carried through unchanged. The migration only edited skills whose old value was in the deprecation list (`knowledge` / `frontend` / `ai-engineering` / `integration` / `integrations` / `data` / `workflow` / `security`); it didn't audit already-allowed values.
|
|
103
|
+
|
|
104
|
+
**Recommendation:** Add a one-pass audit of all 137 skills' v5 category assignments against the A′ rules, not just the migrated values. The codemod was structurally one-directional and missed pre-existing miscategorizations.
|
|
105
|
+
|
|
106
|
+
## Recommended Pre-Phase-1 Revisions
|
|
107
|
+
|
|
108
|
+
Apply these 4 category corrections in a single commit before bumping `schema_version: 5`:
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
skills/vercel-composition-patterns/SKILL.md design → engineering
|
|
112
|
+
skills/performance-engineering/SKILL.md engineering → quality
|
|
113
|
+
skills/semiotics/SKILL.md foundations → design
|
|
114
|
+
skills/ontology/SKILL.md quality → engineering
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Then re-run the routing-eval to confirm no `routing_eval: present` skill loses its tested examples. None of the 4 affected skills have `routing_eval: present` per a spot-check, so risk is low.
|
|
118
|
+
|
|
119
|
+
## Open Questions Surfaced
|
|
120
|
+
|
|
121
|
+
1. **`conceptual-modeling`** sits on the foundations / engineering boundary. Accepted as engineering but worth a second reviewer pass. If a second rater says foundations, the count flips to 25/30 = 83.3% — below threshold.
|
|
122
|
+
2. **`agent-eval-design` vs `eval-driven-development`**: the plan should explicitly state whether evaluation is a quality property (→ `quality`) or an agent practice (→ `agent`). Currently the two skills sit in different categories despite conceptual adjacency.
|
|
123
|
+
3. **Plan's deferred Open Question #2** (whether `product` retains its category) — the 1-skill sample (`keywords`) cleanly fits `product`; deferring to Phase 0a retrieval baseline as planned.
|
|
124
|
+
|
|
125
|
+
## Reproducibility
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
# Re-extract pre-migration categories
|
|
129
|
+
cd /Users/jacobbalslev/Development/skill-graph
|
|
130
|
+
git ls-tree -r --name-only 210ac69^ | grep -E '^skills/[^/]+/SKILL\.md$' | while read f; do
|
|
131
|
+
skill=$(echo "$f" | sed 's|skills/||; s|/SKILL.md||')
|
|
132
|
+
cat=$(git show "210ac69^:$f" | grep -E '^category:' | head -1 | awk '{print $2}')
|
|
133
|
+
echo "$skill|$cat"
|
|
134
|
+
done > /tmp/pre-migration-cats.txt
|
|
135
|
+
|
|
136
|
+
# Re-run the deterministic sample
|
|
137
|
+
python3 -c "
|
|
138
|
+
import random; random.seed(20260516)
|
|
139
|
+
# ... (sample logic from this review's audit script)
|
|
140
|
+
"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Sample data also persisted at `/tmp/sample-30.json` for the duration of this session.
|
|
144
|
+
|
|
145
|
+
## Verification Gate (this document)
|
|
146
|
+
|
|
147
|
+
A future agent should consider this review complete when:
|
|
148
|
+
|
|
149
|
+
- [x] 30 skills sampled spanning all 12 pre-migration category values
|
|
150
|
+
- [x] Each assignment scored AGREE / DISAGREE / BORDERLINE
|
|
151
|
+
- [x] Reviewer-agreement % computed and compared to 85% threshold
|
|
152
|
+
- [x] Disagreement patterns extracted from the cases
|
|
153
|
+
- [x] Specific revisions recommended before Phase 1 schema bump
|
|
154
|
+
- [x] Reproducibility instructions provided
|
|
155
|
+
- [ ] (Optional) Second independent rater agreement check — recommended but not required to clear the gate
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Migration: schema_version 4 → 5
|
|
2
|
+
|
|
3
|
+
> **Status:** Active. Created 2026-05-16.
|
|
4
|
+
> **Breaking change.** Closing the open-ended `category` field to a 6-value enum and removing 7 deprecated values is breaking. All skills must bump `schema_version` from `"4"` to `"5"`.
|
|
5
|
+
> **Plan:** `docs/plans/skill-taxonomy-v5-and-gap-fill.md` (in the Development workspace).
|
|
6
|
+
> **Phase 0b gate:** PASS — 26/30 = 86.67% reviewer-agreement on category. See [`skill-graph/docs/migration-sample-review.md`](../../../skill-graph/docs/migration-sample-review.md).
|
|
7
|
+
|
|
8
|
+
## What changed
|
|
9
|
+
|
|
10
|
+
### 1. `category` is now a closed enum of 6 values
|
|
11
|
+
|
|
12
|
+
| Removed (v4) | Replaced by (v5) | Notes |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `knowledge` | split by inspection — `foundations` (epistemics) / `engineering` (modeling) / `design` (design concepts) / `agent` (eval/grounding) | `knowledge` was the bucket-of-last-resort and dissolves |
|
|
15
|
+
| `frontend` | `engineering` w/ `domain: engineering/frontend` OR `design` (when primary surface is visual/UX) | judgment per A′ Rule 1 (primary surface) |
|
|
16
|
+
| `ai-engineering` | `agent` | the v5 name for AI/agent skills |
|
|
17
|
+
| `integration` | `engineering` w/ `domain: engineering/integrations` | naming-drift dedup |
|
|
18
|
+
| `integrations` | `engineering` w/ `domain: engineering/integrations` | naming-drift dedup |
|
|
19
|
+
| `data` | `engineering` w/ `domain: engineering/data` | |
|
|
20
|
+
| `workflow` | re-categorize by *subject* (`type: workflow` already carries method) | e.g. `background-jobs` → `engineering` |
|
|
21
|
+
| `security` | `quality` | security is a quality property (A′ Rule 2) |
|
|
22
|
+
| `engineering` | `engineering` (unchanged) | populate `domain` where missing |
|
|
23
|
+
| `design` | `design` (unchanged) | |
|
|
24
|
+
| `quality` | `quality` (unchanged) | promoted to 6th category — see Reconciliation Gate 2 in v5 plan |
|
|
25
|
+
| `product` | `product` (unchanged) | |
|
|
26
|
+
|
|
27
|
+
**New canonical enum (v5):** `foundations | engineering | design | quality | agent | product`
|
|
28
|
+
|
|
29
|
+
The schema-level `enum` constraint is enforced in `schemas/skill.v5.schema.json`. Lint rejects any other value.
|
|
30
|
+
|
|
31
|
+
### 2. `foundations` is the new browse home for epistemic preconditions
|
|
32
|
+
|
|
33
|
+
`foundations` covers skills that teach how to think, how to ground, how to verify, how to learn — epistemic preconditions of being a competent agent or engineer. Examples: `epistemic-grounding`, `constraint-awareness`, `mental-models`, `semantic-center`, `reasoning`.
|
|
34
|
+
|
|
35
|
+
**Foundations-gate anti-junk-drawer rule:**
|
|
36
|
+
|
|
37
|
+
> Membership in `foundations` requires (a) the skill teaches an epistemic precondition AND (b) the skill cannot be plausibly assigned to `agent`, `engineering`, `quality`, or `design`. If the skill could plausibly fit another category, it goes there instead.
|
|
38
|
+
|
|
39
|
+
Expected `foundations` size: 8–15 skills. If `foundations` exceeds 20 entries, the gate has failed and the migration is misrouted.
|
|
40
|
+
|
|
41
|
+
`foundations` replaces the prior plan's `Meta Method` category — same conceptual slot, different name. See `docs/plans/skill-taxonomy-v5-and-gap-fill.md` § Reconciliation Gate 1.
|
|
42
|
+
|
|
43
|
+
### 3. `quality` is promoted from facet to 6th category
|
|
44
|
+
|
|
45
|
+
The prior plan (`docs/plans/skill-taxonomy-architecture.md`, 2026-04-03) treated quality as a `layerPrimary` facet. v5 promotes it to a 6th category because Phase 0a retrieval baseline showed quality-shaped queries (OWASP, Core Web Vitals, accessibility, mocking-strategy) routed poorly without quality-shaped homes.
|
|
46
|
+
|
|
47
|
+
**A′ Rule 2 — Property vs subject:**
|
|
48
|
+
|
|
49
|
+
> Properties of any artifact (a11y, perf, security, testing, type-safety, observability) → `quality`. How to build → `engineering` / `design` / `agent`.
|
|
50
|
+
|
|
51
|
+
If a skill's primary surface is a non-functional property of an artifact, it belongs in `quality`. If it's about *building* something, it belongs in the subject category (engineering/design/agent).
|
|
52
|
+
|
|
53
|
+
### 4. Naming convention shifts to head-noun glossary + allowed_exceptions registry
|
|
54
|
+
|
|
55
|
+
The prior "two-anchor compound" naming rule and the banned-verb-prefix lint are replaced by:
|
|
56
|
+
|
|
57
|
+
1. **Head-noun glossary** at `docs/head-noun-glossary.md` — each skill name must end with a head noun from this glossary (e.g. `architecture`, `design`, `system`, `flow`, `model`, `pattern`, `boundary`, `protocol`).
|
|
58
|
+
2. **Optional modifiers** — pattern: `<modifier>-<head-noun>` or `<modifier>-<modifier>-<head-noun>` (max 2 modifiers).
|
|
59
|
+
3. **`allowed_exceptions` registry** at `docs/name-exceptions.yaml` — established industry term-of-art exceptions with a citation per entry (e.g. `code-review`, `design-review`, `event-storming`).
|
|
60
|
+
4. **Lint** in `scripts/skill-lint.js` checks head-noun + modifier-count + registry fallback.
|
|
61
|
+
|
|
62
|
+
### 5. Concept-shape adoption rule is evidence-based
|
|
63
|
+
|
|
64
|
+
`comprehension_state: present` requires **all four** conditions:
|
|
65
|
+
|
|
66
|
+
1. `scope` ∈ {`portable`, `reference`}
|
|
67
|
+
2. `type` = `capability`
|
|
68
|
+
3. `grounding.external_sources` cites ≥2 non-repo references (spec, canonical book, vendor doc with industry adoption, peer-reviewed paper). Single-vendor-feature anchors do not count as two sources.
|
|
69
|
+
4. The `concept` block (definition / mental_model / purpose / boundary / taxonomy / analogy / misconception) can be written *without any repo-specific noun* — no Sales Hub, no Shopify, no orchestrator-ui, no internal file paths.
|
|
70
|
+
|
|
71
|
+
Lint emits a warning if `comprehension_state: present` is set but condition #3 or #4 fails. Stronger than the prior "social recognition" framing.
|
|
72
|
+
|
|
73
|
+
### 6. `category` is framed as a browse facet, not ontology truth
|
|
74
|
+
|
|
75
|
+
The v5 protocol doc explicitly states:
|
|
76
|
+
|
|
77
|
+
> `category` answers one question only: *Where should a human browse to find this skill first?* It is a browse facet, not an ontological claim. Cross-cutting truth lives in `relations.related`.
|
|
78
|
+
|
|
79
|
+
Skills that genuinely cross-cut (e.g., `command-palette` is a `design` skill that's used by agents) get a single primary category plus secondary categories via `relations.related` (max 5).
|
|
80
|
+
|
|
81
|
+
## Migration procedure for skill authors
|
|
82
|
+
|
|
83
|
+
For every SKILL.md you maintain:
|
|
84
|
+
|
|
85
|
+
### Required edit
|
|
86
|
+
|
|
87
|
+
Change the schema_version field:
|
|
88
|
+
|
|
89
|
+
```yaml
|
|
90
|
+
# Before (v4)
|
|
91
|
+
metadata:
|
|
92
|
+
schema_version: "4"
|
|
93
|
+
|
|
94
|
+
# After (v5)
|
|
95
|
+
metadata:
|
|
96
|
+
schema_version: "5"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Conditional edits
|
|
100
|
+
|
|
101
|
+
| If your skill has... | Then... |
|
|
102
|
+
|---|---|
|
|
103
|
+
| `category: knowledge` | Re-route per the table above (most go to `foundations` or `engineering`) |
|
|
104
|
+
| `category: frontend` | Re-route to `engineering` (with `domain: engineering/frontend`) or `design` (if visual/UX primary surface) |
|
|
105
|
+
| `category: ai-engineering` | Re-route to `agent` |
|
|
106
|
+
| `category: integration` / `integrations` | Re-route to `engineering` (with `domain: engineering/integrations`) |
|
|
107
|
+
| `category: data` | Re-route to `engineering` (with `domain: engineering/data`) |
|
|
108
|
+
| `category: workflow` | Re-route by subject — e.g. `background-jobs` → `engineering` |
|
|
109
|
+
| `category: security` | Re-route to `quality` |
|
|
110
|
+
| `category: foundations` | Verify foundations-gate: can this plausibly be `agent`/`engineering`/`quality`/`design`? If yes, move there. |
|
|
111
|
+
| `comprehension_state: present` set | Verify `grounding.external_sources` has ≥2 non-repo entries AND concept block contains no repo-specific nouns |
|
|
112
|
+
| Skill name violates head-noun pattern | Either rename to match head-noun-glossary OR add to `docs/name-exceptions.yaml` with citation |
|
|
113
|
+
|
|
114
|
+
### Codemod available
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Bulk-bump schema_version in all SKILL.md files
|
|
118
|
+
cd /Users/jacobbalslev/Development/skills
|
|
119
|
+
find skills -name SKILL.md -exec sed -i '' 's/schema_version: "4"/schema_version: "5"/g' {} +
|
|
120
|
+
|
|
121
|
+
# Verify lint baseline
|
|
122
|
+
cd /Users/jacobbalslev/Development/skill-graph
|
|
123
|
+
SKILL_GRAPH_WORKSPACE=/Users/jacobbalslev/Development/skills node scripts/skill-lint.js
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The v5 category enum is already applied across the 137 live skills (skill-graph commit `210ac69`, 2026-05-16). The codemod above is the final schema_version bump.
|
|
127
|
+
|
|
128
|
+
## Backward compatibility
|
|
129
|
+
|
|
130
|
+
| Direction | Compatible? | Note |
|
|
131
|
+
|---|---|---|
|
|
132
|
+
| v4 tool reads v5 SKILL.md | ⚠ Partial | v4 tool will read the file but may not enforce v5 enum / foundations-gate / concept-shape rules. Old lint warnings will surface incorrectly. |
|
|
133
|
+
| v5 tool reads v4 SKILL.md | ✓ via `normalizeFrontmatter()` | The skill-graph repo's `scripts/lib/parse-frontmatter.js` already normalizes marketplace-shape and pre-v5 shapes for forward-compat reads. |
|
|
134
|
+
| Mixed v4 / v5 corpus | ❌ Not supported | Either everything is v5 or everything is v4. Mixing causes lint failures and routing inconsistencies. |
|
|
135
|
+
|
|
136
|
+
**Recommendation:** apply the codemod in a single commit. Do not ship a partial-v5 corpus.
|
|
137
|
+
|
|
138
|
+
## Verification checklist
|
|
139
|
+
|
|
140
|
+
After running the v4→v5 codemod:
|
|
141
|
+
|
|
142
|
+
- [ ] Every SKILL.md has `schema_version: "5"`
|
|
143
|
+
- [ ] Every `category` value is one of `foundations | engineering | design | quality | agent | product`
|
|
144
|
+
- [ ] `foundations` contains 8–15 skills (gate-pass)
|
|
145
|
+
- [ ] `node scripts/skill-lint.js` baseline unchanged (no new errors from migration)
|
|
146
|
+
- [ ] `node scripts/generate-manifest.js --output skills.manifest.json` succeeds
|
|
147
|
+
- [ ] `by_category` in manifest shows exactly 6 keys
|
|
148
|
+
- [ ] Sample retrieval-eval queries route the same or better post-migration
|
|
149
|
+
|
|
150
|
+
## Rollback procedure
|
|
151
|
+
|
|
152
|
+
If verification fails:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
cd /Users/jacobbalslev/Development/skills
|
|
156
|
+
find skills -name SKILL.md -exec sed -i '' 's/schema_version: "5"/schema_version: "4"/g' {} +
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Then revert any `category` enum changes via `git checkout`. The v5 protocol doc and schema file can remain — they're additive references, not active constraints, until skills carry `schema_version: "5"`.
|
|
160
|
+
|
|
161
|
+
## Related artifacts
|
|
162
|
+
|
|
163
|
+
- `schemas/skill.v5.schema.json` — JSON schema with closed `category` enum
|
|
164
|
+
- `SKILL_METADATA_PROTOCOL.md` — v5 protocol contract (browse-facet framing, foundations-gate, evidence-based concept-shape)
|
|
165
|
+
- `docs/head-noun-glossary.md` — canonical head-noun list for skill names
|
|
166
|
+
- `docs/name-exceptions.yaml` — established industry term-of-art exceptions
|
|
167
|
+
- `skill-graph/docs/migration-sample-review.md` — Phase 0b reviewer-agreement check (86.67% pass)
|
|
168
|
+
- `docs/plans/skill-taxonomy-v5-and-gap-fill.md` (in Development workspace) — full v5 plan with reconciliation decisions
|