Merge branch 'worktree-revision-5' into main
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)."* |