I3146 — A closed session record says whether it is complete, and one that changed the tree without saying what it served is not
Derive a completeness verdict for every closed record (complete, incomplete with named reasons, legacy-unverifiable) and for the calling provider session's open episode; report it on doctor, check and finish; keep episode_closed, task_completed, verified and accepted as four distinct facts.
BLOCKED wave 3 · p1 · implementation profile · parallel safe
Blocked. This issue cannot start until I3142 is done. The status is derived from that, not declared.
Objective
Derive a completeness verdict for every closed record (complete, incomplete with named reasons, legacy-unverifiable) and for the calling provider session's open episode; report it on doctor, check and finish; keep episode_closed, task_completed, verified and accepted as four distinct facts.
Why
On 2026-09-11 the owner asked why a record had no progress or description and why that was not enforced. The body is now composed (sessions/README.md), but the validator still checks shape only, and session/v1 leaves tasks, issues and milestones as arrays with no constraint (share/schemas/majordomus/session-record/session-record.v1.schema.json). Proposed in ADR 0182 (A closed session record is judged by what it can attribute, not only by its schema) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c116#0, chatgpt-majordomus:c116#3.
Current state
Records with changed_files or commits and empty tasks/issues validate clean; an interrupted record with no handover validates clean.
Desired state
The verdict is derived, never stored as authored text; a record from before the verdict existed is legacy-unverifiable, not invalid.
Scope
- apps/majordomus-cli/src/session
- lib/session.sh
- lib/doctor.sh
- lib/finish.sh
- docs/CONTINUITY.md
Out of scope
- Rewriting existing records
- A session/v2 schema
- Changing session-record.v1 (a declared reason lives in the ledger)
Dependencies
What waits on this
Acceptance criteria
- Changed files plus empty attribution and no declared reason is incomplete
- Interrupted with neither handover nor continuation reason is incomplete
- doctor, check and finish name the verdict and its reasons
- The verdict distinguishes closed, completed, verified and accepted
- Each new case named here takes its number from `scripts/case-numbers next` and is announced on the board before the file is written (ADR 0053); a case number written in this record before that is provisional
Validation
- bash test/run.sh --no-skips 63_session_records 61_session_envelope
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test session_domain
Evidence required
- case_record_states_completeness
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/I3146.yaml. Read it back with majordomus plan show I3146.