MVP Frame — 2026-04-30

Brain = expansion engine. Site = revenue engine. Operator UI = deferred for MVP launch.

3Repos
16ADRs
5Phases
9/9SKILLs
🧠 CAMPAIGN-FORGE (BRAIN)

Canonical campaign / ad generation pipeline Phase 5 SHIPPED 2026-04-27

Owns Psychology Engine, campaign strategy, copy/creative generation, campaign artifacts, schemas, ADRs, validators, tracking worker, expansion routing logic.

🌐 CONTENTFORGE (SITE)

Current public site / revenue surface MVP locally complete 2026-04-29

Owns EDU site UX, tools, articles, design system, client tracking, offer routing, email capture, conversion flow.

🏛️ CAMPAIGNFORGE-APP (UI)

SvelteKit wrapper around pipeline + content Operator-deferred for MVP

Spine + agent executor scaffolded; full operator-platform vision preserved on the Platform page. Rebuild post-revenue.

🧭 What this page shows: The 5-document spec bundle, the 16 ADRs, and the 5-phase execution plan below all remain the target-state architecture. Status badges on each section show what is active for MVP versus dormant / awaiting partner / future-quarter. Full vision preserved — jump to Broader Vision Preserved.
7
Spec Pages
16
Numbered ADRs
5
Execution Phases
9 of 9
Pipeline SKILLs Shipped
329
Pytest Passing
9+
Verticals Supported
Platform Spec (Ops App)
ContentForge (Content Sites)
Trust Framework (Accounts)
Execution Plan (Timeline)
Operator Runbook (Daily Ops)
1 System Architecture — 4 Layers
Edge → Application → Data → External. Each box is color-coded to the spec document that defines it.
Edge Layer — Cloudflare (User-Facing)
🌐

Content Sites (Cloudflare Pages) Active for MVP

degreesources.com + future verticals. Astro + Svelte islands. Static HTML, zero JS on articles, ~5 KB per tool. Auto-deploys from GitHub. Conversion-ready MVP build complete locally 2026-04-29 (54 pages, 10 tools, Lighthouse 95+ desktop). DNS cutover operator-gated.

ContentForge Spec
📊

Zaraz (Server-Side Tracking) Operator-gated

Event taxonomy locked in docs/tracking-contract.md: tool_viewtool_startstep_completetool_completeemail_capturecta_clickpartner_redirect. Container ID present in tracking.json; auto-inject + dashboard configuration is operator setup.

Platform Spec §2.2

Workers (CAPI Relay) Code complete

Cloudflare Worker at workers/capi-relay/. POST /events + POST /events/single + GET /postback (Everflow S2S → Meta Purchase) all implemented and typechecked. Google Ads + GA4 ride client-side via Zaraz for MVP. Live deploy + secrets operator-gated.

Platform Spec §2.2
📦

R2 (Asset Storage) Future-quarter

Creative assets, generated images, video renders. S3-compatible, zero egress fees. Wired into export-packager output pattern; activates with first paid validation campaign that needs hosted creative beyond local file system.

Platform Spec §2.2
Application Layer — DigitalOcean Droplet via Coolify
🏭

CampaignForge Platform (SvelteKit) Operator-deferred for MVP

Campaign workflow, agent executor, creative pipeline, lead intelligence, ad platform integration. shadcn-svelte UI. Internal tool for 1-5 users. Spine + Phase 1B scaffolding shipped; Phase 2B detail routes pending; agent executor needs SKILL-invocation harness rebuild (~80% per 2026-04-29 audit). MVP ships via brain CLI; this UI is the post-revenue rebuild target.

Platform Spec §2.1–2.5
🤖

Agent Executor (Claude Agent SDK) Active via brain CLI

Pipeline Stages 1-7 + Retro all run today via Claude Code SKILLs in campaign-forge/.claude/skills/. SSE streaming + cost tracking + session persistence are the SvelteKit-side wrappers; brain SKILL invocation is the load-bearing path that ships campaigns now. App-side harness rebuild deferred.

Platform Spec §2.4
🛡

Platform Health Module Activates with first paid campaign

Meta HiVA score tracking, Google optimization score, TikTok verification, Bing partner status, social brand health. Automated alerts. Designed; activates once accounts are warmed and paid traffic is flowing — needs first signal data to populate dashboards meaningfully.

Trust Framework §7
Data Layer — Postgres + Existing Services
🗄

Platform Postgres (Drizzle + Kysely) Operator-deferred for MVP

Campaigns, pipeline stages, agent sessions, approvals, ad metrics, lead routing. Drizzle for CRUD, Kysely for analytics CTEs. Schema scaffolded in campaignforge-app; comes online with operator UI rebuild post-revenue. Brain currently writes to verticals/<v>/campaigns/<name>/ filesystem.

