Stop the lead scoreboard counting Akash's test phone as transfers
Done when: [ungated] owner=Claude workstream=ws-1-transfers Collector is already correct (scorecard_weekly reads 13). The inflated 25 is on the dashboard page only. Find the view, add the is_test filter, redeploy. --- *Technical notes (for agents)* * Internal id: 099bef71-45ef-4420-a901-35ad9e5e2104
agentInbox43d
details
- keyinternal id: discipline-rail/ws-1-transfers
Remove the hard ZIP 75/76 filter that deletes leads before they reach the database
Done when: [gated-approval-pack] owner=Akash workstream=ws-2-approval-pack GATED: this is in the approval pack. It changes which leads reach the system, and the quality check derives city from ZIP, so it has to ship with the city fix or the city-never-disqualifies rule cannot take effect. --- *Technical notes (for agents)* * Internal id: 8a9970bd-7efd-46e4-b3d8-85e61db5dd65
agentInbox43d
details
- keyinternal id: discipline-rail/ws-2-approval-pack
Fix the client report date stamp rendering from the viewer's browser clock
Done when: [ungated-preview-first] owner=Claude workstream=ws-2-approval-pack Page says 'Updated today' on any device on any day forever. Client-facing surface, so preview to Akash before deploy per the preview-before-deploy rule. --- *Technical notes (for agents)* * Internal id: 9972a856-2ea1-4aa8-8545-e1675ad58cd8
agentInbox43d
details
- keyinternal id: discipline-rail/ws-2-approval-pack
Restart the qualified-conversation classifier
Done when: [ungated] owner=Claude workstream=ws-2-approval-pack Stopped writing qualified flags 2026-07-22; ~500 conversations since are unmarked and nothing alerted. Read-only to humans - no message is sent by restarting it. --- *Technical notes (for agents)* * Internal id: e8610ba3-5c76-47ab-a9cd-adee35124fc7
agentInbox43d
details
- keyinternal id: discipline-rail/ws-2-approval-pack
Ship rolling enrichment so a late phone number still transfers
Done when: [gated-approval-pack] owner=Akash workstream=ws-2-approval-pack GATED: in the approval pack. Changes when a transfer fires to a real person. This is the Danny LaPorta bug - qualified on two words, phone arrived 52 seconds later, nothing re-read it. --- *Technical notes (for agents)* * Internal id: c37dacde-0931-44cf-98eb-fb8b03a38366
agentInbox43d
details
- keyinternal id: discipline-rail/ws-2-approval-pack
Rebuild the pipeline stage writer
Done when: [ungated] owner=Claude workstream=ws-2-approval-pack Nothing has written a stage since 2026-07-22. The Jul-25 cutover retired the old logic with no replacement, so the only writer can demote a lead to needs-review with no path back up. Real build, hours not minutes. --- *Technical notes (for agents)* * Internal id: 884d7446-c297-4b7c-bfb2-d346f91ff05b
agentInbox43d
details
- keyinternal id: discipline-rail/ws-2-approval-pack
Repair future-only foundation SMS/email replies and prove the paused release
Done when: B2B ONLY, owner Akash. Page creation is Akash’s parallel work; he explicitly removed page/lead-volume proof from sales launch checks. Do not request claim evidence, change copy, or touch B2C systems. COMPLETED: approved2-email sequence installed paused, live email reply handler draft-only, SMS engine/workflow inactive with immutable burst, handoff polling repaired, service website sweep, narrow copy gate update. Page-proof gate removed from engine, SQLclaim and bothpreflights; store owner-managed/unverified metadata honestly. Emailhours09–17Eastern weekdays,48/day unchanged. Inventory16SMS/39email eligible under current checks. REMAINING: fresh-only cohort release and deliverycanary; no release/cohort enrolled, no sends yet. Exclude historical604companies, suppressions and existing client territories; never reactivate oldcampaign158members. Current-task go-on-all authorizes B2B work; future sessions cannot relay that authorization for outward sending. Bare ET email timezone abbreviation not extracted; full reply retained for manualverification. Preview:conversation-preview.html. Rollbacks:Texas101122, pagegate101269, workflow101227, hours101271.
agentNext3d
Proof: /Users/akash/Workspace/Claude/01-Projects/StPierre-GTM/outbound-rebuild-2026-09-08/conversation-preview.html — 85enginechecks pass after removing page gate.3DBhandoffregressions passed; previous29email/19DB/8history/16gate/7deploy/12websitechecks. Ema
details
- keyinternal id: 2026-09-08-50-per-day
Prove the simplified operating routine during one real working day
Done when: Use existing Home/Sales/Delivery and installation.html#tests. Record actual control-check minutes and fulfillment minutes once; verify one real sales next action and one exact-client delivery receipt. Pass only if no promise is lost and control checks fit the proposed15minutes. Local visual/public deployment not yet verified. No date invented.
akashNext4d
details
- keyinternal id: scalable-os-2026-09-06-real-day
Fix the alert watchdog that has never delivered a single alert
Done when: Claude fixes inverted heartbeat watchdog (0 alerts ever delivered; cap eaten by false alarms); Akash: 'resume the worker' + alert-cap decision --- *Technical notes (for agents)* * Internal id: 2bb3863e-f9e4-4499-a4dc-9b68d92b5654
agentNext40d
details
Restore the 11 missing assets, rebuild, and stage a before/after diff
Done when: Claude restores 11 Drive-evicted assets, rebuilds, stages before/after diff; Akash: one-click 'ship it' --- *Technical notes (for agents)* * Internal id: 5ad57116-e6a9-46ce-8a4a-5c4ec7122773
agentNext40d
details
Truth-sync the market page ids and dress the Texas pages
Done when: Claude truth-syncs page ids + dresses TX/ATX under the existing 15:41 go + re-casts queue to state grain; Akash: 29 states or 50 + OKC rename call --- *Technical notes (for agents)* * Internal id: 86a07579-780a-434c-a01d-25f4d20b5371
agentNext40d
details
Rebuild cold email: segmented, offer-based (Akash's Aug-1 spec)
Done when: Rebuild from scratch per Akash's Aug-1 decision batch (old blanket campaigns deprecated, proof-pack angle dropped): * E1 = the '10 new jobs in 90 days' guarantee * Open-no-reply follow-up = 'your website is leaking traffic, free fix' + personalized Loom * Target = the same Texas CL segment as the 40-account call sheet, so email + SMS + calls align Instantly inboxes are 100% warm; campaigns are currently empty drafts (no list, no inboxes attached, no mailing address).
agentNext39d
details
Week of Aug 3 — 25 verified transfers to Dan (B2C rail)
Done when: Twin-25s rail 1. Verified transfers = confirmed receipt, landing with receipts on Dan's board. Current pace ~11 qualified/wk. Replaces the dead Week-of-Jul-27 cards.
agentNext39d
details
Week of Aug 3 — 25 B2B leads for St. Pierre (lead_in entries)
Done when: Twin-25s rail 2. Counted as lead_in stage entries (never sp_client_leads). Replaces the dead Week-of-Jul-27 cards.
agentNext39d
details
Week of Aug 3 — get New Convos back on target
Done when: **New Convos is behind this week. This card exists until that number moves.** * **Where it is right now:** 2 * **Where it should be by today:** 6.2 * **How far behind:** 4.2 short * **Where it needs to be by Sunday:** 7.8 Owner: Akash. Pick the one change that adds to this number this week, and do that. If nothing on this card will move it, close the card — it will not come back until next Monday, when the week is scored again. --- *Technical notes (for agents)* * Number: `new-convos` · week starting 2026-08-03 * Numbers as of 2026-08-07 * Written automatically by the metric-card rail (runs 06:30 daily inside the scorecard render). One card per red hero number per week; never a second one.
agentNext35d
details
Week of Aug 10 — get CL Qualified Leads back on target
Done when: **CL Qualified Leads is behind this week. This card exists until that number moves.** * **Where it is right now:** 25 * **Where it should be by today:** 30 * **How far behind:** 5 short * **Where it needs to be by Sunday:** 30 Owner: Akash. Pick the one change that adds to this number this week, and do that. If nothing on this card will move it, close the card — it will not come back until next Monday, when the week is scored again. --- *Technical notes (for agents)* * Number: `cl-qualified-leads` · week starting 2026-08-10 * Numbers as of 2026-08-10 * Written automatically by the metric-card rail (runs 06:30 daily inside the scorecard render). One card per red hero number per week; never a second one.
agentNext31d
details
Akash: authorize the permission fix needed to store the LoopMessage key securely
Done when: The key is safe as a Cloudflare worker secret, but the database vault write is blocked by create_secret permissions. Permission changes require Akash’s direct approval.
akashWaiting21d
Needs you: akash
details
- keyinternal id: handoff:2515:next:2
Akash: record the Austin retention Loom from the completed-card kit
Done when: Four complete cards landed and the Loom kit is ready. Ten minutes on camera protects a paying client; use the completed-card branch.
akashWaiting21d
Needs you: akash
details
- keyinternal id: handoff:2516:next:2
Akash: record the refreshed Dale Otto Loom for Able Concrete
Done when: The seven-minute $6K Minnesota pitch is recording-ready with live Dallas numbers and honest live-test wording.
akashWaiting21d
Needs you: akash
details
- keyinternal id: handoff:2520:next:1
Decide whether to publish the staged Weekly Surfaces guide
Done when: The live dashboard rollout is complete. Publish only if the guide remains useful as the durable operating reference; otherwise graduate or archive the staged file.
akashWaiting21d
Needs you: akash
details
- keyinternal id: handoff:2523:next:1
Identify and classify the $1,498.55 Stripe transaction
Done when: The Finance room still treats this as uncategorized; the correct category depends on what the charge actually was.
akashWaiting21d
Needs you: akash
details
- keyinternal id: handoff:2523:next:2
Akash: explain why the B2B SMS Canary-20 was rejected
Done when: Name the failed dimension—copy, lead selection, evidence findings, or timing—before any rebuild. The old batch is void and unsent.
akashWaiting21d
Needs you: akash
details
- keyinternal id: handoff:2524:next:1
Clean the two AlphaLift test cards and appointment requests in DripJobs
Done when: UI-only cleanup remains on Austin’s board. Deletion is irreversible, so Akash should explicitly authorize or do the manual dismiss in the logged-in UI.
akashWaiting21d
Needs you: akash
details
- keyinternal id: handoff:2525:next:2
Approval gate: cold SMS/iMessage remains disarmed — define compliant audience and controls before activation
Done when: No list import or activation. Approval requires named audience, lawful basis/consent, sender identity, opt-out, suppression, quiet hours, monitoring, rollback, and exact send scope. Current inspected follow-up configs are disabled. Source: /Users/akash/Documents/Claude/_deliverables/2026-08-17/outbound-operating-system-reset-completion-sow-2026-08-17.md
agentWaiting24d
details
- keyinternal id: local_550c2bd5
Approval gate: pause the unsafe Level King follow-up rail before any re-arm
Done when: Exact read-only proposal: change GHL workflow 06110f40-9a9e-4485-afd1-4aeb6f64bbe7 to Draft. Do not activate sends. Rollback is publish only after Level King routing, 08:00–20:00 quiet window, opt-out, human takeover, monitoring, and canary QA pass.
agentWaiting24d
details
- keyinternal id: project-1409-ws1-permanent-2026-08-14
Akash: one word to arm the photo-only reply watcher (WS5) - built and disabled
Done when: NEEDS YOUR WORD - an agent is blocked until you decide. WS5 is built, proven and deliberately switched off, because standing rule: nothing that sends gets armed without your per-instance yes. WHAT IT FIXES: a homeowner who sends a photo with no text never wakes the bot - a Conversation AI agent triggers on inbound text only. Joseph Weaver sent two photos at 18:37 CT on 10 Aug and heard nothing for 13 hours 22 minutes. 8 of the 22 photo-only messages on record went unanswered or were answered hours late. WHAT IS BUILT: public.sp_stage_photo_only_ack plus config row photo_ack_1 (enabled=false). It stages onto the SAME Messenger rail the chase already sends on, so it inherits the decline/stop guard, do-not-contact, booked, the Meta 24-hour window, reply-cancel and quiet hours. Copy is not new: the bot's own photo line plus the approved chase phone ask. Proven end-to-end in a rolled-back transaction; a live call today stages zero rows and refuses to write while disabled. TO ARM: (a) UPDATE public.sp_followup_config SET enabled=true WHERE kind='photo_ack_1'; (b) add one node to n8n hulsPXFVJaIlF5Kv calling SELECT public.sp_stage_photo_only_ack(NULL,false) before 'Claim due nudges'. (c) ONE DECISION FOR YOU: the send leg holds every Messenger nudge to 08:00-20:00 CT. A photo acknowledgement is a reply, not a nudge, so under your D2 ruling (bot answers 24/7) it arguably should be exempt. Left as-is on purpose - your call. Source: 01-Projects/St_Pierre_Digital/lead-transfer-automation/build_ws5_photo_ack_watcher.py
agentWaiting24d
details
- keyinternal id: project-1409-ws5-arming-2026-08-14
Zero-Park verdicts: 8 stuck leads need chase-or-close (no sends fired)
Done when: Zero-Park triage 2026-08-02 (worker 4, resume fleet). 13 stuck qualified-but-untransferred leads released into explicit dispositions — ZERO messages sent, all queues proven unchanged. 8 need your chase-or-close verdict: Trace Mills (qualified off 'Nothing' - requalify or close) | John Krebs (declined - close) | Chazz Michael Michaels (joke/spam - close) | Julie Johnson (declined - close) | Donnie Jenkins (patio = out-of-scope - close or override) | Tule Gerry Alfaro ('will call when I need you' - close) | Coco Frias-Cox (concrete pour = out-of-scope; GHL says ai-dq - close) | Jerry Maassen ('I am not a customer!' - close). 4 are chase-flagged awaiting the follow-up copy approval (Mike Yeo, Mei Flower/photo-quote, Jeff Loiacono/expects Monday callback, Pam Santone/offered photos) - their Messenger phone re-asks sit pending+config-gated OFF in sp_lead_followups. 1 resolved duplicate (Mike Yeo webhook twin). Full evidence: _scratch/deliverables/2026-08-02/fleet-resume/zeropark-evidence/ · per-lead rows in sp_data_exceptions kind='zero_park_unresolvable'. --- *Technical notes (for agents)* * Internal id: ed42eb4e-be97-459a-b810-2c94f3b09501
agentWaitingops39d
details
- keyinternal id: sp_data_exceptions:zero_park_unresolvable
Name the pages that stay, then fix the fake dates and broken links
Done when: Akash names the 8 canonical pages (list doesn't exist — the real blocker); Claude stages scoreboard v2, fixes fake data ages + broken links --- *Technical notes (for agents)* * Internal id: 5d8333b0-a68c-4ec2-9411-811e9cded1fe
agentWaiting39d
details
Run the 2 bot self-tests (Jean 626 text + Jordan DM)
Done when: The last gate before the bots are trusted on autopilot: 1. **Jean**: text the 626 line (+1 626 325 0175). She is drafts-only - expect a DRAFT in GHL, not a reply text (exception: STOP gets one goodbye then silence). 2. **Jordan**: DM the DFW/Level King page from a **non-admin** Facebook account - expect the transfer text on your phone. Also owed: the WS1 decision - what happens to phone-less packets (8 leads parked on missing phone).
agentWaiting39d
details
Arm the re-engage pack + approve the phone-first bot fix
Done when: Re-engage pack is staged DISARMED ([arm.py](<http://arm.py>)). Arming it starts nudges for stalled leads - nudges land on your desk, transfers go to Dan only. The phone-first bot fix closes the missing-phone leak that parks leads.
agentWaiting39d
details
Say 'resume the worker' + set the alert cap
Done when: The agent-board runner (Hermes dispatch) has been paused since Jul-31 pending your go. The alert-cap decision pairs with the watchdog fix (STP-69). Daily ad waves (STP-51, now Backlog) also resume with this.
agentWaiting39d
details
Give the go: redeploy the blueprint to fix crew-share links
Done when: One click ships it: every crew-share link then resolves to [blueprint.stpierre.ai](<http://blueprint.stpierre.ai>) instead of the old [pages.dev](<http://pages.dev>) host. Diff staged + verified: 9 files / 9 lines, host swap only; 11 evicted PNGs restored. Approval note: _deliverables/2026-08-01/blueprint-rebuild-approval-note.md (has the exact --branch=main command).
agentWaiting39d
details
Call it: 29 states or all 50, and the OKC rename
Done when: Two calls unblock the CL Market Page Factory queue re-cast to state grain. Current state: OKC minted; TX claimed + SU-assigned but undressed (stale page-id broke the dresser - truth-sync is on Claude). Pace: ~2 pages/day/account, serialized, acting as you.
agentWaiting39d
details
Monday feel test: work one approval entirely in Linear
Done when: The keep/kill/change gate on Linear itself: work one real approval end-to-end inside Linear, plus a 30-minute Waiting-column pass. After this pass the Waiting column holds only real decisions.
agentWaiting39d
details
Answer three open questions (builder role, finances, client-history split)
Done when: All three are answered and written down; the builder-role question is settled before any handoff.
akashInboxKeeps the machine running40d
Needs you: Owner rulings.
details
- keyinternal id: G-RULINGS
- triage2026-07-28 CL-focus cleanup: not essential to the concrete-leveling lead engine (B2C/B2B ads, SMS, email, cold call)