# Meet slice 6 — the record

Branch `slice/6-deploy`, `9225ec2..HEAD` (this commit; started on main
`9225ec2`, tag `v0.1.0`). Spec: `docs/superpowers/specs/2026-09-07-meet-design.md`,
revision 9 (§15.18 carries this slice's dispositions). Plan:
`docs/superpowers/plans/2026-09-14-meet-slice-6-deploy.md`.

Slice 6 is the programme's closing slice (spec §12 item 6) and is
documentation only: `README.md`, `PRODUCT.md`, a Deploying section in
`AGENTS.md`, the *Consumed suite rulings* commit (`fa875c7`, the hash
suite Appendix A.6 points at) and the spec amendments that commit and
the review made. No file under `internal/`, `cmd/`, `native/`,
`callscore/` or `protocol/` changed. The ledger is
`.superpowers/sdd/2026-09-14-meet-slice-6-deploy/` (gitignored; this
file is its substance).

---

## 1. Rulings and decisions

- **The slice was re-scoped against main as it is on 2026-09-14, not
  as the programme imagined it on 2026-09-09.** Between slice 5
  (`a283c53`, 2026-09-11) and this slice, other sessions landed Home
  sign-in (§7.1.1), the shared Estilo day theme and brand, the
  invitation `Share` route (the 2026-09-12 amendment), and the native
  Mac, iPhone and iPad apps. The plan's "What slice 6 was, and what it
  is now" table is the disposition of each programme item; §12 item 6
  and §15.18 restate it in the spec.
- **The acknowledgements page is not built here.** `oficina/meet`
  discussion 10, branch `feat-open-source-credits` (`117b6e4`,
  `bbc126e`), carries a shared Estilo credits page with a runtime
  dependency inventory and its freshness gate, Fable-approved and
  verified live on the overnight canary. Building a second one would
  be the duplication the programme forbids.
- **The Estilo theme pin.** The programme's condition was a tagged
  release; `git ls-remote --tags` on `oficina/estilo` is empty on
  2026-09-14. The theme is nevertheless adopted on main at an indirect
  pseudo-version (`go.mod`), brought in by the Home integration.
  Recorded as: condition unmet, adoption done by another route,
  nothing changed here.
- **No deploy from this slice.** The change is documentation,
  checkable from this diff. As observed on 2026-09-14 from `carlos
  channels` and `oficina/meet` discussions 11 and 14, edge
  (`calls.oficina.works`) was being promoted by hand by Paul (`651cff2`
  on 2026-09-12), with discussion 14's web UI work queued behind a
  live check — state as of that observation, not asserted as current
  here. A redeploy would drop live calls for nothing; a queued
  promotion is never announced as live (programme §5). The domain was
  attached before this slice.
- **Copy review is waived** for this round by Paul's steering on
  `oficina/suite` discussion 5. README and PRODUCT.md prose is
  catalogued here (§3) rather than reviewed.
- **Writers did not commit.** Three writers worked concurrently in one
  worktree on disjoint files; the controller committed each set. The
  index is the shared resource, not the files.
- **Every behavioural claim is verified against the code on the
  branch and cites its source.** The whole-branch review's finding was
  that the writers verified the documents against the code but not the
  code's documents against the documents: four spec sentences on main
  asserted things about "the README" that the README, once it existed,
  did not say (§0.1/§5.6's encryption sentence, §5.5's TCP-443 cause
  and "first paragraph", §3.2's residue). All four now hold, and the
  fix wave swept every spec sentence naming README, AGENTS.md or
  PRODUCT.md (twelve remaining, all true).
- **The two meanings of "floor".** §5.5's floor is "no relay"; §9's is
  the scriptless floor. §12 item 6 now says which goes where (the
  scriptless sentence in the README's first paragraph, the relay
  paragraph carrying §5.5's sentence second); §15.18 notes the two
  senses.
- **Platform facts stated from this project's own deploys**, not from
  the platform source: `carlos canary` composed a host the console
  refused (platform discussion 124, open); the recipe used is
  `carlos instances create --host <name>-meet.bds.oncarlos.com
  --channel canary/<name> --environment <name>` then `carlos deploy
  --channel …`, with the environment bundle mandatory because a canary
  without one serves `CALLS_ORIGIN` for the main host and refuses
  sign-in while GETs look healthy. The release command is `carlos
  deploy --app meet --account oficina --channel edge --version <sha>
  --target linux-arm64 releases/meet-linux-arm64` after `make release
  VERSION=<sha>`; the deploy wait can time out before the hand-over
  while the instance serves the new version a minute later.
- **Ruling 16** stays cited as on the doctrine's
  `worktree-worktree-token-at-rest` branch, not doctrine main (whose
  rulings run 1 to 15 at `1ac4323`, revision 8, confirmed current by
  `ls-remote` on 2026-09-14), as amended by the 2026-09-12 sharing
  update for invitation tokens; agent credentials remain hash-only and
  shown once.

---

## 2. Per-task review dispositions

Three writing tasks (Sonnet) in parallel, then one whole-branch review
(Opus) and one fix wave, then Codex rounds.

- **Task 1, README and AGENTS.md** (`93f1c2e`): 106 lines, the two
  paragraphs first. Flagged and acted on: spec §11 still listed a
  native client as not built (`aa9b227`). Flagged and initially left,
  then closed by the review: §5.5's "first paragraph" cross-reference;
  `CALLS_SMTP_PASS` as a secret.
- **Task 2, PRODUCT.md** (`e684b97`): impeccable product schema 1 in
  `oficina/docs`' shape with the unattended-writing disclaimer; "What
  is deliberately not here" carries the scriptless exception spec §9
  asked for.
- **Task 3, the consumed-rulings commit** (`fa875c7`): §0.2's 4/12 row
  consumes the home's assertions through §7.1.1 with the allowlist as
  membership authority; a ruling-16 row as amended; §12 item 6
  annotated; §15.18 added. Revision line left at 9, following what
  §15.13 to §15.17 did.
- **Whole-branch review** (`e684b97`): verdict **merge with named
  fixes**, W6-1 to W6-15, all applied in `bf3b86b` and `c22cae7`
  (reflow), plus the handoff's spec sweep, the two-floors
  disambiguation, §15.11's stale "until slice 3, or until a drain
  exists" (no drain exists; every deploy drops live calls) and
  `token_sealed` added to §2.1's `meeting_links` columns. Roughly
  sixty behavioural claims were traced to file and line and found
  correct; the fifteen findings were the remainder.

**Codex round 1** (independent, static, scope `9225ec2..c22cae7`):
verdict **request changes** — thirteen findings, S6-1 through S6-13.
All applied in one commit (`.superpowers/sdd/2026-09-14-meet-slice-6-deploy/fix-wave-report.md`,
round-1 section):

- **S6-1 — P2, deployment settings undocumented. Fixed:** README's Deploying section enumerates every required setting and which refuse startup outside `-env development`.
- **S6-2 — P2, the deploy-wait guarantee had an unstated prerequisite. Fixed:** README and AGENTS.md now state the `carlos apps build-probe` prerequisite and the `X-Carlos-Version` fallback it stands in for.
- **S6-3 — P2, the scriptless exception was narrower than shipped. Fixed, then completed in Codex round 2 (S6-16):** README, PRODUCT.md and spec §9 name the chat panel and the live admission controls as script-gated too, alongside browser media participation; AGENTS.md's two matching lines, left behind in round 1, were widened the same way, so §9's "the binding file and the code agree" holds again; §15.18 notes both.
- **S6-4 — P2, the cgo claims didn't match the Makefile. Fixed, then corrected again in Codex round 2 (S6-14):** README and PRODUCT.md say `CGO_ENABLED=0 make ci` and name `make race` and `make native-test`'s `callscore` sub-step as the two `CGO_ENABLED=1` cases that never ship; the native Mac and iPhone/iPad apps are named separately as the one place real cgo does ship (`MeetBridge`, linked by `MeetKit`), while server releases stay cgo-free.
- **S6-5 — P2, the SMTP fallback description was backwards. Fixed:** README now says the platform supplies `CARLOS_SMTP_FROM` too, which `CALLS_SMTP_FROM` optionally overrides.
- **S6-6 — P2, suite restatements remained under §0.2. Fixed, then completed in Codex round 2 (S6-15):** rows 3, 6, 9 and 15 cite section and ruling number only; the discussion-4 paragraph does too; the §5.2 paragraph, shortened but not emptied in round 1, is now the bare citation "Doctrine §5.2 is also relied on, for §2."; PRODUCT.md's actor sentence likewise; ruling 16's off-main provenance kept as before.
- **S6-7 — P2, PRODUCT.md cited a section that denies native clients shipped. Fixed:** spec §8.4 gained a 2026-09-14 amendment recording the shipped milestone (`v0.1.0` at `9225ec2`) and the browser-approval handoff (`86ed9f3`); PRODUCT.md's two native-client citations now point at that amendment.
- **S6-8 — P2, the shipped same-network sentence was missing from the README. Fixed:** the relay paragraph now quotes `join.html`'s floor sentence verbatim.
- **S6-9 — P2, the route inventory undercounted confirmation pairs. Fixed:** PRODUCT.md now says "five destructive confirmation pairs"; spec §9 now says "every confirm page (five)".
- **S6-10 — P3, Share's legacy behavior was omitted. Fixed:** README now distinguishes a legacy meeting's first Share (mints a new recoverable invitation alongside the old one) from every retrieval after.
- **S6-11 — P3, "60 requests a minute" obscured the permitted burst. Fixed:** README and PRODUCT.md now say "one request a second sustained, with a burst of 60".
- **S6-12 — P2, the canary creation command relied on undocumented app/account defaults. Fixed:** README's `instances create` now carries `--app meet --account oficina` and states the named environment bundle must already exist, created separately.
- **S6-13 — P3, disposition coverage and external-state attribution were incomplete. Fixed, then completed in Codex round 2 (S6-17):** README and PRODUCT.md link to spec §15.18 as the disposition of record; the platform-124, no-Estilo-tag and credits-branch-canary claims are attributed to dated records. Round 1 left the production-promotion state itself (edge's served commit, the queued work) asserted as current fact in §15.18 and this record's own §3; both now attribute it to what `carlos channels` and `oficina/meet` discussions 11 and 14 showed on 2026-09-14, keeping "this slice changes documentation only" as the one claim checkable from the repository.

**Codex round 2** (independent, static, scope `2a6eee4`): verdict
**request changes** — four findings, S6-14 through S6-17, against
round 1's own fixes; the other twelve confirmed fixed as claimed
(table in the round's own report). All four applied in one commit
(`.superpowers/sdd/2026-09-14-meet-slice-6-deploy/fix-wave-report.md`,
round-2 section):

- **S6-14 — P2, PRODUCT.md still claimed the native cgo bridge never ships. Fixed:** "three things run under `CGO_ENABLED=1`, none of them shipped" is now two — `make race` and `make native-test`'s `callscore` sub-step, both test-only — with the native Mac and iPhone/iPad apps named separately as the one place real cgo does ship (`MeetBridge`, a `native/apple/Package.swift` binary target `MeetKit` links, built by `native/scripts/build-mac.sh`), while server releases stay `CGO_ENABLED=0`. This record's own S6-4 line is corrected to match.
- **S6-15 — P2, the guest-grant sentence was shortened, not removed. Fixed:** "Doctrine §5.2 is also relied on, for §2: a guest grant is stored, not asked for" drops its second clause — still a paraphrase of doctrine §5.2's grant authority — leaving the bare citation "Doctrine §5.2 is also relied on, for §2."
- **S6-16 — P2, the widened scriptless exception left `AGENTS.md` behind. Fixed:** `AGENTS.md`'s two scriptless lines (the "Screens work with JavaScript disabled" rule and the UX-conventions sentence) now name the chat panel and admission controls alongside browser media participation, matching §9, README and PRODUCT.md; §9's own "the binding file and the code agree" is corrected to say when each half landed; §15.18 records the correction.
- **S6-17 — P3, production state was asserted as current rather than attributed. Fixed:** §15.18's production-promotion bullet and this record's own §1 and §3 now attribute edge's served commit and the queued web UI work to what `carlos channels` and `oficina/meet` discussions 11 and 14 showed on 2026-09-14, rather than presenting it as established from this repository; "this slice changes documentation only" stays stated as fact, since the diff itself proves it.

**Codex round 3** (independent, static, scope `cd02a59`): verdict
**accept** — S6-14 to S6-17 closed, no new finding, "fit to merge as
documentation of the code on this branch". Three rounds in all: 13, 4,
0 findings.

---

## 3. Carried items, and where they go

- **The acknowledgements page.** Discussion 10's branch
  `feat-open-source-credits`, not yet on main. **Destination: that
  branch's owner**; when it merges, the README's "Where things are
  written down" section should gain the credits page's path (one
  line).
- **The Estilo theme tag.** No tagged release exists; the pseudo-version
  pin stays until one does. **Destination: oficina/estilo.**
- **The production promotion of main's head.** As observed on
  2026-09-14 from `carlos channels` and `oficina/meet` discussions 11
  and 14, edge was serving `651cff2` with discussion 14's web UI work
  queued behind it — state as of that observation, not asserted as
  current here. Main is at `9225ec2` plus this slice, checkable from
  this repository: `9225ec2` changed native code only, and this slice
  changes documents only. **Destination: Paul**, who promotes by hand.
- **Unauthenticated flood control on `/api/v1`** (from slice 5).
  **Destination: carlos/platform**, unchanged.
- **Platform discussion 124** (`carlos canary` and the one-label host).
  Open. The README carries the recipe that works. **Destination:
  carlos/platform.**
- **Spec §9's "four confirm pages" is five** (remove, takeover,
  replace-link, end, revoke-agent). **Resolved in Codex round 1
  (S6-9):** §9 now says "every confirm page (five)" and PRODUCT.md
  says "five destructive confirmation pairs".
- **Copy catalogue** (copy review waived): the README's and
  PRODUCT.md's prose are the new user-facing text this slice adds;
  neither is an app string. Nothing in `internal/calls/templates`
  changed.
- **The ledger's process note.** A writer's flag should become a task,
  not a paragraph: two of the three task reports flagged the right
  problems (W6-3, W6-6) in their "not corrected" sections and the
  controller took them as recorded rather than as work.

---

## 4. Deploying this slice

Nothing to deploy. No binary, migration, template, client or
configuration changed. When main is next promoted, the README's
Deploying section is the recipe, and the `carlos deploy` wait note in
§1 applies.

---

## 5. The gates, and how to run them

| Gate | Command | This slice |
|---|---|---|
| CI | `CGO_ENABLED=0 make ci` | Green on every commit of the branch; remote CI passed on `e684b97` and `c22cae7`. Markdown cannot fail it; it is run so the branch's head is known green. |
| Race | `make race` | Not run: no change under `internal/calls/hub` or the stream. |
| Browser | `make browser` (sandbox off) | Not run: no page, template or client file changed. The last run on a shipping head is slice 5's, 31 of 31 on `4f896c2`. |
| Native | `make native-test` | Not run: nothing under `native/`, `callscore/` or `protocol/` changed. |
