Phase B Sign-Off — Campaign Planner v2

← Command Centre · Awaiting sign-off · Created 2026-05-09

✓ Signed off 2026-05-09

All 5 decisions APPROVED

Calum approved 1, 2A, 2B, 3, 4, and 5 — with one addition: Decision 5C — the 6 extra tabs (Briefs / Legacy / Brand-Defence / Drift / Removed / Strategic-Debt) are now folded into Phase 5 as Phase 5C, not deferred to a later phase. Final v2 sheet ships all 11 tabs.

Next gate: override-file approval (17-18 brief→arch mappings) will appear as a second sign-off item on this page once generated.

📍 Status (live)

P1, P2, P9 codebase work now unblocked and beginning. P3, P4, P5, P8 already complete from earlier background agents. Override file in progress — back here for review shortly.

Original 5-decision doc (now resolved) — click to expand

Phase A audited the current Campaign Planner + Creative Production Tracker spine and found it's GAQL-primary (built off live Google Ads inventory) when it should be architecture+briefs-primary (built off Phase 0/1 strategic outputs). Two independent Opus passes + cross-reviews from Codex 5.5 and Gemini all agree on the spine flip.

The 5 decisions

DECISION 1

Override file approval — most important

8 of 19 briefs match cleanly to architecture rows by automated heuristic. 11 of 19 need manual mappings. With the 3 flat briefs added (P3 finding from background agents), the override file totals 17–18 entries. I'll generate config/brief-slug-overrides.json with proposed mappings + per-row confidence + rationale, render it as a second sign-off doc on this page, and only write to the new sheet once you've signed off.

Decision: OK to proceed with the human-review-before-write pattern? (default: yes)

DECISION 2

Source-of-truth for arch files

Two collisions exist:

  • Within Agentic-OS: config/campaign-architecture.json has 19 PMax campaigns; tools/pmax_data.json has 24. 5-row delta.
  • Across repos: Older copies still exist at F:/Claude Root/v4.0/... and F:/Claude Root/tools/.... They've drifted from Agentic-OS copies (May 3 vs May 6, DG file is from 2026-04-12 — almost a month stale).

Decision 2A: Make config/campaign-architecture.json the canonical Phase 2 declaration; tools/pmax_data.json the Phase 5 state. Reconcile the 5-row delta.

