Skip to content

backlog: rule 13 demand-gate rows, file #1212 and #1213 - #314

Merged
wshallwshall merged 1 commit into
mainfrom
w3-ledger-b
Aug 11, 2026
Merged

backlog: rule 13 demand-gate rows, file #1212 and #1213#314
wshallwshall merged 1 commit into
mainfrom
w3-ledger-b

Conversation

@wshallwshall

Copy link
Copy Markdown
Collaborator

Rules 13 demand-gate rows: 5 declined, 6 deferrals confirmed with restated triggers, 1 re-tiered,
1 split. Ledger only -- no engine, IDE or webconsole code is touched.

BACKLOG #1212 #1213

Two declines that state their consequence rather than leaving it implicit

#1212 is the one to read

It bounds PHI-body retention by default. The current default is 0, which means keep forever. It
lands inside two ASVS requirements that are both partial, and carries five traps. Two matter most:

  • audit_days must stay keep-forever by design -- a tamper-evident chain against a multi-year
    retention expectation -- so a sweep of "all the zero defaults" would convert a compliance property
    into a bug.
  • The change flips what an omitted setting means, from keep-forever to delete-at-60-days.

Four rows previously routed for a ruling are now resolved

#141 deferred and restated as a policy question, with the relay workaround's cost written into the
banner: that hop sits outside count-and-log and outside the forward-secrecy floor. #178 is a narrowly
scoped build -- a floor assertion on the one transport hop that lacked it, with the configurable
allow-list still deferred. #158 deferred, recording that building it would require widening the
one-path-component cap that stops an attacker-controlled HL7 field writing outside the target
directory; the banner had read as a connector knob. #105 deferred, with its citation corrected rather
than left implying a broken reference.

Verification

  • Ledger re-derived with parse_items from this branch: live 244, open 185, closed-in-live 59,
    archive 236 -- namespace 480 conserved. No duplicates, no item declaring more than one status.
  • The status checker was pointed at this branch's extracted file rather than at a working tree, so its
    total describes the change under review.
  • Merges cleanly onto main, with the instrument checked first against a known-conflicting branch.
  • Leak scan clean, with its negative control confirmed firing.

The owner worked through the remaining demand-gate surface item by item.
Five declined, six deferrals confirmed with their triggers restated, one
re-tiered, one split. Open items 188 -> 185 (the deferrals stay open by design).

DECLINED (5). Each verified to have a working alternative in shipped code, or a
trigger that cannot arise. Declining is reversible; re-filing costs one item.
  #94 #62 #64 -- the whole storage-efficiency cluster retires together. #62's win
       is a ~60% at-rest CONSTANT FACTOR with no correctness stake, against
       reopening ADR 0028's NUL-safe carriage decision where being wrong corrupts
       message bodies. A larger disk answers a constant factor. #64's only
       surviving role was indexing that cluster; it now indexes nothing.
  #179 -- and the reason is a correction to MY OWN objection, recorded because the
       method matters more than the outcome. I argued unbounded growth eventually
       outruns "buy a bigger disk". It does not, on any instance that matters:
       allow_unbounded_phi (#186a, ASVS 14.2.4) makes a PHI instance REFUSE TO
       START in prod unless both PHI-body windows are bounded. Reading the guard
       settled it; reasoning about growth did not.
  #180 -- with a consequence stated rather than left implicit: greenfield
       drain-before-cutover, discarding retained history AND audit, is now the
       shipped answer for backend promotion. That is a position, not an oversight.

DEFERRALS CONFIRMED (6), each with what the banner previously failed to say:
  #141 the relay workaround places a hop OUTSIDE count-and-log and outside the
       forward-secrecy floor asserted at 12 sites -- a policy question, not demand.
  #105 its gate #313 is ABOVE the published #231 baseline BY DESIGN and is sound
       evidence; and the role layer IS wired, so "0 Action objects" is a
       pre-wiring measurement that must not be quoted as current state.
  #158 building it REQUIRES WIDENING FILE-1, the one-path-component cap that stops
       an attacker-controlled field writing outside the target directory. The
       banner read as a connector knob; it is a path-traversal control widening.
  #3   the 45M/day target does NOT imply it -- ~0.35 ev/s per connection, about
       170x below the one-lane bound. The target is met by concentration. Also:
       the 2026-07-09 decline was OVERTURNED and must not be re-declined on the
       purity argument.
  #96  NOT demand-gated -- BUILD-GATED on an owner re-ratification (ADR 0074).
       It waits on the owner, not a customer, and its guard layer is buildable.
  #155 deferred by owner: build after more testing.

RE-TIERED (1): #99 is RIG-BLOCKED, not demand-gated -- its own amendment already
said "PROVISIONING, not code". Six items now wait on one lab rig.

SPLIT (1): #78 keeps the persisted-definition model with its #26 adjacency stated;
the NCPDP codec becomes #1213.

FILED (2), both allocated with scripts/coord/alloc.ps1:
  #1212 bound PHI-body retention by default (60 days, not keep-forever). Owner
        requested after establishing the current default is 0 = KEEP FOREVER. It
        lands inside ASVS 14.2.4 and 14.2.7, both partial, and carries five traps
        -- the two that matter are that audit_days must STAY keep-forever by
        design, and that the change flips what an OMITTED setting means.
  #1213 NCPDP codec, the clean additive half of #78.

Ledger, re-derived with parse_items: live 244, open 185, closed-in-live 59,
archive 236, namespace 480 conserved. All three ledger gates pass.
@wshallwshall
wshallwshall merged commit 04fd60e into main Aug 11, 2026
34 checks passed
@wshallwshall
wshallwshall deleted the w3-ledger-b branch August 11, 2026 00:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant