Files
freno-dev/marketing
agent-cto 25ec84ceb4 site: state the agent count as eighteen (FRE-997, count half)
FRE-359 verdict B dropped the agent count instead of correcting it: the page
said thirteen while `AgentSpec.all` held eighteen, and the /agents table listed
13 of those rows. The count is a fact, not a claim, so this states it and makes
the table match the registry again.

- Landing island bullet and the marquee chip say 18 agents.
- /agents: title/description/ogTitle/H1 at eighteen, and the five missing rows
  are on the page — Kimi, GitHub Copilot CLI, Crush, Cursor, Amp — with 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 and
  PermissionRequest fire before the host's own check; Crush documents one
  event; a silent Cursor permission hook blocks; Amp's plugin API has no
  permission-wait event).
- agents.test.ts asserts the roster as an equality with the 18-name registry
  in registry order again, plus the count, instead of a subset check.
- remote-claims.test.ts keeps every FRE-323 remote removal guard and the parked
  copy, and drops only the two completeness bans the corrected count
  contradicts ("every coding agent", "Supported agents") — the ban existed
  because the page claimed the set and listed 13 of 18.
- positioning.md: the coverage row is publishable at 18.

This is the count/roster half of FRE-997 only. The remote-SSH restore is held
by the Chief of Staff against FRE-346 §3 and is not in this commit: no remote
tile, breakdown, demo, chip, /agents remote paragraph or drafts deletion here.

Gate: `bun test src/routes/nook` 18 pass / 0 fail; `bun run build` succeeds.
2026-11-04 00:21:35 +00:00
..

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.