docs/REVIEW_PACK.md
1 · Contents
System · stack · data · workflows · self-improve · maturity · IDS must-work.
Use Next → (or → / Space). G built · A part-built · R envisaged. Narrative 2–19 · self-improve 20 · testing 21 · screens 22 · maturity 23–27 · IDS 28–30.
2 · Purpose & objectives
Umbrella editorial platform: plan, create, approve, fit pages — across titles and countries. Agents assist; named roles decide.
| 1 | Automation and efficiency by design — to European best standards |
|---|---|
| 2 | Brand flexibility — add and run titles fast; each brand faster / better / lower cost with AI |
| 3 | Reduce legacy tech — replace Monday planning/tracking/blueprints by mid-2027; WWA likely replaced in 2 years+ |
| 4 | APL ≥90% target — pages fit with no designer (ops priority). Not claimed until live IDS proves it. |
| 5 | AI planning and content assist — where possible; humans keep higher-level tasks and publish quality |
| 6 | Self-improve in use — L1 friction → L2 ship → L3 prioritise (agents + process, not a separate programme) |
3 · System context
Solid line = durable. Dashed = transitional / exit. Working title Forge[MFP].
4 · Technical stack
Solid = running in demo. Dashed = known plug / target — not claimed live. Parked: LangGraph, n8n, SSO.
5 · Data architecture
Read top → bottom: portfolio truth, then planning, then content, then layout/fit. Side systems attach via adapters.
6 · Data model
Solid boxes = tables we use. Dotted = planned adapter edges. Not shown: SSO/User (no SoR yet), LangGraph checkpoints.
7 · Process map
Nomenclature: Propose (on Issue) not a separate Recommend app · Editor ≠ Hub lead ≠ MBE. Detail: slides 8–19 · maturity 22–26.
8 · Workflow 1.0
| Participants | Acquisition / Brand manager · Planner · Production (layouts) · MBE (standards) |
|---|---|
| Inputs | Country, frequency, grade · content types · sample pages · cascade opportunities |
| Outputs | Magazine · Blueprint · Slot defaults (A/P) · Compatible layouts (APL-1 hard-block) · Cascade plans |
A1–A4 = how we make it. P1–P3 = new vs reuse. Demo: Mag A–D UK blueprints on preplan.html.
9 · Workflow 1.5
Excel-like overview between pre-plan and a single issue — or planners stay in spreadsheets.
| Why | Without Horizon, the multi-issue overview stays in Excel. |
|---|---|
| Now | Titles × issues · Mag A–D flick · scroll + 3-issue magnified lens · drill to issue. horizon.html |
| Later | True mix/gap engine · multi-title content-area views · live cell titles everywhere |
10 · Workflow 2.0
Fill this issue from the blueprint — not redesign the magazine. Propose lives on the board.
| Participants | Planner · Editor (delivery) · Hub · MBE (cover/TOC/leads) · Writer (assigned) · Agent (Propose) |
|---|---|
| Inputs | Blueprint · press date · slot cards · archive/serials · cover assets |
| Outputs | Issue topics · decisions · briefs/tasks · cover package · gate state · (P3 cascade-ready) |
Demo: issue.html · two articles on one spread = two briefs.
11 · Workflow — slot / Propose
| Slot card | Article design / prompt for the slot — tone, purpose, length, templates. Drives selection and eligibility. |
|---|---|
| Participants | Planner (decides) · Agent (proposes) · Hub (tone) · Editor (quality) |
| Now | Propose UI on Issue · candidates still canned (not full DB) · soft-fit amber |
| Outputs | Decision · accepted candidate · next brief/task or cascade-ready |
12 · Workflow 3.0 · A1
| Participants | Automation + Editor (certify generator) · Planner · Writer (select & review) |
|---|---|
| Inputs | Slot card · ~10 example pages · fit/layout rules |
| Outputs | Certified generator · bulk pool · selected article on a task |
Both A1.1 and A1.2 required. Cover is always A1 — cover package, not a standard brief. Maturity: red/stub in demo (pool/certify not built) — path is design intent.
13 · Create journey ★
Post-planning — create.html Articles list + Desk. Enrichment does not overwrite the planning brief. Layout preview while drafting ≠ Pin. Pin only after approve.
| Default bias | Many pages are retrieve → select → combine → refresh archive — not blank-page AI. Sources before generate. |
|---|---|
| Enrich rule | Extra prompt fields + brand-pack auto-fill. Does not rewrite the planning-system brief. |
| Must work | List → Desk → meters → ready → approve → pin path. Create-state persists. Length bands respected (APL-2). |
| Handoff | Layout CMS / live WW later. Today: pin stays in Forge[MFP] (fixture) → Layout QA. |
Canonical: CANONICAL_SPEC.md §4.0 · Next = A2 / A3 paths · maturity slide 26.
· Bauer SME pack: Forge/Editor pitch →
14 · Workflow 3.0 · A2
| Who briefs | Planner and Editor own the task and draft brief. Writer can enrich — they do not start from a blank brief. |
|---|---|
| Bias | Prefer select sources first, then generate. Pure brief→generate is valid but not the only pattern. |
| Generate uses | Brief · enrich · selected sources · slot card · brand guidelines · APL-2 length bands |
| Participants | Planner · Editor · Hub · Writer · Agent (assist) · Approver · Production (pin) |
| Demo | Primary Create path today · generate assist is thin · meters amber |
15 · Workflow 3.0 · A3
| Why A3 | The article cannot be fully predefined in a brief. Open format · needs a more skilled writer than A1/A2 template slots. |
|---|---|
| Brief examples | “Go to Ascot, review the races, write about it” · cover an event · report a news piece — directional, not a generate-spec. |
| Images | Often writer selects (or is given) pictures and writes the article to fit the page. |
| vs A2 | Same Create chrome. A2 = enrich + sources → press generate. A3 = assignment brief → writer creates the piece. |
| Participants | Writer (lead) · Planner/Editor (commission) · Hub · Agent (assist only) |
| Maturity | Red / stub as dedicated desk — path is design intent; A2 chrome is the demo workhorse |
16 · Workflow 3.0 · A4
| Design goal | 100% automated · no work. Occasional micro-tweak is the exception — not a writer cycle. |
|---|---|
| Hard rule | Cascade only if taker layout is in the article-type ↔ layout matrix (APL-1). Otherwise blocked. |
| Participants | Planner (cascade) · system (place) · Editor (spot-check) — Writer ideally idle |
| Inputs | Giver article · matrix · taker slot/layout · P3 · no separate brief |
| Outputs | Article on taker slot · usage history · pin-ready (still needs approve/pin) |
| Demo | Seeded B→A / B→C / A→D · cascade.html one-shot · lag edits often local — amber |
17 · Workflow 3.9
| Writer agency | Writer can mark ready after they have checked the piece. Real authority when no higher gate. |
|---|---|
| Higher gates | MBE — cover / TOC / leads. Editor — selective non-leads (issue delivery). Hub lead ≠ Editor. |
| Surfaces | approvals.html (view-as filter) · Approve from Desk on Create · reject / reopen |
| Participants | Writer · MBE · Editor · Planner · Hub (if gate set) |
| Outputs | Ready / ApprovalGate · eligible for APL-3 pin (fixture today) |
18 · Workflow 4.0
| APL-1 | Compatible base article ↔ layout only. Participants: Planner, Production. Out: pair matrix. |
|---|---|
| APL-2 | Live min/max on title, subhead, text blocks. Quality may trump fit → exception. Participants: Writer, Agent. |
| APL-3 | Pin → prove on engine (≥90% is a target, not claimed). Today: fixture IdsJob · miss → tweak → re-pin. Participants: Production, Agent, Subeditor. |
| Inputs | Approved article · PinningRuleSet · ElementFitContract · image set |
| Outputs today | IdsJob · FitResult (bands) · TweakProposal — fixture · proof_url null until client IDS · see slides 28–30 |
| Build now | G APL-1 hard-block · pin requires Approval · layout-qa tweak/re-pin/sign-off · A APL-2 meters / fit-check · fixture pin · R live IDS / proof PDF / ≥90% |
IDS must-work: slides 28–30 · ACT_FIRST_IDS.md · IDS_TRIAL_PLAYBOOK.md
19 · Workflow 5.0
| Article image set | Ordered pictures for one article → INDD frames. Typically 3–5 (range 0–10). Position 1 = Main; 2–N support. |
|---|---|
| Source order | Archive first (usually free) → external agency (may pay when used) → AI-gen illustrative only — not real celebrities / royals / identifiable people. |
| Discovery | Open across markets — everyone can see all group articles, images, and PDFs. Do not narrow search to one country. |
| Rights at use | Group-owned assets are usually fine across markets. Purchased licences often stay in the buying country. Show owned vs licensed · markets cleared when committing to a set — warn/block unsafe use. |
| Same selector | One Image Selector in Forge[MFP] — open from brief, writer task, or late pre-press. Always writes into the same article image set. |
| Outputs | ArticleImageSet (ordered) · rights / pay-on-use flags · ready for APL frames |
| Demo | Create Desk images · pool → frames · Library → Place handoff · images.html · cover image pool |
| Build now | G set order · Place/Clear/↑↓ · archive hybrid search · A rights warn-only · hash-v0 embeddings · R pay-on-use engine · true semantic NL · agency checkout |
20 · Self-improvement ★
Not a side programme. Every spine step should be able to learn: editorial friction (L1), builders/agents ship (L2), Stephen prioritises (L3). Rule: agents propose; named roles decide.
| In product | Propose Why · meters · Approve · pin miss → tweak · Raise flag → L1 · Improve form. Agents assist; they never silent-publish or invent page truth. |
|---|---|
| One-click L1 | Create pin miss · Layout QA re-pin miss / File L1 · Approvals reject · APL Raise flag — all via MFP2.l1.file with context. Flash shows IMP-…. |
| In build | Same loop for us: maturity boards (L3 dashboard) · honest fixture labels · AUTONOMOUS_HANDOFF · Hermes lanes · gold-set before client IDS · regression point/area/full. |
| L1 now | improve.html · one-click from miss / reject / flag · amber = triage board only (intake is green) |
| L2 now | Live — not aspirational. Cursor/Hermes agents ship continuously. Do not paint L2 red on maturity boards. |
| L3 now | You + review pack Agree/Change/Drop · maturity G/A/R colours are the L3 dashboard |
| IDS flywheel | When client IDS lands: repeated oversets → L1 → tighten frame map / contracts — real learning (not fake ≥90%) |
| Do not | Separate “self-improve industry” · agent owns publish quality · fake green on IDS · treat L2/L3 as “not built” |
WORKING_MODEL.md §4–5 · docs/SELF_IMPROVE.md · HANDOFF_JUL11_AGENTS.md §8
21 · Automated testing ★
Self-improve finds friction. Automated tests lock what we claim is green or amber — continuously updated, not a one-shot pack.
| Commands | ./scripts/regression.sh point GATE.01 · area ui · full · .venv-ui/bin/python scripts/ui-smoke.py |
|---|---|
| Docs | REGRESSION_CADENCE.md · ROLE_FUNCTION_MATRIX.md · DEEP_FUNCTION_POINTS.md |
| Rule | Pack grows with the product. Smoke ≠ maturity-board done. VERIFY ≠ works. |
Sits after Self-improvement: L1 finds pain · L2 ships · tests keep claims honest · L3 prioritises what to harden next.
22 · Screens in the demo today
* Pin / Layout QA = fixture adapter until client IDS. Legend on 23–27: G built · A part-built · R envisaged.
| Hub / walk | index · walk · review deck · roles · process (events/registry) |
|---|---|
| Plan | preplan (lock · Excel · A/P Apply · cascade SoR) · horizon (lens · Start plan) · issue Mag A–D (picker · Propose · Suggest) |
| Brief / cover | brief · cover package · hub/writer on Save |
| Create / tasks | create · tasks · Library→Place · ready→approve→pin gates |
| Approve / APL | approvals (reject note) · apl · layout-qa |
| Also live | library · images · calendar · cascade · improve · brand-pack · brand-ingest (simulated) |
| Prototype only | create-mockup — gated · not the live Create path |
API :8083 Postgres · site :8082 · corpus :8084. Parked: live IDS · true embeddings · SSO. Next → maturity 23–27.
23 · Start here · Journey 1
Define the magazine (not this week’s topics). G built · A part-built · R envisaged / not built.
preplan.html · horizon.html · brand-pack · ROLE_FUNCTION_MATRIX.md
24 · Start here · Journey 2
Fill this issue from the blueprint. Mag A–D. G built · A part-built · R envisaged.
issue.html · brief.html · Mag B/C boards proven
25 · Start here · Journey 3
Articles list → Desk → ready → approve → pin. Editor ≠ Hub lead. G built · A part-built · R envisaged.
26 · Start here · Journey 4
APL loop is must-work. Fixture path is amber (contract only); live engine still red. Detail: slides 28–30.
layout-qa.html · apl.html · ACT_FIRST_IDS.md
27 · Workflow maturity
Cross-spine model (not one journey). Same legend as slides 23–26:
G built & usable · A part-built / fixture · R envisaged / not built.
Twin: docs/WORKFLOW_MATURITY.md. Fixture pin ≠ page truth.
Journey detail: slides 23–26 · IDS must-work: 28–30 · depth: ROLE_FUNCTION_MATRIX.md · DEEP_FUNCTION_POINTS.md
28 · IDS · must work ★
fixture (char bands, not geometry).
Do not read amber/green on slide 27 as “IDS done.”
Same screens for fixture and live. Never invent page truth. Never claim ≥90% before the engine.
* Fixture frames are band guesses. Live = InDesign overflows + proof.
| Works now (amber) | Approve → Pin → job id · honest adapter: fixture · miss/tweak/re-pin API + UI path · Layout QA lists jobs — not page truth |
|---|---|
| Must work at I2 | Same path · adapter: ids on client test env · real overset · proof URL · one Health DPS |
| Waiting on | ~2 weeks: client test env + their templates/content (do not buy Dev IDS on speculation) · frame names or rename pass |
| Try | layout-qa.html · Create Pin on approved Health · label stays fixture · docs/ACT_FIRST_IDS.md |
29 · IDS · status now (Jul 11)
Updated as we build — for your detailed review. Fixture ≠ engine; labels stay honest.
| Amber (contract / chrome) |
IdsJob queue · ids_adapter.py · Pin from Create ·
tweak / re-pin APIs · parent_job_id · layout-qa list ·
APL-2 meters · JSX scaffold · frame-map · goldset A–E —
all labelled fixture / not engine truth
|
|---|---|
| Green (credible without IDS) | Approve gates · Mag A–D blueprints · Issue board · Propose/Brief · APL-1 hard-block · Horizon lens · Create list/Desk · Improve L1 intake |
| Red (needs engine) | Live IDS/cloud · proof PDF/PNG in UI · true bleed/overset · ≥90% metric · multi-template farm |
| Waiting | Client test env + templates (~2 weeks) — no Dev IDS purchase on speculation · ACT_FIRST_IDS.md |
| Docs | IDS_TRIAL_PLAYBOOK.md · ACT_FIRST_IDS.md · IDS_FRAME_MAP_HEALTH.md · goldset A–E |
Phases: I0 fixture path (amber) · I1 desktop JSX + their INDD · I2 client IDS · I3+ geometry tweaks / bleed.
30 · IDS · design lock
| Contract | One result JSON for fixture and live: ok, stage, result, message, tweaks, frames, proof_url, scan, adapter, engine_truth |
|---|---|
| Transport | Browser → FastAPI only. Worker → adapter. Never JSX from the browser. |
| Authority | Production decides pin. Agents propose tweaks. Quality may trump fit at APL-2 (exception, not fake green). |
| Re-pin | First-class: miss → tweak → new job with parent_job_id. Not a one-shot OK button. |
| First template | One Mag A Health DPS · named frames (Title_A, Body1_A, IMG_A_Hero…) — see frame-map doc. |
| Licence | Prefer client test env first. Own IDS Dev / InDesign APIs only if their env cannot run our script. |
| Say / don’t | Say “fixture until engine” · Don’t say “auto-fit pages” or “≥90% achieved”. |
Workflow owns process credibility · UI owns chrome · you own client env access + templates when they land. Agree / Change / Drop on this slide when you review.