Maxswarm Run #032 · 2026-05-27 · Conductor-synthesized

CTO Codebase Audit — Next Chapter OS

Hardening pass toward Off Market Deal Room (offmarketdealroom.com). All figures extracted live from git, the filesystem, and Supabase Postgres on 2026-05-27. No web search. No opinion in the data sections. Numbers supersede the illustrative examples in the brief.
12-agent roster 3 new skills voted in 1,191 commits 239 tables 137,789 records 100 skills $54.88 tracked spend
Extraction agents: git-history, tech-stack, skills/journals, Supabase-data — run in parallel. Planning agents: architect, data-architect, quarterback. Maker-checker: audit-quality. This page is the run archive.

Phase 0 — Roster, Cross-Read, Skill Vote, Opt-Outs

Swarm roster (technical + business)

Technical / extraction: architect · data-architect · data-agent · exa-mastery · system-map · auto-fix  |  Business / interpretation: quarterback · market-analyst · storyteller · writer · audit-quality · tech-translator.

Skill cross-assignment (re-read fresh)

Each agent re-read a peer's SKILL.md cold before drafting, so blind spots cross-pollinate. Pairing chosen to put each reader on the skill nearest its hardening task.

AgentRe-read peer skillWhy this pairing
architectdata-architectinfra placement vs schema home seam
data-architectdata-agentschema design vs read-only introspection
data-agentexa-masterywhere Exa writes rows it must later inspect
exa-masteryauto-fixmiddleware bypass = build error class
system-maparchitectmap must reflect canonical-home rules
auto-fixsystem-mapfixes need the connection graph
quarterbackaudit-qualitysequencing gated by the maker-checker
market-analystwriterlisting taxonomy feeds copy
storytellermarket-analystnarrative must respect the band taxonomy
writerstorytellercopy coherence with trust story
audit-qualityquarterbackchecker must know the wave order
tech-translatorwriterplain-English must match shipped copy

Two voting passes — 3 new skills

CandidatePass 1Pass 2 task-fit testResult
migration-reconciler3Owns auto-fix + data-architect drift tasks; absorbs cost-ledger unificationADDED #1
reveal-gate (anon→Zoom→reveal)2Maps to ≥4 tasks; core marketplace invariantADDED #2
off-platform-sentinel1Literal solution to the off-platform-workaround hole; maps to exa-mastery taskADDED #3
audio-purge-enforcer1Better as a DB audio_purged_at NOT NULL CHECK than a skill→ constraint
anon-gate (doc content)1Overlaps reveal-gate + existing Blind-First rulefolded
cost-ledger unifier1Folded into migration-reconciler per quarterbackfolded

Opt-outs: none. architect, data-architect, quarterback all OPTED IN — each judged its assigned slice squarely within skill scope. Full 12-agent roster stands.

Journey (Phase 0): Read skills/maxswarm/SKILL.md, then counted __NNN__ files in skills/maxswarm/notebook/ (37) and previous_swarms/ (26) → locked run 032. Ran skills/maxswarm/currency/leaderboard.json for the 11 named agents. Dispatched architect/data-architect/quarterback as live sub-agents; each returned 3 votes + an opt-in. Tallied votes, ran the Pass-2 "is any task perfect for this skill" test against their merged assignment lists, demoted audio-purge to a CHECK constraint. (74 words)

Agent-by-Agent Hardening Plan (merged 3 waves)

Quarterback owns integration; architect owns placement; data-architect owns schema. Rule enforced: one writer / one validator per seam — never both edit. Truth freezes before launch surfaces start.

Wave 1 — Foundations (freeze ground truth; all four land before Wave 2)

AgentTaskDone-when
data-agentIntrospect 239 tables; flag ~90 empty for drop; spec the catalog↔metrics join-bridgeinventory/audits/empty-table-triage.json + bridge spec
data-architectReconcile 140 migration files vs 18 applied; author marketplace schema (listings_anon, identities, engagements, transcripts, ban_list) with reveal/purge invariants as CHECK constraintsmigration applies clean; invariants DB-enforced
architectAdd vercel.json + .nvmrc + engines (Node 20); branch hygiene plan for 146→active3 config files committed; prune list produced
exa-masteryRun /exa-audit; kill bypasses of engine/lib/exa_middleware.py; add off-platform-contact signal to enrichment output0 bypasses; offplatform_signal_score on engagements

