| 1 | # Review brief — the Oficina suite sharing doctrine, revision 3 |
| 2 | |
| 3 | You are reviewing this document for the second time. Be adversarial. Your |
| 4 | job is to find what is wrong, not to confirm that your last review was |
| 5 | acted on. |
| 6 | |
| 7 | ## What to review |
| 8 | |
| 9 | `docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md` in this |
| 10 | worktree, at revision 3. Read all of it. |
| 11 | |
| 12 | ## History |
| 13 | |
| 14 | - **Revision 1**, drafted by Fable 5.1 from a brainstorm with Paul, the |
| 15 | repository owner. |
| 16 | - **Revision 2**, revision 1 plus a review pass by Claude Opus 5: six |
| 17 | defects, corrected in the text. |
| 18 | - **Your own review** of revision 2 returned *request changes* with sixteen |
| 19 | findings. It is `CODEX-FINDINGS.md` in this directory, unchanged. |
| 20 | - **Revision 3** claims to answer all sixteen, and adds a product |
| 21 | requirement Paul gave afterwards. `git diff 0c4f098..HEAD` is the whole |
| 22 | change; `git log` has the reasoning per commit. |
| 23 | |
| 24 | ## What matters most |
| 25 | |
| 26 | **1. Are your sixteen findings actually answered, or only acknowledged?** |
| 27 | Go through them one at a time. A finding is answered when the document |
| 28 | would now survive the failure sequence you described, not when it cites |
| 29 | your finding number beside a paragraph. Say plainly which are closed, |
| 30 | which are half-closed, and which are worse than before. Four became |
| 31 | rulings (12, 13, 14 from findings 1, 2 and 6; 15 is new) — check the |
| 32 | ruling text does the work its finding asked for, and that its **rejected |
| 33 | alternative** column is honest. |
| 34 | |
| 35 | **2. The new material has had no review at all.** Look hardest at: |
| 36 | |
| 37 | - **Ruling 12 and §5.1**, the membership record. It asserts three defects |
| 38 | in the old derivation, two of them factual claims about the home spec |
| 39 | (the directory row has no owner role; it is scoped per app, not per |
| 40 | team). Verify both against the home spec. Then ask what the new table |
| 41 | breaks: A.1 amends home §7, home §6 and home §0, and the roster is now |
| 42 | a thing the home holds that it did not before. |
| 43 | - **Ruling 15 and §4.2**, the sharing ladder. This is the one row of §1 |
| 44 | that is a proposal, not Paul's ruling. Four product states: private, |
| 45 | granted, team, and "anyone with the link can view or edit". The claim is |
| 46 | that a link is a capability beside the ladder, never a rung on it, so |
| 47 | custody keys on the rung. Test that against §0, against the change feed, |
| 48 | against S2 and S3, and against §7's write paths. Does a link-shared item |
| 49 | behave coherently everywhere? Is "link-shared and team-shared" handled? |
| 50 | What about a link created *after* ingest, or revoked after ingest? |
| 51 | - **§7's provenance envelope and §7.3's link-holder writes**, both new. |
| 52 | - **§7.1's receipt/commit split**, which answers your finding 4. |
| 53 | - **§5.3's failed-refetch, rewind and paging rules**, which answer your |
| 54 | findings 5, 10 and 12. Check the availability trade in the stale case is |
| 55 | actually stated coherently and that `UNKNOWN` there does not collide |
| 56 | with another meaning of `UNKNOWN`. |
| 57 | |
| 58 | **3. The gates, §11**, all nine rewritten. §11's own first line says a gate |
| 59 | that cannot be written as stated is a spec bug. Can each now be written |
| 60 | and run? Gate 6b is new. |
| 61 | |
| 62 | **4. Verify citations rather than trusting them.** The sibling repos are on |
| 63 | disk read-only at `/home/paulca/amadan.net/oficina/{home,docs,memoria, |
| 64 | sheets-core,calendar}`. Your last review found the home checkout on a |
| 65 | stale branch and used `home/.claude/worktrees/trunk` instead; do that |
| 66 | again. Revision 3 added many new claims about sibling specs — every one is |
| 67 | a place a mistake could hide. |
| 68 | |
| 69 | ## What to produce |
| 70 | |
| 71 | Write `CODEX-FINDINGS-R3.md` in this worktree. Structure it as: |
| 72 | |
| 73 | 1. **A table of your sixteen original findings**, each marked closed, |
| 74 | partial or open, with one line saying why. |
| 75 | 2. **New findings** against revision 3's new material, ordered by |
| 76 | severity, each with: what is wrong, why, your confidence, and the |
| 77 | smallest correction. |
| 78 | 3. **A verdict**: approve, or request changes. |
| 79 | 4. **The gate-by-gate table**, refreshed. |
| 80 | |
| 81 | Do not edit the doctrine. Findings only. |
| 82 | |