Substrate config
The .bassclef-source.json schema — every field, its default, and what it controls.
Use this when
You want to understand what .bassclef-source.json actually
controls, or you are troubleshooting a bassclef install and want to
compare your file against the expected schema.
Skip this when
You just want auto-update to be off (it already is, by default). See auto-update behavior for that specific question.
The full schema
Every field, default, and one-line description.
{
"source": "https://github.com/sunj-labs/bassclef",
"version": "latest",
"auto_sync": false,
"tier": "lite",
"install_class": "project"
}Field reference
source
Where bassclef pulls from. Default: the public GitHub repo. Override if you fork bassclef or pin to a private mirror.
version
The version to pin at. Default: latest. Can be a specific tag
(v0.31.0) or a commit SHA. Use a specific version if you want
predictable behavior across sessions.
auto_sync
Full detail at auto-update behavior.
tier
Which tier of the bassclef vocabulary to install. Default: lite.
Options:
lite— starter frame (around 30 skills, 16 rules, 20 hooks)standard— full vocabulary with Anthropic API key featurespro— full vocabulary plus embedding + LLM-judge tier
See tier system for the full comparison.
install_class
Whether bassclef installs at the repo level (project) or the user
level (operator). Default: project. Operator install shares
substrate across every repo on your machine; project install keeps
the substrate scoped to one repo.
Editing the file
The file is committed to your repo. Any change goes through code review like any other config file. That is intentional — bassclef behavior changes should be as reviewable as code changes.
Related
- Auto-update behavior — the safe-default
posture for
auto_sync - Tier system — which tier fits which use
- Install — how the file gets created