Run 009 journal. data-architect

Run: 2026-05-05__009__buyside-hunt-routine-review · Date: 2026-05-05 · Phase 1 author

S1. Finding

Phase 1 verdict: SCHEMA_DRAFT_NEEDED. Three new tables required for the slash command to ship at scale: `buyers` (one row per buyer config, replacing filesystem JSON at >= 10 buyers), `buyside_runs` (audit row per Slack invocation), `vertical_margin_bands` (lookup for the implied EBITDA chip math, editable without code deploy). All three use canonical field names from day one. Existing legacy column drift in `companies` and `targets` (phone, email, employee_count) is a separate ticket, do not block this release on it.

S2. Blind spot

Did not measure how often a buyer config will actually change after creation. If it's edit-once-and-forget, filesystem might stay forever. If it's tuned weekly per buyer feedback, table-backed makes sense even at 2 buyers.

S3. Pattern

Pattern: every Hermes pipeline starts as "config is a JSON file" and graduates to a Supabase table when (a) the surface needs to be edited from outside the engineer's editor or (b) cross-config queries become useful. Same arc as `webset_ids.json` to `websets` table. Recommend codifying as a graduation checklist.

S6. One-line takeaway

Two new greenfield tables (buyers, buyside_runs) plus one lookup (vertical_margin_bands), all using canonical field names. Legacy companies/targets stay as-is for this release.

Generated from 009__data-architect.md — do not edit this HTML directly.