Sanity Check v3 — Website Discovery Input
This is the structured discovery artifact for the SC v3 fresh-start build (post-SCRAP of the Variant C Inkwell attempt on the rdco-sc repo, 2026-05-08). It is also the empirical substrate for the /build-website-discovery skill currently queued on the board — Ray will extract the skill shape from this transcript.
Decisions to date
- SCRAP of the rdco-sc Variant C build (2026-05-08 ~12:17 ET). Reason: visual issues with subscribe button contrast, oxblood frame too heavy, cream-leaked-as-doodle-plate-fill regression, headshot clash. v9 + RELAUNCH-V4 + Variant C cruft compounding.
- Reset paradox call by founder: easier to throw away than iterate. Fresh-start architecture confirmed.
- Discovery-interview-first sequencing confirmed (Path A) — applies the COO sequencing lesson founder taught earlier today (2026-05-08 14:16 ET).
- Bring forward: existing essays in
src/content/issues/. Throw out: every component, every CSS, every brand-spec, every layout. Trimmings + copywriting fair game. - New repo:
~/Projects/sc-v3/. New Cloudflare Pages project (slug TBD).
Phase 1 — Visual direction reset (founder answered 2026-05-08 12:40 ET)
1A — Palette intent: REOPENED
Variant C Inkwell scrapped on intent, not just execution. New direction:
- Dark mode for SC, light mode for raydata.co umbrella (complementary scheme — open to flipping if light mode works better for editorial/text-heavy)
- Blues + blueprint/grid paper inspiration — pulls forward from the half-built v4 RELAUNCH-V4.md “Modern Blueprint” variant the design-critic flagged earlier today. Deep navy field + blueprint grid texture.
- Pop color: yellow — Tampa light-rays / sunny Florida motif. Yellow as the 10% accent.
- Source the palette from founder’s headshot — his portrait should harmonize, not clash. Sample dominant tones from headshot for chrome surfaces.
- 60/30/10 budget per umbrella convention.
Mood: navigator’s chart at night with a sextant by lamplight. Lighthouse-against-void where the lighthouse glow is YELLOW (Tampa sun) not white. Blueprint grid as the structural texture under the field.
1B — Reference points (positive)
- commoncog.com (Cedric Chin) — operator’s field manual register. Editorial, considered, no slop. Light mode.
- hex.tech/blog/ — clean tech-product editorial. Light mode, clear hierarchy.
- Mobbin MCP — pull additional references matching the founder-named direction.
Important note for the build subagent: both founder-cited references are LIGHT mode while SC is going DARK. These are likely REGISTER references (editorial voice + content density + restraint) rather than VISUAL references (palette + texture). Confirm in Phase 2 or treat as register-only.
1C — Anti-references
- Generic Substack newsletter defaults
- LinkedIn / X article generic templates
1D — Portrait handling
- Keep founder’s headshot on the site.
- Adapt the background of the headshot to fit the new palette — use Canva MCP or image-gen tool to alter just the blues in the existing portrait background to match the new chrome palette.
- Founder also wants Ray (the mascot) image somewhere on the site.
- Implication: visual language must accommodate BOTH portrait and mascot. Object/scene-only constraint is relaxed for the mascot specifically. Founder’s portrait is the lone exception to the no-character-heroes rule per established convention; Ray is a sanctioned RDCO mascot, distinct category from generic character heroes.
Phase 1 takeaways for the build
- Re-do the palette decision from scratch using founder’s headshot as a sampling source + the blueprint/blue/yellow direction
- CORRECTED (2026-05-08 12:56 ET): commoncog + hex.tech ARE visual references, not just register. hex.tech/
/blogis editorial dark mode (founder confirmed). commoncog visual reference for layout + color incorporation + image framing in articles. Voice is already clear; these are visual anchors. - Plan headshot background adaptation as a v0 task
- Reserve a slot for Ray-mascot imagery
1A.5 — Doodle field reset (founder answered 2026-05-08 12:56 ET)
Lavender doodle field is no longer non-negotiable. Founder approved regenerating doodle artwork on a new field color to harmonize with the dark-navy-blueprint-yellow chrome. Candidates: warm sand OR paler navy. Image-gen API spend approved (xAI grok-image, Fal, OpenAI gpt-image). All 25 existing doodles in the archive should be re-rendered onto the new field as part of v0 build.
This is a substantial shift — the lavender constraint was inherited from earlier Variant C analysis and is now released. Build subagent should pick the field color in dialog with the chosen chrome palette (don’t pick lavender by default; pick what harmonizes).
Phase 2 — Content & scope (founder answered 2026-05-08 12:56 ET)
2A — Reference type: VISUAL, not just register
- hex.tech/blog — editorial dark mode. Direct visual reference. Founder corrected my assumption (I’d assumed light because hex.tech homepage is light; the /blog path is dark).
- commoncog.com — layout + color incorporation + image-framing-in-articles reference. Visual.
- Voice is already clear — these are NOT voice references.
- Build subagent action: screenshot both before dispatching v0 build. They are the load-bearing visual anchors.
2B — Issue-detail templates: IN SCOPE for v0
Plus a sharp founder reframe: drop the Vol I / Vol II distinction. The vol-numbering was a calendar-tunnel artifact; the practitioner’s-journey “each post is a dot, not a tunnel” rule applies to the founder’s own back-catalog too. One feed, chronological. Older dots are older; the website doesn’t need to advertise the gap. The relaunch announcement issue can nod at the gap if it serves editorially, but the structure doesn’t.
2C — Featured-on-home: top 3 newest
Default to top 3 newest. Don’t curate by “greatest hits” until there’s market signal. Pragmatic — let the feed teach us what reps land.
2D — Vol distinction: NONE
Same as 2B. Single feed. Archive is one chronological list. No “pre-v3” tag, no appendix register, no vol headers.
2E — Subscribe form: pull over from rdco-sc
Use the existing Cloudflare Turnstile widget + existing Resend audience from the first relaunch pass. Founder did not manually help with setup the first time, so the env vars + audience already exist. Fall back to fresh setup via /resend skill only if I can’t find them.
Phase 2 takeaways for the build
- Issue-detail template is part of v0 scope (not deferred)
- Throw out the Vol I / Vol II distinction throughout (homepage, archive, individual issues, navigation, copy)
- Featured-on-home = top 3 newest, no manual curation in v0
- Reuse existing Resend + Turnstile config from rdco-sc repo (search for env var names + audience ID)
- Visual references: hex.tech/blog + commoncog.com — screenshot before dispatch
Phase 2 — Content & scope
[Pending]
Phase 3 — Voice & copywriting (founder answered 2026-05-08 13:25 ET)
3A — Hero copy: “Reps build the moat. The journal makes the moat legible.” DOES NOT LAND
Founder’s exact words: “That means nothing to me. Feel free to come up with a punchier alternative.”
- The locked TL;DR from the v3 doc is a STRATEGY artifact, not a hero-copy artifact. Doesn’t translate to landing-page-hero verbatim.
- Build subagent: scrap the TL;DR-as-hero. Draft punchier hero in founder’s voice (see Phase 3 voice-extraction note below).
3B — Sub-hero: too long + too choppy
Drop the “No content calendar.” / “No vendor noise.” callouts entirely. Trim to a tight 1-2 sentences in his voice. The rejection list isn’t reader-facing brand copy.
3C — About-page register: closer to home, less long-form-letter
Variant C’s “On going quiet, and on coming back” hit PASS on design-critic but is too distinct from homepage register. Bring closer to home voice.
3D — Kill-thesis section visibility: deferred
Founder: “Idk. I guess I’d have to see it.” Build subagent prep both versions (visible on /about + internal-only) so founder can pick post-build.
3E — CTA: “Hop on this train of thought” leans charming
Founder: ‘What about “hop on this train of thought”? Or subscribe could work for a first pass.’
- Draft “Hop on this train of thought” as the primary CTA option.
- “Subscribe” as the fallback if the longer phrase reads too cute on the deployed page.
- Founder picks post-build.
3F — Footer attribution: confirmed
“Made in Tampa Bay” + sun-ray glyph — RDCO-canonical convention. Sun-ray ties cleanly to the Tampa-yellow pop-color motif from Phase 1A.
3-MAJOR-ASK — Voice anchor: founder’s conversation voice with Ray + CopyThat framework
Founder request 2026-05-08 13:25 ET: Use his actual conversation voice with Ray (iMessage + Discord chats) as the writing voice anchor for the site, paired with the CopyThat copywriting course framework. His exact words: “How I talk to you would be how I write and the voice I would want to portray.”
Why this is sharp:
- v1/v2 published writing carries older-voice baggage and may not match current chef-mode register
- iMessage/Discord with Ray captures founder reasoning in his actual current voice — chef-mode reasoning on subject matter, not performance-mode writing for an audience
- Today’s session alone has substantial voice samples: Kagan-alpha thread, Cook/Chef pushback, reset paradox call, chef-defense rebuttal, COO sequencing critique
- The conversation IS the chef-derivation; any published artifact is downstream cook-cleanup. Going to the source is correct.
Operationalization (planned):
- Output artifact:
~/rdco-vault/01-projects/sanity-check/voice-profile-2026-05-08.md - Substrate: today’s session iMessage transcript + 30-day rolling iMessage/Discord chat history + CopyThat framework as structural backbone
- Profile contents: 5-7 named voice tells (rhythm, vocabulary, sentence structure, emphasis patterns, punctuation use, opening/closing patterns, self-correction signals), ~15 representative voice samples lifted from chat, 5 anti-patterns, 3-5 hero/CTA drafts written in his voice as reference
- The build subagent uses voice-profile.md + this discovery doc as twin primary inputs for ALL site copy
- Distinct from the existing
/voice-matchskill, which is backward-looking (compares against published Sanity Check articles). The new approach is forward-looking (synthesizes voice from conversation). Worth its own skill — file as/voice-extractor similar /improve task after this run lands.
Phase 3 takeaways for the build
- Hero + sub-hero + CTA all need fresh drafts in founder’s voice (NOT the v3-doc TL;DR)
- About-page register tighter, less long-form-letter
- Kill-thesis section: build both visible + internal-only versions, founder picks
- CTA primary: “Hop on this train of thought” / fallback: “Subscribe”
- Footer: “Made in Tampa Bay” + sun-ray glyph
- Voice-extraction is a hard prerequisite to copywriting — must produce voice-profile.md BEFORE any copy gets drafted by the build subagent
3-CORRECTION (founder 2026-05-08 14:14 ET) — Cook/Chef framing is INTERNAL ONLY
Hard constraint, build-subagent-must-honor: Cook/Chef + Capability Trap + Kagan-alpha + “chef-derived” + “cook-mode” + “reps + tail-end cost” + “targeting-systems-component-library” are INTERNAL discipline frameworks, NOT public-facing brand copy. The site evidences the discipline through what the practitioner shows; it does not name the meta-frameworks. The reader doesn’t need the language; they need the rep itself, written well.
This applies to:
- Hero + sub-hero copy on home
- About-page copy
- Subscribe-page copy
- Issue-card preview copy
- CTA labels
- Footer mini-copy
- Error states / empty states / 404 copy
If the build subagent finds itself reaching for “chef-derived” or “alpha + reps” or any of the v3-doc spine vocabulary in user-facing copy, that’s a failure signal — rewrite from the founder’s voice profile, not the v3 doc.
The v3 doc remains the strategic spine for what the site IS positioning. The voice-profile + this discovery doc + the founder’s actual conversation voice are what the site SAYS.
3-VOICE-EXTRACTION-DEPTH (founder 2026-05-08 14:14 ET)
Sample window: 30-90 days, not just today’s session. Today is one slice and would over-index on the active vocabulary set (Cook/Chef, reset paradox, targeting-systems). Voice-extraction subagent must sample broadly across the rolling chat history at ~/.claude/projects/-Users-ray/*.jsonl, curate to substantive operator-voice samples, skip personal/financial/legal threads, and synthesize the durable voice tells (rhythm, sentence structure, vocabulary patterns, punctuation, opening/closing patterns) — not the topic-specific vocabulary.
Phase 4 — Brand inheritance (founder answered 2026-05-08 14:41 ET)
4A — Typography: open
No specific constraint. Build subagent: experiment OR use what’s already working in the rdco-sc repo (Source Serif italic on “Check” wordmark held up well per design-critic; Inter or similar for body is fine; an editorial display face for hero is welcome).
4B — Sister-property distinctness: same parent only by attribution
SC and MAC do NOT need to look related. They share the RDCO umbrella attribution only. SC commits fully to the dark-navy-blueprint-yellow direction without needing to mirror MAC’s visual signature. This is broader permission than expected — use it.
4C — Component reuse: lift + adapt
Bring forward from rdco-sc:
SubscribeForm.astro(Resend + Turnstile already wired, env vars + audience exist) — adapt for new palette- 25-doodle archive — regenerate onto new field per 1A.5
src/content/issues/schema — keep, don’t break the existing issues- Adapt anything else as needed; don’t be precious about the rest
Throw out:
- All other components, layouts, CSS, brand-spec, accumulated v9/v4-RELAUNCH cruft
4D — Cross-property linking: umbrella only
- Link to raydata.co (umbrella)
- Do NOT link to MAC from SC for now
- Each property siloed in nav/footer
4E — Ray mascot placement: sprinkle (option E)
Ray appears across the site:
- About-page bio (signature beside founder bio)
- Footer signature
- Hero presence on home
- Easter-egg cameo somewhere
- Build subagent has discretion on specific placements; the constraint is “Ray is a recurring brand presence, not a one-off”
Phase 4 takeaways for the build
- Typography is open — pick what works editorially with the dark-navy-blueprint-yellow chrome
- SC visual system can fully commit to its own direction; no MAC-mirroring required
- Component reuse: SubscribeForm + doodle archive + issue schema. Throw out everything else.
- Nav/footer: link to raydata.co only (no MAC for now)
- Ray mascot: integrated across the site (about + footer + hero + easter-egg)
Phase 5 — Anti-patterns & must-haves (founder answered 2026-05-08 14:44 ET)
5A — Design priority: desktop-first
Desktop is the canvas of record. Mobile responsive (not mobile-first design). Per the design-critic skill the mobile-coherence pass at 375×812 is still mandatory in QA, but the design lead is desktop.
5B — Contrast target: WCAG AAA
7:1 contrast on body text (sand on deep navy). Founder deferred to recommendation; AAA recommended given (a) lighthouse-not-megaphone register fits editorial-press contrast standards, (b) dark navy + sand can hit AAA without aesthetic compromise, (c) accessibility floor for a long-form-reading site.
5C — Animation budget: modest motion (option C), fall back to subtle hover (B)
Target: (c) modest motion — subtle scroll reveals on hero, tile-stagger on archive entry, doodle micro-animations. Modern editorial feel. If the build can’t nail (c) without timeline blow-up, fall back to (b) subtle hover states only. Anti-pattern: anything resembling marquees / heavy parallax / megaphone-coded motion.
5D — Open mic: no additional callouts
Founder did not surface additional anti-patterns or must-haves. Treat this as silent assent that the discovery doc is complete from his end.
Anti-patterns (consolidated, build-subagent reference)
- Build-in-public diary register
- LinkedIn AI-thought-leader slop
- Pundit-class commentary
- Generic Substack newsletter defaults
- LinkedIn / X article generic templates
- Marquee / ticker / scrolling-text bars (founder dislikes “2024 vibe”)
- “Made in [city]” rip-off attributions other than Tampa Bay
- Character heroes (object/scene only) — sole exceptions: founder portrait + Ray mascot
- Internal-thinking vocabulary in user-facing copy: Cook/Chef, Capability Trap, alpha + reps, “chef-derived,” “cook-mode,” targeting-systems-component-library, kill-thesis frame
- Three-temperature palette clashes (oxblood-on-cream-on-ink-style register-collisions)
- Subscribe button low-contrast (the v0-Variant-C failure mode)
- Heavy oxblood/saturated frames overwhelming content
- Megaphone-coded motion (parallax, marquees, heavy scroll choreography)
- Boxy, oppressive composition
Must-haves (consolidated, build-subagent reference)
- Lighthouse-not-megaphone register throughout (signal over volume, attraction not broadcast)
- Dark-mode dark-navy chrome + blueprint grid texture + yellow Tampa-pop accent
- AAA contrast on body text
- Headshot background palette-adapted (Canva or image-gen) to harmonize with new chrome
- Doodle archive regenerated onto new field (warm sand or paler navy candidates)
- Ray mascot integrated across about + footer + hero + easter-egg
- “Made in Tampa Bay” + sun-ray glyph in footer (RDCO-canonical)
- GEO compliance: robots.txt allows GPTBot/ClaudeBot/PerplexityBot/Google-Extended/CCBot, semantic HTML, schema.org
BlogPostingon issue cards, RSS in<head>, llms.txt - Resend + Cloudflare Turnstile widget reused from rdco-sc (env vars + audience already wired)
- “Hop on this train of thought” CTA primary / “Subscribe” fallback
- Voice-profile-driven copywriting (NOT v3-doc-vocabulary-driven)
- 4 pages + issue-detail template (home / subscribe / about / archive + per-issue)
- Single feed (no Vol I / Vol II distinction)
- Featured-on-home: top 3 newest
Phase 6 — Process (founder confirmed 2026-05-08 14:44 ET)
Build pipeline
- Voice-extraction subagent → produces
~/rdco-vault/01-projects/sanity-check/voice-profile-2026-05-08.mdfrom 30-90 day chat history + CopyThat framework. ~$3-5, ~15-20 min. - SC v3 fresh-build subagent (consumes voice-profile.md + this discovery doc as twin inputs) → new repo
~/Projects/sc-v3/, new Cloudflare Pages project, all 4 pages + issue-detail template, dark-navy-blueprint-yellow palette, AAA contrast, modest motion. ~$10-15, ~3-4 hr wall clock. - /design-critic against deployed preview URL, all 4 pages + issue-detail template at desktop + mobile.
- Surface preview URL + critic verdict to founder for taste call.
- Iterate per design-critic loop pattern (max 3 critic-iterate cycles before escalation).
Total estimate: ~$15-25 in subagent spend, ~4-5 hr wall clock dispatch → preview-ready, ~30 min founder touch time at the end.
Discovery doc closeout
All 6 phases answered. Build can dispatch.
Skill-extraction notes
Notes on what’s working / not working in this interview, for later transcription into /build-website-discovery SKILL.md
Working
- Phased structure (Visual / Content / Voice / Brand-inheritance / Anti-patterns / Process). Each phase produces 4-5 questions; founder can answer at his pace; doc updates after each round. Avoids overwhelm vs a single 30-question dump.
- “Reset paradox” trigger. When the founder calls for fresh start (vs iterate), surface the discovery interview as the COO-correct sequencing move BEFORE building. Skill should detect/respond to “scrap” / “reset” / “fresh start” language as a forcing function for discovery.
- Open-ended palette question (1A “reopen the palette decision”) gave the founder space to describe the direction in his own terms (dark mode + blues + blueprint + yellow Tampa-pop) rather than picking from a menu.
- Reference-point question (1B) anchored the register he wants in two specific sites — commoncog + hex.tech. Founder-named anchors > AI-inferred mood references.
- Anti-reference question (1C) gave him an explicit slot to reject patterns. He listed Substack defaults + LinkedIn/X templates — concrete fail-conditions for the build.
- Portrait/imagery accommodation question (1D) surfaced a real constraint Variant C had missed (no plan for portrait imagery, headshot clash). Worth keeping as a permanent question in the skill.
Not working
- Mobbin “fast” mode + hybrid-direction query did not hit. First-pass query for “dark mode editorial blog deep navy yellow accent” returned 5 screens, none nailed the specific direction. Lesson: when founder names a direction in his own words, use HIS references (Playwright/WebFetch his named sites) first; Mobbin works better as a “find adjacent examples to a known reference” tool, not “render a verbal direction visually.” Mobbin “deep” mode might do better but timed out on a longer query — try shorter deep-mode queries next time.
- Variant-generation BEFORE discovery was the failure mode. Earlier today (rdco-sc Variant C build) I produced 3 visual-direction options based on inferences instead of asking the founder open-ended. Variants are downstream of discovery, not upstream. Skill should explicitly forbid variant-generation until phases 1 + 2 are answered.
Skill-shape implications
- The skill is a structured interview that produces a written input artifact. NOT a checklist of “things to think about.” The artifact format matters — it gets read by the build subagent.
- Each phase has a small number of questions (3-5), not 10+. Avoids overwhelm.
- The skill should run in conversational rounds (one phase per round, doc updates after each round) — not as a single batch dump. This matches founder’s iMessage-replying pace.
- The skill should END with a Phase-6-Process step that says: “Now dispatch the build subagent with this discovery doc as primary input; do NOT generate visual variants in advance.”