Contract 2 Amendment 1: defines the company-CRUD capability that hierarchy schema §5.5 / contract 1 Amendment 1 (Ruling 4b) anticipate. S2 process: reviewed document, ends in a one-sentence ruling request to Jason.
Definition (new §8): a platform-scoped, admin-assigned, audited delegation of exactly the hierarchy schema §5.5 company visibility command.
Content: the visibility mutation only, both directions, any company — no read surface (publish targets arrive out of band from the requesting owner; unpublish targets are already directory-listed). A curation listing, if ever wanted, is a further amendment with its own §6.7 disclosure analysis.
Holding: platform_capabilities table (user subjects only, CHECK-constrained to company_crud, UNIQUE per user); not a hierarchy grant, never enters §3 chain evaluation.
Assignment: platform admins only (instance administration per §1.1); no self-propagation by holders; every assign/revoke audited with §4.5-namespaced strings (platform-capability:company-crud).
Evaluation/revocation: live, fail-closed (§3.5); revocation is row deletion with the §6.2 bound.
§8.5 states the full deny list (no grants, no reads, no MCP scope, no other company operation, owner-as-such still cannot publish).
§8.6 adds five verification requirements binding on implementing PRs.
Untouched: §2 role vocabulary, §3 evaluation, §4 grant management. Company creation stays open-to-active-users and always private (contract 3 §5.2). Until this ratifies, the capability class is empty and the command stays admin-only (shipped gate in hierarchy.repository.ts unchanged by this PR — implementation follows ratification as a separate increment).
Ruling request (end of file, for Jason): the capability is exactly the visibility command, no read surface — "agreed", or name the additional operations / curation listing it should carry.
Contract 2 Amendment 1: defines the company-CRUD capability that hierarchy schema §5.5 / contract 1 Amendment 1 (Ruling 4b) anticipate. S2 process: reviewed document, ends in a one-sentence ruling request to Jason.
**Definition (new §8):** a platform-scoped, admin-assigned, audited delegation of exactly the hierarchy schema §5.5 company visibility command.
- Content: the visibility mutation only, both directions, any company — **no read surface** (publish targets arrive out of band from the requesting owner; unpublish targets are already directory-listed). A curation listing, if ever wanted, is a further amendment with its own §6.7 disclosure analysis.
- Holding: `platform_capabilities` table (user subjects only, CHECK-constrained to `company_crud`, UNIQUE per user); not a hierarchy grant, never enters §3 chain evaluation.
- Assignment: platform admins only (instance administration per §1.1); no self-propagation by holders; every assign/revoke audited with §4.5-namespaced strings (`platform-capability:company-crud`).
- Evaluation/revocation: live, fail-closed (§3.5); revocation is row deletion with the §6.2 bound.
- §8.5 states the full deny list (no grants, no reads, no MCP scope, no other company operation, owner-as-such still cannot publish).
- §8.6 adds five verification requirements binding on implementing PRs.
Untouched: §2 role vocabulary, §3 evaluation, §4 grant management. Company creation stays open-to-active-users and always private (contract 3 §5.2). Until this ratifies, the capability class is empty and the command stays admin-only (shipped gate in `hierarchy.repository.ts` unchanged by this PR — implementation follows ratification as a separate increment).
**Ruling request (end of file, for Jason):** the capability is exactly the visibility command, no read surface — "agreed", or name the additional operations / curation listing it should carry.
Defines the capability class hierarchy schema §5.5 / contract 1
Amendment 1 anticipates: a platform-scoped, admin-assigned, audited
delegation of exactly the company visibility command. No read surface,
no other company operation; §2 vocabulary and §3 evaluation untouched.
Ends in a one-sentence ruling request (S2 process).
Existence disclosure stated as a bounded carve-out to hierarchy schema
§6.7/§2.8 instead of denied (§8.1); platform_capabilities fully pinned
(uuid PK, timestamptz, both user FKs ON DELETE RESTRICT mirroring
contract 1 §3.3, column-set exhaustiveness) (§8.2); assignment rides the
normal admin command surface, sole writer (§8.3); disjunct-independent
fail-closed evaluation and capability deletion added to §6.1's
revocation enumeration (§8.4); §8.6 rewritten as a capability-only
command matrix with disclosure-bound, both-polarity assignment, and
per-transport revocation witnesses.
- user FKs text not uuid (users.id is BetterAuth text; matches
hierarchy_grants shape)
- actor receipt split from canonical audit event: receipt carries
{target id, old, new}; canonical event keeps hierarchy schema §5.2's
full immutable snapshot; no audit read conferred; §8.6.3 witnesses
both sides
- kanban SOT Amendment A3 (§10) expressly extends A2's sole-disclosure
rule by exactly the capability-holder carve-out; ruling request names
it
rev-code-02
approved these changes 2026-08-29 19:13:19 +00:00
Independent review by rev-code-02 (gate 16; author fred). Head reviewed: 6550bda5e1 (verified current PR head == fetched ref == reviewed tree; base 09d24b92; three additive commits — original, rev 2, rev 3 — no rewrite). Detached terra verdicts were context only; every check below is mine.
Surface: exactly two files, both under docs/requirements/ (rbac-grant-model.md +219, native-kanban-sot.md +44). Docs-only as commissioned; no code, no scope creep.
Document review against the contract corpus I hold from reviewing #1465 (which shipped the hierarchy command family and the §5.5 admin-only fallback this amendment extends):
Amendment 1 §8 resolves hierarchy schema §5.5's forward reference ("a follow-up amendment to contract 2 will define"): the capability is exactly the §5.5 visibility command in both directions, no read command, no other company operation, and widening requires a further amendment. The fallback statement (capability class empty until ratification, command admin-only) matches the shipped gate I verified in #1465.
The three round-2 fixes are present and hold up: (1) SOT A2 is amended expressly, not by interpretation — A3 §10.1 narrows §9.1.2's sole-disclosure rule by exactly one carve-out, binding conditionally on this amendment's ratification, with §10.2 enumerating the non-changes; (2) the actor receipt is a redacted projection ({target id, old, new} only) explicitly split from the canonical §5.2 audit event, and the holder's audit-read refusal is itself a §8.6.3 witness; (3) the platform_capabilities user FKs are text with the BetterAuth-key rationale, matching the shipped hierarchy_grants shape (uuid surrogate id, text user FKs, RESTRICT on principals) I verified against packages/db/src/schema.ts in #1465.
§8.4's independently fail-closed disjuncts and the §6.1/§6.2 revocation join are precisely worded; §8.5's non-conferment list is enumerable; §8.6's six witness families (schema, capability-only command matrix including the structure-read oracle refusal on the just-mutated company, disclosure bound, assignment polarities, revocation + dual fault legs, owner re-witness) are all concretely testable against the shipped machinery.
Mechanical: Prettier 3.8.1 (the repo's lockfile pin, run from the repo's own install) passes both files at this head; control file fails as expected, so the green is a real result. CI pipeline 2994 is the PR pipeline at exactly 6550bda5 and was still running at review time — terminal green remains the merge gate's, per the commission.
One non-blocking observation (Suggestion): the existence-disclosure carve-out amends hierarchy-schema.md §6.7/§2.8 from within contract 2's text; contract 1's own file carries no backlink. This is defensible — §5.5 expressly delegates the capability definition to this amendment, and the SOT (the document claiming sole-disclosure exhaustiveness) got its own express amendment — but a one-line backlink in hierarchy-schema.md §6.7/§2.8 would help a future reader of contract 1 alone. Fine for a later docs pass; nothing here blocks.
Verdict: APPROVED at 6550bda5e1. An amend or rebase voids this approval.
Independent review by rev-code-02 (gate 16; author fred). Head reviewed: 6550bda5e1d95d823e3cf3d3e2265ca2d865c09c (verified current PR head == fetched ref == reviewed tree; base 09d24b92; three additive commits — original, rev 2, rev 3 — no rewrite). Detached terra verdicts were context only; every check below is mine.
Surface: exactly two files, both under docs/requirements/ (rbac-grant-model.md +219, native-kanban-sot.md +44). Docs-only as commissioned; no code, no scope creep.
Document review against the contract corpus I hold from reviewing #1465 (which shipped the hierarchy command family and the §5.5 admin-only fallback this amendment extends):
- Amendment 1 §8 resolves hierarchy schema §5.5's forward reference ("a follow-up amendment to contract 2 will define"): the capability is exactly the §5.5 visibility command in both directions, no read command, no other company operation, and widening requires a further amendment. The fallback statement (capability class empty until ratification, command admin-only) matches the shipped gate I verified in #1465.
- The three round-2 fixes are present and hold up: (1) SOT A2 is amended expressly, not by interpretation — A3 §10.1 narrows §9.1.2's sole-disclosure rule by exactly one carve-out, binding conditionally on this amendment's ratification, with §10.2 enumerating the non-changes; (2) the actor receipt is a redacted projection ({target id, old, new} only) explicitly split from the canonical §5.2 audit event, and the holder's audit-read refusal is itself a §8.6.3 witness; (3) the platform_capabilities user FKs are text with the BetterAuth-key rationale, matching the shipped hierarchy_grants shape (uuid surrogate id, text user FKs, RESTRICT on principals) I verified against packages/db/src/schema.ts in #1465.
- §8.4's independently fail-closed disjuncts and the §6.1/§6.2 revocation join are precisely worded; §8.5's non-conferment list is enumerable; §8.6's six witness families (schema, capability-only command matrix including the structure-read oracle refusal on the just-mutated company, disclosure bound, assignment polarities, revocation + dual fault legs, owner re-witness) are all concretely testable against the shipped machinery.
Mechanical: Prettier 3.8.1 (the repo's lockfile pin, run from the repo's own install) passes both files at this head; control file fails as expected, so the green is a real result. CI pipeline 2994 is the PR pipeline at exactly 6550bda5 and was still running at review time — terminal green remains the merge gate's, per the commission.
One non-blocking observation (Suggestion): the existence-disclosure carve-out amends hierarchy-schema.md §6.7/§2.8 from within contract 2's text; contract 1's own file carries no backlink. This is defensible — §5.5 expressly delegates the capability definition to this amendment, and the SOT (the document claiming sole-disclosure exhaustiveness) got its own express amendment — but a one-line backlink in hierarchy-schema.md §6.7/§2.8 would help a future reader of contract 1 alone. Fine for a later docs pass; nothing here blocks.
Verdict: APPROVED at 6550bda5e1d95d823e3cf3d3e2265ca2d865c09c. An amend or rebase voids this approval.
fred
merged commit 635cb1f666 into next2026-08-29 19:34:49 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contract 2 Amendment 1: defines the company-CRUD capability that hierarchy schema §5.5 / contract 1 Amendment 1 (Ruling 4b) anticipate. S2 process: reviewed document, ends in a one-sentence ruling request to Jason.
Definition (new §8): a platform-scoped, admin-assigned, audited delegation of exactly the hierarchy schema §5.5 company visibility command.
platform_capabilitiestable (user subjects only, CHECK-constrained tocompany_crud, UNIQUE per user); not a hierarchy grant, never enters §3 chain evaluation.platform-capability:company-crud).Untouched: §2 role vocabulary, §3 evaluation, §4 grant management. Company creation stays open-to-active-users and always private (contract 3 §5.2). Until this ratifies, the capability class is empty and the command stays admin-only (shipped gate in
hierarchy.repository.tsunchanged by this PR — implementation follows ratification as a separate increment).Ruling request (end of file, for Jason): the capability is exactly the visibility command, no read surface — "agreed", or name the additional operations / curation listing it should carry.
- user FKs text not uuid (users.id is BetterAuth text; matches hierarchy_grants shape) - actor receipt split from canonical audit event: receipt carries {target id, old, new}; canonical event keeps hierarchy schema §5.2's full immutable snapshot; no audit read conferred; §8.6.3 witnesses both sides - kanban SOT Amendment A3 (§10) expressly extends A2's sole-disclosure rule by exactly the capability-holder carve-out; ruling request names itIndependent review by rev-code-02 (gate 16; author fred). Head reviewed:
6550bda5e1(verified current PR head == fetched ref == reviewed tree; base 09d24b92; three additive commits — original, rev 2, rev 3 — no rewrite). Detached terra verdicts were context only; every check below is mine.Surface: exactly two files, both under docs/requirements/ (rbac-grant-model.md +219, native-kanban-sot.md +44). Docs-only as commissioned; no code, no scope creep.
Document review against the contract corpus I hold from reviewing #1465 (which shipped the hierarchy command family and the §5.5 admin-only fallback this amendment extends):
Mechanical: Prettier 3.8.1 (the repo's lockfile pin, run from the repo's own install) passes both files at this head; control file fails as expected, so the green is a real result. CI pipeline 2994 is the PR pipeline at exactly
6550bda5and was still running at review time — terminal green remains the merge gate's, per the commission.One non-blocking observation (Suggestion): the existence-disclosure carve-out amends hierarchy-schema.md §6.7/§2.8 from within contract 2's text; contract 1's own file carries no backlink. This is defensible — §5.5 expressly delegates the capability definition to this amendment, and the SOT (the document claiming sole-disclosure exhaustiveness) got its own express amendment — but a one-line backlink in hierarchy-schema.md §6.7/§2.8 would help a future reader of contract 1 alone. Fine for a later docs pass; nothing here blocks.
Verdict: APPROVED at
6550bda5e1. An amend or rebase voids this approval.