Files
freno-dev/marketing/positioning.md
agent-cto 6ff31346ff site: restore the remote SSH copy — HELD, do not merge (FRE-997, remote half)
DO NOT MERGE OR DEPLOY THIS BRANCH. It is the held half of FRE-997, split out
of a336a6c at the Code Review Engineer's changes-requested verdict and the
Chief of Staff's 2026-11-03 launch hold (comment 2ccad154), and it is stacked
on `freno-dev/FRE-997-count-18` so its own diff stays remote-only.

The copy it restores was pulled by FRE-323 (c1c498e, c718370). FRE-997's
argument is that those removals were checked against claims the copy never
made: hosts come from `~/.ssh/config` and Tailscale (`RemoteHostDiscovery`),
the one-time `ssh-copy-id` is a prerequisite the row hands the user as a
command (`RemoteHostStatus.fixCommand`), the per-host credential is minted and
copied over (`RemoteMirror`), and a remote host mirrors this Mac's integrations
(`RemoteMirrorReconcile`). Two things in the old copy were genuinely wrong and
are fixed rather than restored: the "every hooked agent" overstatement (Muse,
Cline and Amp are `.unsupported` for remote and are named) and the count.

It may land only when all of these are recorded on FRE-997:

1. a CTO verdict that the one-click flow was run on the shipping build;
2. footage of a remote agent joining the island;
3. the Chief of Staff revising the FRE-346 §3 launch gate and taking the
   public-claim call to the sponsor.

Until then the live site keeps the FRE-323 state. The restore condition this
commit deletes (`marketing/drafts/remote-ssh/copy.md`) is the gate being cited:
FRE-205 is todo/unassigned, FRE-320 is a verdict task, and no recording exists.

- The Remote collage tile and its mock.
- The "Any SSH box, one click away" breakdown with its RemoteHostDemo.
- The "One-click SSH setup" chip.
- The /agents remote paragraph and the Cline/Amp "this Mac only" rows.
- The approvals bullet names the three local-only agents instead of claiming
  every hooked agent.
- remote-claims.test.ts guards the restored copy plus the two overstatements
  that must not return.
- positioning.md moves remote SSH to publishable with its backing.

Gate on this branch, this run: `bun test src/routes/nook` 17 pass / 0 fail;
`bun run build` succeeds. Green tests do not lift the hold.
2026-11-04 00:30:21 +00:00

10 KiB
Raw Blame History

The Nook — Positioning (source of truth)

Every drafted asset draws its voice, claims, and constraints from this file. If an artifact invents its own framing, fix the artifact or fix this file — never both silently diverging.

Reconciled 2026-10-29, and again 2026-11-03 for the FRE-997 correction, against the CTO's verdicts (FRE-315, FRE-322, FRE-354, FRE-997), the Chief of Staff's price decision (2026-10-29 04:01), the Plan B launch route (FRE-346 → FRE-203 plan-b), and The-Nook master (app floor is 14.2, not 14.0 — freno-dev 881190d, site merge 134f41e). The previous version of this file named an upstream the-nook/docs/marketing-strategy.md that no longer exists; the verdicts below are the source of truth it was pointing at.

The sentence

There is no single approved public sentence yet, and saying otherwise is the one mistake this file exists to prevent. What exists is a launch claim set — two sentences, both from one 15-second take, recorded as the chosen route by the Chief of Staff on 2026-10-29 (FRE-346 decision §2–§4):

Slot Exact sentence Status today
Launch line "Every agent you're running reports into one notch, and the one waiting on you pins above the rest." Verified by code (FRE-322 §3). Needs the one-Mac take before it is publishable.
Second line, same take "Approve an agent's tool call from your Mac's notch, and the agent carries on." Needs the demo (FRE-322 §1). The same take settles it.

Working line for internal writing, not for publication:

Your Mac and your agents, under control. One notch for the whole fleet: you see what is running, you unblock what is waiting, and the machine stays cool while it works.

The wedge

The thing to say over and over, in every channel, in slightly different words:

An agent blocked on a permission prompt is the most expensive kind of idle. You pay for the model, you pay for the wait, and you get neither.

It is acute, quantifiable, and true — and it is the demo: a card appears, you tap Allow, work resumes. Ten seconds, no explanation needed.

The consolidation reframe

Three audiences (agent herders, hardware tinkerers, glanceable-widget users) in one app reads like a grab bag. Reframe as consolidation, which is the honest story:

One app instead of a notch toy, a fan utility, a battery limiter, a menu-bar stats strip, and a notification hack. One purchase, no subscription.

No price, no discount and no future price in copy. The price is $10, it stays $10, and the dated rise to $15 is withdrawn (Chief of Staff, 2026-10-29 04:01). A price change is a Chief of Staff + sponsor call; it is never a marketing decision and never a launch asset.

Hard rules

1. Category nouns, never product nouns

freno-dev/AGENTS.md forbids naming any competitor in user-facing copy — landing pages, marketing copy, comparison tables, meta descriptions, emails, FAQs, all of it.

  • Use category nouns: "notch app", "menu-bar monitor", "fan control utility", "battery charge limiter", "agent notification hack". These carry the same search intent and are fully compliant.
  • Compare against the status quo, not a competitor: "vs. a terminal bell you don't hear", "vs. four utilities in your menu bar", "vs. finding out an hour later."
  • The rule does not reach App Store–external review replies, direct email, and community replies written by a human, where quoting what a user said about another tool is normal conversation.

2. A claim needs a verdict, not just a test

