The FRE-323 correction took the remote story off the site against claims the copy never made: hosts do 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). The removals also dropped the agent count instead of correcting it: the page said thirteen, AgentSpec.all holds eighteen. - Revertc1c498e: the Remote collage tile and its mock, the "Any SSH box, one click away" breakdown with its RemoteHostDemo, and the "One-click SSH setup" chip are back. - Revertc718370: /agents says remote sessions report into the same grid. - The approvals bullet no longer claims "every hooked agent"; it names the three agents that cannot mirror. Muse, Cline and Amp are .unsupported for remote in AgentSpec.remote, so Cline and Amp rows now disclose it too. - Count is 18 on the landing bullet, the marquee chip and all of /agents (title, description, ogTitle, H1 paragraph). - The five missing rows are on /agents: Kimi, GitHub Copilot CLI, Crush, Cursor and Amp, events and gating taken from hook/setup.go, hook/normalize.go, hook/normalize_hosts.go, Sources/NookCore/Agents/ HookConfigInstaller.swift and plugins/amp/index.ts. All five are Observe: kimi/copilot PreToolUse+PermissionRequest fire before the host's own check (awaitPolicyTable has no entry; kimi's PermissionRequest is notification-only), Crush documents one event, a silent Cursor permission hook blocks the action, Amp's plugin API has no permission-wait event. - agents.test.ts asserts equality with the 18-name registry again, and the count; remote-claims.test.ts keeps only the two guards worth keeping (no universal remote claim, no stale thirteen). - positioning.md: the held remote row becomes a publishable row with its backing, the count row becomes publishable at 18, and marketing/drafts/remote-ssh/ is deleted. bun test src/routes/nook: 17 pass, 0 fail. Againstd44133fwith these two test files the same suites give 10 fail (7 pass), so the guards prove the fix. bun run build: ✔ build done (router client, SSR, server-fns, vercel preset). bun test src/routes: 124 pass / 20 fail / 2 errors; the same 20 fail and 2 errors ond44133f, so they are pre-existing environment failures.
Marketing tree
One voice, one place. Every later artifact draws on positioning.md — do not
invent framing per-asset.
positioning.md # source of truth: wedge, voice, banned phrasings, approved claims
calendar.json # scheduled pushes: date, channel, status
briefs/<channel>.md # per-channel rules, format, limits, what "good" looks like
drafts/<id>/ # agent output: copy.md, assets/, rationale.md
pending/ approved/ posted/ # human gate by directory move
metrics/weekly.md # funnel snapshot, generated
listening.md # buying-intent threads + drafted replies
Hard rule
approved/ is the only thing a human ever publishes from. Nothing posts itself.
Workflow: agent drafts into drafts/<id>/ → moves to pending/ when complete →
a human reviews and moves it to approved/ → the human publishes from approved/
under their own account → the artifact (or a pointer) lands in posted/.
Nothing in drafts/ or pending/ is ever publishable, by anyone, by any means.