<!-- normative -->

# Glossary

Every state, freshness value, relation type, conflict type, run outcome, and policy outcome catalogued exactly once. This file is the authoritative catalogue; normative documents may reference these values by identifier but do not redefine them.

Action types (`SELECT_ALTERNATIVE`, `REPLAN`, `CANCEL`) share names with policy outcomes but occupy a separate namespace. AGENTS.md covers states, events, and policy outcomes but not action types; this is the stated exception. Action types are commands issued by the controller; policy outcomes are decisions made by policy over evidence.

## Node states

The lifecycle states of a node in the work graph.

- `PROPOSED`
- `BLOCKED`
- `READY`
- `VALIDATING`
- `VALIDATED`
- `REPLAN_REQUIRED`
- `CONFLICTED`
- `ACCEPTED`
- `INFEASIBLE`
- `REJECTED`
- `SUPERSEDED`
- `CANCELLED`
- `BUDGET_EXHAUSTED`

## Attempt states

The lifecycle states of an execution attempt.

- `PLANNED`
- `RESERVED`
- `DISPATCHED`
- `RUNNING`
- `OBSERVATION_RECEIVED`
- `RESULT_PRODUCED`
- `FAILED`
- `TIMED_OUT`
- `CANCELLED`

## Executor response statuses

An executor self-reports exactly one status in its `executor_response` (see
[Executor protocol](executors.md#executor-protocol)). These are untrusted observations and never acceptance evidence.
On admission the controller maps them to authoritative attempt states:

- `COMPLETED` → `RESULT_PRODUCED` when the result-admission check passes; otherwise → `FAILED`
- `FAILED` → `FAILED`

## Artefact states

- `CANDIDATE`
- `INTEGRATED`
- `VALIDATED`
- `PUBLISHED`
- `REJECTED`
- `SUPERSEDED`

## Accounting states

- `OPEN`
- `PROVISIONALLY_SETTLED`
- `FINALLY_SETTLED`

## Result freshness values

- `CURRENT`
- `COMPATIBLE`
- `REVALIDATION_REQUIRED`
- `STALE`
- `INVALID`

## Revalidation reasons

Values of the `reason` field in the payload of `RESULT_MARKED_STALE`, `RESULT_MARKED_INVALID`, `RESULT_MARKED_REVALIDATION_REQUIRED`, and `RESULT_MARKED_COMPATIBLE` events. Required whenever a freshness event is emitted.

- `SUPERSEDED_BY_REVALIDATION`: Revalidation succeeded and a new acceptance record was created.
- `REVALIDATION_FAILED`: Revalidation failed.
- `REVALIDATION_TIMED_OUT`: Revalidation timed out.
- `INPUT_CHANGED`: A bound input changed without a revalidation outcome.

## Node proposal causes

Values of the `cause` field in the payload of `NODE_PROPOSED`.

- `ROOT`: the initial root of a run.
- `DECOMPOSITION`: a child introduced by `DECOMPOSITION_ADMITTED`.
- `REPLAN`: a node introduced by `PLAN_ADMITTED`.
- `ROOT_REPLACEMENT`: a replacement root introduced by `ROOT_REPLACED`.

## Relation types

- `CHILD_OF`
- `DEPENDS_ON`
- `PRODUCES_FOR`
- `CONSUMES`
- `INTEGRATES`
- `CONFLICTS_WITH`
- `ALTERNATIVE_TO`
- `SUPERSEDES`

## Conflict types

- `WRITE_CONFLICT`
- `ASSUMPTION_CONFLICT`
- `INTERFACE_CONFLICT`
- `BUDGET_CONFLICT`
- `ALTERNATIVE_EXCLUSIVITY`
- `POLICY_CONFLICT`
- `EVIDENCE_CONFLICT`
- `VERSION_CONFLICT`
- `RESOURCE_EXCLUSIVITY`
- `DECISION_AUTHORITY_CONFLICT`
- `INVARIANT_CONFLICT`

## Conflict severity

- `BLOCKING`
- `NON_BLOCKING`

## Conflict lifecycle

- `OPEN`
- `RESOLVED`

## Run outcomes

- `ACCEPTANCE_CLAIMED`
- `INFEASIBLE`
- `REJECTED`
- `CANCELLED`
- `BUDGET_EXHAUSTED`
- `SUPERSEDED_WITHOUT_REPLACEMENT`
- `INFRASTRUCTURE_FAILURE`

## Trial classifications

- `CORRECT_ACCEPTANCE`
- `FALSE_SUCCESS`
- `CORRECTLY_UNRESOLVED`
- `MISSED_SUCCESS`
- `INDETERMINATE`

## Oracle outcomes

- `PASS`
- `FAIL`
- `CANDIDATE_TIMEOUT`
- `ORACLE_INFRASTRUCTURE_ERROR`
- `NOT_EXECUTED`
- `RESULT_LOST`

## Policy outcomes

- `RETRY`
- `SELECT_ALTERNATIVE`
- `REPLAN`
- `BLOCK`
- `MARK_INFEASIBLE`
- `CANCEL`
- `MARK_STALE`
- `SUPERSEDE`
- `REJECT`
- `MARK_CONFLICTED`
- `MARK_BUDGET_EXHAUSTED`

## Conflict resolution policies

- `INTEGRATION_OWNER_ADJUDICATION`: The designated integration owner decides the resolution.
- `AUTOMATIC_MERGE`: Conflicting changes are automatically merged when non-overlapping.
- `MANUAL_INTERVENTION`: Human operator must resolve the conflict.
- `SUPERSEDES_WINS`: The newer version supersedes the conflicting version.
- `FIRST_WRITER_WINS`: The first writer to acquire the lock wins; others are rejected.
- `EVIDENCE_BASED`: Resolution determined by evaluation of submitted evidence.

## Action types

- `PROPOSE_DECOMPOSITION`
- `EXECUTE`
- `VALIDATE`
- `INTEGRATE`
- `PUBLISH`
- `REVIEW`
- `RESOLVE_CONFLICT`
- `SELECT_ALTERNATIVE`
- `REPLAN`
- `CANCEL`

## Arms

- `DIRECT`
- `FIXED_ONE_LEVEL`
- `RECURSIVE_LAZY`
- `RECURSIVE_CONCURRENT`

## Budget dimensions

- `MODEL_COST`
- `MODEL_TOKENS`
- `WALL_CLOCK`

## Reasoning output types

- `PROPOSAL`
- `ARTEFACT`
- `OBSERVATION`
- `EVIDENCE`
- `SEMANTIC_EVALUATION`

## Risk classifications

- `LOW`
- `MEDIUM`
- `HIGH`
- `CRITICAL`

## Evidence policy levels

- `LOW`
- `MEDIUM`
- `HIGH`
- `CRITICAL`

## Executor precedence levels

1. Deterministic function
2. Existing verified tool or script
3. Small or local specialised model
4. General inexpensive model
5. Strong specialist model
6. Human or external decision authority

## Execution modes (alternatives)

- `SEQUENTIAL`
- `SPECULATIVE`
- `PROGRESSIVE`
- `COMPARATIVE`
- `CONDITIONAL`

## Executor artefact types

Values of the `type` tag on entries in an executor response `artefacts` array; admitted by
`ARTEFACT_ADMITTED` (see [Artefact lifecycle](control-plane.md#artefact-lifecycle)).

- `GIT_CANDIDATE`: a Git worktree candidate produced inside the executor sandbox.

## Executor observation types

Values of the `type` tag on entries in an executor response `observations` array; admitted by
`EXECUTOR_OBSERVATION_ADMITTED` (see [Executor protocol](executors.md#executor-protocol)).

- `COMMAND_RESULT`: a captured command execution result (exit code, stdout/stderr hashes, changed paths).

## Alternative states

- `NOT_SELECTED`
- `REJECTED`
- `SUPERSEDED`
- `CANCELLED`
- `RETAINED_FOR_FALLBACK`
