Skip to content

I3253 — A proposal lists the values it left unresolved, and a draft that carries an invented threshold is refused

Add an `unresolved` list (value, why it matters, who decides) to the intent proposal and draft; the draft check refuses a numeric threshold in a criterion that cites no measurement or decision.

BLOCKED wave 3 · p2 · implementation profile · parallel safe

Part of an-outcome-becomes-a-reviewed-plan — A desired outcome becomes a draft plan that is checked before a record is written.

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

Objective

Add an `unresolved` list (value, why it matters, who decides) to the intent proposal and draft; the draft check refuses a numeric threshold in a criterion that cites no measurement or decision.

Why

2026-10-11 and 2026-10-13: a 'fast' or a budget number written by the plan author is an unproven assumption; thresholds come from measurement. Proposed in ADR 0191 (A plan drafted from an intent is a proposal, checked by the plan's own validators before any record is written) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c247#2.

Current state

intents.propose takes a statement and optional title and id; no field carries open values.

Desired state

Open values are returned by intents.list, which /ui draws, and a draft that carries one is refused by the write until it is resolved or deferred with a reason.

Scope

  • apps/majordomus-cli/src/intent.rs
  • share/schemas/majordomus/intent
  • apps/majordomus-cli/src/capability/builtin/intents.rs
  • apps/majordomus-cli/src/intent_plan.rs
  • apps/majordomus-cli/src/ui/intent.rs
  • apps/majordomus-cli/src/commands/intent.rs
  • apps/majordomus-cli/tests/intent.rs

Dependencies

Acceptance criteria

  • A criterion with '< 200 ms' and no cited measurement is refused naming it
  • A proposal's unresolved items are returned by intents.list
  • intents.draft_write (I3252) refuses a draft whose unresolved list holds a value that is neither resolved nor marked deferred with a reason, naming each such value, and writes nothing

Validation

  • majordomus plan validate
  • majordomus intent validate

Evidence required

  • test_a_proposal_says_what_it_left_open

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/I3253.yaml. Read it back with majordomus plan show I3253.

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