Skip to content

G0 dossier: plan approval and operating model

Temporary planning document, prepared on 4 October 2026. It authorises nothing until Chris approves it. G0 is Chris's approval of the integrated review plan and its operating model (delivery operating model §3.2). Passing it authorises the rows in §1 to be built and merged dark, behind default-off flags, with every merge keeping his /approve (D1-04). It never covers production enablement, production data operations, adoption waves or GitOps production values; those keep their own approvals (§3.6). GitHub states were read with gh between 23:40 and 23:50 UTC on 3 October 2026 (Appendix B). Recheck them before acting. Anything this dossier proposes is PROPOSAL.

How to reply. "As recommended", or the G0-D and G0-X IDs you change. Then approve G0, or pick an option in §6.

1. Ask

Authorise these rows (§3.6; plan §12). The R1a and R1b IDs and every size are PROPOSAL. S, M and L mean under 300, 300 to 800 and over 800 non-generated, non-test changed lines; the 300 boundary is this dossier's, and §11.7 targets about 800 lines or fewer, so an L row (M0-1) splits or declares an exception. The plan gives only family PR counts. Dependencies are in Appendix A. A dash means the row can start at once.

ID What it is Stream Review tier Size Criteria Gated on
S0-1 Canonical module skeleton A Supervised M AC-S0-01 S0-6
S0-2 Fixture corpus that xUnit and Vitest read alike L17 Delegated M AC-S0-02 —
S0-3 Baseline benchmark arm on the RV-DS tiers A Delegated S AC-S0-03 Bramble window 2 to run
S0-4 Seed-if-absent job A Delegated M AC-S0-06 S0-1; D3-14 to run on staging
S0-5 STATUS, templates, traceability check, ADR block Programme lead Delegated M AC-S0-04, 07 — (first)
S0-6 Kill switches and admission flag, registered once A Supervised S AC-S0-01 — (first)
S0-7 Acceptance tooling, part 1 L17 Delegated M AC-S0-05 D3-15 for browser evidence
S0-8 Barrier and mixed-version harnesses L17 Supervised M AC-S0-05 —
M0-1 Engine spike: head CAS, command ledger, C# fake A Supervised L AC-M0-01, 06, 08 S0-1, S0-2, S0-3, S0-8
M0-2 Study projection through FEAT-024's seam A Supervised M AC-M0-02, 05 M0-1
M0-3 Draft lease consumed by Save; TypeScript fake A, C Supervised M AC-M0-05 M0-1
M0-4 Dark AF2 adapter C Supervised M AC-M0-05 M0-3
M0-5 Export, M0 run, M0 report, storage ADR A, L17 Delegated; ADR supervised M AC-M0-02 to 05, 07 M0-1 to M0-4; Bramble window 4
R1b-1 Read-only Members & groups page C Supervised M AC-R1b-04, 05 U8 visibility passed; S0-7
R1b-2 Members route guard key fix (authorization WP1d) C Supervised S AC-R1b-06 Agreement with #3335
R1a-1 Audit #3934 and #2781 against C4 A Delegated S — —
R1a-2 Question template browse A; C for UI Delegated M AC-R1a-05, 09, 10, 12 R1a-1; U19 passed
R1a-3 Import preview through the import-target port A; C for UI Delegated M AC-R1a-01, 02, 04 R1a-1; U19 passed
W0 U1 (prototype), U3, U8 (visibility), U9 (ordinary), U13, U14, U15, U19, U24, U26, U27 (navigation), U28, U31, U32, U34, U35 (panel), U38, U39, U42, U43; the baseline study C, programme lead Delegated; U43 by Chris S each AC-UX-01, 02 (UX §11) Tester panel; G0-X1
ADR-F1a F1a contract ADR drafts A, B Supervised M each F1a exit S0-5; final only after M0 go
ADR-F1b C10 and C11 ADR drafts L8, D Supervised M each F1b exit S0-5
ADR-F1c C17 and Dockview amendment drafts C Supervised M each F1c exit S0-5
ADR-C15 C15 v2 ADR draft D, notification programme Supervised M F1b exit S0-5; A-33
RT-27 Tracking-contract docs refresh Presence owner Delegated S F1a entry —

