prospects\2026-08-03.md — mark SENT in the log after
2
📌 GBP appeal pending (submitted 2026-08-02)
standing reminder — check it off in chief-of-staff-agent.md when done
3
📌 Gemini API key rotation
standing reminder — check it off in chief-of-staff-agent.md when done
Bottom line
$1,485
potential pipeline — 3 active prospects × $495 if each closes as a Quick Win (drafted 1 · sent 2 · follow-up 0)
2Sent, awaiting reply
1Posts produced
0Opt-outs
The team — 8 agents, draft-first, $0/mo
EmailON DUTY2h · 8–6
ContentFRESH7:01a
ProspectsFRESHwkdy 7:33a
HealthON DUTY6:37a
ChiefFRESHMon 8:37a
MarketFRESHWed 7:07a
NewsFRESHThu 8:19a
ManagerON DUTY7:01p
Manager proposals — approve via directives.md
Google-review responder agent — build the moment the GBP appeal is approved. Benefit: every review answered within a day, local SEO signal.
Invoice-chaser agent wired to the paypal-invoicer app — needs a design chat with Steve first. Benefit: unpaid invoices never slip.
Add `reply` + `ring` columns to contacted-log.csv and score sourcing channels by reply rate instead of rubric points. Benefit: the prospect agent is at 94% on its own rubric and has zero outcome data — it is currently optimizing against its own judgment, not against what earns replies.
1. §1 still describes the old hardcoded 5–6 page list; `site-check.js` now
2. §3 still describes a two-outcome deploy audit. There are three —
3. §5 says "if Gmail is available, draft the alert." The Gmail tool is
4. The JD does not mention the peer-liveness duty (no deploy entry *and* no
1. ~~**Add a YouTube option** to the question.~~ **DONE 2026-08-03** — Steve
2. ~~**Name one owner** for a shared attribution ledger.~~ **DONE 2026-08-03**
Recent manager changes
2026-08-03 (late) — **PROSPECT CAP RESOLVED: 25–60 RESEARCHED/WEEK, 15/day max** (by Claude, at Steve's direction). Supersedes the 30/day cap Steve set earlier the same day (change above), which was itself a raise from 8/day. The conflict was surfaced by a JD cross-reference: `ROLE-sales-development-rep.md` targets 25–60 researched **per week** while the brain capped 30 **per day** — 150/week, a 3× disagreement between two documents describing one role. Steve ruled the weekly figure correct. Why it matters beyond tidiness: Ring 1 holds an estimated 1,200–1,800 qualified businesses, so 150/week consumes the entire home territory in a few months rather than the ~year the TARGET AREA depletion maths assumes, and Ring 1 is where the "I'm a few minutes up the road" hook — Steve's single best differentiator — is true. Updated in four places, all of which asserted the number independently: (1) `prospect-agent.md` HARD LIMITS — week is now the governing unit, 60 is a ceiling that redirects Thu/Fri to the sequence and call list once hit, 25 is a floor whose breach is reported as a *sourcing* failure by channel name and never as a reason to lower the gates; (2) `prospect-agent-reviewer.md` — its standing rule to "restore" an overruled cap would have reverted this on the next tuning round, exactly as it once tried to restore 8; it now names all three historical values so no future round re-litigates a settled number; (3) `agent-manager.md` COMPLIANCE SWEEP — now checks the week-to-date total, since a run that looks compliant daily can still blow the week; (4) `agent-manager.md` safety invariants. Not touched: this log and `reviews\FLEET-REVIEW-LOG.md` record the earlier rulings as history and are append-only — the entries above stating "30 researched/day" were true when written and stay. Sends unchanged at 5–10/day by Steve's hand; this remains a research cap, not a send cap.
2026-08-03 (late) — HEARTBEAT COMPLETED (follow-on to change 124, by Claude with Steve). The manager's evening tweak added the heartbeat write but left it half-wired; three gaps closed: (a) site-health-agent.md's closing rule still said "never edit files," contradicting the new instruction to write the heartbeat and the DEPLOY AUDIT instruction to set `Status:` — rewritten as a narrow, explicit two-file allowance (heartbeat line, DEPLOYS.md status line), append-only, everything else still forbidden; (b) added the SKIPPED convention so an unperformable check is never silently counted as passed; (c) chief-of-staff-agent.md gained gather step 5b — it now reads `health\` for the last 7 days, treats a MISSING DAY as "the monitor did not run" (never as "site was fine"), quotes FAILED/SKIPPED lines verbatim, and escalates an empty window into TOP 3. Without 5b the heartbeat was being written and never read, which is the whole reason it exists. Guardrails strengthened, none weakened.
2026-08-03 (late) — **SDR JOB DESCRIPTION: cross-reference audit, 3 breaks closed** (by Claude, with Steve). The JD (`ROLE-sales-development-rep.md`) and the brain's new WEEKLY RHYTHM / MEASUREMENT / CALL OUTCOMES sections and the 13-column log schema were all written in a concurrent session; this entry covers only the audit of the seams between them. (1) **Reply rate was structurally uncomputable.** `prospect-agent.md` assigned `date_sent`/`date_replied` to "the email agent's reconcile," while `email-agent.md` step A2 said "do not change any other column" — so the two date columns had a reader and no writer, and reply rate, the headline metric of the entire JD, would have reported 0% forever. Reconcile already *detects* both events (`sentTo[].at`, `repliesFrom[].at`) and was throwing the timestamps away. Email agent now owns exactly four columns: status, notes, date_sent, date_replied. (2) **`outcome` was misassigned to reconcile** — a mailbox cannot see a phone call, so the CALL-* half of the funnel (two-thirds of prospects) would never have been measured; ownership moved to the prospect agent. (3) **`prospect-agent-reviewer.md` still enforced "max 8/day"** and a ~150-line ceiling — it would have "restored" a cap Steve overruled at 30 and cut the new measurement sections to make the line count; both corrected, with an explicit rule never to cut a measurement or safety section for length. Verified safe: `email-connector.js` reads the log by position (business=0, status=3, date=4) and never writes it, so the new columns break nothing. NOT done, flagged to Steve: two job descriptions now exist for this one role (`ROLE-sales-development-rep.md` and `prospect-agent-JOB-DESCRIPTION.md`, written a minute apart) — deleting either is his call, not the manager's.
2026-08-03 (late) — **DUPLICATE JD RESOLVED — merged, then removed** (by Claude, at Steve's direction). Two job descriptions existed for the one SDR role, written a minute apart. Kept `ROLE-sales-development-rep.md`: it is the referenced one (`prospect-agent.md` line 10 points at it) and it matches the convention the other three agents follow (agent-manager → ROLE-agent-operations-manager, email-agent → ROLE-inbound-response-manager, newsletter-agent → ROLE-marketing-email-manager). `prospect-agent-JOB-DESCRIPTION.md` was referenced by nothing. Before deleting it, five things only it had were merged into the survivor: (1) **pipeline-vs-capacity as a failure mode** — more pipeline than Steve can deliver is not a win, leads go cold waiting and a slow response contradicts what TechD sells; (2) consult→project rate and revenue per 100 prospects, the numbers that actually pay for the role; (3) the real deliverability thresholds — complaint rate under 0.1% with Gmail enforcing near 0.3%, and Postmaster domain reputation High/Medium; (4) link-check pass rate at 100% as a measured metric, since that is the rule the drafts keep breaking; (5) a quarterly territory review that asks whether outbound still beats referral and inbound — the SDR is expected to answer that against the numbers even when it argues against the role's own existence. A copy of the removed file is in this session's scratchpad if anything was missed.
rebuild: node build-dashboard.js · task the team: directives.md · retrain an agent: edit its brain .md