Terms describing rule ownership, precedence, and policy controls in Spec Kitty.
Charter
Definition
Project-level policy document that captures the HiC's operating constraints, quality rules, and doctrine selections for a repository. Compiled from interview answers and doctrine catalog choices.
A guided question-and-answer process that walks the HiC through their project's preferences, constraints, and doctrine selections. Answers are saved to answers.yaml and used to compile the charter.
The processor that takes the HiC's interview answers and their selected doctrine artifacts, and combines them into a finalized charter document and supporting governance files.
The result of checking the HiC's charter selections against available doctrine catalogs — confirming that the referenced paradigms, directives, and tools actually exist and are compatible with each other.
The single activation filter applied by charter.resolver.DoctrineService (the activation-aware wrapper). It enforces the project charter's per-kind activation state on a doctrine service's paradigms, procedures, and agent_profiles surfaces, so every profile-resolving path passes through one consistent filter rather than re-implementing activation logic. The factory specify_cli.doctrine_service_factory.build_activation_aware_doctrine_service is the single construction seam that routes callers through this chokepoint.
An available profile is any agent profile present in a doctrine layer (built-in, org pack, or project). An activated profile is an available profile that the project charter has explicitly turned on via activated_agent_profiles. Three-state semantics: when the key is absent, every available profile is activated; an explicit empty set activates none; an explicit set activates only the listed IDs. Only activated profiles are directly selectable by default surfaces; available-but-not-activated profiles surface only under --all/--show-available.
An agent profile that is referenced via a specializes_from lineage edge but is not itself activated in the project charter. It acts as a shared-element store that concrete profiles inherit from; it is not directly selectable as a runtime persona. Resolving a profile whose lineage traverses an abstract base (an ancestor not in the activated set) yields a lineage warning rather than an error.