Copy that says "every agent", "13 agents", "no data leaves the device" must point at both a test and a CTO verdict naming the exact sentence. A passing test is not a verdict; a verdict is not a recording. If a sentence cannot be traced to a row in the tables below, it does not go in copy.

3. Honest privacy scoping

Telemetry and the licence check do leave the device: Sentry runs on every launch, unconditionally (with the Mac's IP address via sendDefaultPii), and the trial check sends IOPlatformUUID and the device name to freno.me (FRE-322 §2.4, corrected by FRE-354 (b)). Never publish, in any wording:

  • "no data leaves the device" / "local-only" / "no telemetry" / "no account"
  • "nothing leaves your Mac"

The one favourable engine sentence — about the hook and bridge only, never "The Nook" — as corrected by FRE-354 (j): the hook and bridge are not a cloud service. Do not write "talk to nothing but your Mac" (too absolute: the NOOK_PORTS fan-out resolves host.docker.internal and the default gateway, and defaultGateway() opens a no-packet UDP socket to 8.8.8.8:80), and do not narrow it to "over SSH" (a tailnet peer dials directly).

It is verified as a code fact (FRE-322 §2, FRE-354 (j)), and it is still held until the disclosures land: Sentry gated behind a preference or removed, and /privacy + /faq corrected against the egress inventory (patch on branch faq/from-objections-2026-10-29, verified by FRE-354). A true sentence next to false ones is worse than no sentence.

4. Sell what works today

An iPhone + Apple Watch companion is in users' hands as a TestFlight beta (ios-v0.3.2, 2026-10-22; FRE-354 open question). That makes one thing true and one thing forbidden: say "TestFlight beta" when the phone exists in a sentence at all, and never claim approvals-from-phone as a shipped capability without its own CTO verdict — no "(coming soon)" parentheticals either way.

Remote SSH is publishable, and the site sells it again (FRE-997). The copy that was pulled on 2026-10-29 had been checked against claims it never made: hosts come from ~/.ssh/config and Tailscale (RemoteHostDiscovery), the one-time ssh-copy-id is a prerequisite the row hands the user as a command (RemoteHostStatus.fixCommand), the per-host credential is minted and copied over (RemoteMirror), and a remote host mirrors this Mac's integrations (RemoteMirrorReconcile). Two things in the old copy were wrong and were fixed rather than restored: the "every hooked agent" overstatement, and a count that said thirteen against a registry of eighteen. Muse, Cline and Amp are .unsupported for remote in AgentSpec.remote, and the copy names them.

5. Humans hold every account

No agent authenticates, posts, upvotes, or DMs. No sock puppets, no self-mention without disclosure. approved/ is the only thing a human ever publishes from — nothing posts itself.

Claims: status at 2026-11-03

Each row names the evidence, not a feeling. Re-read the verdict before using a row.

Claim Status Evidence / next step
Approve an agent's tool call from the notch, and it carries on Needs demo — not publishable FRE-322 §1. AgentLiveTurnTests has never run on a signed-in host; one observed local run settles it. Say "an agent", never "any agent", never "always".
Every agent you're running reports into one notch; the blocked one pins above the rest Verified by code, gated on the take FRE-322 §3. Same one-Mac take as above. No count in the sentence.
The hook and bridge are not a cloud service Verified code fact, held on disclosure FRE-322 §2, wording corrected by FRE-354 (j). Held until Sentry is gated/removed and /privacy + /faq land. Never widen to "The Nook", never "nothing but your Mac".
Fan, thermal and charge control No claim verdict yet — do not lead with it Backed by helper/ (privileged helper, SMC, no kext), but no CTO sentence exists for it. Documentary, not launch.
One-time purchase, no subscription Publishable fact, price not a launch asset $10, held at $10. No dated rise, no discount framing, no pricing copy.
Agent coverage numbers ("eighteen agents", "18 agents") Publishable at 18 FRE-997: the /agents table now lists every row of AgentSpec.all and agents.test.ts asserts equality with the 18-name registry in registry order, so the landing bullet, the marquee chip and the /agents copy say 18. No other number is publishable, and every / all are still banned without naming the three local-only agents.
macOS 14.2 or later Publishable fact The app cannot start below 14.2 (freno-dev 881190d, site 134f41e). "macOS 14+" is false and was fixed on the site.
Remote agents over SSH, one click to install Publishable, with the three local-only agents named FRE-997: RemoteHostDiscovery (ssh config + tailnet), RemoteMirror (hook push, credential, mirroring), RemoteMirrorReconcile, RemoteHostStatus.fixCommand (the one-time ssh-copy-id the row shows). AgentSpec.remote is .unsupported for Muse, Cline and Amp — the landing bullet and /agents paragraph name them; never say "every hooked agent".
"Nothing leaves your Mac", "no telemetry", "local-only", "no account" False today — banned Sentry unconditional, licence check with hardware fingerprint (FRE-322 §2.4).
Approvals from the iPhone or Apple Watch No verdict — not a launch claim The companion is a TestFlight beta (FRE-354); the approval-from-phone claim has no CTO verdict and stays out of launch copy.

Voice

  • Short, concrete, no hype adjectives. Numbers over adjectives — the only count that ships is eighteen, and it is the registry's own size (see the coverage row above).
  • The notch is the product's home; agents are the product's point.
  • Never apologize for being a utility. The utility is the point.
  • Banned phrasings: competitor names (see rule 1), "AI-powered", "revolutionary", "game-changer", "seamlessly", any unverifiable superlative — and the specific banned sentences in rule 3 and the table above.