S0-5 and S0-6 can start before the stream briefs are approved (G0-X8). Until S0-5 creates STATUS, claims go on each slice issue's claimed-by: line only (PROPOSAL). G0-X9 and G0-X10 would add four rows (Appendix A).

2. Decisions needed now

ID Question Recommendation Until answered
G0-D1 D4-18: confirm the recorded reading of "independent of funders" (register §1.14) Confirm. The plan maps the NC3Rs and SSI RSMF deliverables itself (methodology coverage §15) and does not wait for the funders; the GA audit (AC-GA-08) stays. Alternative: drop the mapping and keep the audit Reading stays PROPOSAL
G0-D2 D3-14: seed-if-absent job on preview and staging? Yes, as recommended Seeds reach preview only
G0-D3 D3-15: Firefox and WebKit smoke, touch drag, CDK drag only? Yes, now: R1a builds in W0 and AC-R1a-12 needs it Chromium only; AC-R1a-12 blocked
G0-D4 QM v2, #2572 to #2575 and #2461 (Q-08): who closes them, and when? Stream A's lead, after M0's harvest-and-avoid table (AC-M0-04) and before the M0 go/no-go Open; untouched
G0-D5 #2224 (Q-09): who closes it, and when? The programme lead, in W0, with a harvest note that credits the author; R1c cites it. Alternative: keep it open until R1c Open; untouched
G0-D6 #2986 schema-v0 answer validation Deviation from plan §8: keep it open, outside this programme, for normal triage. It fixes today's legacy writes, which R2a will not cover. Alternative: harvest into R2a, then close Open; untouched
G0-D7 #2987, #2629 and #2812 Close each with a harvest note into the F1a C4 draft (and C14 for #2812's response modes). None can merge as it stands: their ADR numbers collide with ADRs on main Open; untouched
G0-D8 #2621 screening-profile prototypes Close with a harvest note; the UI coverage comparison already compares them Open; untouched
G0-D9 #2469 stage overview chart refactor Close with a harvest note: it conflicts with SF2 and is partly superseded (plan §8) Open; untouched
G0-D10 Notification merge train (§11.9, D1-09) Keep the order. In W0 the programme lead asks the stack owner to regenerate #3932, rebase #3941 over #3964 and answer A-33 #3965 stays on #3947 (D1-09's fallback)
G0-D11 Optional: add external SyRF users to the tester panel? Yes: name two before the W0 baseline study (UX §9) CAMARADES panel only

Live states. #2572, #2461, #2224, #2812, #2621, #2469 and #3932 are conflicting. #2573 to #2575,

2986, #2987 and #2629 are mergeable. #3938, #3941, #3942, #3943, #3944, #3945, #3947 and #3965 are clean within the stack. Every

notification head matches the package's snapshot (programme integration §8; Appendix B). This dossier changes no PR. Each close happens after approval, done by the session named.

Next sitting (preview only). Batch D2 (D2-01 to D2-16) is needed before F1a (open questions, D2; Appendix C).

3. Evidence matrix

G0 item (§3.2) State Evidence
Entry: step 0 merged Met #3617, f5318074d
D1-01 carried out Met #3964, 85e6facf7; #3969 closed
D1-02 to D1-09 answered Met Register §1.13
Q-03 catalogue subset Met Register §1.14
D4-18 mapping part Met; reading pending approval Register §1.14; G0-D1
Tester panel named Met for the CAMARADES panel; no external users Register §1.14; G0-X1
Joint sequencing with #3961 Met D1-02; DOM §15
#3987 direction and date Met; production is a target D1-03; register §1.14; G0-X3
D3-14 and D3-15 Optional; pending approval G0-D2, G0-D3
PR dispositions Pending approval §2; Appendix B
Freezes: package, operating model, calendar Met once #4013, which adds the G0 inputs and this dossier, merges #4013; G0-X13
Freeze: five stream briefs Not met G0-X8
G0 dossier Met: a fresh verifier checked every link and claim on 4 October (no Blockers; one Major quote attribution fixed) G0-X5
Chris's approval Pending approval —

