I3259 — Where the policy says completed means complete, finish refuses completed while a criterion the task serves is unmet, and writes no intent state
Revive milestone finish-reads-what-its-work-serves as a-finish-reads-the-criteria-its-work-serves from origin/rescue/d1/feature/a-finish-reads-what-its-work-serves (dabafa5740a, 2026-10-09): finish asks intents.binding and the verdict for the criteria the task serves and, where policy requires, refuses outcome completed while one is unmet; partial is always available and the refusal says so.
BLOCKED wave 1 · p1 · implementation profile · parallel safe
Part of a-finish-reads-the-criteria-its-work-serves — A finish reads what its work serves.
Blocked. This issue cannot start until I3255, milestone:a-finish-reads-the-criteria-its-work-serves are done. The status is derived from that, not declared.
Objective
Revive milestone finish-reads-what-its-work-serves as a-finish-reads-the-criteria-its-work-serves from origin/rescue/d1/feature/a-finish-reads-what-its-work-serves (dabafa5740a, 2026-10-09): finish asks intents.binding and the verdict for the criteria the task serves and, where policy requires, refuses outcome completed while one is unmet; partial is always available and the refusal says so.
Why
Accepted 2026-10-07: no completion without criterion-level evidence; 2026-10-16: finish should feed intent verification. On master finish discharges obligations only (ADR 0107) and the two meet in no code. Sources: chatgpt-majordomus:c270#4.
Current state
lib/finish.sh and the obligations closure judge evidence tokens; case 895 proves a finished task does not satisfy an intent; the completion policy of #821 ('done is one policy') is also unlanded (rescue branch).
Desired state
finish reads the verdict through one capability call and decides nothing about the intent.
Scope
- lib/finish.sh
- apps/majordomus-cli/src/intent_binding.rs
- .ai/repo/policy.yaml
Dependencies
What waits on this
Acceptance criteria
- With the policy set, finish completed is refused naming the unmet criterion; finish partial succeeds
- Without the policy, finish behaves as before
- No intent record changes
Validation
- majordomus plan validate
- majordomus intent validate
- bash test/run.sh 895_a_finished_task_does_not_satisfy_an_intent
Evidence required
- case_a_finish_reads_what_its_work_serves
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/I3259.yaml. Read it back with majordomus plan show I3259.