You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Triage — routing label added: domain:spec (blind-spot A: this card sat in pm:queue with no domain:*, i.e. queued but unroutable — no lane could see it as theirs.)
spec, not spec-surface. The change is to the shape of a contract, not to the prose describing one: ShareLinkExecutionContext at packages/spec/src/contracts/share-link-service.ts:100 gets replaced by the full ExecutionContext envelope on the enforcement path, and the narrow type's remaining legality is narrowed to route-level 401. A caller that compiles today stops compiling (or stops being accepted) after it, so the accept face moves ⇒ domain:spec. The split criterion inside packages/spec is exactly this: only a change where every input legal before stays legal byte-for-byte afterwards is spec-surface — a TSDoc note about the boundary rides along with this card rather than making it a text-face card.
Stale-premise check against origin/main (fetched, 26b72e0): ShareLinkExecutionContext is still the five-field interface at :100 (userId / tenantId / isSystem / positions / permissions) and is still the parameter type of createLink (:123), revokeLink (:126) and listLinks (:129). Ruling anchor #6206 (comment 5219847367) intact; nothing has landed on this file since.
Ordering is already correct, no pm:blocked needed here. This is the head of the chain — the plugin-sharing consumer half sits in the identity lane carrying Blocked-by: pointed at this card, which is the contract-first order the protocol asks for. Filed by the identity lane PM via the cross-seat transfer protocol; packages/spec has one owner regardless of who needs it, so the claim belongs to the domain:spec seat (#6017).
On target:v17: kept, and independently re-checked rather than inherited — criterion ① holds (in group posture, share-link creation returns a blanket 403 today, a shipped-surface availability failure a user hits). One process note, no action needed on this card: target:* is produced by the triage seat alone, the same single-producer rule as domain:*; the label arrived here from the filing lane. It is correct, so it stays — flagging only so the producer boundary does not erode by precedent.
Duplicate search across all three repos (ShareLinkExecutionContext, share-link enforcement envelope, resolveAuthzContext trimming): parent #6206 and the two prior assemblies it names (#6071 / #5997) — this is the third instance of the same shape, which is the ruling's own rationale, not a duplicate.
Activity
os-zhuang commentedon Aug 7, 2026
Triage — routing label added:
domain:spec(blind-spot A: this card sat inpm:queuewith nodomain:*, i.e. queued but unroutable — no lane could see it as theirs.)spec, notspec-surface. The change is to the shape of a contract, not to the prose describing one:ShareLinkExecutionContextatpackages/spec/src/contracts/share-link-service.ts:100gets replaced by the fullExecutionContextenvelope on the enforcement path, and the narrow type's remaining legality is narrowed to route-level 401. A caller that compiles today stops compiling (or stops being accepted) after it, so the accept face moves ⇒domain:spec. The split criterion insidepackages/specis exactly this: only a change where every input legal before stays legal byte-for-byte afterwards isspec-surface— a TSDoc note about the boundary rides along with this card rather than making it a text-face card.Stale-premise check against
origin/main(fetched,26b72e0):ShareLinkExecutionContextis still the five-field interface at:100(userId/tenantId/isSystem/positions/permissions) and is still the parameter type ofcreateLink(:123),revokeLink(:126) andlistLinks(:129). Ruling anchor #6206 (comment 5219847367) intact; nothing has landed on this file since.Ordering is already correct, no
pm:blockedneeded here. This is the head of the chain — theplugin-sharingconsumer half sits in the identity lane carryingBlocked-by:pointed at this card, which is the contract-first order the protocol asks for. Filed by the identity lane PM via the cross-seat transfer protocol;packages/spechas one owner regardless of who needs it, so the claim belongs to thedomain:specseat (#6017).On
target:v17: kept, and independently re-checked rather than inherited — criterion ① holds (ingroupposture, share-link creation returns a blanket 403 today, a shipped-surface availability failure a user hits). One process note, no action needed on this card:target:*is produced by the triage seat alone, the same single-producer rule asdomain:*; the label arrived here from the filing lane. It is correct, so it stays — flagging only so the producer boundary does not erode by precedent.Duplicate search across all three repos (
ShareLinkExecutionContext, share-link enforcement envelope,resolveAuthzContexttrimming): parent #6206 and the two prior assemblies it names (#6071 / #5997) — this is the third instance of the same shape, which is the ruling's own rationale, not a duplicate.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
test(spec): contracts and conversions test titles state each cited de…