Leg L5 of the accepted #11663 platform-admin re-anchor design. Provenance: design document = #11663 comment 5394453215 (§6 row L5, migration steps 3–6); maintainer acceptance = #11663 comment 5404675670 (2026-08-25, verbatim 「接受你的建议,继续」). Filed by PM session session_01KWRU3s15AJz7PGW7a7wdCh.
Blocked-by: #18336
⛔ Blocked-by: #11974 was struck 2026-09-01 — that leg is SPENT. #11974 (L4) closed completed 2026-08-31T01:36Z via merged PR #13514. The live blocker is #13515 (this card's EXIT half), established by the domain:services seat's landing note of 2026-08-31T15:29Z (issuecomment-5480570817) but recorded only in that comment while the body still named the closed card. Migrated into the body here, which is the canonical home — a body pointing at a closed target with the real blocker parked in a comment is the stale shape the patrol reports, and it made this card read as releasable to any sweep keyed on "is the Blocked-by: target closed".
⚠️ ⛔ This is a line migration, not a re-derivation. The blocker itself was judged by the seat that owns the card; nothing about the dependency is changed here. #13515 waits on a release boundary, not on work: L4 rides 17.3.0, so the exit lands no earlier than 17.4.0.
Content: own the migration window as a first-class deliverable — the dual read (config-derived standing added in L2, legacy row-id grant still honoured, deprecation log firing from L4) is time-boxed and loud, and the removal of the legacy path lands one minor after L4's landing. Per the design: the removal card is filed at L4's landing (not later); this card carries the window's discipline — derivation prefers env; a detected legacy grant logs its deprecation pointer every boot; ⛔ never a silent dual-track, ⛔ never removal as a rider on another leg.
Acceptance criterion: the window's entry (dual read live + deprecation log) and exit (legacy read deleted, one minor later) are both verifiable on origin/main history, each as its own reviewed change; the exit PR's body names the minor boundary it honours.
Entry half: delivered and verified (PR #13666, merged 1467b19f6) — all three disciplines hold on origin/main; see issuecomment-5474359693 for the readings. The only live residue is the exit, #13515.
⚙️ Bookkeeping, 2026-09-15 (triage R+238) — the exit number was re-pointed; the prose above is left as written.
#13515 became unreadable (404 on /issues, /pulls and the unauthenticated web URL, with an empty redirect_url; controls on the same loop answer 200). Its work was re-filed as #18336 from the design document, and the machine-readable line at the top of this body now reads Blocked-by: #18336.
⛔ Two present-tense sentences above still name #13515 — 「The live blocker is #13515」 and 「The only live residue is the exit, #13515」. They are true as history and dead as pointers, and they are deliberately not rewritten: they record what an earlier seat measured and why the line was migrated, and editing them would erase that. ⇒ Read them as of their date; the live exit is #18336. Full reasoning and the measurement table: issuecomment-5689373281.
⚠️ #13514 (the L4 delivery PR named above) is also 404 ⇒ 「L4 rides 17.3.0」 can no longer be checked against the PR that landed it. #18336 carries that as a premise its dev must falsify first.
Generated by Claude Code
Leg L5 of the accepted #11663 platform-admin re-anchor design. Provenance: design document = #11663 comment 5394453215 (§6 row L5, migration steps 3–6); maintainer acceptance = #11663 comment 5404675670 (2026-08-25, verbatim 「接受你的建议,继续」). Filed by PM session
session_01KWRU3s15AJz7PGW7a7wdCh.Blocked-by: #18336
⛔
Blocked-by: #11974was struck 2026-09-01 — that leg is SPENT. #11974 (L4) closedcompleted2026-08-31T01:36Z via merged PR #13514. The live blocker is #13515 (this card's EXIT half), established by thedomain:servicesseat's landing note of 2026-08-31T15:29Z (issuecomment-5480570817) but recorded only in that comment while the body still named the closed card. Migrated into the body here, which is the canonical home — a body pointing at a closed target with the real blocker parked in a comment is the stale shape the patrol reports, and it made this card read as releasable to any sweep keyed on "is theBlocked-by:target closed".Content: own the migration window as a first-class deliverable — the dual read (config-derived standing added in L2, legacy row-id grant still honoured, deprecation log firing from L4) is time-boxed and loud, and the removal of the legacy path lands one minor after L4's landing. Per the design: the removal card is filed at L4's landing (not later); this card carries the window's discipline — derivation prefers env; a detected legacy grant logs its deprecation pointer every boot; ⛔ never a silent dual-track, ⛔ never removal as a rider on another leg.
Acceptance criterion: the window's entry (dual read live + deprecation log) and exit (legacy read deleted, one minor later) are both verifiable on
origin/mainhistory, each as its own reviewed change; the exit PR's body names the minor boundary it honours.Entry half: delivered and verified (PR #13666, merged
1467b19f6) — all three disciplines hold onorigin/main; seeissuecomment-5474359693for the readings. The only live residue is the exit, #13515.⚙️ Bookkeeping, 2026-09-15 (triage R+238) — the exit number was re-pointed; the prose above is left as written.
#13515became unreadable (404 on/issues,/pullsand the unauthenticated web URL, with an emptyredirect_url; controls on the same loop answer 200). Its work was re-filed as #18336 from the design document, and the machine-readable line at the top of this body now readsBlocked-by: #18336.⛔ Two present-tense sentences above still name
#13515— 「The live blocker is #13515」 and 「The only live residue is the exit, #13515」. They are true as history and dead as pointers, and they are deliberately not rewritten: they record what an earlier seat measured and why the line was migrated, and editing them would erase that. ⇒ Read them as of their date; the live exit is #18336. Full reasoning and the measurement table:issuecomment-5689373281.#13514(the L4 delivery PR named above) is also 404 ⇒ 「L4 rides 17.3.0」 can no longer be checked against the PR that landed it. #18336 carries that as a premise its dev must falsify first.Generated by Claude Code