Task — engineering-spec@1

Lost-update hardening, retally headers and committed-object evidence

doneTASK-IMP-092
module improvement · class product · priority p0 · created 2026-07-16 · shipped 2026-07-17
depends on none · blocks none

TASK-IMP-092: Lost-update hardening, retally headers and committed-object evidence

Summary

The 086 incident had two mechanical enablers: backlog-mutate adjusts header counts incrementally (so a wrong baseline propagates forever) and nothing in doctrine required acceptance evidence to be measured on a committed object rather than a working view. Fix both: every mutation retallies the target section's header from its actual rows, and ship-tasks doctrine (v2.6.3) gains the two rules adopted from the incident - shared files get one writer through one filesystem view per run, and content-deliverable acceptance evidence is measured with git show against the commit, never a working tree.

Problem

Post-acceptance verification (raised by the PR review bot) proved no commit ever carried 086's rows while every working-view read looked consistent; the header count 34 vs a true tally of 20 was the incremental adjust faithfully preserving a lie. Tools and doctrine must make this class structurally loud.

Proposed Solution

backlog-mutate's flip and insert recompute the counted header from a full scan of the section's rows after the mutation (zero-count statuses omitted, lifecycle order, matching the file's own convention); a fixture whose header lies proves any mutation corrects it. ship-tasks gains two short normative passages: §11a swarm cone-independence explicitly includes view-independence with shared files owned by ONE writer through ONE view, and the testing-phase guidance requires committed-object evidence (git show <commit>:<path>) for content deliverables. workflow_version bumps to 2.6.3; payload re-vendored.

Alternatives Considered

Success Metrics

Scope

In scope: the retally implementation, the lying-baseline fixture, the two doctrine passages, version bump and re-vendor.

Out of scope / Non-Goals

Dependencies

AI Authorship Disclosure

1. Description (normative)

2. Acceptance criteria

3. Edge cases

Audit

TASK-IMP-092-view-safe-mutations spec audit - audit_rubric@2.0 (machine floor + judgment)

Machine floor: task-lint clean on first pass (FM/SEC/COND/TRACE-structural all green). Judgment families: metrics carry baseline/target/deadline grounded in recorded run or incident evidence; alternatives distinct with real rejection reasons; scope subsections present; sourced untrusted evidence only where quoted; ops-verified ACs carry explicit rationales; COND-004 bullets truthful.

ISSUE ISS-001 (QA-004, wontfix-info): several ACs are ops-verified (prose contracts, repo-state chores, single documents) with recorded-evidence rationales judged sufficient - the same pattern accepted for TASK-IMP-086/087 and consistent with TRACE-002's manual allowance.

SUMMARY verdict: pass issues_open: 0 issues_human: 0 next_action: ship

§gate-log

Populated during implementation (ship-tasks testing phase).