Skip to content

Conformance and tiers

The toolkit grades a plugin against the Advanced Skill Library Standard. Checks emit error or warn findings keyed to requirement ids (for example U5 is the description-quality rule). evaluate composes those checks into a report; tier-report rolls them into the highest tier a plugin satisfies, capped at the tier it declares in library.json so it cannot over-claim.

A description scoring below 0.7 is a warning, never an error - quality is judgment, so the heuristic guides rather than gates. The tiers (Universal / Convergent / Advanced, or Bronze / Silver / Gold) are cumulative: each includes the last. That is why a Bronze plugin can grow into Silver and Gold without rework - the bar rises, the earlier work still counts.

flowchart LR
  B["Bronze / Universal<br/>portable SKILL.md + library.json<br/>+ AGENTS.md + CI (U-checks)"] --> S["Silver / Convergent<br/>adds multi-agent emission,<br/>subagents, commands, chain contracts<br/>(S-checks)"] --> G["Gold / Advanced<br/>adds hooks, self-hosting CI,<br/>eval/regression, release notes,<br/>deprecation (A/G-checks)"]

Each tier is cumulative: Silver includes every Universal check, Gold includes every Silver check. tier-report reports the highest tier a plugin fully satisfies and lists what blocks the next.

The toolkit is itself built to this Standard and validates itself in CI: it declares tier: advanced and satisfies Gold (G1-G10, on top of Bronze + Silver), so node scripts/tier-report.mjs --json reports tier: advanced with an empty blocked - a self-proving example of the Standard. See STANDARD.md for the normative rules.

Convergent (Silver) reqIds carry the S prefix. The current set:

reqIdWhatStandardConditional?
S1library.json agent-targets present + validsec 5.1, sec 2.2no
S2library.json prefix present + kebab-dashsec 8.2no
S3library.json components index matches disksec 5.1, sec 10.3no
S4Chain-contract integrity (phantom; missing-when-chaining)sec 3.6yes
S5Workflow skill-existencesec 3.4yes
S6Per-target native-manifest presencesec 5.1, sec 10.1yes
S7Command-contract (maps-to resolves to one skill/workflow; description present)sec 3.2yes
S8Components index mirrors what is on disk, in both directions (no orphan or phantom entries)sec 5.1no

One Universal check was added in the v0.2 hardening: U9 (version-match: package.json version must equal library.json version, the source of truth). A U10 no-dashes check shipped at the same time; it was retired in Standard v0.11 as a stylistic house preference rather than a portability requirement, and now lives only as an opt-in author-time hook. A later Universal check, U13 (skill-registration), was added in Standard v0.12 (ADR 0035): a plugin whose manifest enumerates skills must register every skill it ships on disk (a skill on disk but unregistered ships invisibly to installers). The full Universal set (U1-U9, U11-U13) is documented in ../reference/universal-checks.md.

S6 (per-target native-manifest presence) fires only when agent-targets is declared; it checks that each declared target has its generated native manifest on disk. The repository declares agent-targets: ["claude", "codex"] and emits both manifests. The components index (S3) is now present in library.json, so the Silver burndown is empty; the toolkit has since closed the Gold checks (G1-G10) too and declares tier: advanced.

Visible burndown - reading blocked.convergent as the climb to Silver

Section titled “Visible burndown - reading blocked.convergent as the climb to Silver”

tier-report caps satisfies at the plugin’s declared tier (so a Bronze plugin cannot accidentally claim Silver), and lists everything above the ceiling as blocked.<next-tier>. The gate-runner (check.mjs) follows the same model: only errors at-or-below the declared tier fail the gate. So a Bronze plugin that adds Silver requirements gradually sees its blocked.convergent list shrink, while CI stays green throughout the climb. The repository completed the full climb to Gold: the toolkit now declares tier: advanced and blocked is empty (Bronze, Silver, and Gold all satisfied). The Silver checks (S1-S8) and Gold checks (G1-G10) are documented in ../reference/silver-checks.md and ../reference/gold-checks.md, and the Universal floor in ../reference/universal-checks.md.