base context shows you the result of all of it without sending a prompt.
The split worth holding on to: domains.toml holds triggers only, and the rule text lives in the graph. That is why base domain and base rule are two commands rather than one.
Domains
A domain is a named bundle of triggers. When your prompt or the file you are editing matches one, everything attached to that domain becomes eligible to be injected. Readbase domain list and base domain get as merged across both tiers. The write commands are not merged, and that catches people out, so see the tier note at the end of this section.
base domain list
Show every configured domain, from the global tier and this workspace together.base domain get
Show one domain’s full configuration: its triggers, its mode, and what is attached.base domain create
Create a new domain, optionally with its first trigger.base domain add-trigger
Add a keyword or a path trigger to a domain that already exists.
Matching is plain substring and path matching. Nothing here is fuzzy or semantic, so a trigger either appears in the text or it does not.
base domain remove-trigger
Take a keyword or path trigger back off a domain.base domain remove
Destructive. Remove a domain entirely, which stops its triggers from ever matching again.base domain sync
Readdomains.toml into the graph, so that domains and their rules exist as entities you can query.
Rules
A rule is a line of text attached to a domain. When the domain matches, the rule is injected.base rule is the only command that carries a -g / --global flag, and it goes before the verb: base rule -g list --domain basemode. Putting it after the verb is invalid.
base rule add
Attach a rule to a domain, optionally with the reason behind it.
The rationale is worth writing. A rule with a reason attached survives being questioned; a bare imperative gets argued with.
base rule list
Show the rules attached to a domain.
The index printed against each rule is what
base rule remove takes, so list before you remove.
base rule remove
Destructive. Remove one rule from a domain, by its index.
There is no preview and no confirmation. Indexes shift when a rule is removed, so re-run
base rule list between removals rather than working down a list you printed earlier.
Standards
A standard is a protocol that injects when you edit a file it matches, rather than when you type a keyword. Standards come from aprotocols.md source and are synced into standards.toml plus the graph.
base standards sync
Read the protocols source intostandards.toml and the graph.
base standards list
Show every standard, with how many triggers and annotations each one carries.base standards get
Show one standard’s full configuration.base standards test
Dry-run the matcher against a file and see the scores and what would be injected. Nothing is written and nothing is sent.
This is the command to reach for before you rely on a standard firing. It answers “would this have injected” without you having to make an edit to find out.
Star commands
A star command is a named behaviour switch you type into the chat, like*audit. They live in commands.toml.
base cmd is the short alias for base commands.
base commands list
Show every star command currently loaded.base commands show
Show the full rules text behind one star command.* off.
base commands add
Add a new star command. Rules are repeatable, so pass--rule once per line you want it to carry.
base commands remove
Destructive. Remove a star command fromcommands.toml.
base commands import
Add star commands from anothercommands.toml file, such as a pack someone shared with you.
base context
Preview what a piece of text would pull, using the same matching that runs during an agent turn. Nothing is sent and nothing is written.
This is the fastest answer to “why did nothing arrive”. Paste the prompt you actually sent, and either a domain matches or it does not.