Revision 5, because revision 4's text moved under its own citation
The oficina/home activity-pull session was given bf0eeb8 for "revision 4" while this repository's app amendments carried 210312f for the same revision, could confirm neither against its clone, and recorded the discrepancy rather than quietly choosing the newer number. It was right to. Gate 9 of this document says the revision is bumped by any normative change, wherever it lives — and two commits after revision 4 changed rules while leaving the number alone. 574cc84 corrected A.1's ruling number and recorded memoria's citation baseline. bf0eeb8 added §4.3's call-7 carve-out, scoped §5.3's epoch exception to the call-8 path, rewrote §6's call-7 row and added a leak-list item. §4.3 and §5.3 are normative by any reading, so the number should have moved twice and moved neither time. This is the same defect as the one open at memoria discussion 1 — a citation that does not resolve to the text it names — committed by the document that diagnoses it, one section after the gate that forbids it. The peer session noted it had no standing to complain about memoria's while its own citation was in the same state. Neither did this. So: revision 5 is this commit. The app amendments on oficina/docs, oficina/sheets and oficina/home cite revision 4 at 210312f, which was true when each was written and is now exactly one revision behind — inside gate 9's one-revision grace, which exists as a compatibility allowance and not as evidence a consumer meets current requirements. They stand as they are and go stale on the next normative change. A.1's "complete ruling 18's pending change" is retired too. It landed at 2b68301 with the other six places that amendment touched, and the home spec retired the future tense rather than ticking off a list — a to-do list in a document whose edits have landed is a trap for the next reader. Also caught by the peer session, in its own spec rather than in mine.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 file changed,
+31
−2
docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md+31 −2
diff --git a/docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md b/docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md| index 57b9d81..440ad3f 100644 |
| --- a/docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md |
| +++ b/docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md |
| @@ -3,7 +3,28 @@ |
| How the apps of the suite share identity, membership and content with |
| each other, and where the line is that nothing crosses. |
| -**Status:** design, **revision 4**, 2026-09-05. Drafted by the suite |
| +**Status:** design, **revision 5**, 2026-09-05. |
| + |
| +**Why 5 and not 4, which is this document breaking its own gate 9.** Two |
| +commits after revision 4 changed rules while leaving the number alone: |
| +`574cc84` corrected A.1's ruling number and recorded memoria's citation |
| +baseline, and `bf0eeb8` added §4.3's call-7 carve-out, scoped §5.3's epoch |
| +exception to the call-8 path, rewrote §6's call-7 row and added a leak-list |
| +item. Gate 9 says the revision is bumped by **any normative change, wherever |
| +it lives** — §4.3 and §5.3 are exactly that, and revision 4 was cited |
| +while its own text moved underneath the citation. Caught by the `oficina/home` |
| +activity-pull session, which was handed one commit for revision 4 while |
| +this repository's own app amendments carried another, could confirm |
| +neither, and wrote the discrepancy down rather than picking the newer |
| +number quietly. |
| + |
| +**What to cite.** Revision 5 is this commit. The app amendments on |
| +`oficina/docs`, `oficina/sheets` and `oficina/home` cite *revision 4, |
| +`210312f`*, which was true when each was written and is now exactly one |
| +revision behind — which gate 9's one-revision grace allows, deliberately, as |
| +a compatibility allowance and not as evidence they meet current |
| +requirements. They are correct as they stand and become stale on the next |
| +normative change. Drafted by the suite |
| session (Fable 5.1) from a brainstorm with Paul the same day. Every ruling |
| in §1 attributed to Paul was given in that conversation, in an earlier |
| spec named in the row, or in the sessions that produced revisions 3 and 4. |
| @@ -1215,7 +1236,15 @@ is added to §9."* |
| In §2.2 replace *"Never federates. Data does not cross an instance |
| boundary."* with *"Never crosses a team. Data does not cross a team |
| label; a team's instances across apps are one trust domain (suite ruling |
| -1)."* Complete ruling 18's pending change of *"never renders"* to *"never |
| +1)."* ~~Complete ruling 18's pending change~~ — **already landed at |
| +`2b68301`**, along with the other six places that amendment touched. A.1 |
| +said "complete" because it was written before that commit; a to-do list in a |
| +document whose edits have landed is a trap for the next reader, and the |
| +home's own spec retired the future tense rather than ticking it off. Kept |
| +here as a record of what A.1 asked for and where it went, not as work |
| +outstanding. The original wording follows. |
| + |
| +Ruling 18's change of *"never renders"* to *"never |
| stores"*. Replace *"Never holds an authorization model"* with *"Never |
| holds a per-item grant. It holds the membership roster (suite ruling 4), |
| and answers only facts about its own records (ruling 19)."* |