4. Exceptions

Evidence for each row is in Appendix D, except G0-X2, whose evidence is G0-D1 and register §1.14.

ID Exception Recommendation
G0-X1 No external testers named Accept with follow-up: G0-D11, then D3-08 at sitting 3
G0-X2 D4-18 reading unconfirmed Fix before passing: G0-D1
G0-X3 The production statistics date is a target, and gate (b) failed on latency on the idle host on 3 October (X-STATS-b1) Accept with follow-up: staging from 5 October stands; the FEAT-024 owner re-forecasts production
G0-X4 No STATUS home or dossier template before S0-5 Accept: S0-5 links this file from STATUS
G0-X5 No programme-owner checklists at G0 (they start at F1a) Accept: §2.7's link and evidence check has run (evidence matrix)
G0-X6 The notification stack needs rebasing after #3964 Accept with follow-up: the stack owner (G0-D10)
G0-X7 A-33: the stack owner has not been consulted Accept with follow-up: consult in W0
G0-X8 The five stream briefs do not exist Accept with follow-up: Chris approves each brief by summary read before its stream's first claim. S0-5 and S0-6 are scaffolding and exempt (PROPOSAL), so they can start at once
G0-X9 Legacy apply, filtered options, the excluded specs and the debug text sit under no gate Fix before passing: authorise them as R1a-4 to R1a-6
G0-X10 Plan §12 lists the seed-project design; DOM §3.6 omits it Fix before passing: a docs-only design in S0-4's brief
G0-X11 FEAT-024 STATUS is stale (R11 asked for a fix before G0) Accept with follow-up: fix before F1a's FEAT-024 checklist
G0-X12 #3987 has no record of D1-03 and no ADR Accept with follow-up: the architecture-review session writes it
G0-X13 The G0 inputs and this dossier are only on #4013 Fix before the first claim: merge #4013, this dossier's own PR

5. Joins, risks and capacity

RAG (PROPOSAL): red means a step has failed or blocks a G0 row; amber means not met and needed later (F1a or after).

