Key concepts

One CLAUDE.md in one repo needs no vocabulary. Hundreds of repos do: something has to say what is canonical, who may change it, and how a change reaches every repo. These are the terms SteerSpec uses for that.

Rule
A single-phrase behavioral constraint or property definition attached to an entity. Rules have an id, a revision, a lifecycle state and a body written with RFC-2119 keywords. RUL in the spec →
Entity
An object with a unique identity and lifecycle. The unit of organization; every rule belongs to one entity. ENT in the spec →
Rule Set
All rules of one entity, versioned as a unit. Each entity file carries its own rule_set version, timestamp and hash. RST in the spec →
Note
A supplemental annotation attached to a specific rule. NTE in the spec →
Realm
A published, versioned collection of entity files plus a manifest. The core realm is dev.steerspec.core. An organization can define its own realm on top of it. RLM in the spec →
Manifest
rules/latest/index.json. Lists the realm version and every entity file with a blake3 hash, so consumers can pin and verify. Every release is also served immutably at /rules/v<version>/index.json.
Schema
JSON Schema files that validate entities, realms and the consumer config. Every entity file declares the schema it conforms to.
Lifecycle state
D (Draft, the only editable state), P (Published), I (Implemented, in force), R (Retired), T (Terminated), A (Abandoned). Transitions are forward-only. RULST in the spec →
Keywords
Rule bodies use RFC-2119 keywords, extended with HAS, IS and DEFINE (defined by KWRD-002, itself a rule in the set). KWRD in the spec →
SPCFG
The consumer-side configuration, a .strspc/config.yaml at the root of a project. It declares which rule sources the project subscribes to and how they are enforced (evaluator settings, fail conditions). SPCFG in the spec →
Sync
The strspc-sync GitHub Action. Pushes central CLAUDE.md, agents, skills and settings into repos as reviewable pull requests. Nothing is force-pushed or auto-merged.
Drift
A repository's AI configuration diverging from the central definition. The monitor reports it on a schedule; sync reverses it by pull request.
Two kinds of rules
Rules in the config you sync (what your agents are told) are different from rules about rules (how SteerSpec's own format is specified, published at /spec/). The second kind is the spec; the first is what you apply it to.