# `/faq` from the objections we already have **Date:** 2026-10-29 · **Owner:** CMO · **Status:** CTO-verified 2026-10-29 (FRE-329); **awaiting human approval** — not approved, not published · **Source issue:** FRE-326 **Page:** `nook.freno.me/faq` · **Page source:** `freno-dev/src/routes/nook/faq.tsx` · **Site commit read:** `c1c498e` (branch `faq/from-objections-2026-10-29`, unmerged) **Product commit read:** The-Nook `f9cbd879` — the exact revision the CTO verified against (0.13.4, build 37) Every entry below is traceable to a real question or a real report. Nothing is invented to fill a category. No testimonial is used. No price, refund term, or umbrella/cross-promotion answer appears here — those stay with FRE-204, the Chief of Staff and the sponsor. --- ## 1. What I could read, and what I could not | Source | What it is | Read on | What it yielded | |---|---|---|---| | `nook.freno.me/faq` | The live page | 2026-10-29 | Six questions already published: privacy, notch, battery, permissions, macOS 14.2, offline. | | FRE-326 description | This board issue | 2026-10-29 | Two purchase-blocking questions named verbatim: *"does it work with Cursor?"* and *"what happens when my agent is idle?"* | | NOOK issue corpus | 948 issues imported from Plane, plus the 324-issue Paperclip board | 2026-10-08 → 2026-10-28 | User-observable defect reports. These are reports, not captured asks; they prove an objection is live. | | `freno-dev/marketing/positioning.md` | Voice, approved claims, competitor ban | 2026-10-29 | The register and the "never name a competitor" rule. | | The-Nook code | `AgentRegistry.swift`, `SessionModels.swift`, `Terminal*`, `hook/setup.go`, `PluginInstaller.swift`, `LicenseService.swift`, `main.swift` | 2026-10-29 | The technical facts each answer is allowed to use. | | NOOK-121 | The original `/faq` creation (2026-10-08) | 2026-10-29 | Confirms the six live questions came from the strategy's named objections, not from a support corpus. Refund was deliberately dropped by Mike. | ### The gap that shapes this draft **Support mail is not readable from this run.** There is no mailbox on the machine; the in-app "Report a bug" form `POST`s to `freno-dev/src/routes/api/the-nook/report.ts`, which emails the developer and stores nothing queryable. `/privacy` and the repo contain no support corpus. **Reply threads are not collected.** `freno-dev/marketing/listening.md` is an empty table; FRE-201 (the listening job) has not produced a thread yet. **Directory comments do not exist yet.** FRE-207 has a submission packet, not live listings; none of the directories has a comment thread about The Nook to mine. **Consequence:** I cannot rank by observed ask frequency, because no ask corpus exists. What follows ranks by **purchase-blocking weight first**, then by **the number of named reports in our own issue corpus that belong to the cluster**. The report counts are a proxy for "this objection is live", not a count of people who asked. I have not put a percentage on anything. --- ## 2. The register — clusters, sources, frequency, and whether they block a purchase | # | Cluster | The question in the buyer's words | Verbatim source(s), with dates | Frequency evidence | Blocks a purchase? | Disposition | |---|---|---|---|---|---|---| | 1 | Privacy / what leaves the Mac | "Does The Nook read my prompts or my code?" | Live `/faq`, 2026-10-29; code findings in `main.swift:272-278`, `LicenseService.swift:254`, `docs/sidecar-frames.md` | 1 live question + 3 named code findings | **Yes — the whole decision for this audience** | **Withdraw the live answer; replacement held.** See §4. | | 2 | Agent fit / Cursor | "Does it work with Cursor — and can I approve from the notch, or only watch?" | FRE-326, 2026-10-29: *"does it work with Cursor?"*; NOOK-643 (2026-10-20), NOOK-695 (2026-10-20), NOOK-699 (2026-10-20), NOOK-707 (2026-10-21), NOOK-638 (2026-10-20) | 1 board question + 5 reports | **Yes** | **Propose E1** | | 3 | Idle / is it actually working? | "What happens when my agent is idle?" | FRE-326, 2026-10-29: *"what happens when my agent is idle?"*; NOOK-281 (2026-10-12), NOOK-415 (2026-10-15), NOOK-417 (2026-10-15), NOOK-823 (2026-10-22), NOOK-898 (2026-10-23) | 1 board question + 5 reports | **Yes** | **Propose E2** | | 4 | Install trust / permissions | "What permissions does it need — and what does it write into my agent's config?" | Live `/faq`, 2026-10-29; NOOK-733 (2026-10-21), NOOK-648 (2026-10-20), NOOK-685 (2026-10-20), NOOK-418 (2026-10-15), NOOK-568 (2026-10-17) | 1 live question + 5 reports | **Yes** | **Propose E3** | | 5 | Terminal / tmux fit | "Does it work with my terminal, including tmux?" | NOOK-302 (2026-10-13), NOOK-310 (2026-10-13), NOOK-788 (2026-10-22) | 3 reports; no captured ask | **Yes for tmux-first buyers** | **Propose E4** — report-sourced, not an ask | | 6 | Notch / display | “Do I need a Mac with a notch?” | Live `/faq`, 2026-10-29; NOOK-290 (2026-10-12), NOOK-291 (2026-10-12), NOOK-386 (2026-10-14) | 1 live question + 3 reports | Compatibility; rarely the blocker | **Rewrite E5** — the pointer-display sentence was never true | | 7 | Battery / cost | "How much battery does it cost?" | Live `/faq`, 2026-10-29; NOOK-850 (2026-10-23), NOOK-851 (2026-10-23), NOOK-877 (2026-10-23) | 1 live question + 3 reports | Curious, not a hard blocker | **Rewrite E6 without a number** | | 8 | macOS floor | "Why macOS 14.2 or later?" | Live `/faq`, 2026-10-29; NOOK-881 (2026-10-23) | 1 live question + 1 report | Compatibility; a hard no on 14.0/14.1 | **Keep current answer** | | 9 | Offline | "Does it work offline?" | Live `/faq`, 2026-10-29; NOOK-494 (2026-10-16) | 1 live question + 1 report | Compatibility; a hard no for offline-only | **Rewrite E8 for the phone exception** | | 10 | Trial / licence mechanics | "What am I actually buying — trial, Macs, updates?" | NOOK-682 (2026-10-20), NOOK-684 (2026-10-20), NOOK-60 (2026-10-08) | 2 reports; no captured ask | **Yes** | **Held** — no verbatim ask; do not invent one | | 11 | Remote agents / containers | "Can I approve an agent running on a remote box or in Docker?" | FRE-323, FRE-320, FRE-315; `marketing/positioning.md` claims remote SSH | Many reports; the claim is unverified | **Yes — the launch claim** | **Held** — no answer before the demo | | 12 | Phone / Watch | "Is there an iPhone app? Do I need one?" | NOOK-939 (2026-10-27), NOOK-294 (backlog) | 2 reports; status unverified | Curious; would be blocking if sold | **Held** — CTO status answer first | | 13 | Refund / price | "What's your refund policy? Is $10 the real price?" | FRE-204, NOOK-121 | No readable source; contractual | **Yes** | **Out of scope** — FRE-204, CoS + sponsor | ### What changed since the last register (FRE-204) - The live page already has six entries; this draft **keeps one** (macOS 14.2), **rewrites four** (permissions, battery, offline, and notch — whose pointer-display sentence the CTO found was never true), **withdraws one** (privacy), and **proposes three new ones** (E1, E2, E4). It does not re-ask the six questions as if they were new. - The privacy answer is not merely unverified — it is **false at the current build**. It must come down in the same edit, not wait for a nicer replacement. - Cursor is now a supported agent row (`AgentRegistry.swift:524`), so "does it work with Cursor?" has a factual answer today. It was an open question when the live page was written. ### CTO verdict (FRE-329, 2026-10-29) The CTO read The-Nook `f9cbd879`, the site at `c1c498e` and the live page, and checked every entry against the code. **No entry is cut.** Six change text, exactly as below; E1 and E7 ship as written. | Entry | Verdict | What changed in this revision | |---|---|---| | E1 Agent fit / Cursor | **verified** | nothing | | E2 Idle | verified, one sentence tightened | the row-eviction sentence | | E3 Permissions / config | **not verified** | three sentences: Login Items toggle, per-event entries, `~/.nook` | | E4 Terminal / tmux | **not verified** | one sentence: which terminals take a typed reply | | E5 Notch | **not verified** | one sentence: one island per enabled display, not the pointer's display | | E6 Battery | verified, one clause tightened | "never runs them in the background" | | E7 macOS 14.2 | **verified** | nothing | | E8 Offline | **not verified** | one sentence, plus a six-row network list in its gate | | §4 privacy | all three findings confirmed; withdrawal is right | `positioning.md` rule 3 comes down in the same change | The verdict adds two things to the plan, both now in §4 and §7: the false claim's **source rule** in `marketing/positioning.md` — rule 3 and its approved-claims row — must be struck in the same change as the withdrawal, or the next page restates it; and the egress inventory's scope widens to cover weather, the network panel, the speed test, the changelog, the bug report and Sparkle, plus Sentry's `sendDefaultPii` and trace sample rate. The verdict's full text and its per-sentence evidence is [FRE-329's `faq-verdict` document](/FRE/issues/FRE-329#document-faq-verdict). Nothing in it is reproduced here as a new claim; the entry text below is the verdict's own replacement wording, except E4, where I took the verdict's first option (keep the Alacritty clause) and narrowed the jump sentence, which the verdict itself notes is `open -b` for three of the seven names. --- ## 3. Proposed entries — page-ready Each entry carries the six required things: **claim, audience, channel, owner, date, and what has to be true before it ships.** The answer text is the copy to paste; the trace is the evidence a CTO can check. ### E1 · "Does it work with my agent — and can I approve from the notch, or only watch?" > **It depends on the agent, and Cursor is the useful example.** Cursor is watched, not gated: its > sessions, finished turns and errors appear in the island, but when Cursor asks for permission the > prompt stays in Cursor. That is deliberate — Cursor blocks the action when a permission hook runs > and prints nothing, so gating it would override Cursor's own prompts. Other agents do hand the > decision to The Nook, so a tool call waits and you tap Allow or Deny from the card. One limit: > `cursor-agent -p` one-shot runs send no turn end, so they appear but do not get a completion card. - **Question source:** FRE-326, 2026-10-29 (*"does it work with Cursor?"*); NOOK-643, 2026-10-20 (*"No permission hook is installed, deliberately: Cursor blocks the action when a permission hook prints nothing…"*). - **Claim:** agent gating is per-agent; Cursor is watch-only. - **Audience:** the buyer whose agent is not Claude Code. - **Channel:** `/faq`. No FAQ structured data in this pass — see §6. - **Owner:** CMO writes; CTO verified 2026-10-29. - **Date:** CTO verified 2026-10-29 ([FRE-329](/FRE/issues/FRE-329)); publish on approval, target 2026-11-05. - **Must be true:** at the shipped commit, Cursor still reads `.missing(.approvals)` with the same reason, and `.available(.sessions)`, `.available(.completion)` and `.available(.errors)` as stated (`AgentRegistry.swift:523-555`, which is where the CTO read it). The separate `/agents` page is incomplete for Cursor and the other newer rows; that is a page correction, not a gate for this self-contained answer. ### E2 · "What happens when my agent is idle?" > **Idle means the last turn is over, or the session has not produced anything yet — not that the > process is gone.** A running process is liveness, not work: a just-opened agent window can show > idle until you type. When an agent finishes a turn with a final message, the row stays green for > ten minutes, then goes gray. A stale row is different: it means The Nook's integration cannot > report for that session, and the row says so instead of pretending it is idle. Nothing is lost when > a row goes idle — the next prompt brings it back and flips it to running. The row itself leaves the > island 15 minutes after the turn (5 if the turn ended without a reply), so a long-quiet session > reappears on its next event instead of sitting there. If a session that is obviously working says > idle, that is a bug; tell us. - **Question source:** FRE-326, 2026-10-29 (*"what happens when my agent is idle?"*); NOOK-898, 2026-10-23 (*"kimi payloads fail to decode, so every Kimi session stays idle"*); NOOK-823, 2026-10-22 (*"Codex terminal: sessions become idle or disappear prematurely"*); NOOK-417, 2026-10-15 (*"Never render plain Idle for a session whose integration is dark"*). - **Claim:** idle is a statement about the last turn, not a guess at the process; stale is a separate state. - **Audience:** anyone watching a fleet and wondering whether to intervene. - **Channel:** `/faq`. - **Owner:** CMO writes; CTO verified 2026-10-29. - **Date:** CTO verified 2026-10-29 ([FRE-329](/FRE/issues/FRE-329)); publish on approval, target 2026-11-05. - **Must be true:** `SessionModels.swift:511,552,564-577` still defines `islandStatus` this way (no content → idle; complete → ready for 10 minutes → idle; `integrationStale` → stale) and `SessionState.swift:35,40` still evicts a finished turn after 15 minutes, 5 when it ended without a reply. If an open bug makes a working agent render idle at the shipped commit, the "that is a bug" sentence stays but the bug gets a named issue. ### E3 · "What permissions does it need — and what does it write into my agent's config?" > **The app itself runs unprivileged.** Fan control and charge limiting go through a small helper > that macOS requires to run as root for hardware access; the app registers it on first use and takes > you to System Settings › General › Login Items & Extensions, where you switch it on once. For each > agent it adds what that agent needs — a hook group per event it listens to, or one plugin link — > inside the agent's own config file or directory. It keeps its own files under `~/.nook` — the hook > binary and one plugin copy per agent — and adds only its own entries to that agent's config. A hook > entry you added yourself in the same file survives install and uninstall, and it only touches the > records and switches it created. Uninstall removes exactly what it wrote — and switches off what it > turned on — with no leftover links or orphaned files. - **Question source:** live `/faq`, 2026-10-29 (*"What permissions does it need?"*); NOOK-418, 2026-10-15 (a custom agent's install target is never shown to the user); NOOK-733, 2026-10-21 (a Codex hook installed but not trusted, so it never ran); NOOK-648, 2026-10-20 and NOOK-685, 2026-10-20 (uninstall leftovers); NOOK-568, 2026-10-17 (helper re-registration tore down an approved helper). - **Claim:** reversible install; the helper is the only root step; uninstall is exact. - **Audience:** the buyer who has a hand-tuned `~/.claude/settings.json` or `~/.codex/hooks.json`. - **Channel:** `/faq`. - **Owner:** CMO writes; CTO verified 2026-10-29. - **Date:** CTO verified 2026-10-29 ([FRE-329](/FRE/issues/FRE-329)); publish on approval, target 2026-11-05. - **Must be true:** `hook/setup.go`'s strip functions and `PluginInstaller.uninstall` still remove only their own records at the shipped commit (`removeIfOurs`, `stripOurGroups`/`groupIsOurs`); the helper is still registered through `SMAppService.daemon` with a Login Items toggle and no password prompt (`PrivilegedHelper.swift:62-112,204-208`); the custom-agent target is still shown and accepted before install (NOOK-418); the only host switch uninstall flips is Amp's own hook-enable flag (`PluginInstaller.swift:379-385`) — and the answer now says so. ### E4 · "Does it work with my terminal, including tmux?" > **Yes — it recognises Terminal.app, iTerm2, Warp, Ghostty, kitty, WezTerm and tmux. Four of those > take a typed reply; the rest are watched.** A session is tied to the terminal that started it. Jump > lands in the right window for Terminal.app, iTerm2, kitty and any tmux pane — in tmux, the right > pane; on Warp, WezTerm and Ghostty it brings the app forward instead. Replies type straight back > into Terminal.app, iTerm2, kitty and any tmux pane; on Warp, WezTerm and Ghostty you answer in the > app's own window, and Alacritty takes no typed reply from another app at all. - **Question source:** no captured ask. Underlying reports: NOOK-302, 2026-10-13 (*"a tmux session shows only 'tmux', and its outer terminal comes from whoever started the tmux server"*); NOOK-310, 2026-10-13 (*"jump and send address tmux panes on the default server, ignoring the session's tmux socket"*). - **Claim:** seven terminal families and tmux panes included. Remote panes are not claimed here; the remote launch story is still held. - **Audience:** anyone whose workflow is tmux-first. - **Channel:** `/faq`. - **Owner:** CMO writes; CTO verified 2026-10-29. - **Date:** CTO verified 2026-10-29 ([FRE-329](/FRE/issues/FRE-329)); publish on approval, target 2026-11-05. - **Must be true:** `TerminalAncestry.programs` still recognises those seven names; `TerminalSend.attempts` still builds a delivery channel only for tmux, herdr, kitty, iTerm2 and Terminal.app and refuses Alacritty by name; `TerminalJump` still raises the app rather than the window for Warp, WezTerm and Ghostty. This entry is **report-sourced, not ask-sourced**; if a captured ask never arrives, it is still publishable because the reports are real, but it ranks below E1–E3 until one does. ### E5 · "Do I need a Mac with a notch?" > **No. On a notched MacBook the island sits in the notch. On machines and displays without one, it > sits at the top centre of the display — the same pill with the same slots.** You get one island on > every display it is turned on for (all connected displays on first launch), each anchored to the top > of its own screen; Settings › Displays trims that list, and the pointer only decides which display's > floating controls are live. Everything inside the island — agent cards, fan control, the stats strip > — works identically either way. - **Question source:** live `/faq`, 2026-10-29; NOOK-290, 2026-10-12 and NOOK-291, 2026-10-12 (non-notch display geometry bugs), NOOK-386, 2026-10-14 (empty pill tucks away on a non-notch display). - **Claim:** a notch is optional; external displays work. - **Audience:** Mac mini / Studio / external-monitor buyers. - **Channel:** `/faq`. - **Owner:** CMO keeps the question and rewrites the answer; CTO verified 2026-10-29. - **Date:** CTO verified 2026-10-29 ([FRE-329](/FRE/issues/FRE-329)); publish on approval, target 2026-11-05. - **Must be true:** `IslandDisplayManager` still owns one island per enabled display, `DisplayStore` still snapshots every connected display on first launch (`DisplayStore.swift:52-59`), and the non-notch geometry tests still pass. Nothing tests that first-launch snapshot today — that is a test gap to file, not a gate on this answer. ### E6 · "How much battery does it cost?" > **It is a native app, not a background agent.** It watches the agents you already run and never > runs them in the background, so their draw is the number that matters. We do not have a published battery > measurement for The Nook alone; when we do, it will be a measurement, not an estimate. If it costs > more than it should on your Mac, that is a bug — tell us. - **Question source:** live `/faq`, 2026-10-29; NOOK-850, 2026-10-23 (*"the idle app does work nothing asked for (CPU wins from a live profile)"*), NOOK-851, 2026-10-23 (a 30 fps timeline ticks the fan icon at idle), NOOK-877, 2026-10-23 (compact Nook still costs too much CPU at rest). - **Claim:** native app, not a background agent; **no numeric battery claim**. - **Audience:** the buyer checking whether this is another menu-bar battery sink. - **Channel:** `/faq`. - **Owner:** CMO writes; CTO verified the no-number wording 2026-10-29. - **Date:** CTO verified the no-number wording 2026-10-29; publish on approval, target 2026-11-05. - **Must be true:** either a measurement exists and is quoted, or the no-number sentence ships. Do not restore "the heaviest thing it does is a sensor read" — the profile findings above contradict it. ### E7 · "Why macOS 14.2 or later?" > **The audio mixer listens to each app's own sound stream, and Apple only shipped that API in macOS > 14.2 (Sonoma).** The app links against it, so 14.0 and 14.1 cannot launch it. - **Question source:** live `/faq`, 2026-10-29; NOOK-881, 2026-10-23 (*"A macOS 14.0/14.1 Mac cannot launch the app at all: dyld dies on a strongly linked CATapDescription overlay symbol"*). - **Claim:** the floor is 14.2 because of the audio tap API, not a policy choice. - **Audience:** anyone on an older macOS. - **Channel:** `/faq`. - **Owner:** CMO keeps; CTO verified 2026-10-29. - **Date:** CTO verified 2026-10-29 ([FRE-329](/FRE/issues/FRE-329)); publish on approval, target 2026-11-05. - **Must be true:** `Package.swift:12` and `LSMinimumSystemVersion` still say 14.2, and `DeploymentFloorTests` still refuses an older floor. ### E8 · "Does it work offline?" > **The Mac app does.** The island, agent cards, permission cards and fan control work with no > network; the hooks talk to the app over a local socket. The network is used for update checks, > licence activation, crash reports and the optional trial email, plus a few things only when you use > them: weather (asked for through our relay, with the location you chose), the network panel's > IP-and-ISP lookup, the speed test, the changelog in Settings, and a bug report if you send one. The > phone link is the exception: when you are away from your Mac, the phone reaches it through our > relay, so that part needs a connection. - **Question source:** live `/faq`, 2026-10-29; NOOK-494, 2026-10-16 (*"iOS: the main list gives no sign the phone is offline from the Mac"*). - **Claim:** the Mac app is offline-first; the phone link is not. - **Audience:** the buyer with a disconnected or privacy-sensitive setup. - **Channel:** `/faq`. - **Owner:** CMO writes; CTO verified 2026-10-29. - **Date:** CTO verified 2026-10-29 ([FRE-329](/FRE/issues/FRE-329)); publish on approval, target 2026-11-05. - **Must be true:** the only network uses at the shipped commit are the update check, licence activation, crash reporting, the optional trial email and the phone relay, plus exactly these five user-triggered ones — `/v1/weather` on the relay (`SidecarRelayAPI.swift:182-196`), `NetworkInfoService.swift:60-88,276`, `SpeedTest.swift:36,57`, `ChangelogModel.swift:102`, `BugReportClient.swift:72-94` — and `/privacy` lists the same set. This entry shares its gate with the privacy correction below. --- ## 4. The correction that is not a new entry: privacy **Live answer, quoted from `nook.freno.me/faq` on 2026-10-29:** > "No. The hooks and plugins that connect your agents to The Nook send session metadata only — which > agent is running, which session, which event happened, which terminal it lives in. No prompt text > and no code content leaves your device. Two things do leave the device, and we'd rather say so > plainly: anonymous usage telemetry, and your email address if you choose to give it at trial start. > That's the whole list." **Why it cannot stay up:** it is contradicted by the current build. 1. **Sentry starts unconditionally with `sendDefaultPii = true`** (`Sources/NookApp/main.swift:272-278`). That is crash and error reporting with personal identifiers, not "anonymous usage telemetry". 2. **The licence/trial call sends `IOPlatformUUID` and the Mac's device name** (`LicenseService.swift:254`, `:305`), on launch, not only at trial start. 3. **With the phone link on, prompt and reply text transit `nook-relay.freno.me`, sealed end to end** (`docs/sidecar-frames.md`). The relay can route the payload but cannot read it; the live answer still says no prompt text leaves the device. `/privacy` discloses the hardware UUID, device name and Stripe, but **not** Sentry and **not** the relay. So there is no replacement sentence I can write that is both true and consistent with the privacy page today. **Proposed:** remove the privacy entry from `/faq` in the same edit that ships the other entries, rather than replace it with another sentence I cannot stand behind. The replacement is held until the Security Engineer's egress inventory and the `/privacy` update land. **The rule that produced the falsehood comes down with it.** The CTO's verdict traces the live answer to `freno-dev/marketing/positioning.md` rule 3 (“Honest privacy scoping”) and to the matching approved-claims row, which state the defensible claim as “No prompt or code content leaves the device” with the backing “envelope carries session/event/terminal metadata only”. That backing is true of the hook→app envelope and says nothing about what leaves the device, so if rule 3 stands while the FAQ answer comes down, the next page restates the claim. Rule 3 and that row are struck in the same commit as this patch (§7 step 3; the same edit also fixes the stale “macOS 14+” row in that table, which NOOK-881 retired). - **Claim:** none until the inventory exists — deliberately. - **Audience:** the buyer for whom this is the whole decision. - **Channel:** `/faq` (withdrawal), `/privacy` (replacement), `marketing/positioning.md` (the rule). - **Owner:** CoS for the withdrawal decision; Security Engineer for the egress inventory and the disclosure text; CTO for any build change; CMO for the replacement copy and the rule-3 strike. - **Date:** withdrawal decision 2026-10-31; inventory 2026-11-05; replacement copy 2026-11-09; rule-3 strike in the same commit as the page patch (§7 step 3). - **Must be true:** every egress in the inventory is either in the answer or gone from the build, and `/privacy` lists the same set. The inventory's scope is wider than the draft first drew it — it must cover `main.swift`, `LicenseService.swift`, `Info.plist`, `ChangelogRelease.swift`, `SidecarController.swift`, **plus** `SidecarRelayAPI`/`WeatherService` (`/v1/weather`), `NetworkInfoService`, `SpeedTest`, `ChangelogModel`, `BugReportClient` and Sparkle's appcast — and on the Sentry side not only that it starts but `sendDefaultPii` and the trace sample rate. Until then, do not publish a privacy answer. --- ## 5. Held — clusters with no entry yet | Cluster | Why it is held | Owner and date | |---|---|---| | Trial / licence mechanics ("trial, Macs, updates") | No captured ask. NOOK-682 and NOOK-684 are defect reports, not a buyer question. The answer is factual (14 days, 3 Macs, Sparkle updates), but the task says do not invent a question to fill the slot. | CMO to capture an ask; CTO confirms `LicenseService.swift:43`, `:262` by 2026-11-03. | | Remote agents / containers | The launch claim is unverified (FRE-315, FRE-322, FRE-323, FRE-320). No FAQ answer before the demo. | CTO evidence; CMO copy the day it exists. Revisit 2026-11-12. | | Phone / Watch | Status is unverified; the landing page and FAQ currently disagree. | CTO status answer by 2026-11-03; CMO copy after. | | Refund / price | Contractual, and explicitly out of this issue. | FRE-204, CoS + sponsor. | | Custom agents | No captured ask; the `/agents` page already says a custom agent can wire itself in. | No entry until asked. | --- ## 6. What the page edit would change **File:** `freno-dev/src/routes/nook/faq.tsx` (site `master` at `134f41e`; the branch is cut from local `c1c498e`, which removed the remote claim from the landing page, not from the FAQ). | Action | Entry | |---|---| | **Remove** | “Does The Nook read my prompts or my code?” — until the egress inventory and `/privacy` are true | | **Rewrite (correction only)** | “Do I need a Mac with a notch?” → E5 (per-display island, not the pointer's display) | | **Keep, with the exact text above** | “Why macOS 14.2 or later?” | | **Rewrite** | “What permissions does it need?” → E3 (adds the config/uninstall answer) | | **Rewrite** | “How much battery does it cost?” → E6 (no number) | | **Rewrite** | “Does it work offline?” → E8 (phone exception, six-row network list) | | **Add** | E1 (agent fit / Cursor) | | **Add** | E2 (idle) | | **Add** | E4 (terminal / tmux) | | **Edit** | The file header comment that cites `positioning.md` rule 3 → “Privacy is deliberately absent until the egress inventory and /privacy make an honest answer possible.” | | **Edit** | The `PageHead` description, which still advertises the privacy question → the new eight-entry list | Order on the page: E1, E2, E3, E4, E5, E6, E7, E8. The mailto link, the accordion behavior and the page title stay unchanged. **Not in this pass:** FAQPage JSON-LD. The page has none today; adding structured data is an SEO change, not an objection-mining change. It should be its own reviewed edit — and E1 no longer promises it. **Patch artifact:** `freno-dev/marketing/drafts/faq-page.patch`, regenerated for this revision (a proposal, not applied). The page file itself is untouched until the gates below are satisfied. --- ## 7. Publish gates and sequence | Step | Owner | Date | What settles it | |---|---|---|---| | 1. CTO verifies the claims and evidence pointers in E1–E8 | CTO | **done 2026-10-29** | [FRE-329](/FRE/issues/FRE-329), verdict in its `faq-verdict` document: E1/E7 verified as written, E2/E6 verified after one sentence each, E3/E4/E5/E8 corrected above, **no entry cut**. Applied in this revision. | | 2. Human approves this revision | Sponsor | target 2026-10-31 | The draft moves from `marketing/drafts/` to `marketing/approved/`, or the confirmation card on FRE-326 is accepted. The card names the privacy withdrawal, which is part of the same page edit. | | 2b. Withdrawal of the false privacy answer and of `positioning.md` rule 3 | Chief of Staff | target 2026-10-31 | A CoS decision, recorded on this issue. If the CoS declines, the seven non-privacy entries can still ship; the privacy answer does not stay up and does not get replaced. | | 3. Apply the page patch, strike rule 3 + its approved-claims row, commit on `freno-dev` | CMO | 2026-11-03 | The patch applies cleanly; the site's own suite passes; the diff contains only the FAQ entries, the page comment/description, and the `positioning.md` strike. One commit, so the page and the rule move together. | | 4. Merge to `freno-dev/master` (the publish) | Sponsor or Chief of Staff | 2026-11-05 | A human merge; Vercel deploys. No agent pushes to master. | | 5. Verify the live page | CMO | 2026-11-05 | `https://nook.freno.me/faq` returns 200 and shows the eight entries with no privacy answer; the text matches the approved draft, sentence for sentence. | **If the CTO had rejected an entry:** cut it from the patch and ship the rest — it did not reject any. **If the sponsor does not approve:** nothing is applied; the draft stays in `drafts/`. **If the support mailbox becomes readable:** re-sort the register by observed asks before step 3; the top three may change, and the page order should follow the asks, not this draft's proxy ranking. **If a `Must be true` line stops being true** before step 3 — a fix regresses, a line moves — the entry goes back to the CTO, not onto the page. --- ## Appendix A — verbatim source notes | Date | Source | Verbatim | |---|---|---| | 2026-10-29 | Live `/faq` | "Does The Nook read my prompts or my code?" / "Do I need a Mac with a notch?" / "How much battery does it cost?" / "What permissions does it need?" / "Why macOS 14.2 or later?" / "Does it work offline?" | | 2026-10-29 | FRE-326 description | “does it work with Cursor?” / “what happens when my agent is idle?” | | 2026-10-29 | [FRE-329](/FRE/issues/FRE-329) CTO verdict | “Four entries ship as written, two ship after a wording fix… two (E3, E4) currently say something false to a buyer.” Every correction in §3 is that document's own replacement sentence. | | 2026-10-08 | NOOK-121 | "Add /faq from real objections" — shipped the six live topics; refund dropped by Mike. | | 2026-10-20 | NOOK-643 | "agents: Cursor via hooks.json" — "No permission hook is installed, deliberately: Cursor blocks the action when a permission hook prints nothing…" | | 2026-10-21 | NOOK-707 | "agents: Cursor desktop chats bind to the shared extension-host pid and never end" | | 2026-10-23 | NOOK-898 | "hook: kimi payloads fail to decode, so every Kimi session stays idle" | | 2026-10-22 | NOOK-823 | "Codex terminal: sessions become idle or disappear prematurely" | | 2026-10-15 | NOOK-417 | "Never render plain Idle for a session whose integration is dark" | | 2026-10-15 | NOOK-415 | "Sessions whose integration predates the bridge credential freeze as Idle forever" | | 2026-10-21 | NOOK-733 | "codex: a non-interactive session never runs an installed hook (0.163.0)" | | 2026-10-20 | NOOK-648 | "opencode: uninstalling a pre-package install leaves its old nook.js link dangling" | | 2026-10-20 | NOOK-685 | "tests: InstallerTests.clineHookFiles writes through the managed TaskComplete symlink and then expects that path to survive uninstall" | | 2026-10-15 | NOOK-418 | "security: a custom agent's install target is never shown to, or approved by, the user" | | 2026-10-17 | NOOK-568 | "helper: launch-time re-registration tears down an approved helper and leaves it unregistered" | | 2026-10-13 | NOOK-302 | "terminal: a tmux session shows only 'tmux', and its outer terminal comes from whoever started the tmux server" | | 2026-10-13 | NOOK-310 | "terminal: jump and send address tmux panes on the default server, ignoring the session's tmux socket" | | 2026-10-22 | NOOK-788 | "pane: a remote reply inside a private tmux server resolves to nothing, and a pane id can be sent without its socket" | | 2026-10-12 | NOOK-290 | "Compact island: weather slot clips mid-glyph on non-notch displays (no text cap)" | | 2026-10-12 | NOOK-291 | "Compact island: non-notch pill is 36 pt wider than its slot row (padding double-counted in pillWidth)" | | 2026-10-14 | NOOK-386 | "island: hide the empty pill under the notch (or above the top edge) and keep a narrower hover trigger" | | 2026-10-23 | NOOK-850 | "Nook: the idle app does work nothing asked for (CPU wins from a live profile)" | | 2026-10-23 | NOOK-851 | "island: a 30 fps timeline ticks the fan icon even when the fan is idle" | | 2026-10-23 | NOOK-877 | "island: compact Nook still costs too much CPU at rest (round two, A/B per fix)" | | 2026-10-23 | NOOK-881 | "A macOS 14.0/14.1 Mac cannot launch the app at all: dyld dies on a strongly linked CATapDescription overlay symbol" | | 2026-10-16 | NOOK-494 | "iOS: the main list gives no sign the phone is offline from the Mac" | | 2026-10-20 | NOOK-682 | "licensing: a new user can be blocked at launch instead of getting the 14-day trial" | | 2026-10-20 | NOOK-684 | "licensing: parseISO rejects the server's fractional-second trial timestamp, so an expired server trial resets to 14 days" | | 2026-10-08 | NOOK-60 | "Capture email at trial start" | ## Appendix B — frequency method - **Live questions:** one per entry that quotes the live page. There are six, and they are the only questions on the page today. - **Board questions:** the two examples in FRE-326. They are not customer quotes; they are the board's own words for the purchase-blocking objections this issue was created to answer. - **Report counts:** the number of distinct NOOK issues I read whose subject or resolution directly produced the objection, listed by identifier and date in §2 and Appendix A. I did not use a raw keyword count: "agent" appears in 344 issues and "privacy" in 177, which says nothing about what buyers ask. The counts are deliberately small and inspectable. - **No ask frequency, no percentages.** The first thing a real support corpus changes is the order, not the wording. --- *Draft ends. Nothing here is published. The page file stays unchanged until the sponsor approves this revision and a human merges it.*