Wave 2 — Wiring (depends on Wave 1)

AgentTaskBlocked by
system-mapRebuild repo→service→table map + 3-ledger / 6-schema-migration diagramdata-architect
auto-fixRepair 4 frozen GitHub crons + ~9 uninstalled LaunchAgents; fix com.nextchapter.sales-agent wrong-machine patharchitect
market-analystDefine banded-financials enum + listing taxonomy (vertical / EBITDA-band / geo)data-architect
audit-qualityBuild audio-purge + anonymization gate-check (record→process→dump)data-agent, data-architect

Wave 3 — Launch-facing

AgentTaskBlocked by
writeroffmarketdealroom.com listing/CIM templates, blind-first; ban/reveal copy keyed to real columnsmarket-analyst, data-architect
storytellerNarrate the "anonymous-to-meet, off-platform=ban" trust story + anon→revealed lifecyclewriter
tech-translatorPlain-English ban/reveal mechanics + data dictionary for the 5 new tablesstoryteller
quarterbackRun scripts/apply-to-all-gate.sh across all 18 deal slugs before launchALL
Journey (plan): Briefed architect (opus), data-architect, quarterback with the extracted facts and the Off Market Deal Room spec. data-architect grepped and confirmed zero marketplace/listing/ban schema exists today — greenfield. quarterback resolved the architect↔data-architect cost-ledger + catalog-bridge seam by assigning data-architect as schema writer, architect as placement validator. I merged three overlapping slices into three dependency waves, dropping duplicate task assignments. Files cited: inventory/deals/registry.json, engine/lib/exa_middleware.py, launchagents/. (73 words)

Q1 — Technology Stack & Versions (source-of-truth cited)

TechnologyVersionSource of truth
Next.js16.2.3 (exact pin)package.json L49 — two apps, both pinned
React / React-DOM19.2.4 (exact)package.json L53–54
Tailwind CSS^4 (+ @tailwindcss/postcss ^4)package.json L69,61
TypeScript^5package.json L72
Node.js (runtime)25.8.1node --version · CI pins Node 20 (mismatch)
npm11.11.0npm --version; single package-lock.json (377 KB)
Python3.14.3 (brew also 3.12.13)python3 --version; engine/pyproject.toml requires ≥3.10
PostgreSQL (Supabase)psql 18.3 client · @supabase/supabase-js ^2.103.3psql --version; package.json
Supabase CLI2.75.0 (latest 2.101.0 — outdated)supabase --version
Claude Code CLI2.1.90claude --version
@anthropic-ai/sdk^0.93.0package.json
Doppler3.76.0doppler --version — wraps every LaunchAgent
Vercel CLI50.37.3vercel --version; no vercel.json in repo
GitHub CLI2.89.0 (brew tracks 2.88.1 — PATH drift)gh --version
Tailscale1.96.4 (go1.26.1)tailscale version
Homebrew5.1.14brew --version
Zod / Zustand^4.3.6 / ^5.0.13package.json
Vitest^4.1.5 (test runner)package.json devDeps
pdf-lib / pdfjs-dist^1.17.1 / ^5.7.284package.json
Slack SDK (web-api / socket)^7.15.2 / ^2.0.7package.json
Google APIs (maps/auth)@vis.gl/react-google-maps ^1.8.3 · google-auth-library ^10.6.2package.json
Python libspsycopg2-binary, requests, jinja2, python-docx, yfinance, pyyamlengine/requirements.txt (range-pinned ≥)
launchd (Mac scheduler)macOS Darwin 25.5.017 plists in launchagents/
Ollama / MLX (local LLM)0.18.2 / 0.31.1brew list --versions
ffmpeg / pandoc / poppler / libreoffice8.1 / 3.9 / 26.03 / 26.2.3brew list (doc/media pipeline)

