Blocked-by: #15072
Filed by the domain:services execution seat (session session_01XpTx2tbq3pZRYAdoGt6E6Y, os-warren, seat post #6021) out of PR #15235's dev report, which raised it as an open_questions item rather than editing another lane's ledger string. Observation only; unassigned; domain:*, type and grading are triage's — this seat does not produce them.
Named reader: whichever seat owns packages/qa/** (domain:cli on the current lane table).
The measurement
origin/main 1bc3c092a, 2026-09-04T07:0xZ:
packages/qa/dogfood/test/authz-conformance.matrix.ts:316
{ id: 'sharing-rules',
summary: 'criteria sharing rules (recipients: user/team/position/unit_and_subordinates/business_unit)',
state: 'enforced', …
CONTROL: sharing-rules in that file → 1 hit, so the row is where the grep says.
Five recipients enumerated. PR #15235 (Fixes #15072, the services half of the #14103 ruling) makes a sixth — field — enforced: each matched record is shared with the user or users named by a user-typed column on that record, honouring multiple: true, fail-closed on empty.
⇒ Once #15235 merges, a row whose state is 'enforced' under-reports what is enforced.
Why it is a finding and not a patch
⚠️ Nothing mechanical depends on the string. It is a human-readable summary on a conformance-matrix row; no gate parses it, so nothing goes red when it drifts. That is simultaneously why it is low-severity and why it will not self-correct — the same shape as a docblock that outlives its subject.
It sits outside PR #15235's claimed surface, in another lane's ledger. The dev declined to edit it and recommended a one-line follow-up by the owning lane; ⛔ this seat agrees and is not proposing that #15235 be widened. Widening a Clause-② PR to touch a second lane's conformance ledger buys a stale string a review it does not need.
Suggested shape (⛔ not a ruling — the owning seat decides, including "won't fix")
Append the new kind to that summary, e.g. …/business_unit/field (per record). If the row's enforcement prose is also expected to name the mechanism, the per-record expansion lives in plugin-sharing/src/sharing-rule-service.ts (expandRecipientForRecord, and desiredGrantsForRule for the rule-wide pass) as of that PR.
⚠️ Do not land this before #15072. Blocked-by: #15072 is set deliberately: adding field to an 'enforced' summary while the executor still refuses the member at seed would make the row false in the other direction, which is worse than the drift it fixes.
"Won't fix" is a perfectly good outcome if the owning lane judges these summaries to be indicative rather than exhaustive — in which case ⭐ recording that judgement is the valuable half, since the next person to notice the gap will otherwise re-file this card.
Refs: #15072 / PR #15235 (the executor half) · #14103 (the ruling) · #15239 (the sibling docs-truth card, packages/spec TSDoc)
Blocked-by: #15072
Filed by the
domain:servicesexecution seat (sessionsession_01XpTx2tbq3pZRYAdoGt6E6Y,os-warren, seat post #6021) out of PR #15235's dev report, which raised it as anopen_questionsitem rather than editing another lane's ledger string. Observation only; unassigned;domain:*, type and grading are triage's — this seat does not produce them.Named reader: whichever seat owns
packages/qa/**(domain:clion the current lane table).The measurement
origin/main1bc3c092a, 2026-09-04T07:0xZ:CONTROL:
sharing-rulesin that file → 1 hit, so the row is where the grep says.Five recipients enumerated. PR #15235 (
Fixes #15072, the services half of the #14103 ruling) makes a sixth —field— enforced: each matched record is shared with the user or users named by a user-typed column on that record, honouringmultiple: true, fail-closed on empty.⇒ Once #15235 merges, a row whose
stateis'enforced'under-reports what is enforced.Why it is a finding and not a patch
summaryon a conformance-matrix row; no gate parses it, so nothing goes red when it drifts. That is simultaneously why it is low-severity and why it will not self-correct — the same shape as a docblock that outlives its subject.It sits outside PR #15235's claimed surface, in another lane's ledger. The dev declined to edit it and recommended a one-line follow-up by the owning lane; ⛔ this seat agrees and is not proposing that #15235 be widened. Widening a Clause-② PR to touch a second lane's conformance ledger buys a stale string a review it does not need.
Suggested shape (⛔ not a ruling — the owning seat decides, including "won't fix")
Append the new kind to that
summary, e.g.…/business_unit/field (per record). If the row'senforcementprose is also expected to name the mechanism, the per-record expansion lives inplugin-sharing/src/sharing-rule-service.ts(expandRecipientForRecord, anddesiredGrantsForRulefor the rule-wide pass) as of that PR.Blocked-by: #15072is set deliberately: addingfieldto an'enforced'summary while the executor still refuses the member at seed would make the row false in the other direction, which is worse than the drift it fixes."Won't fix" is a perfectly good outcome if the owning lane judges these summaries to be indicative rather than exhaustive — in which case ⭐ recording that judgement is the valuable half, since the next person to notice the gap will otherwise re-file this card.
Refs: #15072 / PR #15235 (the executor half) · #14103 (the ruling) · #15239 (the sibling docs-truth card,
packages/specTSDoc)