Helm Fleet

Eight agents, one product, three days to launch.

9:42:33 PM
refreshes every 15 s

Awaiting Decision

1
Sales · 2330 outbound policy May 23, 9:34 PM
# Approval — Sales outbound policy for week 1

**From:** Sales
**Filed:** 2026-05-23 23:30 UTC
**Default action if no reply by:** 2026-05-25 12:00 UTC (Mon noon, ~36h)

## Ask

Three coupled policy decisions on cold outreach. Affects every outbound message Sales sends starting Tue 2026-05-26.

### Q1. Reddit / FB comment-outbound under day-1 approval rule

Sales charter says: "No sales emails without Matt's ✅ day 1." Does that rule extend to:

- **Reddit/FB comments responding to a small-business owner who is actively asking a public question about MCAs?**

  My reading: yes, every comment goes through Matt in Discord `#approvals` for week 1. After 7 days of clean comments + zero mod removals, unlock comment-only (DMs and emails still ✅-gated).

  Default if no reply: **yes, all comments require ✅ for week 1, including responsive ones.**

### Q2. Free trial vs. lead magnet

Subscription page does not offer a free trial. Many MCA-suspicious owners will balk at $149/mo upfront when they don't know yet if they have a reconciliation problem.

Options:
- **A. Add 7-day free trial.** Requires app PR (Stripe trial period config + UX copy). Tech Architect lift, not sales lift.
- **B. Lead magnet: free "one-time reconciliation snapshot".** Owner uploads contract + connects bank, gets a free 1-page summary showing whether there's a gap; paywall on the full report + letter. App PR + marketing PR.
- **C. Do nothing for launch.** Accept lower week-1 conversion; revisit if data warrants.

My read: **B** is the strongest because it converts the "do I even have a problem?" hesitation into a guided product experience. But B is the biggest engineering lift. **A** is the cheapest. **C** is the most honest "we don't know if it's needed until we have data."

Default if no reply: **C (do nothing for launch).** A and B both require PR work that nobody has scheduled. Park to week 2.

### Q3. Bookkeeper / CPA affiliate program

Bookkeepers seeing MCA draws in client books are a natural channel partner. Today the app has no affiliate tracking. Building it costs ~1 week of TA capacity.

Options:
- **A. Build affiliate tracking for launch.** Diverts TA from blocker PRs.
- **B. Manual referral handshake.** Bookkeeper texts/emails Matt with the customer name; we credit them post-hoc with a Stripe coupon or cash kickback. Doesn't scale beyond ~10 bookkeepers.
- **C. Defer entirely.** Cold-email bookkeepers without an affiliate ask; revisit week 3.

My read: **C**. Asking bookkeepers to refer with no compensation actually reads more honest than a kickback program in the MCA space (where every grifter has a kickback). Cold-email template #04 explicitly says "no affiliate program yet — and I'd rather have your honest recommendation than gate it behind a kickback." That's the right posture for week 1.

Default if no reply: **C (defer affiliate to week 3+).**

## Why this needs a decision before launch

All five outbound templates (`sales/templates/01-...05-...md`) and the community engagement plan in `sales/communities.md` assume Q1's policy. Templates 03 + 04 reference Q2's free-trial / lead-magnet positioning. Template 04 explicitly references Q3's no-affiliate stance.

If Matt confirms the defaults, templates are ready to send the moment Helm goes live + Resend domain is verified. If Matt overrides any of the three, the affected template(s) get a 10-minute edit pass.

## Expiry

If no reply by **2026-05-25 12:00 UTC (Mon noon)**, all three defaults activate. Sales operates under: ✅-gated week 1, no free trial / lead magnet, no affiliate program.

— sales

Roster

Otto

active

otto: catchup — log + spec updates + deletions (autostash race)

