Skip to content

docs(method): the Lander performs the vault scorecard re-score (owner ruling 2026-09-05) - #929

Open
wshallwshall wants to merge 1 commit into
mainfrom
builder-rescore-seat-ruling
Open

docs(method): the Lander performs the vault scorecard re-score (owner ruling 2026-09-05)#929
wshallwshall wants to merge 1 commit into
mainfrom
builder-rescore-seat-ruling

Conversation

@wshallwshall

Copy link
Copy Markdown
Collaborator

What this records

Owner ruling, 2026-09-05: the Lander performs vault scorecard re-scores. Given by the owner in
the dispatching session today. It is not an inference.

It is recorded once, in CLAUDE.md section 5's Lander row, whose "Owns" cell already carried
merging and standing vault authority. Every ledger site fixed here cites that section rather than
restating the ruling (section 11: state a load-bearing fact once and link to it).

Why it was needed

Section 5 retired seven seats on 2026-09-01, the ASVS Tracker among them. Ledger rows still told a
reader that seat decides or performs work today, so those rows carried work no seat performs and
nothing anywhere reported it.

The grading, and the negative control

Searched docs/BACKLOG.md and docs/archive/backlog/BACKLOG-CLOSED.md for tracker,
case-insensitive, reading item boundaries and banner status with parse_items imported from
scripts/docs/backlog_status_check.py -- never a hand-rolled scan.

Negative control: the same pass counted a needle that must be everywhere. backlog matched 548
lines in docs/BACKLOG.md and 107 in the archive, against 4,341,605 and 889,355 bytes read, so the
corpus was reached and a zero would have meant something.

36 hits, graded before any edit:

Grade Count Disposition
Instructs someone today that the Tracker decides or performs 9 Fixed here
Sits on a row PR 920 is rewriting 8 Held, see below
Records what the Tracker did historically 16 Left alone -- accurate
Means an issue tracker, not the seat 3 Left alone -- not a seat reference

The nine fixed sites: the ranked-table cell for 1109, and rows 1004, 1109, 1143,
1168, 1194, 1315 and 1323 (two sites in 1323, one banner and one body).

PR 920 had NOT merged

gh pr view 920 --json state,mergedAt returned OPEN with mergedAt: null. So 1328 is
untouched here
, as briefed.

Its diff is wider than the brief said, and that changed what I did. PR 920 edits 1127, 1172,
1184 and 1328
, not only 1172 and 1328. I held all four.

  • 1127 and 1184 carry no Tracker reference on main at all. The text naming the retired seat
    arrives with PR 920. There is nothing to fix on main, and editing the rows 920 is rewriting
    would have scheduled a conflict for no gain. Both need the same edit once 920 lands -- each
    ends by saying the direction "is now an owner question", and the owner has now answered it.
  • 1172 has two live Tracker handoff sites (docs/BACKLOG.md around the "belongs to a Tracker
    seat" handoff). PR 920 flips this row's banner to closed. Held for the same reason, and it needs
    the same edit after 920 lands.
  • 1328 held per the brief.

The four held ASVS rows name no seat at all

1169, 1122, 1182 and 1188 each carry closing-act: scorecard-rescore and verdict: research,
and none of them names the Tracker or any other performing seat. Measured with parse_items
over each row's full span. No edit was needed, and the ruling now supplies the missing answer through
the closing-act field: that act is the Lander's.

Decisions this brief left open

  1. Held 1127, 1172 and 1184 as well as 1328. The brief named only 1328 as held, on a reading of
    PR 920's scope that its diff does not support. The brief's own rule -- do not edit a row another
    open PR is rewriting -- decided it.
  2. Two sites are not re-score work, so they do not rest on the ruling. 1315's security-record
    citation cleanup and 1323's ASVS prose correction are vault edits but are not re-scores.
    Extending the ruling to cover them would be asserting past what was measured. Both now name the
    Lander as the only seat in the current roster holding vault authority and cite section 5 --
    a reading of the roster, not of the ruling.
  3. 1143's ### TRACKER HANDOFF heading became ### RE-SCORE HANDOFF. Naming the act outlives
    naming a seat.

Noticed and deliberately not taken

scripts/docs/backlog_status_check.py's CLOSING_SEAT map and the stale BUILDER.md:253 citations
are a separate item being scoped now. Untouched, as briefed.

Checks

Run in this worktree, on .venv, before the commit:

Check Result
ruff check . pass
ruff format --check . pass, 1256 files
mypy messagefoundry (strict) pass, 268 source files
pytest backlog + ledger + CLAUDE.md suites 164 passed
pytest advisory-gate suites 76 passed
scripts/docs/backlog_status_check.py rc 0 -- 670 items, each declaring one status
scripts/docs/claude_section_check.py rc 0
scripts/docs/link_check.py rc 0
pre-commit (via git commit) all wired hooks passed

The pytest sets were tests/test_backlog_status_check.py,
tests/test_backlog_citation_check.py, tests/test_backlog_dependency_census.py,
tests/test_backlog_hygiene_claim_extraction.py, tests/test_backlog_score_advisory.py,
tests/test_ledger_check.py, tests/test_claude_section_citations.py,
tests/test_claude_settings_contract.py, then tests/test_citation_line_check.py,
tests/test_verdict_divergence_check.py, tests/test_banner_sha_check.py,
tests/test_dangling_citation_check.py and tests/test_dangling_citation_advisory.py.

Not run: the full suite. This diff is two Markdown files and touches no engine code, so the
engine, web console and harness suites cannot be reached by it.

Read on a hosted runner only: windows-service-smoke and every other leg that needs a runner
this Builder does not have. backlog-hygiene should exit with no banner update required -- its
banner demand fires only when the three-dot diff touches messagefoundry/, ide/ or
messagefoundry_webconsole/, and this one touches none of them.

Reading note on three advisory scripts. citation_line_check.py, verdict_divergence_check.py
and banner_sha_check.py each exit 1 in this tree. Their findings name items and engine files this
diff does not touch (#340, #1003, #1266, #1094, and line drift in alert_sinks.py,
postgres.py, dicom.py, file.py). None is wired into .pre-commit-config.yaml or a workflow;
the pytest wrappers that are the gate all pass.

One instrument note. The first pass read rc=$? after a pipe, which reports the pipe's last
stage and not the script. The table above was re-measured with the pipe removed.

Generated with Claude Code (https://claude.com/claude-code)

… ruling)

Owner ruling 2026-09-05, recorded once in CLAUDE.md section 5's Lander row.

Section 5 retired the ASVS Tracker on 2026-09-01, and ledger sites still told
a reader that seat decides work today, so they named nobody. Nine now name the
Lander and cite section 5: the ranked-table cell for 1109, and rows 1004, 1109,
1143, 1168, 1194, 1315 and 1323.

Graded before editing, over 35 hits in docs/BACKLOG.md and 1 in the archive:
9 instruct today and are fixed, 8 sit on rows PR 920 is rewriting and are held,
16 record what the Tracker did, 3 mean an issue tracker rather than the seat.

Held for 920: 1127, 1172, 1184 and 1328. On main 1127 and 1184 carry no Tracker
reference at all; that text arrives with 920 and needs the same edit after it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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