Immutable. This exact content is served forever at /api/v1/blob/b303e6882c7424ad.
--- name: ca-decompose description: Greenfield decomposition interview — a layered interview that populates .codearbiter/ and locks it initialized. argument-hint: (none) --- # $ca-decompose — greenfield populate <!-- catalog-compatibility-notice:start --> > Compatibility route. Prefer `$ca-init --greenfield` for new usage. This installed route remains > functional under the command-route compatibility policy at [includes/command-compatibility.md](../../includes/command-compatibility.md); > continue with the unchanged greenfield workflow below. <!-- catalog-compatibility-notice:end --> Stands up project state for a greenfield project — one with no meaningful source code yet. A senior-architect persona drives a six-layer interview eliciting purpose, scope, primary users, domain vocabulary, and architectural constraints, persisting each layer to disk so a context reset loses nothing, then writes the surviving `.codearbiter/` doc set and locks the project initialized. No arguments — the skill interviews the user (a handoff summary may be supplied freely during the interview). The only permitted path to populate `.codearbiter/` when no meaningful source exists. For an existing codebase, use `$ca-create-context`. ## Routes to The `decompose` skill ([routines/decompose/SKILL.md](../../routines/decompose/SKILL.md)) — six gated phases: pre-flight, persona adoption, layered interview, synthesis, population, lock. The skill is canonical for the layers and their gates. ## When NOT to use - Project already initialized (`<!--INITIALIZED-->` in `CONTEXT.md`) → `$ca-status`. - Existing codebase with source present → `$ca-create-context`. - `.codearbiter/` not yet scaffolded → `$ca-init` first. - Update one doc → edit `<project-root>/.codearbiter/` directly or use `$ca-feature`. ## Hard gate BLOCK if `<!--INITIALIZED-->` is already present in `CONTEXT.md`. BLOCK if meaningful source is detected (route to `$ca-create-context`). BLOCK if any `[CONFIRM-NN]` exits synthesis unresolved and undeferred. MUST NOT write `<!--INITIALIZED-->` until every required doc is present and non-empty.