Decision 2B: Retire the Claude Root drift copies — replace with stub redirects, then grep consumers and delete. (You've already said yes — confirming for the record.)

DECISION 3

Three brief-side architecture gaps

Architecture rows that have no matching strategic brief:

  • DE Gut-Hirn (campaign exists, no Phase 0 strategy doc)
  • FR Students (DG ad-group, no brief)
  • US Workers (DG ad-group, no brief)

Decision: Are these intentional (no brief needed) or backlog work (briefs to be written)? Either way they get strategic_debt: true; the question is whether they get a "Brief Needed" flag in the planner. (default: backlog with flag)

DECISION 4

The active SERP UK ADHD campaign

cid=11666978147 SERP UK ADHD is currently ENABLED but has no v4.0 architecture entry. It's the live campaign tied to the ADHD article LP.

  • Path A: Add it to arch.search_campaigns[] with brief_slug=uk-adhd-... as part of Phase B init — clean, slightly retroactive.
  • Path B: Let it show up as ORPHAN red-flag in the v2 planner so you can triage on first review — slower, but visible.

(default: A — quick fix, keeps the planner clean from day one)

DECISION 5

Sheet design — minimum viable tabs

Both Opus passes proposed 11 tabs. Two reviewers flagged this as overwhelming. Trimmed to 5 minimum-viable:

  • Master (every v4.0 campaign + ORPHAN red-flags)
  • Search Detail (per ad-group)
  • PMax Detail (per asset-group)
  • DG Detail (per ad-group)
  • Orphans (live drift triage)

Phase C (post-Phase B) adds Briefs / Legacy / Brand-Defence / Drift / Removed / Strategic-Debt tabs if you want them. (default: ship 5 tabs first)

What happens after sign-off

  1. I clear the 9 codebase preconditions (P1–P9 — paths, schema, snapshot tooling, JSON sanitization, etc.). 4 already done by background agents — P3 (flat brief schemas), P4 (snapshot tool + first snapshot), P5 (JSON corruption diagnosed), P8 (GAQL field gap diagnosed).
  2. I generate the override file (decision 1) and bring it back as a second sign-off item on this page.
  3. Once override file approved, I build tools/assemble_v4_spine.py.
  4. v2 planner + v2 tracker sheets get built to fresh sheet IDs (parallel deployment, not in-place).
  5. You review v2 sheets before cutover. v1 stays read-only for audit.

What I won't do without sign-off

Sign-off recorded: 2026-05-09 by Calum, all 5 decisions plus Phase 5C addition. Plan 2-1 marked complete in ROADMAP.md.

✓ Sign-off #2 · APPROVED with 3 edits 2026-05-09

Brief→Arch Override File (B1 → B2)

Edits applied:

Net override file: 17 entries (was 18). Plan 2-11 marked complete. Spine module now unblocked but pending Sign-Off #3 (Phase 2.5 expansion scope) below.

Original Sign-Off #2 doc (now resolved) — click to expand the full 18-row table
⚠ Original Sign-off #2 · Now resolved

Brief→Arch Override File (B1 → B2)

18 brief→architecture mappings auto-generated by Opus with full brief context (strategy.json + intel.json + tactics.json + arch + pmax_data + dg). 10 HIGH-confidence are bulk-approve candidates; 4 MEDIUM need a quick eye; 4 LOW need deep review.

Source file: config/brief-slug-overrides.json · Spec: .planning/phase-a/pass-1-opus-A/proposed-linkage-schema.md

Overview

Total entries18
HIGH confidence (auto-approve candidates)10
MEDIUM confidence (quick-eye review)4
LOW confidence (deep review required)4
Strategic-debt rows (no brief)3 of HIGH
Flat-schema briefs (P3 finding)3 (1 LOW + 2 MEDIUM)
Phase 2 architecture gaps surfaced3 (UK ADHD, US ADHD, exam-season)

HIGH (10 — bulk approve)

# Brief slug (or strategic-debt key) Search PMax DG Why this match
1de-dopamin-motivation-antrieb8 DE Dopaminpmax_de_dopaminDE+Dopamine direct; lp /products/dopamin-supplement ↔ id=8 keywords. Heuristic mis-routed via shared overlay.
2de-gaba-stressabbau-konzentration9 DE GABApmax_de_gabaDE+GABA direct; lp /products/gaba-supplement ↔ id=9 keywords gaba kapseln, l-theanin.
3fr-dopamine-pr-curseur-motivation10 FR Dopaminepmax_fr_dopamineFR+Dopamine direct; lp /fr/collections/complements-soutien-dopamine ↔ id=10. Shared overlay misled heuristic.
4fr-gaba-pr-curseur-anti-stress11 FR GABApmax_fr_gabaFR+GABA direct; lp /fr/collections/complements-precurseurs-gaba ↔ id=11.
5uk-brain-fog-knowledge-workers1 UK Problem-Awarepmax_uk_brain_fogUK Workersid=1 keywords brain fog, can't concentrate, mental fatigue — Schwartz-named row IS the brain-fog row. Heuristic missed because arch name uses "Problem-Aware" not "Brain Fog".
6uk-dopamine-solution-aware6 UK Dopamine & Smart Focuspmax_uk_dopamineUK+Dopamine direct; lp /collections/dopamine-support-supplements ↔ id=6.
7uk-perimenopause-solution-aware-shopper-intent15 UK Perimenopausepmax_uk_perimenopauseUK+Perimenopause direct; lp /products/menopause-brain-fog ↔ id=15.
8strategic_debt: de-gut-hirn16 DE Gut-Hirnpmax_de_gut_hirnNO BRIEF — strategic_debt=true; brief_slug=null. Arch+PMax exist; brief never written.
9strategic_debt: fr-students-dgFR StudentsNO BRIEF — strategic_debt=true. exam-season covers Students but DEFER; FR Students has no GO brief.
10strategic_debt: us-workers-dgUS WorkersNO BRIEF — strategic_debt=true. US analogue of uk-brain-fog-knowledge-workers never created.

MEDIUM (4 — quick-eye review)

# Brief slug Search PMax DG Why review
11de-konzentration-solution-aware-knowledge-workers3 DE Konzentration(gap)DE WorkersNo PMax row for DE Konzentration (Phase 2 gap). Direct Search match. MEDIUM = partial coverage.
12fr-tdah-adultes-naturel-concentration5 FR TDAH & Ritaline (shared)(gap)Two briefs share id=5 at ad-group level (TDAH naturel angle vs ritaline-alt angle). Decision: legitimate share, or split arch row?
13us-gaba-solution-aware-non-stimulant (FLAT)13 US GABApmax_us_gabaFlat-schema brief; lp_dependency.paths empty (no LP cross-validation). Linkage correct, but brief decision=DEFER framework_verdict=KILL.
14us-perimenopause-solution-aware-non-hormonal (FLAT)17 US Perimenopausepmax_us_perimenopauseFlat-schema brief; uses .id not .slug. Direct match to id=17. lp_dependency.paths empty; decision=DEFER.

LOW (4 — deep review required)

# Brief slug Search PMax DG Why deep-review
15uk-adhd-adults-natural-focus-non-stimulantnullnullUK ADHDPhase 2 gap. Live cid=11666978147 SERP UK ADHD is ORPHAN today. P9 ready (id=18 proposed; 4 risks flagged: budget £20→£60, LP blog→PDP, brief stage drift, legacy ETAs).
16us-adhd-adults-non-stimulant-focus-naturalnullnullUS ADHDPhase 2 gap. id=14 is "US Brain Fog", not US ADHD. No US ADHD Search OR PMax row. DG ad-group is the only v4.0 surface.
17exam-season-q2-2026-cross-market-students (FLAT)nullnullUK/DE/FR/US StudentsCross-market scope. Closest Search arch is SERP-rename id=null (pending B3 dedup). No PMax. Spans 4 markets + 1+ deduped row → LOW.
18perimenopausal-women-uk-45-55-brain-fog-low-mood (awareness)nullnullbusiness_goal=awareness (not DR). DR sibling owns id=15. Likely belongs in arch.yt_awareness_campaigns sub-spine (out of scope for Phase B 5-tab MVP).

4 explicit decisions needed

  1. Bulk-approve the 10 HIGH rows? (default: yes — 7 brief→arch corrections + 3 strategic-debt arch rows)
  2. Confirm row #12 (FR TDAH share): do fr-tdah-adultes-naturel + fr-ritaline-modafinil briefs both legitimately share Search id=5 at ad-group level? Or split into two arch rows? (default: legitimate share — they're sibling angles for the same campaign)
  3. Row #15 (UK ADHD): ship P9 (add cid=11666978147 to arch as id=18 with the 4 risks flagged earlier) BEFORE sheet write, OR accept null+strategic_debt-style display in v2 planner? (default: ship P9 — keeps planner clean; risks go to Calum's review queue)
  4. Row #18 (UK perimenopause awareness): defer until YT awareness sub-spine is enumerated (Phase C), OR null-route now with explanatory note in planner? (default: null-route now with note — aligns with Phase 5C scope of 11 tabs)
Original sign-off #2 resolved 2026-05-09. See top banner for the 3 applied edits.

✓ Sign-off #3 · APPROVED with 1 edit 2026-05-09

Phase 2.5 Architecture Expansion — APPROVED

Decisions 1-9 approved on defaults. Decision 10 amended: rank #24 UK Focus supplements promoted from DEFER → ADD as id=34 — the brand keystone term. Calum: "Focus supplements is our key product definition; warrants a dedicated row even at lower volume."

Net Phase 2.5 = 16 new arch rows + 8-11 new briefs (was 15 + 7-10). Tier 4 grows from 6 → 7 with the rank #24 keystone add.

Note logged: legacy PMaxes (uk_brand, de_brand, fr_brand, us_brand + others) are retargeting / BOF + some TOF inspiration — NOT pure brand defence. id=34 UK Focus PMax (if built in Phase 2.5b) must be a new PMax, not a repurpose of legacy retargeting.

Status: Phase B spine module now fully unblocked. Phase 2.5 enters its own workstream.

Original Sign-Off #3 doc — click to expand the full 4-tier table + 10 decisions
⚠ Original Sign-off #3 · Now resolved

Phase 2.5 Architecture Expansion

During Sign-Off #2 review, Calum requested a Phase 2 architecture expansion to address: (a) standalone Ritalin/ADHD lanes per market, (b) DE Austria + Switzerland geo splits, (c) US Adderall relaunch, (d) matrix-derived white-space rows that ranked v1.1 but weren't built.

Source: chat 2026-05-09 + F:/Claude Root/v4.0/priority-scoring-matrix.md v1.1 audit · Plan doc: .planning/phases/02-phase-b-preconditions/2-12-PHASE-2.5-EXPANSION.md

Tier 1 — Standalone splits (5 rows)

id Name Splits from Brief (existing)
19DE Ritalin (standalone)id=2 combinedde-ritalin-modafinil-alternative-...
20DE ADHS (standalone)id=2 combinedde-adhs-erwachsene-konzentration-...
21FR Ritaline (standalone)id=5 combinedfr-ritaline-modafinil-alternative-...
22FR TDAH (standalone)id=5 combinedfr-tdah-adultes-naturel-...
23US ADHD (NEW)— greenfieldus-adhd-adults-non-stimulant-focus-...

Tier 2 — Geographic expansion (3 rows)

id Name Geo target Notes
24DE Austria RitalinATGerman lang, AGES regulator. Reuse DE Ritalin brief + addendum.
25CH-DE RitalinCH (German cantons)Swissmedic compliance regime; needs CH addendum.
26CH-FR RitalinCH (French canton)Swissmedic + French language; reuse FR Ritaline brief + addendum.

Schema implication: arch search_campaigns[] needs new geo_target field (v4.1 → v4.2 schema bump).

Tier 3 — US Adderall relaunch (1 row)

id Name PMax match Brief
27US Adderall (Herbal Alternative)Existing pmax_data "PMax US Adderall Test" — promote from id=None to pmax_us_adderall_herbalNEW brief to author: us-adderall-alternative-herbal-natural-us-direct_response-2026-05-09

Tier 4 — Matrix-derived white-space (6 rows)

From F:/Claude Root/v4.0/priority-scoring-matrix.md v1.1 — ranked-by-score combinations that scored well but weren't built first time round.

Rank id Combo Score Vol/mo Why ADD
528US L-theanine → ELITE76.091,200Highest volume in entire matrix. Currently bundled in id=13 US GABA. Splitting unlocks dedicated copy/LP.
829US Gut-brain → ELITE68.04,420PMax pmax_us_gut_brain already exists; just needs Search counterpart. Symmetry with DE Gut-Hirn id=16.
1530UK L-theanine → ELITE66.02,900Pair with #28; same bundled-in-GABA pattern.
1831FR Nootropique → PRO63.51,170Clean white-space; FR has no Nootropique umbrella.
1932DE Nootropika → PRO62.31,810Mirror of FR Nootropique; complements DE Konzentration + Dopamin.
2633FR Gut-brain → ELITE58.53203-market gut-brain symmetry (DE id=16, US id=29, FR id=33).

Matrix-derived DEFER/SKIP rows: 7 ranked entries with reasons (FR Menopause low vol; US Post-COVID is a subset of US Brain Fog; UK Ritalin not needed; UK Smart drugs low vol; FR Concentration low vol high CPC; UK Focus and US rank-29 high-volume cognitive cluster need unit-econ re-gate). Full table in plan doc.

Total Phase 2.5 = 15 new arch rows + 7-10 new briefs

10 explicit decisions for Sign-Off #3

  1. Retire combined rows id=2 + id=5 once standalones launch? (default: yes)
  2. DE ADHS PMax — share pmax_de_ritalin, OR build new pmax_de_adhs? (default: new)
  3. FR TDAH PMax — share pmax_fr_ritaline_alt, OR build new pmax_fr_tdah_natural? (default: new)
  4. US ADHD PMax — build new pmax_us_adhd? (default: yes)
  5. Geo expansion brief structure — reuse DE/FR briefs with AT/CH compliance addenda, OR write standalone briefs? (default: reuse + addenda)
  6. arch schema bump v4.1 → v4.2 — add geo_target field? (default: yes)
  7. US Adderall brief authorship — author now in Phase 2.5, OR defer? (default: now)
  8. Migration timing — apply this expansion before or after Phase B spine module ships? (default: AFTER)
  9. Tier 4 matrix-derived adds (6 rows: ranks 5/8/15/18/19/26) — accept all 6? (default: yes)
  10. DEFER/SKIP rationale (matrix ranks 9, 20, 23, 24, 25, 29, 32) — confirm? (default: yes; revisit in v1.2 matrix)
Original sign-off #3 resolved 2026-05-09. See top banner for the rank-24 promotion edit. Decisions 1-9 accepted on defaults.

⚡ Next: Phase 3 Spine Module Build

All 3 sign-offs resolved — building begins

All gates cleared:

Two parallel workstreams begin now:

  1. Phase 3 (Spine Module)tools/assemble_v4_spine.py built against current arch (17 search + 19 PMax + 4 DG). Path B parallel deployment.
  2. Phase 2.5 (Arch Expansion) — 16 new arch rows added incrementally; spine picks them up automatically as they land (the whole point of architecture-primary spine).
Source artifacts (Agentic-OS):