Skip to content

I3249 — A replan is bounded: past a declared budget of drafts without measurable progress it ends in a named state a person resolves

Declare in .ai/repo/policy.yaml a replan budget (drafts per intent revision without a newly satisfied criterion); intents.draft_plan reports `human_needed` with the criteria that did not move once the budget is spent, and drafts nothing further.

BLOCKED wave 2 · p2 · implementation profile · parallel safe

Part of an-unmet-criterion-is-drafted-into-work — An unmet criterion is drafted into work from the evidence, and the draft is the same on every run.

Blocked. This issue cannot start until I3247 is done. The status is derived from that, not declared.

Objective

Declare in .ai/repo/policy.yaml a replan budget (drafts per intent revision without a newly satisfied criterion); intents.draft_plan reports `human_needed` with the criteria that did not move once the budget is spent, and drafts nothing further.

Why

Autonomy without termination is an unbounded loop (2026-10-08, 2026-10-11, 2026-10-16); the proposed ADR 'Replanning is bounded, idempotent and never weakens its intent' needs one mechanism, not a runtime. Proposed in ADR 0192 (Replanning is bounded, idempotent and never weakens its intent) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c221#2, chatgpt-majordomus:c270#4.

Current state

No replan exists; nothing counts drafts per intent.

Desired state

Progress is measured from the verdicts at each draft's commit, read from the ledger; the bound is policy data.

Scope

  • .ai/repo/policy.yaml
  • share/schemas/majordomus/policy
  • apps/majordomus-cli/src/policy.rs
  • apps/majordomus-cli/src/intent_plan.rs
  • apps/majordomus-cli/src/evidence/ledger.rs
  • apps/majordomus-cli/src/capability/builtin/intents.rs
  • apps/majordomus-cli/tests/intent_plan.rs

Dependencies

Acceptance criteria

  • The budget+1th draft with no newly satisfied criterion returns human_needed naming the stuck criteria
  • A draft after a criterion moved resets the count

Validation

  • majordomus plan validate
  • majordomus intent validate

Evidence required

  • test_a_replan_is_bounded

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3249.yaml. Read it back with majordomus plan show I3249.

Searches the titles and descriptions of every page this site publishes.