2026-06-10 — Sell-Phase Action Plan: freeze the platform, fix the products, find the customers
Revision (same day, operator direction): stabilization first, numbers last
There are 0 customers; marketing trails a functional product. Operator reorder: fix what’s broken and what’s about to break — without the fixes themselves breaking load-bearing infra — before any metrics/revenue-reporting work. Workstream order becomes: WS-2 (Fix What’s Broken, expanded below) → WS-3 (COH safety) → WS-4 items 4.2/4.3 only after UAT is green → WS-1 (Trust the Numbers) moves last.Ground truth established 2026-06-10 (live probes + UAT harness, this session)
- Selfprime UAT: 66/68 PASS, 0 failures once sandbox TLS noise (QUIC/ECH) was
eliminated from the e2e runner. Real issues: 2 warnings (sign-out control not
discoverable on
#/more). - Capricast UAT: 71/73 PASS, 1 failure:
POST https://capricast.com/api/sentry/envelope→ 404 — the frontend Sentry tunnel has no backend route, so client-side error reporting is silently dead (fix lives in the capricast repo). Plus 1 warning (sign-out control not discoverable). - Earlier “failing UAT” runs were dominated by
ERR_QUIC_PROTOCOL_ERROR/ERR_ECH_FALLBACK_CERTIFICATE_INVALID— sandbox-network transport noise, not product defects. The runner now forces TCP/TLS (--disable-quic, ECH off, opt-inE2E_INSECURE_TLS=1for MITM’d CI networks).
Fixed and curl-verified this session
Remaining stabilization queue (now the top of the plan)
- Human approval needed: delete the stale
prime-selfCF worker — it serves inbound-oracle code atprime-self.adrper79.workers.devwhile still holding the old Selfprime production secret set (JWT_SECRET, STRIPE_SECRET_KEY, NEON_URL). Deletion is irreversible → operator’s call, per FRIDGE rule 8. - capricast repo: implement or remove the
/api/sentry/envelopetunnel route (client error reporting is currently dead). Requires adding the capricast repo to a session’s scope. - xicocity.com root
/returns 404 (/healthis 200 — the worker has no root route on a customer-facing branded domain). Fix lives in the xico-city repo. - Sign-out discoverability on both Selfprime (
#/more) and Capricast. - Redeploy synthetic-monitor so the corrected
PRIME_SELFservice binding (prime-self-api) takes effect. - Dependabot: 110 vulnerabilities reported on the default branch (47 critical) — triage which are runtime-reachable vs. dev-tooling noise.
- The duplicated-config landmine class: audit every
apps/*/wrangler.jsoncenv.production.nameagainstdocs/service-registry.ymlso no app can deploy over another worker’s name again (the inbound-oracle collision was found by accident). Candidate for a deterministic CI check inconstraints-check.mjs.
Decision
For the next 30 days, Factory enters a platform freeze: no new packages, no new apps, no new admin/control-plane surface. All engineering capacity goes to four workstreams — Trust the Numbers, Fix What’s Broken, Make COH Safe (and calibrate the supervisor doing it), and Point the Machine at Customers. This is the execution plan for the 2026-05-25 alignment decision, which correctly diagnosed the drift (“Factory must not become a feature factory”) but did not stop it: in the three weeks since, commit heat went to admin-studio (~196 commits), supervisor (55), and video tooling (~55), while Stripe revenue in the cost digest stayed at $0, the completion tracker read 0.0% unchallenged, and every customer-facing P2 gap (G16, G17) stayed open while every infrastructure P1 closed.The freeze rule (binding for the duration)
A PR that adds a newpackages/* directory, a new apps/* directory, or net-new
admin-studio routes/screens is out of scope unless it is a named item in this plan.
The litmus test for any proposed work item: “Does this change a number a customer
or operator can see — revenue, signups, uptime, content published?” If not, it
waits.
Explicitly ruled out for 30 days (re-affirming the 2026-05-25 exclusion list):
- New speculative packages (25 of 39 packages already have zero app consumers)
- Supervisor Phase 2 (Worker/DO) work — Phase 1 calibration comes first (WS-3)
- Admin Studio feature expansion beyond what WS-1 requires to display real numbers
- A second monitoring/QA surface of any kind (we have synthetic-monitor, status-prober, prime-self-smoke, qa-tools already)
Workstream 1 — Trust the Numbers (Week 1)
The org’s headline metrics are currently unbelievable, which makes every other decision blind. Nothing in WS-4 can be evaluated until these are honest.Workstream 2 — Fix What’s Broken (Week 1, parallel)
Live outage-class defects on revenue-adjacent surfaces, all older than the newest admin-studio feature.Workstream 3 — Make COH Safe, and calibrate the supervisor doing it (Weeks 1–3)
COH is in production with Stripe wired, ~5% test coverage, no CI gate on deploy, a live/__db/reset endpoint, and hardcoded .workers.dev URLs (G41–G45). This is
the single most dangerous open risk in the portfolio. It is also six well-specified,
template-shaped tasks — exactly the calibration workload the Phase-1 supervisor
needs before it can be trusted with anything (FRIDGE plan-approval gate: first 10
runs per template are human-approved anyway).
One workstream, two payoffs: the riskiest product gets safe, and the supervisor
earns its first blessed templates from real closed work — the only kind FRIDGE
rule 9 allows.
Exit criterion for WS-3: COH cohesion score ≥ 60 (from 25) and zero open P1 gaps
against it; supervisor has ≥4 templates blessed from real merged work.
Workstream 4 — Point the Machine at Customers (Weeks 2–4)
The build phase produced one fully-working loop (the video pipeline) and one two-day-old asset (the factory-core cross-product identity layer). Both are acquisition machinery nobody has turned on.Sequencing
Exit criteria (the 30-day review answers these, with evidence)
- STATE.md shows believable completion numbers and a real revenue line per product (even if $0) — Stage 2’s own “are people buying?” question, finally answerable.
- Zero red health probes; zero approved-idle PRs older than 48h.
- COH: cohesion ≥60, G41–G46 closed, no destructive prod endpoints.
- Supervisor: ≥4 blessed templates with
template_statsrows from real merged work. - ≥8 videos published across ≥3 brands; PostHog shows cross-property traffic.
- A customer can be heard: cancellation reasons + support email land in factory_events.
Budget
Fits inside the existing alignment-doc cost posture. Incremental spend: supervisor calibration runs at $5/run hard cap (FRIDGE rule 5), video renders ride existing GitHub Actions free minutes + ElevenLabs/Stream per-video pennies, Anthropic stays under the $50/day cap. No new SaaS lines.What this plan deliberately does NOT do
- Build supervisor Phase 2, new packages, or new monitoring/QA/admin surface
- Populate the 25 orphaned packages with consumers “for completeness” — only
crmgets a use-it-or-retire-it decision (4.3) - Touch wordis-bond, pricing experiments, or the AI-tokens SKU (all stay deferred per 2026-05-25)
- Pretend marketing strategy is solved — WS-4 builds channels; GTM strategy remains the operator’s quarterly customer-gate work
Revisit when
- Any exit criterion is met early → pull the next item forward; do not backfill with platform work.
- The 30-day review lands → decide whether the freeze lifts, extends, or converts into a standing “customer-visible numbers first” FRIDGE rule.
- Real revenue exceeds $0 → trigger the alignment doc’s existing re-tier rule (platform cost vs. 10% of revenue).