Platform Spec §2.3
📝

Directus (CMS + Ops DB) Implemented but dormant

19 collections. Articles, creative assets, partnerships, leads (443K), platform accounts, social logs, intelligence. Live for lead intel + Metabase dashboards; content source role waits until ContentForge Phase 2+ team-grows trigger.

Platform Spec §2.2
📈

Metabase (BI) Active for lead intel

7 dashboards, 35 saved questions. Lead intelligence (443K leads imported), platform trust progress, account warm-up, brand social health. Trust + warm-up dashboards activate with first paid campaign.

Platform Spec §2.2
📋

ClickUp (Primary) + Plane (Warm Backup) Active

Per ADR 0006: ClickUp is primary tracker; Plane is warm backup through validation period (~2026-06-16). Tracks BUILD + OPERATE tasks across all 5 phases. Plane retire decision post-validation.

ADR 0006
External Services — APIs & Ad Platforms
📘

Meta Ads First-paid target

HiVA Bronze→Platinum. Warm-up: $0→$5→$25→$50+/day over 4 weeks. 94-98% mobile. CAPI + Pixel. EDU compliant creative. Pixel + System User token = operator provisioning task.

Trust §2, §5
🔍

Google Ads First-paid target (Bing first)

Quality Score. EDU = sensitive category (no remarketing!). AI Max + RSA. Partner at $10K/90d. Enhanced Conversions. First validation campaign targets Bing Search per STATUS.md — Google Ads warm-up follows.

Trust §2, §5
🎵

TikTok Ads Future-quarter

UGC-first. Spark Ads +30-40% CTR. Strict EDU compliance. Verified Business → Managed Account progression. Activates after Bing/Meta validation; UGC library awaits ContentForge tools-lock per persona v2 (best ads = phone-shot UGC of finalized tools).

Trust §2, §5
📰

Native (Taboola/Outbrain) Future-quarter ($5K/mo threshold)

Content recommendations. Editorial headline + thumbnail. Pre-lander strategy. Publisher quality = content site depth. Threshold $5K/mo Taboola mid-tier; $10K/mo Outbrain mid-tier.

Trust §2, §5
🧠

Anthropic (Claude SKILLs) Active for brain

Claude powers all 7 pipeline stages + Retro via the brain's .claude/skills/ directory. Currently invoked through Claude Code; SvelteKit-side wrapper (Agent Executor + SSE streaming + cost tracking) is the post-revenue UI rebuild target.

Platform Spec §2.2
2 Revenue Flow
How money moves through the system: ad spend → content site → tool engagement → offer conversion → revenue.
1

Ad Click

Meta / Google / TikTok ad → user clicks → lands on content site tool page

2

Tool Engagement

User uses EFC Calculator / Quiz / Finder → genuine value delivered

3

CTA Click

User clicks "Explore Programs" → routed via offer URL with tracking params

4

Lead Submit

User fills form on partner portal → lead captured → Everflow attributes

5

Revenue

$35 CPL per qualified lead → Winners Vault updated → next campaign informed

The Tool IS the Compliance Solution

Instead of "get your grant money" (one angle, compliance risk), you have 10 distinct hooks that deliver genuine value: "Calculate your EFC in 2 minutes," "See what your employer covers," "Decode your aid letter." Each tool becomes its own ad angle. The compliance restriction list becomes the angle generation cheat sheet.

3 Execution Timeline — 5 Phases, 2 Parallel Tracks
BUILD (Claude builds) + OPERATE (Operator executes) run simultaneously. GATE milestones block the next phase until criteria are met.

Phase 0 Done

Spec frozen 2026-04-13
22

Spec review, entity resolved (Click Send Inc, FL Profit Corp). Social profile creation deferred to post-MVP.

Phase 1 Largely shipped

Net-expanded into Psychology Engine
35

ContentForge live on CF Pages preview (Lighthouse 95+). Brain Phase 5 deployment loop CLOSED. Tracking infra code-complete; live IDs operator-gated.

Phase 2 Awaiting first paid validation

First-dollar window
26

Brain campaign generation runs via CLI today. First live campaign on Bing Search to SAI/EFC + Quiz funnel = MVP gate. Workflow UI rebuild = post-revenue.

Phase 3 Designed — activates with first revenue

Post-MVP
28

Lead intelligence: 443K leads imported, 7 Metabase dashboards live. Email capture: ContentForge endpoint scaffolded. Social automation + competitive intel + platform health = future.

Phase 4-5 Future-quarter

Multi-vertical expansion
15+

Ad platform APIs, CAPI Worker fully deployed, retro automated, hosted-post / ping-post routing infrastructure, multi-vertical expansion to auto-insurance / Medicare / SSD.

