oficina / meet Public

spec: codex review brief for Meet revision 1

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Paul Campbell pushed by paul@keymail.dev 38362222d2d0a39a87039677bfa9b0f55308311f parent 75fed57
1 file changed, +86 −0
  • docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEET.md +86 −0
diff --git a/docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEET.md b/docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEET.md
new file mode 100644
index 0000000..eac65b8
--- /dev/null
+++ b/docs/superpowers/specs/CODEX-REVIEW-BRIEF-MEET.md
@@ -0,0 +1,86 @@
+# Review brief: Meet design, revision 1
+
+You are GPT-6 reviewing an app design spec independently of its author.
+Your output is a findings report, not an edit. Do not modify any file.
+
+## What to read
+
+1. The spec under review:
+ `docs/superpowers/specs/2026-09-07-meet-design.md`.
+2. The rulings it consumes, which are fixed. Report a mechanism that
+ fails one; do not re-argue one.
+ - The suite doctrine at revision 8:
+ `/home/paulca/amadan.net/oficina/suite/docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md`,
+ rulings 1, 3, 5, 6, 9, 15 and §8 (egress). Ruling 16 (a link token
+ stored hashed) is on branch `worktree-worktree-token-at-rest` of
+ that repo; `git -C /home/paulca/amadan.net/oficina/suite show
+ origin/worktree-worktree-token-at-rest:docs/superpowers/specs/2026-09-05-suite-sharing-doctrine.md`.
+ - `oficina/suite` discussion 3 (every participant signs in; guest
+ grant at sign-in; Paul, 2026-09-06) and discussion 4 (agents as
+ their own principal). `amadan discuss show oficina/suite 3`.
+ - The CARLOS media roadmap:
+ `/home/paulca/amadan.net/carlos/platform/docs/superpowers/specs/2026-09-07-media-platform-roadmap-design.md`
+ on main, and the stage 4a relay spec, §2 in particular, on branch
+ `relay-stun-turn-spec`:
+ `git -C /home/paulca/amadan.net/carlos/platform show relay-stun-turn-spec:docs/superpowers/specs/2026-09-07-relay-stun-turn-design.md`.
+ - `carlos/platform` discussion 113 (no upgrade over a tunnel-backed
+ host; SSE plus POST). `amadan discuss show carlos/platform 113`.
+3. The code the spec claims to reuse. Check every claim:
+ - Docs sign-in: `/home/paulca/amadan.net/oficina/docs/internal/docs/auth.go`.
+ - Docs live-sync transport and hibernation:
+ `/home/paulca/amadan.net/oficina/docs/internal/docs/stream.go` and
+ `/home/paulca/amadan.net/oficina/docs/docs/superpowers/specs/2026-09-01-live-sync-design.md` §3, §6, §8.
+ - Sheets fan-out hub and link handler:
+ `/home/paulca/amadan.net/oficina/sheets-core/internal/sheets/live/hub.go`,
+ `/home/paulca/amadan.net/oficina/sheets-core/internal/sheets/handlers_link.go`.
+ - Calendar sealing and the feed route mounted outside the session:
+ `/home/paulca/amadan.net/oficina/calendar/.claude/worktrees/reminder-wake/internal/calendar/seal/`,
+ `/home/paulca/amadan.net/oficina/calendar/.claude/worktrees/reminder-wake/internal/calendar/routes.go`.
+ - Slides drive surface, which §8 adopts:
+ `/home/paulca/amadan.net/oficina/slides/.claude/worktrees/slice-1/docs/superpowers/specs/2026-09-07-slides-design.md` §6, §7.
+ - The scaffold in this repo: `AGENTS.md`, `internal/meet/`,
+ `internal/meettest/`, `go.mod` (rastrillo v0.26.0).
+4. WebRTC facts the spec relies on: host candidates only without STUN;
+ ICE restart via `setConfiguration` plus `restartIce`; TURN REST
+ credential shape; `getDisplayMedia` renegotiation.
+
+## What matters most
+
+- **§3.2, the one departure from Docs' `auth.go`.** The allowlist gates
+ membership, not whether a magic link is sent, so an outsider can sign
+ in at all. What does that open: enumeration, mail volume, a
+ non-member with a session and nothing to do? Is the return-path rule
+ tight enough? Does a grant minted at sign-in survive the doctrine's
+ "authorization is never cached" once the roster comes from the home?
+- **§4.3, the message table.** For each type, who may send it, who
+ receives it, and what the server reads. Find a message a waiting
+ guest can get to a member other than `knock`, a way to exceed the cap,
+ a way to make the server relay to a peer in another room, or a way to
+ spoof `from`.
+- **§5, media.** Is the ICE list built correctly from the relay
+ contract's §2? Does the three-hour mint and the two-and-a-half-hour
+ re-mint hold against a four-hour hard deadline checked on allocate
+ and refresh? Is the floor in §5.5 stated honestly? Does §0.1's
+ falsifiable claim survive §4.3 (the server relays SDP, which names
+ codecs and candidate addresses) and the logs?
+- **§2, `member` derived per request.** Is that the doctrine's ruling 3
+ or a cache in disguise? What happens to a guest grant when its person
+ becomes a member, or a member is removed from the allowlist mid-call?
+- **§9, the scriptless floor.** The suite's rule is that screens work
+ with scripts off. The spec draws the line at the holding screen and
+ the room. Is that the right line, and is the scriptless holding page
+ described well enough to build?
+- **Claims about other repos.** Every path, section number, ruling
+ number, discussion number and "already does X" claim: check it.
+ Report each one that is wrong.
+- **Slices in §12.** Is each slice bounded, testable as described in
+ §13, and free of a dependency on a later slice?
+
+## How to report
+
+Write the report to standard output only. Number findings R1-1 onward.
+For each: severity (P1 breaks a trust guarantee or a consumed ruling;
+P2 a contract or claim defect to fix before the plan; P3 advisory), the
+section, the problem, the evidence with citations, a proposed
+correction. End with a verdict: accept, accept with corrections, or
+request changes. Do not soften, do not pad, do not restate the spec.