Chain Needed by Live (UTC, 3 October) RAG
X-ARCH-a: #3985, #3973 F1a Open; no PR found at 23:41 Amber
#3987 ADR F1a Open; no comments Amber
X-STATS-b1, gate (b) on an idle host Production statistics; GA Failed on latency, 22:38 to 23:01 (#3510) Red; no G0 row depends on it
X-STATS-b2 soak (#3952) Production statistics Not started; driver session online at 22:36 Amber
FEAT-024 source-write seam M0-2 Not checked; a test double is allowed (DOM §4.3) Amber
X-AUTH-WP9 and WP1d (#3335) R1b Not met; R1b ships without explanations Amber
Notification stack: #3932, #3938, #3941 to #3945, #3947 and #3965 Notices only #3932 conflicting; X-NOTIF not met Amber

No G0 row needs these, and none is met: X-STATS-a, b3 to b7 and c (programme integration §12); X-AUTH-RESOLVER (#3251, last updated 22 September); X-IMPORT (#2612, a docs-only plan); X-PDFTOOLS (unscheduled).

  • Juniper (23:44 UTC): load per thread 0.37, 0.65 and 0.71 over 1, 5 and 15 minutes; the cap drops after an hour above 0.8 (§10.6). Root disk 79% used. Cap (PROPOSAL in DOM §10.6, approved with the operating model at G0): eight implementer sessions and two heavy local runs.
  • Bramble (§10.5): window 1 (gate (b)) was used on 3 October. Window 2 is S0-3's baseline, window 3 the soak (a benchmark window pauses it) and window 4 M0-5. One exclusive window a week, started by Chris.
  • WIP (§5.4; its limits are PROPOSALs that G0 approves with the operating model): stream A holds S0-1, S0-3, S0-4, S0-6, most of M0 and the F1a drafts, so it reaches four open PRs first. R1a's UI goes to stream C. Supervised summaries are staggered to stay under eight items waiting on Chris and within A-35's four hours a week. The T1 panel includes the approver, which adds to that load.

6. If not passed

Options (PROPOSAL; every gate is a re-plan point, §5.6):

  1. Pass with conditions, for example G0-X8 and G0-X13 met before the first claim.
  2. Pass a reduced list (S0, R1b, RT-27 and the ADR drafts), holding M0, R1a and W0.
  3. Hold, and re-plan the slice list, the WIP limits and A-35.

Meanwhile nothing is built (D1-04), and no programme flag exists yet. #3964's fix stays live. Other programmes run under their own approvals, and every open PR stays untouched.

Appendix A. Slice list with dependencies and criteria

DOM §4.3 assigns AC-M0-01 to 08 to M0 as a whole and lists no dependencies between M0 slices; the per-slice criteria mapping and the M0 dependencies below are PROPOSAL. Sources: DOM §4.2, §4.3, §5.3, plan §5 (R1a, R1b), acceptance criteria §4.1, §4.2, §4.4 and §4.5.

ID Slice in full Depends on Criteria Flag, host and notes
S0-5 STATUS ledger; release-brief, slice-brief, gate-dossier and acceptance-record templates; the traceability file and its docs-CI check; the PR template's programme section; the ADR block Nothing AC-S0-04, AC-S0-07 Home docs/features/integrated-review/; opens the ADR-030 to 069 block and the claim table
S0-6 Five stream kill switches and R0's admission flag, default off, with regenerated outputs and manifest entries Nothing AC-S0-01 Generated outputs regenerated, never hand-merged (§11.2)
S0-1 Explicit DI module in the API and PM hosts; placeholders answering the typed "feature unavailable" result; singleton-identity and architecture tests S0-6 AC-S0-01 No convention scan (#3961's direction); new projects in today's dependency maps
S0-4 Seed-if-absent job keyed by fixed GUIDs S0-1 AC-S0-06 (pending-D3-14) Preview only until D3-14 (G0-D2)
S0-2 Versioned JSON corpus with schema check; xUnit and Vitest loaders; differential runner; FX-PRISMA-01 to 08 Nothing AC-S0-02 In parallel from the start
S0-3 Environment-gated arm: session submit and screening save; 1, 2, 5 and 10 reviewers; 50, 340 and 2,023 questions Nothing AC-S0-03 Runs in Bramble window 2; Chris reads the report
S0-7 Personas; axe and screenshot helpers; excluded-spec check; Firefox and WebKit projects; native-drag guard Nothing AC-S0-05 Browser projects count as evidence only with D3-15
S0-8 Named-point barrier harness on the replica-set fixture; mixed-version harness skeleton Nothing AC-S0-05 In parallel from the start
M0-1 OrdinaryAnswer and ScreeningDecision through one handler, head CAS and the command ledger; conformance suite and C# fake S0-1, S0-2, S0-3, S0-8 AC-M0-01, 06, 08; AC-M0-CONF Stream A kill switch; spike code may be discarded
M0-2 Study projection in transactional and fold modes; command-budget test M0-1 AC-M0-02 (commit shape), 05 FEAT-024 checklist; seam or test double, as the M0 report says
M0-3 Draft record with lease and etag consumed by Save; TypeScript fake behind AF2's persistence port M0-1 AC-M0-05 —
M0-4 Dark AF2 adapter renders a 200-question form and saves through the API M0-3; S0-6 AC-M0-05 Stream C kill switch
M0-5 Export of current and previous versions; benchmark run; M0 report; storage ADR (docs-only PR) M0-1 to M0-4 AC-M0-02 (measures), 03, 04, 05, 07 Bramble window 4; thresholds per §4.4 (D1-08 start values); AC-M0-04 includes the QM v2 harvest (G0-D4)
R1b-1 Read-only Members & groups page over existing groups, members and grants (no schema dependency) U8 (visibility); S0-7 AC-R1b-04, 05; 08 when X-AUTH-WP9 lands T2, three testers; stream C kill switch or its own flag; AC-R1b-01 to 03, 07 and 09 are evidenced from #3964 at the ship gate
R1b-2 Members route guard uses the correct permission key, with a spec WP1d agreement with #3335 AC-R1b-06 Authorization PRs are supervised (DOM §7.2)
R1a-1 Audit #3934 and #2781 against C4, and #2387 for reuse; rebase and split plan Nothing Input to AC-R1a-CONF (C4-T04) Also settles #3655's count: the issue says 18 specs, AC-R1a-07 says 17
R1a-2 Question template browse R1a-1; U19; S0-7's drag guard AC-R1a-05 (browse), 09 (pending-D4-06), 10 (pending-D2-15), 12 (pending-D3-15) Until D2-15 (sitting 2), project-scoped templates only
R1a-3 Import preview through the import-target port, legacy adapter R1a-1; U19 AC-R1a-01 (preview half), 02, 04 Canonical apply stays in R2a (DS-20)
R1a-4 (G0-X9) Legacy apply R1a-3 AC-R1a-01 (apply half), 03, 05 (copy), 08 PROPOSAL
R1a-5 (G0-X9) Filtered-options authoring in the new editor R1a-1 AC-R1a-06 PROPOSAL
R1a-6 (G0-X9) Restore the excluded question-management specs; remove the debug text R1a-1 AC-R1a-07 PROPOSAL
SEED-D (G0-X10) Docs-only design of the first seed projects S0-4's brief Inputs to AC-S0-06 PROPOSAL
W0 The U validations listed in §1, the baseline study and the terminology card sort Tester panel AC-UX-01 and 02 per U U19 and U8 (visibility) run first, then the R1a and R1b UI (UX §11's documented exception); U43 also needs D3-02
ADR drafts F1a (the main drafts; the full freeze list is DOM §3.3): C1 to C3, C5, C16, C18, C19, C4's definitions part, C7 identity and claim contract v2, glossary, context map. F1b: C10, C11. F1c: C17, Dockview. C15 v2 S0-5 Gate exit evidence F1a drafts become final only after M0 go; C15 v2 also needs A-33
RT-27 Presence owner's refresh of the tracking contract Nothing F1a entry Baseline for the presence checklist (§2.5)

Appendix B. PR and issue states

All read with gh pr view or gh api by this dossier's author on 3 October 2026, between 23:40 and 23:50 UTC. "Clean" and "dirty" are GitHub's merge-state values. Stacked PRs report against their stack base, not main.

Item State, head, base Last updated (UTC) Disposition
#3617 step 0 Merged 21:42:55, f5318074d 3 Oct 21:42 G0 entry, met
#3964 ownership fix Merged 19:27:18, 85e6facf7; head 16788f9cb 3 Oct 19:27 D1-01 done
#3969 duplicate fix Closed (draft) 3 Oct 22:10 D1-01 done
#4013 G0 inputs and dossier Open, mergeable; head at reading 3a046d580 (moves with each push) 3 Oct 23:35 G0-X13
#2572 QM v2 PR-A Open, conflicting (dirty); af5136696 → main 1 Sep G0-D4
#2573 QM v2 PR-B Open, clean; 271290115 → feat/qm-v2-a-domain 17 Apr G0-D4
#2574 QM v2 PR-C Open, mergeable (unstable), 604 files; 1b93cbbc4 24 Apr G0-D4
#2575 QM v2 PR-D Open, mergeable (unstable), 544 files; 098330759 24 Apr G0-D4
#2461 QM v2 umbrella Draft, conflicting (dirty); 1ca9f5def 22 Sep G0-D4
#2224 custom groups (author nurikarakaya) Open, conflicting (dirty), 47 files; fff8385ac 22 Sep G0-D5
#2986 schema-v0 validation Open, mergeable (blocked), 8 files, +1,306; 1c6799b00 1 Sep G0-D6
#2987 schema and profile ADR Open, mergeable (blocked), 1 file; efd4b96ba 1 Sep G0-D7
#2629 FEAT-027 scoping Open, mergeable (blocked), 1 file; d761ca442 1 Sep G0-D7
#2812 response-mode contract Open, conflicting (dirty), 39 files; 1c3869224 1 Sep G0-D7
#2621 screening-profile prototypes Draft, conflicting (dirty), 282 files; 105bdc09e 1 Sep G0-D8
#2469 chart refactor Open, conflicting (dirty), 122 files; 2488a1f92 22 Sep G0-D9
#3932 inbox Open, conflicting (dirty); 2ddd96fb0 → main 3 Oct 00:31 Train step 1
#3938, #3941, #3942, #3943 Open, clean in the stack; 180f0d1bb, eb72c886d, 75f89b33d, d75fd81b9 2 to 3 Oct Train steps 2 to 5 (X-NOTIF)
#3944, #3945, #3947 Open, clean in the stack; 59ab32e7b, 25b364da3, ae3c6749d 3 Oct Train steps 6 to 8
#3965 private conversations Open, clean on #3947's branch; 986b1cdc2 3 Oct 18:47 Restack per A-33 (G0-D10)
#3934, #2781, #2387 Open, all conflicting (dirty); 9d6c596cf, 2d8b071b0, c81426c44 2 Oct; 1 Sep; 1 Sep R1a-1 audits them
#2612 staged import plan Open, mergeable (blocked), 1 file 1 Sep X-IMPORT input
#3961 architecture review Draft, mergeable (blocked); e843ab373 3 Oct 22:58 D1-02
Issues #3985, #3973, #3986, #3975, #3979, #3980, #3987 Open; none has a comment; no PR references #3985, #3973 or #3975 3 Oct 06:21 X-ARCH-a to d; #3987 per G0-X12
Issues #3510, #3952 Open; gate (b) result posted 23:04; soak session online 22:36 3 Oct 23:04; 22:36 G0-X3
Issues #3251, #3524, #3655, #3335 Open 22 Sep; 15 Sep; 24 Sep; 13 Sep Joins; R1a-1 (#3655)

Appendix C. The next two decision sittings

From the decision calendar. Questions and recommendations are in open questions, Batch D.

Sitting Held before Question IDs Other entry items for that gate
2 F1a D2-01 to D2-16; Q-27 (R2a's Save effects); D1-08 (confirm the start thresholds from M0 evidence); D3-14 (unless G0-D2 answers it); D3-16 (contract part: the claim contract fields and route seam); D3-17; D4-06 (R1a catalogue part); D4-12 (observation markers in C3) M0 go; X-ARCH-a; RT-27 merged; #3987 decided (met, with G0-X12)
3 F1b and F1c D3-01 to D3-04, D3-06, D3-08, D3-15 (unless G0-D3 answers it), D3-20 F1b: the Q-03 catalogue subset (met at G0). F1c: the U validations UX §11 lists for F1c, passed

Appendix D. Evidence for the exceptions and deviations

  • G0-X1. Register §1.14 names no external SyRF users. UX §9 asks for at least two in the W0 baseline study and in each formative pack. D3-08 (participants and telemetry) sits at sitting 3.
  • G0-X3. The FEAT-024 gate (b) rerun ran on idle Bramble from 22:38 to 23:01 UTC on 3 October, on main c45648aeb. It failed on latency in every contended cell, with zero statistics-caused or fold-caused conflicts; exhaustion equality also failed in the contended cells (the fold arm usually exhausted fewer). The design owner's decision on the pre-write mode re-read comes next (#3510, comment at 23:04 UTC). The package recorded a provisional fail with the rerun pending until #4013 corrected it (plan §8, programme integration §2 and §7.1; DOM §6.2). Production "the following week" (register §1.14) needs X-STATS-b1 to b7, and GA needs the whole chain (D1-03). A slip of more than two weeks fires a re-plan trigger (§5.6).
  • G0-X4. docs/features/integrated-review/ does not exist in this worktree (checked at about 23:45 UTC on 3 October). DOM §2.7 places dossiers under the STATUS home that S0-5 creates (§14.1).
  • G0-X5. DOM §2.5 checklists first run at F1a (E79). §2.7 asks a fresh verifier to check every evidence link before Chris sees the dossier. This file was validated with validate-docs.sh --skip-indexes --skip-links.
  • G0-X6. #3932 is conflicting against main. Both #3941 and the merged #3964 change src/services/api/SyRF.API.Endpoint/Controllers/ProjectController.cs (gh pr view --json files, 23:41 UTC). §11.9 step 3 already asks for #3941 to be rebased on the ownership fix.
  • G0-X7. A-33 (open questions §4): "the owner has not yet been consulted".
  • G0-X8. DOM §2.4 says each stream brief is "approved at G0", and §3.2 freezes them. Plan §12 step 2 says this dossier carries them. No brief exists in docs/planning/. Until they are approved, the supervised-tier list in DOM §9.3 applies.
  • G0-X9. DOM §3.6 gives G0 "R1a's audit, browse and preview" and F1c "R1a's default-entry slice". R1a's MVP in plan §5 and DOM §13.5 also ships legacy apply, filtered-options authoring, the restored specs (#3655) and the removal of the debug text. No gate lists those. AC-R1a-01, 03 and 05 need apply, and the R1a header gives G0 as its freeze.
  • G0-X10. Plan §12 step 3 ends with "the design of the first seed projects"; DOM §3.2 and §3.6 do not list it.
  • G0-X11. docs/features/materialized-project-statistics/STATUS.md on main shows slice 7 as "In review" (line 386) and says "the fold flag is off in every environment" (lines 372 to 374). Programme integration §7.3 R11 schedules that correction "before G0". DOM §2.5 says a checklist cannot pass against a stale baseline.
  • G0-X12. #3987 has no comments (gh api, 23:41 UTC), and no ADR on main records D1-03. DOM §11.8 leaves ADR-021 to 029 free for #3986 and #3987.
  • G0-X13. The register §1.14 record and this dossier reach main only when #4013 merges. D1-05 put the package on main because every agent session starts from main (DS-17).
  • G0-D6 (deviation). Plan §8 says to harvest #2986 into R2a validation. #2986's own description calls it the "smallest backend integrity slice" for today's annotation writes (ownership, membership, option membership), and #2987's description says "#2986 is the schema-v0 backend integrity MVP and does not depend on a QM-v2 revival". Legacy projects stay on legacy paths for years (D3-06's premise), so an R2a harvest would not replace it.
  • G0-D7 and G0-D8. docs/decisions/ on main already holds ADR-013-sidenav-fork-retirement, ADR-014-integrated-study-pdf-viewer, ADR-016-preview-tls-certificate-and-readiness and ADR-017-bulk-pdf-notifier-authority-deactivation. #2621 drafts ADR-013 to ADR-016, #2987 adds ADR-016 and #2812 adds ADR-017. #2987's description says that it and #2986 supersede #2629 once both successors are review-ready.