3 Parallel Tracks

BUILD-CF: CampaignForge platform (SvelteKit + Postgres + Agent SDK) on DigitalOcean via Coolify.
BUILD-CT: ContentForge content sites (Astro + Svelte islands) on Cloudflare Pages.
OPERATE: Operator actions — social profiles, ad accounts, warm-up, domain verification, daily posting. Runs independently of both build tracks.

4 Spec Document Index
Each document defines a specific system concern. Click to drill into the full visual breakdown.
Broader Vision Preserved
MVP is the first-dollar path, not the end goal. Every item below is documented architecture — some implemented but dormant, some designed waiting on partner relationships, some future-quarter expansion. None are deleted from the plan.
Active for MVP Implemented but dormant Designed — awaiting partner Future-quarter expansion
🎓

Direct-school relationships Awaiting partner

Direct affiliate relationships with online schools (SNHU, WGU, Purdue Global, Strayer, Franklin) and eventual residential / campus schools. Cuts the aggregator margin and pays per lead at variable CPL. Partner config at verticals/edu/research/direct-school-partners.json; shared school_attributes.schema.json sub-schema landed with ADR 0018. Outreach BRIEFING 18+ days stale — queued operator-lane work.

🔁

Aggregator relationships Active for MVP

edu.degreesources.com partner portal aggregator at $35 CPL flat is the MVP path. ADR 0018 path 1 (affiliate_aggregator_portal) is the live monetization regime. Future expansion to Education Dynamics, Red Ventures, QuinStreet pursued post-MVP for compounding moat.

🔀

Hybrid routing Implemented but dormant

ADR 0018 path 6 (hybrid_dynamic) + tool-level routing_rules[] + Cloudflare Worker at workers/tool-router/ all spec'd. 4 hybrid_dynamic cells (S3.F4 / S5.F3 / S6.F8 / S7.F1) authored with placeholder routing. Activates per-cell as partner relationships land — dormant-vs-active filter prevents matrix bloat.

📡

Hosted post / ping-post infrastructure Future-quarter

Operator's intended model includes hosted-post flows, not just generic ping/post terminology. ADR 0018 path 3 (aggregator_marketplace_ping_post) covers ping/post + multi-buyer TCPA consent + ≥100 leads/month volume floor. Hosted-post variant: we host the consent form + tool flow on our domain and post the qualified lead to the marketplace winning bidder. Both flows feed Stage R signal infrastructure. Master plan Phase 5: Inngest + ping/post routing engine + buyer CRUD + fraud detection.

🔍

Truth-layer result-page variants Designed

Per Session #43 architectural insight: truth layer is orthogonal to monetization layer. Same lander result page can show full benefits picture (campus + state-school + direct-online + Yellow Ribbon math) independent of where the lead routes. ADR 0018 lander_mode enum + result_personalization.json v0.7.0 per-cell variants encoded. Activates per cell as routing rules populate.

🏫

Partner-specific school pages or aggregator flows Designed

ADR 0018 path 2 (affiliate_direct_online_school) + path 4 (organic_campus_school_redirect) both support per-partner content. Stage 7 archetypes (archetype_tool_embedded, archetype_prequalifier) accommodate single-school + multi-school surface variants. New campus-school-partners.json + aggregator-portal-school-roster.json scaffolds shipped empty; populate as partnerships materialize.

🧭

Multi-vertical expansion Future-quarter

Architecture multi-vertical-aware from day one: verticals/<name>/ per-vertical config, shared tool_registry.json with verticals[] array per tool, ContentForge multi-brand via CSS custom properties, ADR 0018 6-path enum maps cleanly to non-EDU verticals (Medicare, SSD, Auto, Solar). Auto-insurance research partially ported. Each vertical follows EDU pattern: brain shell → content skills → campaigns + site → loop closes.

💰

Optimization toward highest-paying valid routes Designed — activates with Stage R data

ADR 0015 Stage R signal hierarchy + tool-driven weighting locked. Phase-aware composite (v1 white-label era → v2 direct-school era), content-only soft cap at 0.75, hybrid blended composite per audience-split weights, cross-offer-routing as per-tool signal. Winners Vault learning loop steers cell-rank toward highest-payout valid routes per persona v2 priority-1 signal: "which TOOL-DRIVEN angles converted." First Stage R close populates this; deferred per ADR 0015 BR 15-3.

Decision filter

Does this serve the $35 CPL MVP, or future-quarter expansion? Both are valid; ship MVP first. The vision above is the destination — not work to defer indefinitely, but architecture to compound onto once first-dollar attribution is operational. Brain + site + ADR architecture is built for the destination, not the MVP.