Handbook Site

Status
in-flight
Tier
Tier 1 — Operating business
Owner
Ryan Colston
Started
2026-04-13

Linear: RYR-238 — training-manual live role; RYR-243 — security hardening (2026-07-23 vault→Linear audit) Verification correction (2026-07-24): /agent migration is DEAD — ccpj#179 closed 2026-05-08, superseded by MR!236 (verified); the Sales Team Playbook is canonical in the vault. Handbook hardening (RYR-243): Access gate is live/enforcing; only the deploy.py creds→1Password migration remains open (keychain.py still shells security find-generic-password — verified). (RYR-238 canceled, RYR-243)

handbook.rycolston.com — multi-tenant static site hosting setter handbooks, the shared agent script book, and the shared agent workbook. One Cloudflare Pages project, three audiences.

Why

The site serves three audiences from one stack: per-setter 30-day workbooks, the agent script book (the words), and the agent workbook (the practice). Same Cloudflare Pages project, same Cloudflare Access pool, zero new infra to host any of them. Reuses build, deploy, and partials resolver.

Script book and workbook move together. Same section numbers. When a script changes, the workbook chapter for that script changes in the same MR. That coupling is the whole point — agents don't get scripts they can't practice.

Current state

Site is live. Setter handbooks at /<agent-slug>/<setter-slug>/. Agent script book at /agent-scripts/. Agent workbook at /workbook/ (added 2026-04-28 via MRs !591 / !592 in the 8-section format: goal, beats, words, blank-page drill, cloze drills, objection branches, self-scoring rubric, Loom submission). Sales Operational Playbook decision tree at /playbook/ (added 2026-05-17, MR !109 — interactive flowchart generated from the _recording/ SOPs). Flat handbook read of the same SOPs at /sops/ (added 2026-05-28 — build_sop_handbook() in build_playbook.py; uses the canonical template + sidebar TOC for design-system consistency; linked from admin landing + per-agent chip strip + setter nav). Work-Product Forms section added to admin landing linking the Offer Processing Tally form (68MLMO) — also a chip on per-agent dashboards. "Your Board" chip added 2026-06-04 (MR !345) — links each agent to their own Work-Product Gateway board; per-agent board_url in content/<agent>/_agent.yaml, conditional chip in the always-on strip (dashboard + every level page), omitted when an agent has no board.

New routes + surfaces (2026-06-13 to 06-15). The 50OS Path now renders on the handbook (2026-06-13) — goal cards, Your Cycle, modules, cycle view, and gate — so the 50OS coaching curriculum is live as handbook pages, not just a plan. The agent onboarding MVP shipped 2026-06-14 — a Start Here landing, a first-run experience, and an activation drip email; the Start Here kickoff 1:1 books with the coach (Ry), not the agent. The coach surface went live 2026-06-14 to 06-15 — an Access-gated /coach/ page plus a coach card showing each agent's Closings + active listings; it is the front end of The Game Plan (/api/coach gated under the same coach Access app). And per-agent scheduler links were added 2026-06-15 across setter tools + agent dashboards, pointing at the new field scheduler at schedule.rycolston.com (Ryan's setters' booking link swapped over first).

Pending migration designed but not yet executed: /agent/ namespace + Sales Playbook. Spec and plan reviewed by plan-reviewer 3 times, approved. 5 phases, 22 tasks, ~4 MRs. Source of truth for playbook content moves out of Obsidian into shared/partials/agent/playbook/*.md. (2026-05-30 caveat: this plan predates the "vault is canonical" decision for the training manual — moving its source out of Obsidian is now an open question, folded into the manual's-live-role decision in Open issues below.)

Recruiting-call audio clips shipped 2026-05-21. Inline ▶ buttons next to each beat in the §12.3 + §12.5 script (Anthony Lee's handbook first). Authoring is a {{AUDIO: name}} shortcode that expands at build time to a <button> referencing MP3s hosted at audio.handbook.rycolston.com (R2 bucket handbook-audio). Strict known-clip allowlist makes typos fail the build. One shared <audio> element per page so only one clip plays at a time; reset on 404 so unrecorded clips don't get stuck. §12.3 (11 clips) live; §12.5 (6 clips) names reserved but recording pending. Reusable pattern documented in domains/handbook-rycolston-com/CLAUDE.md; new R2 entry logged in Reference/Web Properties.md.

Next 3 actions

  1. Resume /agent/ migration from Phase 0 (Permissions Pre-Approval), then start Phase 1 / Task 1 per the plan.
  2. Verify _drafts/ build-fail behavior still works as expected after recent template changes.
  3. Audit deploy commands — python deploy.py --skip-access for content iteration, full deploy.py after registry change.

Decisions log

Open issues

References