Skip to content

docs(adr): amend ADR-0142 D5 — an organization authors its own assignment rules, evaluated before the declared ones; answer merge question 11 - #30828

Draft
objectstack-fleet[bot] wants to merge 1 commit into
mainfrom
claude/project-thread-kl2al6
Draft

objectstack-fleet[bot] wants to merge 1 commit into
mainfrom
claude/project-thread-kl2al6

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Elon · project thread

domain:server#1 · os-elon-musk · session_016WV4d14C8K4gMehVb6jBvA

Part of #30066

Clause-②: no
Metadata-protocol: none

Claim: 6672306838 (amended 6672490095, 6673262187, 6674205693, 6674382817) · Branch: claude/project-thread-kl2al6 · Ruling-ref: 6631036940 (letter A), execution parameters 6670178869

维护者速读

What changes

One file, docs/adr/0142-ownership-queue-membership-claim-and-assignment-rules.md, recording ruling A on #30066 (record 6631036940, with the execution parameters of 6670178869):

  • Status line: a new Amended (2026-11-05) entry naming the ruling: D5 gains its second source, and merge question 11 is answered.
  • TL;DR item 4: a parenthetical Amended note pointing to D5.
  • D5: a new paragraph after What the rule writes, a second source: an organization's own rules, with seven points:
    • Shape: a sys_assignment_rule row, owned by @objectstack/plugin-sharing beside sys_queue and sys_sharing_rule; organization_id NOT NULL; one rule with one entry per row.
    • One namespace: a row may not take a declared rule's name (ADR-0131 D4); a row a later-installed package shadows is not evaluated and is reported.
    • Order: first-match stays; the organization's active rows first (by sort_order, then name), the declared rules as the fallback; why the other order cannot work (the activation ledger has no organization column); a failed read of the organization's rows routes by no rule.
    • Validated on save: criteria and load compiled by the two paths the seam evaluates by; the declared schema's entry refusals; a user target must be an active member.
    • A user target at insert, from either source: owns the row only while an active member; otherwise ownerless, logged once, never refused. The os lint warning on declared user targets stands.
    • A lapsed queue target: unchanged, for both sources.
    • Out of this record's code: the dedicated Setup page is the Console's.
  • Merge question 11: an Answered (2026-11-05) sentence pointing to D5.

Why

Ruling A asks for this record. The runtime half shipped in #30760 (merged as ac890f5); this PR follows it on the same branch, serially, and is never bundled with it. Each point above states the behaviour #30760 merged, so the record and the code read the same.

Tests

None: a docs-only change to one ADR. No code, schema, generated artifact or published file moves.

Acceptance notes

Verification

Local gates at 4b26915 (dispatch-gates --commands on this diff, 21 commands)
node scripts/check-adr-links.mjs :: exit 0
node scripts/check-adr-links.mjs --self-test :: exit 0
node scripts/check-closing-keyword-parity.mjs :: exit 0
node scripts/check-closing-keyword-parity.mjs --self-test :: exit 0
node scripts/check-comment-mask-corpus.mjs :: exit 0
node scripts/ci/plan-test-core-shards.mjs --self-test :: exit 0
pnpm --filter @objectstack/lint run check:doc-formula-expressions :: exit 0
pnpm check:adr-anchors :: exit 0
pnpm check:adr-index :: exit 0
pnpm check:adr-symbol-anchors :: exit 0
pnpm check:ci-filter-parity :: exit 0
pnpm check:closed-ceremony-text :: exit 0
pnpm check:cross-package-test-inputs :: exit 0
pnpm check:doc-authoring :: exit 0
pnpm check:driver-memory-census :: exit 0
pnpm check:gitlink-declared :: exit 0
pnpm check:nul-bytes :: exit 0
pnpm check:pm-governed-merges :: exit 0
pnpm check:pm-prior-rulings :: exit 0
pnpm check:refd-timer-probe :: exit 0
pnpm check:watch-hint-literal :: exit 0

node scripts/pm/dispatch-gates.mjs --ran: 21 derived, 21 run, 0 NOT-MEASURED, 0 UNRUN (exit 0). node scripts/check-commit-card-trailers.mjs --range origin/main..HEAD: 1 message clean.
CI families outside the derivation (artifact rosters, wide-population families, the type-check lanes) are CI's; this PR's check-runs are their record.

Human Minimum

  • 1. Schemas start as Zod; packages/spec holds no runtime logic. (not touched)
  • 2. Every name I added uses the casing for its kind. (none added)
  • 3. No formatter ran; pnpm lint passes. (no source file touched)
  • 4. One issue, one branch off an up-to-date main, one pull request.
  • 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset. (publishes nothing: skip-changeset)
  • 6. packages/spec touched: its generated artifacts are regenerated and committed. (not touched)
  • 7. No hand edits to content/docs/references/, packages/*/CHANGELOG.md or content/docs/releases/.
  • 8. Title, body and comments are in English.

Generated by Claude Code

…ment rules, evaluated before the declared ones; answer merge question 11

D5 gains its second source: `sys_assignment_rule` rows an organization
authors in Setup, owned by plugin-sharing beside sys_queue and
sys_sharing_rule, one rule with one entry per row. The amendment records
the one namespace with declared rules, the first-match order (the
organization's rows first, by sort_order then name, the declared rules as
the fallback) and why the other order cannot work, what the save guard
refuses, and the active-member rule for a user target from either source.
Merge question 11, which deferred organization-authored routing, is
marked answered.

Claude-Session: https://claude.ai/code/session_016WV4d14C8K4gMehVb6jBvA
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Nov 6, 2026
@github-actions github-actions Bot added size/s documentation Improvements or additions to documentation labels Nov 6, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant