Tier system
bassclef ships at three tiers — lite, standard, ultra. Pick by catalog size, not by credentials.
Use this when
You are picking which tier to install, or you are trying to understand why a skill you see referenced elsewhere is not in your current install.
Skip this when
You are on lite and it is working. There is no rush to upgrade.
The three tiers
Tier is about catalog size, not credentials. bassclef is markdown files + shell hooks; today Claude Code is where it runs and is tested. Skills that need an LLM use whichever one your session already provides — no separate API key needed for that.
| Tier | Contains |
|---|---|
| lite | Starter kit — 72 skills + 76 rules + 79 hooks + 43 luminaries + 4 agents + 90 standards + 6 ADRs. Runs entirely within Claude Code. Default install. |
| standard | Bigger catalog — adds more skills + more luminaries + skills that may need vendor credentials your harness does not provide (Slack tokens, Zenodo keys, other-vendor LLM APIs). For adopters who need those integrations. |
| ultra | Full catalog — 99 skills + 93 rules + 91 hooks + all 100 luminaries + Voyage embedding shortlist for luminary matching. Adds shortlist speed for the widest catalog. Graduation mechanism per ADR-006. |
Numbers refresh from data/substrate-counts.json (currently v1.14.3).
The reframe (in flight)
The framing above (tier = catalog size, not credentials) is the reframe direction. Today the tier gate mechanism (lib/tier-check.sh) still checks for ANTHROPIC_API_KEY in your environment to decide whether you are on standard or lite. That gate is a legacy — being retired upstream per two open promotes:
- bassclef-web#190 — reframe the tier vocabulary so lite means smaller catalog, not "no keys required"
- bassclef-web#193 — audit which skills actually need external API keys (vs which run within the harness turn)
Once bassclef-upstream lands both promotes, the tier gate stops checking ANTHROPIC_API_KEY and starts checking per-skill vendor credentials (Slack tokens, Zenodo keys, etc.) only where those are genuinely needed. Until then, this page describes the direction and today's mechanism together.
What lite gets you today
Lite ships 439 curated entries across 7 types — enough to run a full session inside your Claude Code harness. Includes:
- Tightest 3 (
/riff,/launch,/build) — the idea-to-shipped-PR loop - The workhorses (
/longrun,/sprint,/luminary,/verify,/kiss,/ticket,/lean-canvas,/session-end) — the discipline-driving skills you invoke every session - Session-lifecycle skills (
/session-log,/temperance, etc.) - 79 hooks that fire mechanically at session boundaries
- 76 rules that load automatically into every session
- 43 anchor luminaries (Beck, Cockburn, Maurya, Toulmin)
- 4 core agents (Architect, Builder, Designer, Reviewer)
- 90 standards + 6 ADRs
Every one of these runs within your Claude Code session. When a skill uses an LLM (for example /kiss when it rewrites prose, or /luminary when it picks a lens), the LLM is the one your Claude Code session is already using.
What lite intentionally leaves out
Lite is a starter kit, not a subset of standard. Some things are kept out on purpose:
- Skills using embeddings.
/manifest-align(cosine grid across personas), embedding-shortlisted/pick-luminaries. These land in ultra. - Domain-specialized luminaries. Only 43 anchor luminaries ship in lite — the ones every session composes on. The other luminaries land in standard so
/luminary <slug>returns richer choices. - Rare skills. Skills used in specific workflows (release cutting, cross-repo audits, telemetry authoring) stay in standard until an adopter asks for them.
- Skills that need vendor credentials your harness does not provide. A hypothetical
/slack-postskill needs a Slack bot token; a hypothetical/zenodo-publishskill needs a Zenodo API key. Those land in standard or higher.
The lite line is drawn per bassclef-upstream#104 canvas: what does a first-week adopter need to run a full loop end-to-end? Everything else defers to a tier upgrade.
What standard adds
Standard adds the bigger catalog:
- The full luminary catalog (minus the ultra embedding shortlist) so
/luminary <slug>returns richer matches - Skills that operate on wider scopes (release cutting, cross-repo audits, telemetry authoring)
- Skills that need vendor credentials your harness does not provide, when those get added
What standard does NOT add, per the reframe consensus: it does NOT add "the ability to make LLM calls." Every skill that uses an LLM in bassclef uses the one your harness already provides. The /pick-luminaries semantic ranking works with your Claude Code session already providing Claude ambient — the tier gate on that skill is one of the fictional gates the audit at #193 is expected to clear.
What ultra adds
Ultra adds the Voyage embedding shortlist layer:
/pick-luminaries— embedding-first shortlist + LLM-judge re-rank/manifest-align— cosine grid across personas and stages
Ultra needs VOYAGE_API_KEY (a real external credential — Voyage's embedding API is a separate service). Graduation to ultra is invitation-based per ADR-006 — the operator invites contributors during the launch window; contribute-back path opens from week 8+.
How intent understanding works at each tier
bassclef's promise is tier-agnostic — you tell it what you're trying to accomplish, it brings the right disciplines to bear. The sophistication of that determination scales by tier.
The product-level story stays the same regardless of tier:
Intent → Understanding → Relevant Disciplines → Workflow → Execution → Learning
The mechanism underneath differs:
Lite — markdown + context, no vectors
At lite, /interpret-input takes any input shape you give it (text, URL, image, repo, transcript) and returns a schema-valid InputArtifact. Intent-to-luminary matching runs via /pick-luminaries as an in-session step — Claude reads the loaded luminary catalog plus your session's rules and picks matches from that surrounding markdown context. No external API calls. No embedding index. The Claude session already running is doing the reading.
Conceptually:
Your input → /interpret-input (normalize the shape) → /pick-luminaries (in-session, reads the catalog markdown) → relevant disciplines load into the session
This is the lightweight mechanism. It is not a deficient ultra — it is the appropriate shape for a starter kit that carries its whole catalog as files Claude can read.
Ultra — semantic problem shape + vector retrieval
At ultra, /extract-intent creates a semantic representation of your problem's shape. Live mode uses Voyage embeddings plus a Haiku judge (per ADR-017) to match against luminary signature moves and practitioner approaches — how someone attacks a class of problem — not only domain labels. Embedding-shortlisted /pick-luminaries also lands here per ADR-006.
Conceptually:
Your intent → /extract-intent (semantic problem shape via embeddings) → vector retrieval against the luminary catalog → disciplines + practitioner approaches → composed workflow
The interesting behavior is:
"This practitioner's way of attacking problems resembles the shape of the problem I have."
rather than merely:
"This practitioner is associated with product design."
Ultra needs VOYAGE_API_KEY — Voyage is a separate embedding service. Adopters without live keys can still run /extract-intent in stub mode, which returns a deterministic fixture; downstream skills should treat stub output as low-confidence.
Why this matters
Do not read "bassclef uses embeddings to understand intent" as a universal claim about the product. Lite is markdown + Claude reading the catalog in-session. Ultra adds a real embedding index + vector retrieval. Both surface the same top-level promise. The sophistication of the matching scales by tier.
Picking a tier
Start on lite. Upgrade to standard when you want the wider luminary catalog OR a specific skill that lives at standard. Upgrade to ultra when you notice /pick-luminaries returning matches that feel mechanical AND the operator has invited you.
Most adopters run lite for weeks before upgrading. Some never do.
Changing tier
Edit .bassclef-source.json:
{
"tier": "standard"
}Restart your Claude Code session. bassclef pulls the tier-specific manifest and refreshes the files.
Today the tier-check.sh mechanism ALSO checks for ANTHROPIC_API_KEY in your environment as part of the standard-tier gate. That check is a legacy per the reframe direction above (see #190 + #193); when upstream lands the audit, standard tier will gate only on per-skill vendor credentials where those are genuinely required.
Related
- Substrate config — the full schema
- Auto-update behavior — how new versions arrive
- ADR-006 — ultra graduation mechanism
- bassclef-web#190 — tier vocabulary reframe promote
- bassclef-web#193 — per-skill credential audit promote