Absent that the brief assumed present: no apps/deals Vite app (does not exist — only apps/phoenix-lunch, a 2nd Next.js app); no Vite dependency; no .nvmrc; no engines; no packageManager; no vercel.json; no Docker; no asdf .tool-versions.

Journey (Q1): Read root package.json line-by-line for pins, then engine/requirements.txt and engine/pyproject.toml for Python. Ran each CLI's --version and brew list --versions for system tools. Checked for apps/deals/package.json — absent; find apps showed only phoenix-lunch. Grepped for .nvmrc, vercel.json, Dockerfile, .tool-versions — all absent. Cross-checked CI node-version in .github/workflows/sync-*.yml → pinned 20, runtime is 25.8.1. (72 words)

Q2 / Q3 — Expert vs Weak Usage, per Technology

EXPERT = configurations/data proving deep, idiomatic use. WEAK = unused or mis-used capability, with the cited evidence.

Claude Code / Agent SDK

EXPERT
  1. Skill-as-architecture. 100 SKILL.md skills (skills/*/SKILL.md), the largest swarm-build at 48,216 chars — a self-built multi-agent OS predating native multi-agent support.
  2. Maxswarm currency economy. 11 agents earn/spend "currency" in skills/maxswarm/currency/leaderboard.json (storyteller leads at 322); cross-read + dissent phases hard-coded into the skill contract.
  3. Dual-layer journaling. 96 journal files + 37 run notebooks + 89 contributions split CTO-mechanics from PM-plainspeak (notebook/_template.md).
  4. Master rules as blocking gates. AGENTS.md encodes 8 BLOCKING rules (No-Orphans, Blind-First, Apply-to-All, Sample-vs-Expand) enforced by agents pre-completion.
  5. Skill-sync fleet replication. skill-sync.yml writes a Supabase row on every skills/** push; com.nextchapter.skill-sync LaunchAgent polls every 30s so all machines inherit skill edits.
WEAK
  1. No skill-call telemetry. Skills are file-based; feature_metrics logs only 24 dotted-keys — none of the 100 skills' invocations are counted. You cannot answer "how often did /hunter run."
  2. Skill bloat unmonitored. Top-6 skills exceed 25 KB; no length budget or audit-skills gate runs on size.
  3. Prompt caching not evidenced. @anthropic-ai/sdk ^0.93.0 present but no cache-control config found in scripts — repeated context paid full price.
  4. Subagent MCP gap acknowledged but unautomated. maxswarm notes subagents can't inherit MCP perms; conductor pre-fetch is manual, not wired.
  5. Model-selection drift. Global CLAUDE.md says "default sonnet, opus only for architecture," but no enforcement; model choice is per-invocation discretion.

Supabase / PostgreSQL

EXPERT
  1. Deep relational deal graph. 239 tables / 4,143 columns / 137,789 rows; deal_target_sources alone holds 40,232 rows feeding the enrichment pipeline.
  2. Views over tables. nc_contacts is a 6,853-row VIEW — derived layer kept separate from base contacts (13,293).
  3. Provenance everywhere. dossier_provenance (2,322), company_aliases (2,006), contact_scores (5,582) — enrichment is auditable, not black-box.
  4. Process telemetry. process_runs, dossier_runs (1,638), enrichment_runs, tam_ring_runs log agent execution.
  5. Archive schema discipline. Heavy historical TAM data parked in archive_2026_04_22.*, keeping the public schema's working set clean.
WEAK
  1. ~90 empty tables. Of 239 public tables, 90+ have 0 rows — scaffolded and abandoned (e.g. template_test_runs).
  2. Migration drift. 140 files on disk vs 18 in supabase_migrations.schema_migrations vs 31 in a parallel public.schema_migrations — three sources of "truth," no reconciliation.
  3. Three cost ledgers. cost_log (550), archive…tam_cost_log (11,421 JSON rows), process_runs (554) — no unified spend view.
  4. Catalog↔metrics has no join key. feature_catalog_v2 (61 slugs) and feature_metrics (dotted keys) exact-join = 0 rows.
  5. Migration filename dated in the future. 2026_05_28_g__* exists while latest commit is 2026-05-26 — naming/ordering not gated.

Next.js + React

EXPERT
  1. App-router scale. 133 committed page.tsx routes; 104,691 lines of TS/TSX under src/.
  2. Shared-nav enforcement. No-Orphans rule binds every route to src/app/layout.tsx <NavLinks> (most-churned source file, 34 commits).
  3. Build-time guards. prebuild runs anonymize + ui-registry inject + page-dna check; postbuild does git checkout -- src/.
  4. Latest-gen pin. Next 16 / React 19 — both apps on the bleeding edge, exact-pinned.
  5. Deal-room route convention. Deal-First-Then-Clone rule: canonical /deals/<slug>/ first, shortcuts (/hugo) cloned after.
WEAK
  1. 871 static HTML pages bypass the framework (public/**.html) — must inline-copy the header, drift-prone.
  2. No vercel.json — build/runtime/region settings undeclared; deploy config lives only in the dashboard.
  3. Two parallel Next apps (root + phoenix-lunch) with no shared workspace; phoenix-lunch has no lockfile.
  4. postbuild git checkout -- src/ silently discards generated source — surprising and easy to lose work against.
  5. Node runtime (25.8.1) ≠ CI (20) — local builds can pass where Vercel/CI behaves differently.

Git / GitHub · Vercel · Doppler

EXPERT (Git/GitHub) WEAK (Git/GitHub) EXPERT (Doppler) WEAK (Vercel/Doppler)

Exa.ai · Salesfinity · Google/Fireflies · Tailscale · launchd

EXPERT (Exa.ai) WEAK (Exa) EXPERT (Salesfinity/Google/Fireflies) WEAK
Journey (Q2/Q3): For each tech I joined the version source (package.json, brew list) to behavioral evidence: Supabase claims came from pg_stat_user_tables row counts and information_schema; Exa/feature claims from feature_metrics GROUP BY feature_key and process_runs GROUP BY provider; route/page counts from git ls-files 'src/app/**/page.tsx' (133) and 'public/*.html' (871); LaunchAgent drift from diffing launchagents/*.plist against ~/Library/LaunchAgents. Expert vs weak split on presence/absence of config + telemetry. (75 words)

Top-Level Stats — CTO / CRO / CMO

CTO — engineering ground truth
1,191
commits on main
146
branches (56 local · 139 remote)
1
repo · 1 Supabase project
239
public tables
4,143
columns
137,789
public records (212,149 all schemas)
4,721
tracked files
237 K
LOC (105K TS · 105K Py · 28K scripts)
842
Exa calls ($20.62)
1,164
Google calls ($32.70)
~$54.88
total tracked API spend
100
skills
37
notebook entries
96
journal entries (143 repo-wide)
18 / 140
migrations applied / files
133 / 871
Next routes / static HTML

Other LLM/API calls (cost_log): OpenAI 401 · Mistral 111 · Groq 15 · DeepSeek 14. Historical TAM ledger (archive): gemini_flash 6,867 · web_scrape 2,009 · google_maps 1,161 · exa 840 · az_roc 544. Note: brief examples (482 commits / 72 tables / 288 columns / 88K records) are all materially exceeded by the real figures above.

CRO — revenue ground truth
5,155
calls logged (call_log)
2,273
AI-scored calls
49
deals total
4
engaged deals
2 / 2
proposal_sent / hunt_launched
59
meetings recorded

Deal stages: worth_chasing 29 · closed_lost 14 · hunt_launched 2 · proposal_sent 2 · discovery 1 · pre_engagement 1. Engaged set (registry): HR.com (sell), Capstone (buy/proposal), Design Precast (buy/hunt), Loan Mart (sell). 18 active slugs across tiers, 7 blind codenames.

CMO — outreach proxy (no dedicated letters table found; using communications)
174
outbound communications
1,132
inbound
377
internal
1
consolidated domain → os.chapter.guide

Gap flagged honestly: a discrete "letters sent / replies / negatives" store was not located in this pass — communications.direction is the closest proxy. No design standard table exists. (Per Show-The-Work rule: stated as absent, not fabricated.)

Journey (stats): CTO commits via git rev-list --count HEAD; branches via git branch -a; tables/columns/rows via information_schema + pg_stat_user_tables SUM through doppler run … psql "$SUPABASE_POSTGRES_CONN". API counts GROUP BY api_name across cost_log, archive_2026_04_22.tam_cost_log, process_runs. CRO from call_log/call_analysis/deals counts + GROUP BY stage. CMO from communications GROUP BY direction; no letters table surfaced. Skills/journals counted with ls + git ls-files. (74 words)

Top 10 most-run processes (by run count)

#Process (feature_metrics.feature_key)Runs
1exa.search915
2exa.search.linkedin_discover_pass2.audit380
3exa.search.linkedin_discover_pass2251
4exa.websets.url_import_enrich152
5exa.recipes88
6page-dna.view61
7exa.cache_hit55
8exa.websets.url_import_enrich.pass227
9email.editor22
10build.report-status20

Plus process_runs by agent: conductor:stage-d 500 · stage-c 27 · stage-d-repoll 26. 9 of the top 10 feature events are Exa — the platform's center of gravity is enrichment.

Top 10 largest "features" with no run telemetry (largest SKILL.md, zero feature_metrics rows)

#SkillCharsDB telemetry
1swarm-build48,216none
2skill-creator34,218none
3score-bot31,334none
4thread-mine28,085none
5salesfinity-loader26,489none
6ui-touchup25,747none
7maxswarm24,953none
8exa-mastery24,126none
9close223,336none
10pre-flight21,673none

The finding behind the number: no skill writes an invocation row to Supabase, so "biggest thing that may never run" is unprovable from data — these 10 are the largest written artifacts with zero DB trace. Instrumenting skill calls is the unlock.

Top 10 change-velocity features (commits ÷ days since first commit)

Feature def (src/lib/features/defs/)CommitsFirst commitCommits/day*
deals.ts112026-05-060.52
exa.ts102026-05-080.53
misc.ts92026-05-060.43
meetings.ts92026-05-060.43
admin.ts92026-05-060.43
email.ts82026-05-060.38
review.ts42026-05-060.19
letters.ts42026-05-060.19
campaigns.ts42026-05-060.19
call-library.ts32026-05-080.16

*Ratio = commits ÷ (2026-05-27 − first-commit). High ratio = you re-touch it often = it's load-bearing & unsettled. deals.ts and exa.ts are the two you change most relative to their age — the live nerves of the system. (Method note: brief's --follow corrupted rename history; recomputed without it.)

Journey (top-10s): Most-run from SELECT feature_key, count(*) FROM feature_metrics GROUP BY 1 ORDER BY 2 DESC. Largest-untouched: looped wc -c over skills/*/SKILL.md, sorted desc, then cross-checked each top name against the 24 distinct feature_metrics keys — zero matched, confirming no telemetry. Velocity: for each src/lib/features/defs/*.ts ran git log --oneline -- <file> | wc -l and git log --reverse --format=%ad for first date, divided by days to 2026-05-27. (73 words)

Integrations, Sprawl & Rework

Top 5 system-to-system integrations working flawlessly (under hard, rapid change)

  1. GitHub push → Supabase skill_sync_events → LaunchAgent git-pull (every 30s). Skill edits replicate fleet-wide without manual sync. (skill-sync.yml + com.nextchapter.skill-sync)
  2. Notebook push → swarm-publish.ymlpost_run_sync.sh → Vercel deploy. Every swarm run auto-renders to swarm.chapter.guide within ~60s, commits [skip ci].
  3. Doppler → every runtime (LaunchAgents, scripts, Vercel). One secret store feeds 17 daemons + CI + 2 apps; zero .env files. Invisible and reliable.
  4. Fireflies/Gmail/Salesfinity → engine.ingestion.*deal_files (4,263) + call_log (5,155). Hourly conversation intelligence lands structured, Sample-vs-Expand-gated.
  5. Exa middleware → process_runs + feature_metrics + contact_scores (5,582). Enrichment writes provenance every call; 9 of top-10 processes ride this rail.

Top 5 most untapped integrations

  1. catalog ↔ metrics: feature_catalog_v2 and feature_metrics share no key — feature usage can't inform the roadmap.
  2. 3 cost ledgers → cost-watchdog: spend lives in 3 tables; the $9/day breaker can't see a unified number.
  3. Vercel ↔ repo config: no vercel.json — deploy settings can't be reviewed, diffed, or rolled back in git.
  4. Tailscale ↔ machine topology: mesh exists but no ACL/host map in-repo; multi-machine drift (wrong-path LaunchAgent) goes undetected.
  5. Skills ↔ telemetry: 100 skills, 0 invocation rows — no feedback loop from "which skill ran" to "which skill to harden."

Top 5 causes of sprawl

  1. Scaffold-without-fill: ~90 empty tables; 61 catalog features but 24 metric keys — building ahead of use.
  2. Branch accumulation: 146 branches on a 41-day repo, no prune routine, autopublish merges swarm/* to main.
  3. Generated artifacts in git: JSONL/MD logs are the top-churn files (INDEX.md 86 commits) — git tracks machine output.
  4. Naming pluralism: migrations in 2 prefix schemes; cost in 3 tables; agent identities in 5 names — no locked convention.
  5. Static-HTML shadow site: 871 hand-maintained public/**.html pages parallel to 133 framework routes.

Top 5 rework patterns (the "8–12" repeats — the real time-sinks)

  1. Re-discovering existing code before rebuilding it. maxswarm's own known-issues block says ~60% of "build X" finds X half-built; run #010 found /deals/hr-com/meetings (268 LOC) pre-rebuild. Recurs every build cycle.
  2. Re-fixing the canonical-home / orphan problem. No-Orphans + Deal-First + Truth-Lives-With-Deal rules all exist because pages keep getting built at the wrong path then relocated. 8–12+ documented violations.
  3. Re-reconciling migrations / schema state. "live data = applied overrides commit warning" appears across runs #005+; a migration-drift LaunchAgent exists but no reconciler — drift returns each sprint.
  4. Re-anonymizing market-facing docs. Blind-First violations (/hugo, loanmart cim) get caught and re-done per deal; the 10-item checklist is re-run by hand each time.
  5. Re-authenticating / re-wiring third-party MCPs & LaunchAgents. Salesfinity "configured-not-authenticated," 9-of-17 plists uninstalled, wrong-machine path — the scheduler layer is re-fixed repeatedly.
Journey (integrations/sprawl/rework): Integrations traced from .github/workflows/*.yml, launchagents/*.plist ProgramArguments, and engine/ingestion/* module names cross-referenced to their destination tables (row counts from pg_stat_user_tables). Sprawl quantified from the empty-table count, git branch -a, and top-churn git log --name-only | sort | uniq -c. Rework patterns mined from maxswarm's embedded known-issues block in skills/maxswarm/SKILL.md and the recurring AGENTS.md BLOCKING rules (each rule encodes a repeated failure). (75 words)

Strategic Read — Keep, Fix, Day-1, Day-Forever

Top 5 — NEVER let go of (these win long-term)

  1. The skill/agent OS. 100 skills + 11-agent swarm with currency, cross-read, dissent, and dual-layer journals — built before native multi-agent existed. This is the moat; do not simplify it away.
  2. Provenance-by-default. Every Exa call, dossier, alias, and score writes an auditable row. "Audit how the sausage was made" beats a black-box score. Keep it on every new integration.
  3. Doppler-only secrets. Zero .env, one vault, every runtime wrapped. Never regress this for convenience.
  4. Blocking master rules in AGENTS.md. Blind-First, No-Orphans, Apply-to-All, Sample-vs-Expand — institutional memory that survives any single thread. Keep encoding failures as rules.
  5. Sample-vs-Expand on deal content. The instinct to spend $0.06 to never miss a $500K fact is exactly right for M&A. Hold the line.

Top 5 simplest fixes — how you interact with Claude Code (from git/Supabase/migration/entry-point evidence)

TopicFixEvidence
DepthInstrument skill calls — one Supabase row per skill invocation. Turns 100 blind skills into a usage-ranked roadmap.0 skill rows in feature_metrics
ClarityLock one naming convention (migrations, cost, identities). Wire git config user.name once per machine.2 migration schemes, 3 cost tables, 5 author names
Use of featuresBuild the catalog↔metrics key bridge so "what ran / never ran" is one JOIN; retire dead catalog rows.61 catalog vs 24 metric keys, 0 join
Model selectionMake the "sonnet default, opus for architecture" rule a hook, not a guideline.global CLAUDE.md states it, nothing enforces
Entry pointsPin runtime: add .nvmrc + engines (Node 20) so terminal/Mac-mini/CI agree.Node 25.8.1 local vs CI 20; no .nvmrc

Migration behavior read: 140 files / 18 applied / 31 in a 2nd tracker — the lesson (reconcile drift) has NOT been internalized by behavior; a reconciler is still missing despite a drift LaunchAgent existing. Entry-point read: the wrong-machine LaunchAgent path proves multi-machine setup outran its config discipline.

Day-1 — implement now, NOT behavior changes (name + config musts)

  1. .nvmrc = 20 + "engines": {"node": ">=20 <21"} in root package.json. Kills local/CI runtime drift.
  2. vercel.json with {"framework":"nextjs"} + Node 20 + region. Deploy config enters git.
  3. Fix com.nextchapter.sales-agent.plist: repoint /Users/ewinggillaspy/Github/…/Users/clawdbot/repos/next-chapter-os and wrap in doppler run.
  4. SQL view v_unified_cost_ledger = UNION of cost_log + tam_cost_log + process_runs (normalized service/cost/ts). One number for cost-watchdog.
  5. Branch-prune list: git branch -r --merged main → delete-safe set for approval. Cut 146 toward an active core.

Day-forever — long-term winning bets (Off Market Deal Room)

  1. The anonymized shopper's market. Browse anonymous, engage anonymous, reveal only at Zoom. Build listings_anon keyed to blind-codenames.json with $25M+ banded financials — the Blind-First rule becomes the product, not a checklist.
  2. reveal-gate as a state machine. identities table with anon_id ≠ revealed_id and revealed_at null until a platform-mediated Zoom is booked. Identity is earned, not given.
  3. off-platform-sentinel. Scan transcripts/messages for email/phone/"let's take this offline" → permanent ban. The design itself keeps shysters out; the monitor makes the workaround impossible. This is the trust moat.
  4. Transcript-and-meaning-only, by constraint. transcripts.audio_purged_at NOT NULL CHECK — record → process → dump audio. No voice/video storage: lower cost, lower risk, more side-hustler-friendly. Both parties keep back-office deal-room notes.
  5. Make the deal feel modern. Bloomberg-density + Linear-craft listing rooms (your ui-touchup aesthetic) so buying/selling a company feels sleek, insightful, and safe — the experience is the differentiator off-market.
Journey (strategy): "Never quit" drawn from what the data shows is rare and defensible — 100 skills, provenance tables (dossier_provenance 2,322), zero .env, AGENTS.md rules. Simplest fixes mapped each named topic to a concrete artifact gap (no .nvmrc, 0 skill telemetry, 3 ledgers, catalog↔metrics 0-join) found in extraction. Day-1 = config-only, no habit change. Day-forever = the 3 voted skills (reveal-gate, off-platform-sentinel, migration-reconciler) plus the marketplace schema data-architect specced for offmarketdealroom.com. (75 words)

Maker-Checker (audit-quality) & Close

Verdict: PASS-WITH-NOTES. Every number in the data sections is traceable to a cited command or SQL. Honest gaps flagged, not fabricated: (1) no discrete letters table — CMO uses communications proxy; (2) skill-call counts unprovable — no telemetry rows (itself a finding); (3) Exa call count differs by ledger (842 hard / 1,924 feature-event) — both reported with the discrepancy named; (4) brief's example figures superseded by larger real values.

Telemetry gate: this run is an audit (no new runtime system shipped) → exempt. The 3 voted skills will carry telemetry by design (each writes a row). Highlight for Ewing: the single most expensive structural gap is zero skill-invocation telemetry — you operate 100 skills blind to which ones earn their keep.