Three repos, one flow. Where data lives, where skills execute, where operators click. The complete picture for team onboarding and future-Claude-session context.
degreesources.com + future vertical domainsOperator launches a full campaign from brief → export. Pipeline skills live in brain, UI wraps them.
Operator requests a new article or tool. Skill lives in ContentForge, reads brain data, writes content in-repo.
A data contract needs to change. Brain owns the schema; subscribers adapt. ADR required first.
Adding auto insurance, Medicare, etc. The shell grows in brain first; execution surface follows.
Create verticals/<name>/. Drop in research docs, buyer intel, compliance config, brand.json, tracking.json. This is the data that every downstream skill will consume.
EDU complete. Auto insurance + Medicare research partially ported.
Add ContentForge/.claude/skills/<vertical>-*/. Each skill wraps Tier 1-3 primitives with vertical-specific context loaders (which research files, which compliance rules, which triggers apply).
Starting with EDU — then repeatable per vertical.
Campaigns generate from brain (already works — no changes needed per vertical). ContentForge deploys a new domain (autoinsurancesources.com, etc.). Everflow offer + tracking wired once. Loop closes.
Same brain, new surface. No duplication.
/orchestrator verticals/edu/campaigns/<name>| Surface | Today | Target | Gap |
|---|---|---|---|
| Pipeline (brain) | ✓ Stages 1-7 + Retro all shipped — 9 of 9 SKILLs deployed against v0.3.0 input layer + 7 schemas + 16 ADRs + HALT-MARKERS v1.3.0; 329/337 pytest passing | Same + Stage R signal hierarchy live | 5.6.1 (routing_quality_metrics populator) + 5.9.1 (build-export-package.py) deferred to post-Phase-7 |
| Pipeline UI (app) | ◆ Spine + Phase 1B scaffold (~18-22% of full plan per 2026-04-29 audit) — agent executor uses bare messages.stream, no SKILL-invocation harness; Phase 2B detail routes empty |
Deployed to Coolify + team access wrapping brain SKILLs | Operator-deferred for MVP. ~80% rebuild needed: Agent SDK harness OR shell-out to claude --skill; Phase 2B detail routes; Coolify deploy. Post-revenue work. |
| ContentForge site | ✓ 54 Astro pages, 10 Svelte tool islands, Lighthouse 95+ desktop, 291 parity tests, a11y 0 critical/serious. Conversion-ready MVP locally complete 2026-04-29. | Same + multi-vertical subdomains + truth-layer result variants per ADR 0018 | Production DNS cutover of degreesources.com operator-gated. Auto-insurance / Medicare sites = future-quarter (research partially ported). |
| Content skills | ◐ Phase 1 Foundation CLOSED 2026-04-19 (/content + /context-refresh + edu.md + ssd.md operator-approved); Phase 2 blocked on ADR 0016 authoring |
Tier 1-4 skills in ContentForge/.claude/skills/ | Phase 2: Core writers (article + tool + quiz + brief). Activates as ContentForge production cutover lands. |
| Content UI (app) | ○ Routes stubbed, 501 endpoint | Wired to ContentForge skills via API | Operator-deferred for MVP launch (same gating as Pipeline UI rebuild). |
| Tracking infrastructure | ◐ Code-complete (ContentForge tracking.ts + offer-routing.ts + email capture endpoint; capi-relay /events + /events/single + /postback all typechecked) | Live Pixel + Everflow + Worker secrets + Zaraz auto-inject = first-dollar attribution | Operator provisioning (2-3 hrs): Meta Pixel + System User token + Everflow offer + Cloudflare secrets + Zaraz dashboard. ~1 working day to first tracked dollar. |
| Schema subscription | ◐ Docs exist in docs/schemas/, pinning manual via SHA. 7 canonical schemas at v0.3.0+ + ADR 0018 sub-schema (school_attributes) + tool_registry v0.2.0. |
Versioned npm/pip package | Post-Phase 5 per CROSS-REPO.md. ContentForge + campaignforge-app pin SHA today; package mode triggers when consumer count crosses team-of-3 threshold. |
| Vertical coverage | ✓ EDU live | EDU + auto + Medicare + SSD + solar + more | Tier 4 skills per vertical (repeatable). Auto-insurance + Medicare research partially ported. Brain shell pattern is the same; ContentForge multi-brand via CSS custom properties. |
| Team access | ○ Operator only | 2-3 team members in UI | App deployed + auth + training. Activates with operator UI rebuild post-revenue. |
Logic lives in repos. UI is orchestration only. Skills always live next to the code they operate on (pipeline skills in brain, content skills in ContentForge). The app is a dumb (but beautiful) operator surface that invokes skills via HTTP. If the app breaks, power users still ship via Claude Code. If Claude Code changes, the UI still works. Neither dependency direction inverts — no component owns another's code.
References: docs/adr/0010-content-skills-in-contentforge.md (drafted, not yet written), docs/psychology-engine/CROSS-REPO.md, docs/adr/0005-shared-schemas-in-campaign-forge.md.