Repository navigation
[finding] #15929's class recurred on #16934: a decision card whose Governing text: omitted the ADR that already decides it (ADR-0131 D8) reached batch presentation with a recommendation to re-rule — the text-level governing-text step failed at filing and at presentation; a mechanical prior-ruling search is asked #17009
Description
Filed by the director seat (summon #18, session_017Js5kTpTtxieBjPyScgxJ3, GitHub huangyiirene, 2026-09-09) against its own error, as a finding for the domain:skills lane under the shift-report rule (a principle gap plus a mechanisable item). ⛔ No domain:* set — the skills seat self-triages its findings. ⛔ Not dispatchable as filed.
What happened (measured on the cards and on origin/main 8d4690b8)
- [Decision] Under
singleposture, which tenant wall is the platform's? driver-sql's posture-independenttenantIdauto-scope answers a platform admin 0/0/0/0 on/datawhile the engine path, analytics and the memory driver answer 12/30/40/14 #16934 was filed 2026-09-08T17:15Z by the director seat (summon Add missing Field.phone() helper and factory methods for Action/Dashboard/Report #15) as aneeds-user-decisioncard: 「Undersingleposture, which tenant wall is the platform's?」 with options A / B / C and a four-facet block. ItsGoverning text:line cites ADR-0105, ADR-0021 D-C, two code symbols and the maintainer's [finding] The InMemory driver silently ignores the engine's tenant scope for objects that OMIT atenancyblock — its guard only refuses an explicitenabled: true, so memory-driver runs show cross-organization rows a SQL driver refuses #16589 ruling. It does not cite ADR-0131, whose D8 (accepted 2026-09-04) answers the question verbatim — 「nothing undersingle… the same value to Layer 0 and to every driver. No layer has a NULL arm」 — with an execution card (feat(spec,drivers,objectql,plugin-security):organization_idNOT NULL per cleared table; one predicate for Layer 0 and every driver; bothorWhereNullarms, the__global__sentinel and the #13491 ledger retire (ADR-0131 D1/D8/D9) — protocol 18 #15212, C8) alreadypm:blockedbehind the v18 gate [gate] the v18 development line is not open — ADR-0131 execution cards are blocked on this card #15193, and a maintainer staging ruling that nothing of ADR-0131 ships in 17.x. - Summon [WIP] Add support for default language configuration #18 (this seat) presented the card in decision batch 🔗 Broken links detected in documentation #104 on 2026-09-09 ~02:0xZ recommending A as a new ruling to be executed by a 17.x
domain:enginecard — i.e. a recommendation that contradicted the standing staging ruling and treated a decided matter as open. The seat's pre-presentation freshness pass re-ran the card's ownre-checkcommands (P1–P3) and a targeted grep on ADR-0105 only. ⛔ It did not run the director charter's mandated step,references/lanes/director.mdline 45: 「呈报前逐卡逐仓重跑git grep -n -iE 'TERMS' origin/main -- AGENTS.md docs/adr packages/spec/src」. A one-term grep —git grep -n -iE 'single' origin/main -- docs/adr— reaches ADR-0131 D8 on its first page. - The maintainer caught it in chat (「我记得 single 模式下也是要求有组织的,调研所有相关的文档」). The corrected analysis is on the card (comment posted 2026-09-09T02:3xZ). The four-axis analysis itself was internally sound; it was applied to an option set that the omitted ADR had already closed.
Why this is a gap, not only a seat slip
- [finding] The decision-card frame has no "governing text" step — two director recommendations on 2026-09-05 contradicted rulings already codified in a repo's AGENTS.md and in a spec docblock, because the existing-ruling search is scoped to card comments and the director ledger #15929 (closed, p1,
domain:skills, 2026-09-06) is the same class: 「two director recommendations on 2026-09-05 contradicted rulings already codified … because the existing-ruling search is scoped to card comments and the director ledger」. Its remedy was text-level — theGoverning text:requirement on decision cards and the grep line in the director charter. This card is the measurement that the text-level remedy failed at both points where it applies: the filing seat wrote aGoverning text:line that missed the deciding ADR, and the presenting seat did not run the grep. Two different director sessions, four days apart, same failure. - A card's own
re-checkcommands cannot catch this class: they are authored by the filer to re-verify the filer's premises, so they confirm the code still looks as described and say nothing about whether the question is still open. A premise pass is not a prior-ruling pass. - The four-axis frame amplifies the failure rather than catching it: a well-formed analysis over a stale option set reads as more trustworthy than a bare question, which is exactly how [Decision] Under
singleposture, which tenant wall is the platform's? driver-sql's posture-independenttenantIdauto-scope answers a platform admin 0/0/0/0 on/datawhile the engine path, analytics and the memory driver answer 12/30/40/14 #16934 reached the maintainer with a confident wrong recommendation.
What is asked of the skills seat (⛔ not proposed as text; the mechanism is the ask)
- A mechanical prior-ruling search that runs when a card enters
needs-user-decisionand again before batch presentation — e.g. ascripts/pm/script that takes the card number, derives search terms from its title and itsGoverning text:line, grepsdocs/adr/**(the### D<n>decision headings and their first paragraph),AGENTS.mdandpackages/spec/src/**docblocks onorigin/main, and prints the ADR decisions that mention the terms; report-only, exit codes per thecheck-half-statesconvention. The presentation cannot cite a ruling the filer did not know about unless something lists the candidates. - A fixed line in the four-facet block — the spelling is the skills seat's — recording the search as a reading: the terms grepped, the hit count, and each accepted ADR decision read (
ADR-xxxx Dn) ornone. A block without the line is a half-state the patrol reports (an H row beside the existing facet-block presence check). - Whether a hit on an accepted ADR decision removes the card from the box (it is execution, not a decision —
pm:blockedbehind the ADR's gate, orpm:queue) is a protocol reading this card puts to the skills seat; [Decision] Undersingleposture, which tenant wall is the platform's? driver-sql's posture-independenttenantIdauto-scope answers a platform admin 0/0/0/0 on/datawhile the engine path, analytics and the memory driver answer 12/30/40/14 #16934's disposition is being put to the maintainer separately.
Governing text: SKILL.md 〈升级与决策〉 (「落卡与呈报必带 Governing text:」, 「③ 不推翻既有维护者裁决」), references/lanes/director.md line 45, references/decision-analysis.md 〈落卡分析模板〉. Dedupe: search_issues over this repo for 「decision card presented for a question an accepted ADR already decides, governing text incomplete, prior-ruling search, mechanical check」 returned #15929 (closed, the text-level remedy), #7498 (closed, the four-lens block), #7899 (closed); no open card asks for the mechanism.
Activity