29 minutes ago

  • - Inbox: Matt asked for honest read of what Helm is. Posted response at `agents/otto/responses/2026-05-23-helm-overview.md`. Key finding: 18 PRs from 2026-05-08 stuck open including the entire dispute-letter monetization layer (#60/#61/#62) and basic auth (password reset #50, email verify #51, rate limit #55). Triage is week-one P0.
  • - Gaps flagged: no Stripe data accessible from this box (charter promises HELM_STRIPE_RESTRICTED_KEY + Stripe MCP, neither wired), no `customers/` dir or Support agent yet, regulatory edge on reconciliation-letter template (no disclaimer of Helm's role).
  • - Inbox follow-up (17:22 UTC): Matt corrected — Helm not live, no Stripe data to chase. Mandate: production-ready by Tue 2026-05-26. Dropped Stripe-wiring asks. Posted `specs/2026-05-launch-readiness.md` with definition of "production-ready" (4 conditions), launch checklist, all 28 open PRs triaged (7 blockers / 14 should-merge / 7 defer), and gaps no PR covers (Resend domain, Teller/Stripe live creds, error monitoring, backups, TOS/Privacy, support inbox, smoke test). Open question to Matt: is helmhelps.com marketing site ready / separately tracked? Revised week-1 plan posted in inbox.
  • - Inbox follow-up (18:16 UTC): Matt confirmed marketing site is the separate `Turbo-Puffin/helm-marketing` Astro repo, handled independently. Struck the marketing-site uncertainty from the risks section of `specs/2026-05-launch-readiness.md`.

Tech Architect

active

tech-architect: rework #55 (rate-limit option B), open #67 (subscription copy + e2e fix)

2 minutes ago

  • - Autonomy upgrade 2026-05-23 received: merge authority on Turbo-Puffin/helm PRs subject to CI-green / no-major-dep-bump / additive-schema / non-risky-billing-auth gates. Re-armed crons against new cadence (31m work cycle, 14:00 standup).
  • - Repo surveyed: 28 open PRs. Confirmed every "MERGEABLE/UNSTABLE" PR has all real CI checks (scan_ruby, scan_js, lint, rspec) SUCCESS; the only failing check is the Railway `helm - helm-web` preview-env deploy, last attempted 2026-05-08 — stale infra, not code regression. No branch protection on main. Filed `queue/approvals/tech-architect-2026-05-23-1845-helmweb-policy.md` asking Matt to confirm "treat helm-web as advisory" as default policy (24h expiry, default action = treat advisory).
  • - Cloned Turbo-Puffin/helm to `~/workspace/helm`. Set git identity `tech-architect@helmhelps.com`.
  • - Saturday cheap-merge batch (per Otto's spec sequence) — progress on Helm `main`:

Support

active

support: daily standup 2026-05-23

10 minutes ago

  • - Autonomy upgrade 2026-05-23 received. Re-armed crons against new cadence (59m work cycle, 21:00 standup). Re-read charter.
  • - First autonomous work cycle: claimed the "Support inbox" launch-readiness line previously owned by Matt. Filed `specs/support-launch.md` (inbox config options, 24h-SLA definition, per-customer file convention, dependencies/gates). Stubbed four canned replies + auto-responder under `agents/support/canned-replies/`. Created `customers/` dir with README documenting the per-customer file convention. Filed `queue/approvals/support-2026-05-23-2200-launch-config.md` with three asks for Matt (inbox routing option, canned-reply approval, auto-responder approval) — default actions set, expires Tuesday morning.
  • - Second work cycle (22:45 UTC, manual trigger): claimed the Refund Policy half of the launch-readiness "TOS/Privacy/Refund" line. Filed `specs/support-refund-policy.md` (14d monthly / 30d lifetime, broken-feature no-time-limit clause, no-chargeback clause). Filed `queue/approvals/support-2026-05-23-2245-refund-policy.md` (three asks, defaults set, expires Tue morning). Filed `queue/marketing-pending/support-2026-05-23-2245-refund-page.md` (PR a `/refund` page on helmhelps.com with footer + subscription-page links). **Surfaced dispute-letter promise gap as launch refund liability** — app subscription page promises dispute letters / UCC search / AI contract analysis as included, but PRs #60/#61/#62 are deferred to week 2; every customer who signs up Tue-Fri has a clean broken-feature refund claim. Filed `queue/otto-pending/support-2026-05-23-2245-dispute-letter-promise-gap.md` with three options, recommended A (subscription-page copy fix).
  • - **Yesterday (2026-05-22):** agent not yet provisioned; no activity.

Designer

active

designer: ship polish PR #66 (held on red e2e); 2 TA handoffs filed

16 minutes ago

  • - Autonomy upgrade 2026-05-23 received. Re-armed crons against new cadence (61m work cycle, 14:07 standup). Re-read charter — new mandate: design-system audit + self-merge polish PRs on Turbo-Puffin/helm (CI-green non-functional only).
  • - First work cycle (manual trigger from Matt): cloned `Turbo-Puffin/helm` to `~/workspace/helm`, set git identity `designer@helmhelps.com`. Walked `app/views/` against `tokens.css`. Filed `specs/design-audit-2026-05-23.md` with 5 headline findings and per-bucket detail (buttons / spacing / typography / hardcoded values). Identified 3 ship-before-launch fixes within my autonomy (flash a11y, SVG stroke, Stripe submit button classes) — will bundle as one self-merge PR next cycle. Routed 2 functional consolidations (flash partial, auth-shell extraction) to Tech Architect — handoff pending next cycle. Deferred 3 multi-week items (two-shell collapse, compat.css removal, Tailwind-vs-token migration) post-launch.
  • - Headline drift: `compat.css` shim is still load-bearing for 8 view dirs (most of authed app); two app shells (`application.html.erb` + `app.html.erb`) coexist with no documented split; 48 inline `style=` attrs concentrated in auth pages (all use token vars though — drift, not violation).

Sales

active

sales: align launch plan to Finance canon ($1,499 lifetime, 10.1mo breakeven)

12 minutes ago

  • - Yesterday: agent not yet provisioned; no prior activity.
  • - Today: armed inbox-poll (every 19min) + daily-standup (17:27) crons; inbox empty, no queue items, no pipeline yet (Helm pre-launch).
  • - Blockers: Helm not live → no Stripe customer data, no leads; charter tools (Stripe MCP, Resend, Calendar) unwired — pipeline work waits on launch (Otto's 2026-05-26 target).
  • - Autonomy upgrade 2026-05-23 received: re-armed crons against new cadence (67m work cycle, 17:27 standup). Re-read charter — new section directs pre-launch drafting of launch-day sales plan + ICP + templates + community list.

Marketing

active

marketing: pricing alignment shipped on helm-marketing (PR #19) + ack Support refund-page handoff

15 minutes ago

  • - Autonomy upgrade 2026-05-23 received: draft + PR + self-merge authority on `Turbo-Puffin/helm-marketing` (Astro / Bunny CDN / helmhelps.com). Re-armed crons against new cadence (53m work cycle, 14:17 standup).
  • - First work cycle (20:58 UTC): cloned `helm-marketing` to `~/workspace/helm-marketing`, audited the site against the actual Helm app subscription page (`my.helmhelps.com/subscription/new`). Site is mature — 16 blog posts, full page suite, deliberate voice pass landed 2026-05-16 (adversarial-defense → reconciliation-exit framing, em-dashes removed). **Treat current homepage voice as locked.**
  • - **Mismatches found (P0 for launch):** (1) marketing site does not surface the Lifetime $1,400 plan that shipped 4 days ago in #65; (2) marketing's three "one-time add-ons" ($249 Full Case File / $99 Human Review / $179 Multi-MCA Reconciliation) don't exist in the app subscription page, which instead promises AI contract analysis + dispute letters + UCC search **as included in $149/mo**. Filed `queue/approvals/marketing-2026-05-23-2058-pricing-addons.md` with three options (mirror app / reconcile to real SKUs / hold), default A, 24h expiry. All pricing-quoting copy on hold until resolved.
  • - Side finding for Otto: `agents/otto/responses/2026-05-23-helm-overview.md` says monthly is `$49/mo` — actual is `$149/mo` (verified in app subscription template + PR #65 + marketing site). Lifetime ($1,400) breakeven recomputes to ~9.4 months not 28.5. Dropped handoff in `queue/otto-pending/marketing-2026-05-23-2058-helm-overview-49-typo.md`.

Finance

active

finance: revise launch spec to $1,499 lifetime + file 4-question approval ask

18 minutes ago

  • - Autonomy upgrade 2026-05-23 received. Re-armed crons against new cadence (71m work cycle, 13:23 standup). Re-read charter.
  • - First autonomous work cycle: drafted `specs/finance-launch-readiness.md` per charter directive — launch-day cashflow model (5/10/25 customer scenarios at $149/mo and $1,400 lifetime, 90-day projections monthly/lifetime/realistic-mix), vendor cost inventory (Neon/Railway/Resend/Teller/Stripe/LLM with tier-bump triggers), breakeven math (1 customer realistic, 5 worst case), runway projection (cashflow-positive at 5 customers in every vendor scenario), first-paying-customer checklist (Stripe → Mercury → ledger). Caught and corrected $49 → $149 pricing per marketing's 2058 UTC verification (already flagged to otto). Open question list for Matt logged at end of spec (Teller live pricing, lifetime/monthly mix in launch comms, Mercury account separation, sales tax posture before customer #5) — will route via queue/approvals/ next cycle once prioritized.
  • - 23:30 UTC autonomous work cycle: caught Matt's 21:17 UTC ruling on lifetime price (=$1,499, NOT $1,400 default) in `queue/approvals-decided/otto-2026-05-23-2200-lifetime-price-mismatch.md`. Updated `specs/finance-launch-readiness.md` end-to-end with $1,499 numbers (net per sale $1,455.23 vs $1,359.10; lifetime/monthly 10.1mo vs 9.4mo; all 90-day-projection lifetime + mix tables; runway sensitivity 58/18/2.4mo coverage vs 54/17/2.2; first-sale checklist header). Then filed `queue/approvals/finance-2026-05-23-2330-pre-launch-decisions.md` consolidating the 4 open Matt questions from spec §5 (Q1 Teller pricing launch-blocker, Q2 lifetime-vs-monthly comms weighting, Q3 Mercury account routing, Q4 sales-tax pre-customer-5) with default actions + Mon-evening expiry. Waiting on Matt's Q1 answer to refine the cost model.

Ops

active

ops: launch-week runbooks + price fix

12 minutes ago

  • - Autonomy upgrade 2026-05-23 received. Re-armed crons against new cadence (73m work cycle, 13:11 standup). Re-read charter.
  • - First work cycle (manual trigger from Matt): filed `specs/ops-vendor-inventory.md` covering 12 vendors (Stripe, Teller, Resend, Neon, Railway, helmhelps.com registrar, GitHub, Bunny, Anthropic, Hetzner, Linear, Measure) plus Cloudflare/status-page/support-inbox provisional entries. Tiered by launch impact (T0 launch-critical / T1 important / T2 utility). Flagged 5 TODO gaps for Matt: domain registrar identity + expiry, Neon retention SOP, master credential vault (recommend 1Password Business), age private-key backup, Cloudflare-in-stack confirmation. Did NOT duplicate the support-inbox proposal — Customer Support already filed `specs/support-launch.md`; Ops will add a vendor/cost addendum instead. Next cycles: runbooks (rotate-stripe / rotate-teller / redeploy-after-bad-merge / postgres-incident) + status-page proposal.

Activity

3570ba7 Wolfgang 2 minutes ago decisions: finance 4-pack — Teller $0.30/acct, lifetime-first comms, Mercury sub-acct pending, Stripe Tax
43e9163 Tech Architect 2 minutes ago tech-architect: rework #55 (rate-limit option B), open #67 (subscription copy + e2e fix)
3437abe Customer Support 10 minutes ago support: daily standup 2026-05-23
5d08665 Sales (helm-fleet) 12 minutes ago sales: align launch plan to Finance canon ($1,499 lifetime, 10.1mo breakeven)
3f69216 Helm Ops 12 minutes ago ops: launch-week runbooks + price fix
bdf2c50 Sales (helm-fleet) 13 minutes ago sales: 5 outbound templates + communities + first-10 + outbound policy approval
f0cf294 Marketing (Helm) 15 minutes ago marketing: pricing alignment shipped on helm-marketing (PR #19) + ack Support refund-page handoff
59ed845 Designer 16 minutes ago designer: ship polish PR #66 (held on red e2e); 2 TA handoffs filed
df5bb27 finance 18 minutes ago finance: revise launch spec to $1,499 lifetime + file 4-question approval ask
8b302ba Wolfgang 24 minutes ago decisions: TA advisory, no Sentry (find agentic alt), lifetime $1,499, no add-ons phase 1, support launch config approved
df35c3f Otto (Helm PO agent) 29 minutes ago otto: catchup — log + spec updates + deletions (autostash race)
7fe2606 Otto (Helm PO agent) 29 minutes ago otto: subscription copy fix + #55 throttle decision
0ff2d2a Wolfgang 30 minutes ago decision: refund policy approved; all product policies live at turbopuffin.com/policies
fe89e00 Designer 36 minutes ago designer: first work cycle — Helm design-system audit
8bd2fa1 Marketing 35 minutes ago marketing: launch blog post merged on helm-marketing (PR #18)
8561bd0 finance 35 minutes ago finance: note pending $1,400 vs $1,499 lifetime price dependency in launch spec
bd3a2cd finance 35 minutes ago finance: draft launch-readiness spec (cashflow + vendor costs + breakeven + first-sale checklist)
c9ef0bc Helm Ops 37 minutes ago ops: vendor inventory + work-cycle log entry
cedd3e0 Otto (Helm PO agent) 36 minutes ago otto: log entry for 22:00 cycle (caught autostash race)
96480df Sales (helm-fleet) 36 minutes ago sales: log first autonomous work cycle (launch plan filed)
714cca0 Sales (helm-fleet) 37 minutes ago sales: draft launch plan (ICP, channels, pricing) + sales/ scaffold
ca8aab8 Customer Support 37 minutes ago support: refund policy + dispute-letter promise gap handoff
79ce0e6 Otto (Helm PO agent) 37 minutes ago otto: pricing corrections + lifetime $1,400/$1,499 launch-blocker
9fd31c5 Tech Architect 37 minutes ago tech-architect: PR#55 spec-divergence back-handoff to Otto (manual cycle)
dec3848 Customer Support 40 minutes ago support: claim launch-readiness inbox line; spec + canned replies + approval
70d21f7 Otto (Helm PO agent) 41 minutes ago otto: error-monitoring spec + Sentry approval ask + TA wire-up handoff
efbe8b2 Marketing 42 minutes ago marketing: first work cycle — site audit + pricing approval
d55d534 Otto (Helm PO agent) 57 minutes ago otto: launch-spec catch-up with TA's Saturday cheap-merge batch
a0209b0 Otto (Helm PO agent) 58 minutes ago otto: blocker-PR review notes + TA handoff + spec updates
3846515 Tech Architect 62 minutes ago tech-architect: cheap-merge batch + helmweb policy approval (2026-05-23)