# Governed plan loop

> Every algorithm contract in this domain is listed with its position on the derivation loop, its intent and invariant, the flow it walks and its productions as a…

Page: Ontology · Algorithms
Canonical: https://banes-lab.com/ontology/algorithms#algorithms-domain-governed-plan-loop

Listed in [Ontology · Algorithms](https://banes-lab.com/api/pages/ontology/algorithms.md), after [Living profile](https://banes-lab.com/ontology/algorithms/algorithms-domain-living-profile.md) and before [Quality engine](https://banes-lab.com/ontology/algorithms/algorithms-domain-quality-engine.md).

Every algorithm contract in this domain is listed with its position on the derivation loop, its intent and invariant, the flow it walks and its productions as a grammar. Each record also shows what it composes and is composed by, which forces and principles it answers to, what grounds it and what it grounds, and an exemplar where the record carries one. The diagram shows what composes what inside the domain.

Relations diagram

What composes what inside this domain.

```mermaid
flowchart LR
n_living_plan_state["Living Plan State"]
n_boundary_reconciliation["Boundary Reconciliation"]
n_phase_close_gate["Phase Close Gate"]
n_plan_phase_verification["Plan Phase Verification"]
n_governed_autonomous_plan_loop["Governed Autonomous Plan Loop"]
n_governed_plan_concern["<Governed Plan Concern>"]
n_phase_close_gate --> n_boundary_reconciliation
n_plan_phase_verification --> n_boundary_reconciliation
n_governed_autonomous_plan_loop --> n_living_plan_state
n_governed_autonomous_plan_loop --> n_boundary_reconciliation
n_governed_autonomous_plan_loop --> n_phase_close_gate
n_governed_autonomous_plan_loop --> n_plan_phase_verification
n_governed_plan_concern --> n_living_plan_state
n_governed_plan_concern --> n_phase_close_gate
```

### Living Plan State

- Domain: [governed-plan-loop](https://banes-lab.com/ontology/algorithms/algorithms-domain-governed-plan-loop.md)
- Tier: [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)
- Stage: [commit](https://banes-lab.com/records/stage/commit.md)
- Axis: [representation](https://banes-lab.com/records/reasoning/axis-representation.md)
- Math type: [information-theory](https://banes-lab.com/records/reasoning/math-type-information-theory.md)
- Yields: hash | novelty-score

Details

Intent
Treat the plan as durable append/update-only state — tasks carrying status and grounding, a considerations backlog, and a dismissed-key set — maintained every turn and re-delivered on restart, so anything discovered mid-pass is retained instead of falling out of scope.

Invariant
Plan progress is authoritative persisted state, never inferred from transient conversation, and a completion is recorded only with evidence.

Flow

```text
EmitDelta → GuardTransition → AppendOnly → Persist → RenderFromState
```

Productions

```bnf
LivingPlanState ::= <PlanDelta> "→" <TransitionGuard> "→" <DurableMerge> "→" <StateRender>
TaskStatus ::= "pending" | "active" | "done"
ConsiderationStatus ::= "open" | "confirmed" | "dismissed"
DoneTransition ::= "requires" <GroundingCitation>
```

Composes
none

Composed by
[Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md), [<Governed Plan Concern>](https://banes-lab.com/records/algorithms/governed-plan-concern.md)

Named in the derivation of
[Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md)

Forces
[state_transaction](https://banes-lab.com/records/force/state-transaction.md), [causality_ordering](https://banes-lab.com/records/force/causality-ordering.md), [correctness_verification](https://banes-lab.com/records/force/correctness-verification.md)

Grounds
none

Before

```text
Plan progress inferred from the conversation, so a discovery mid-pass falls out of scope on restart.
```

After

```text
plan delta → transition guard{done requires grounding} → append/update-only durable state{tasks, considerations, dismissed keys} → render from state, restart-survivable
```

How it is checked

Checked by
the phase close gate, whose verification flag only deterministic engine code writes

Population
Every phase and task of the living plan

Freshness
A verdict stands until the plan or the verified work changes

Refusal
A phase does not close while its gate fails, and a failure routes back to execution

Observation
The persisted plan state, which records progress across restarts

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The engine's verification flag, which a phase closes on

Depends on
Not answered

Shape it refuses
Not answered

### Boundary Reconciliation

- Domain: [governed-plan-loop](https://banes-lab.com/ontology/algorithms/algorithms-domain-governed-plan-loop.md)
- Tier: [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)
- Stage: [constrain](https://banes-lab.com/records/stage/constrain.md)
- Axis: [teleology](https://banes-lab.com/records/reasoning/axis-teleology.md)
- Math type: [optimization](https://banes-lab.com/records/reasoning/math-type-optimization.md)
- Yields: boolean | ranking

Details

Intent
Capture considerations during a phase but act on them only at the phase boundary — triage each open consideration against code and canon into a confirmed task or a dismissed resolved-false key, deduping new opens against the confirmed and dismissed sets before triage.

Invariant
A dismissed consideration never resurfaces and the backlog converges monotonically, so the loop cannot oscillate.

Flow

```text
Capture → DeferToBoundary → DedupBeforeTriage → Triage → DryPassOrBound
```

Productions

```bnf
BoundaryReconciliation ::= <Backlog> "→" <Dedup> "→" <Triage> "→" <Termination>
Triage ::= "confirm" "→" <Task> | "dismiss" "→" <ResolvedFalse>
Dedup ::= "newOpens" "against" "(confirmed | resolvedFalse)"
Termination ::= "dryPass" | "maxReconcileRounds"
```

Composes
[Recursion Control](https://banes-lab.com/records/algorithms/recursion-control.md)

Composed by
[Phase Close Gate](https://banes-lab.com/records/algorithms/phase-close-gate.md), [Plan Phase Verification](https://banes-lab.com/records/algorithms/plan-phase-verification.md), [Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md)

Named in the derivation of
[Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md)

Forces
[causality_ordering](https://banes-lab.com/records/force/causality-ordering.md), [resilience_recovery](https://banes-lab.com/records/force/resilience-recovery.md), [correctness_verification](https://banes-lab.com/records/force/correctness-verification.md)

Grounds
none

Before

```text
Considerations acted on mid-phase, and a dismissed one resurfaces — the loop oscillates.
```

After

```text
capture during phase → act only at the boundary → dedup new opens vs (confirmed | dismissed) → triage{confirm → task | dismiss → resolved-false} → dry pass or bound
```

How it is checked

Checked by
the phase close gate, whose verification flag only deterministic engine code writes

Population
Every phase and task of the living plan

Freshness
A verdict stands until the plan or the verified work changes

Refusal
A phase does not close while its gate fails, and a failure routes back to execution

Observation
The persisted plan state, which records progress across restarts

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The engine's verification flag, which a phase closes on

Depends on
[Recursion Control](https://banes-lab.com/records/algorithms/recursion-control.md)

Shape it refuses
Not answered

### Phase Close Gate

- Domain: [governed-plan-loop](https://banes-lab.com/ontology/algorithms/algorithms-domain-governed-plan-loop.md)
- Tier: [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)
- Stage: [terminate](https://banes-lab.com/records/stage/terminate.md)
- Axis: [termination](https://banes-lab.com/records/reasoning/axis-termination.md)
- Math type: [optimization](https://banes-lab.com/records/reasoning/math-type-optimization.md)
- Yields: boolean | ranking

Details

Intent
Make completion a gated state of the plan rather than a judgment call — a phase closes only when all tasks are done, a dry reconciliation pass holds, verify is clean for the chosen scope, and the coverage graph confirms the ripple set; otherwise the loop returns to execution.

Invariant
Completion can never be self-declared; closure is a composed evidence-bound gate whose failure routes back to execution, never to done.

Flow

```text
AllTasksDone → DryPass → VerifyClean → CoverageConfirmed → CloseOrExecute
```

Productions

```bnf
PhaseCloseGate ::= <TaskCompletion> "&" <DryPass> "&" <VerifyResult> "&" <CoverageResult> "→" <Decision>
Decision ::= "close" | "return_to_execute"
VerifyResult ::= "scope:full" | "scope:work"
```

Composes
[Validation Gate](https://banes-lab.com/records/algorithms/validation-gate.md), [Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md)

Composed by
[Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md), [<Governed Plan Concern>](https://banes-lab.com/records/algorithms/governed-plan-concern.md)

Named in the derivation of
[Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md)

Forces
[security_governance](https://banes-lab.com/records/force/security-governance.md), [correctness_verification](https://banes-lab.com/records/force/correctness-verification.md), [state_transaction](https://banes-lab.com/records/force/state-transaction.md)

Grounds
[ter-stop](https://banes-lab.com/records/reasoning/node-ter-stop.md)

Before

```text
The phase is self-declared done.
```

After

```text
all tasks done & dry reconciliation holds & verify clean (scope) & coverage graph confirms ripple → close | return to execute; never self-declared
```

How it is checked

Checked by
the phase close gate, whose verification flag only deterministic engine code writes

Population
Every phase and task of the living plan

Freshness
A verdict stands until the plan or the verified work changes

Refusal
A phase does not close while its gate fails, and a failure routes back to execution

Observation
The persisted plan state, which records progress across restarts

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The engine's verification flag, which a phase closes on

Depends on
[Validation Gate](https://banes-lab.com/records/algorithms/validation-gate.md), [Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md)

Shape it refuses
Not answered

### Plan Phase Verification

- Domain: [governed-plan-loop](https://banes-lab.com/ontology/algorithms/algorithms-domain-governed-plan-loop.md)
- Tier: [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)
- Stage: [verify](https://banes-lab.com/records/stage/verify.md)
- Axis: [verification](https://banes-lab.com/records/reasoning/axis-verification.md)
- Math type: [logic](https://banes-lab.com/records/reasoning/math-type-logic.md)
- Yields: boolean

Details

Intent
Before a composed plan reaches the developer, the engine loops it back through evidence, completeness, and adversarial-skepticism passes, reconciles the findings into the plan, and increments a loop-owned pass counter the model cannot forge; a render boundary blocks an unverified plan.

Invariant
A plan is never presented un-reviewed, and the verification flag is written only by deterministic engine code, never by model tokens.

Flow

```text
AutoLoopback → ThreePassVerify → ReconcileFindings → LoopOwnedIncrement → PresentGate
```

Productions

```bnf
PlanPhaseVerification ::= <AutoLoopback> "→" <VerifyPasses> "→" <Reconcile> "→" <CounterIncrement> "→" <PresentGate>
VerifyPasses ::= "evidence" "," "completeness" "," "adversarial"
PresentGate ::= "verificationPasses >= 1"
Counter ::= "loop_owned" "not_model_emitted"
```

Composes
[Evidence-Gated Claim Verification](https://banes-lab.com/records/algorithms/evidence-gated-claim-verification.md), [Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md), [Recursion Control](https://banes-lab.com/records/algorithms/recursion-control.md)

Composed by
[Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md)

Named in the derivation of
[Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md)

Forces
[correctness_verification](https://banes-lab.com/records/force/correctness-verification.md), [security_governance](https://banes-lab.com/records/force/security-governance.md), [observability_traceability](https://banes-lab.com/records/force/observability-traceability.md)

Grounds
[ver-evidence](https://banes-lab.com/records/reasoning/node-ver-evidence.md)

Before

```text
A plan presented to the developer un-reviewed, its verified flag set by model tokens.
```

After

```text
auto loopback → 3 passes{evidence, completeness, adversarial} → reconcile findings → loop-owned counter (not model-emitted) → render blocked until verified
```

How it is checked

Checked by
the phase close gate, whose verification flag only deterministic engine code writes

Population
Every phase and task of the living plan

Freshness
A verdict stands until the plan or the verified work changes

Refusal
A phase does not close while its gate fails, and a failure routes back to execution

Observation
The persisted plan state, which records progress across restarts

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The engine's verification flag, which a phase closes on

Depends on
[Evidence-Gated Claim Verification](https://banes-lab.com/records/algorithms/evidence-gated-claim-verification.md), [Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md), [Recursion Control](https://banes-lab.com/records/algorithms/recursion-control.md)

Shape it refuses
Not answered

### Governed Autonomous Plan Loop

- Domain: [governed-plan-loop](https://banes-lab.com/ontology/algorithms/algorithms-domain-governed-plan-loop.md)
- Tier: [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)
- Math type: [computation](https://banes-lab.com/records/reasoning/math-type-computation.md)
- Yields: procedure

Details

Intent
Drive a large task to completion under gates — seed per phase, investigate, execute, self-inform from canon and self-audit, capture considerations, reconcile at the boundary, and close only when the plan is a mechanically resolved state, then re-seed the next phase.

Invariant
Autonomy is bounded by gates rather than disposition — the plan can only grow with code-verified work, completion is a gated state and not a judgment call, and every step is restart-survivable.

Flow

```text
SeedPhase → Investigate → Execute → GatedSelfAuditAndInform → CaptureConsiderations → BoundaryReconcile → CloseGate → ReSeedNextPhase
```

Productions

```bnf
GovernedPlanLoop ::= <PhaseSeed> "→" <ActivityCycle> "→" <BoundaryReconciliation> "→" <PhaseCloseGate> "→" <ReSeed>
ActivityCycle ::= "investigate" "→" "execute" "→" "verify"
SelfDrive ::= <CanonSelfInform> "&" <SkepticalSweep> "&" <PlanMaintenance>
Completion ::= "gated_state" "not_judgment_call"
```

Composes
[Living Plan State](https://banes-lab.com/records/algorithms/living-plan-state.md), [Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md), [Phase Close Gate](https://banes-lab.com/records/algorithms/phase-close-gate.md), [Plan Phase Verification](https://banes-lab.com/records/algorithms/plan-phase-verification.md), [Phase-Separated Execution](https://banes-lab.com/records/algorithms/phase-separated-execution.md)

Forces
[state_transaction](https://banes-lab.com/records/force/state-transaction.md), [security_governance](https://banes-lab.com/records/force/security-governance.md), [correctness_verification](https://banes-lab.com/records/force/correctness-verification.md), [resilience_recovery](https://banes-lab.com/records/force/resilience-recovery.md), [runtime_extensibility](https://banes-lab.com/records/force/runtime-extensibility.md)

Principle
[Auditability](https://banes-lab.com/records/architecture/auditability.md)

Grounds
[derivation-loop](https://banes-lab.com/ontology/reasoning/reasoning-loop-derivation-loop.md)

Grounded by
[constrain](https://banes-lab.com/records/stage/constrain.md)

Derivation map

commit
[Living Plan State](https://banes-lab.com/records/algorithms/living-plan-state.md)

constrain
[Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md)

verify
[Plan Phase Verification](https://banes-lab.com/records/algorithms/plan-phase-verification.md)

terminate
[Phase Close Gate](https://banes-lab.com/records/algorithms/phase-close-gate.md)

Before

```text
A long task driven from conversation memory, self-declared done, losing mid-pass discoveries on restart.
```

After

```text
seed phase → investigate → execute → gated self-audit + canon self-inform → capture + reconcile at boundary → close only on a mechanically resolved gated state → re-seed next phase
```

How it is checked

Checked by
the phase close gate, whose verification flag only deterministic engine code writes

Population
Every phase and task of the living plan

Freshness
A verdict stands until the plan or the verified work changes

Refusal
A phase does not close while its gate fails, and a failure routes back to execution

Observation
The persisted plan state, which records progress across restarts

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The engine's verification flag, which a phase closes on

Depends on
[Living Plan State](https://banes-lab.com/records/algorithms/living-plan-state.md), [Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md), [Phase Close Gate](https://banes-lab.com/records/algorithms/phase-close-gate.md), [Plan Phase Verification](https://banes-lab.com/records/algorithms/plan-phase-verification.md), [Phase-Separated Execution](https://banes-lab.com/records/algorithms/phase-separated-execution.md)

Shape it refuses
Not answered

### <Governed Plan Concern>

- Domain: [governed-plan-loop](https://banes-lab.com/ontology/algorithms/algorithms-domain-governed-plan-loop.md)
- Tier: [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)
- Meta record

Details

Intent
<Seed the phase> → <Investigate and execute under gates> → <Self-inform from canon and self-audit> → <Capture and reconcile considerations at the boundary> → <Close only on a mechanically resolved gated state> → <Re-seed the next phase>

Invariant
A large task reaches completion only under gates, never by disposition: the plan grows solely from code-verified work, completion is a gated state rather than a judgment call, and every step is restart-survivable.

Flow

```text
SeedPhase → GatedActivity → BoundaryReconcile → CloseGate → ReSeed
```

Productions

```bnf
GovernedPlanConcern ::= <PhaseSeed> "→" <GatedActivityCycle> "→" <BoundaryReconciliation> "→" <PhaseCloseGate> "→" <ReSeed>
GatedActivityCycle ::= "investigate" "→" "execute" "→" "gated_self_audit"
```

Composes
[Living Plan State](https://banes-lab.com/records/algorithms/living-plan-state.md), [Phase Close Gate](https://banes-lab.com/records/algorithms/phase-close-gate.md)

Forces
[state_transaction](https://banes-lab.com/records/force/state-transaction.md), [correctness_verification](https://banes-lab.com/records/force/correctness-verification.md), [security_governance](https://banes-lab.com/records/force/security-governance.md)

Grounds
none

How it is checked

Checked by
the phase close gate, whose verification flag only deterministic engine code writes

Population
Every phase and task of the living plan

Freshness
A verdict stands until the plan or the verified work changes

Refusal
A phase does not close while its gate fails, and a failure routes back to execution

Observation
The persisted plan state, which records progress across restarts

Evidence
None, because the catalog states this check as a class, so a watched run belongs to each system that adopts it

Authoritative side
The engine's verification flag, which a phase closes on

Depends on
[Living Plan State](https://banes-lab.com/records/algorithms/living-plan-state.md), [Phase Close Gate](https://banes-lab.com/records/algorithms/phase-close-gate.md)

Shape it refuses
Not answered

## Links to

- [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)
- [Commit](https://banes-lab.com/records/stage/commit.md)
- [Representation](https://banes-lab.com/records/reasoning/axis-representation.md)
- [Information Theory](https://banes-lab.com/records/reasoning/math-type-information-theory.md)
- [Governed Autonomous Plan Loop](https://banes-lab.com/records/algorithms/governed-autonomous-plan-loop.md)
- [<Governed Plan Concern>](https://banes-lab.com/records/algorithms/governed-plan-concern.md)
- [State transaction](https://banes-lab.com/records/force/state-transaction.md)
- [Causality ordering](https://banes-lab.com/records/force/causality-ordering.md)
- [Correctness verification](https://banes-lab.com/records/force/correctness-verification.md)
- [Constrain](https://banes-lab.com/records/stage/constrain.md)
- [Teleology](https://banes-lab.com/records/reasoning/axis-teleology.md)
- [Optimization](https://banes-lab.com/records/reasoning/math-type-optimization.md)
- [Recursion Control](https://banes-lab.com/records/algorithms/recursion-control.md)
- [Phase Close Gate](https://banes-lab.com/records/algorithms/phase-close-gate.md)
- [Plan Phase Verification](https://banes-lab.com/records/algorithms/plan-phase-verification.md)
- [Resilience recovery](https://banes-lab.com/records/force/resilience-recovery.md)
- [Terminate](https://banes-lab.com/records/stage/terminate.md)
- [Termination](https://banes-lab.com/records/reasoning/axis-termination.md)
- [Validation Gate](https://banes-lab.com/records/algorithms/validation-gate.md)
- [Boundary Reconciliation](https://banes-lab.com/records/algorithms/boundary-reconciliation.md)
- [Security governance](https://banes-lab.com/records/force/security-governance.md)
- [Stop Condition](https://banes-lab.com/records/reasoning/node-ter-stop.md)
- [Verify](https://banes-lab.com/records/stage/verify.md)
- [Verification](https://banes-lab.com/records/reasoning/axis-verification.md)
- [Logic](https://banes-lab.com/records/reasoning/math-type-logic.md)
- [Evidence-Gated Claim Verification](https://banes-lab.com/records/algorithms/evidence-gated-claim-verification.md)
- [Observability traceability](https://banes-lab.com/records/force/observability-traceability.md)
- [Evidence](https://banes-lab.com/records/reasoning/node-ver-evidence.md)
- [Computation](https://banes-lab.com/records/reasoning/math-type-computation.md)
- [Living Plan State](https://banes-lab.com/records/algorithms/living-plan-state.md)
- [Phase-Separated Execution](https://banes-lab.com/records/algorithms/phase-separated-execution.md)
- [Runtime extensibility](https://banes-lab.com/records/force/runtime-extensibility.md)
- [Auditability](https://banes-lab.com/records/architecture/auditability.md)
- [The derivation loop](https://banes-lab.com/ontology/reasoning/reasoning-loop-derivation-loop.md)
