G0 dossier: plan approval and operating model¶
Implementation hold (owner, 5 October 2026). Chris has put feature implementation on hold. Passing G0 and lifting the hold are separate decisions (tracker rows
T-G0andT-HOLDin the implementation tracker). Approving this dossier approves the plan and its operating model. It does not lift the hold. Even after G0 passes and the hold lifts, every workstream brief (T-RD-00toT-DH-00) needs Chris's approval before its work starts. Until then nothing in this dossier authorises implementation, migrations, production activation, notification delivery, closing unrelated or dormant PRs, messaging the design session or building a new prototype. Three things stay distinct: planning approval (Chris's owner decisions); brief approval and implementation authorisation (per gate, D1-04, on hold); and work started, gate passed or production enabled (none). Every work item is at most "Brief drafted".
Owner-session update (5 October 2026). Chris's owner session of 4–5 October (consolidation; owner-session integration; archived bundle in owner-session-2026-10-05/) changes this dossier as follows. The text of 4 October below keeps its content and IDs; annotations added on 5 October are marked "Owner session (5 October)".
- The G0 inputs remain recorded. D1-01 to D1-09, the Q-03 catalogue subset, the tester names (D1-06), #3987's direction and date (D1-03) and D4-18's mapping part stand as recorded in register §1.13 and §1.14.
- Answered by the owner session. G0-D2 (D3-14: add missing staging seeds, prefer preserving staging data, allow justified staging changes, never production). G0-D3 (D3-15: Firefox, WebKit and touch coverage). G0-D11 (keep the current tester panel; no external recruitment now, D3-08). S0-4 may therefore seed staging and S0-7's browser projects count as evidence, once G0 passes, the hold lifts and their briefs are approved.
- Still open for Chris. G0-D1 (confirm the reading of D4-18) and G0 approval itself. D2-09 is the package's one open owner decision. G0 does not need it; it is wanted before F4, and F1a and F4 can freeze with both options carried (RD-AE25).
- Not authorised. The PR dispositions G0-D4 to G0-D10. No dormant PR is closed, and no harvest-and-close, restack or rebase request goes out under this dossier while the hold lasts.
- G0-X3 stays. The production statistics date is provisional, and gate (b) failed on latency on the idle host on 3 October (X-STATS-b1). Staging continues.
- New exceptions G0-X14 to G0-X19 (§4) record what the owner session changes in the G0 ask:
the design-prototype handoff
T-DH-00as an early design input, the nine specifications replacing parts of the stream briefs (G0-X8), M0-3's superseded draft lease, the F1a ADR drafts' new content, R6 and R7's new meaning, and R1a's decided catalogue. - G0-X13 is met. #4013 merged on 4 October 2026 (
3dbe41e61, read from git history on 5 October). - Updated: the evidence matrix (§3), the options (§6) and notes on Appendices A to D. Appendix B's PR and issue states are from 3 October and were not re-read for this update.
- Decision counts with their scope are in integrated plan §11: of the 89 owner decisions open before the session, 63 are resolved, replaced, removed or deferred, 25 are alignment, brief, specialist or engineering-contract entries for the briefs, and one (D2-09) is open.
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. Owner session (5 October): the authorisation
that passing G0 gives also waits for the hold lift and for each row's brief approval (the box at
the top).
How to reply. "As recommended", or the G0-D and G0-X IDs you change. Then approve G0, or pick an option in §6. Owner session (5 October): G0-D2, G0-D3 and G0-D11 need no reply; G0-D4 to G0-D10 stay unanswered while the hold lasts; lifting the hold is a separate reply.
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).
Owner session (5 October): what changes in the ask. Every row above starts only after G0 passes, the hold lifts and the row's brief is approved (the box at the top). Row by row:
- S0-4. D3-14 is decided, so the seed job may run on staging: add only missing data, prefer preserving staging data, never production.
- S0-7. D3-15 is decided, so the Firefox, WebKit and touch projects count as evidence; AC-R1a-12 is no longer blocked on it.
- M0-3. The draft lease is superseded by D2-07 and D2-08: a diff-based draft change log with base-version checks, one shared session and place across tabs and devices, and a form-owned inactivity timeout (G0-X16; review domain specification).
- R1a-2. D2-15 is decided-amended: one application-wide CAMARADES catalogue with versioned
copies and publication requests, so "project-scoped templates only until D2-15" no longer
applies; SYRCLE, CAMARADES and ARRIVE content waits for specialist input
T-SI-03(G0-X19). - W0. The tester panel question is closed (G0-D11; G0-X1). The
design-prototype handoff (
T-DH-00) is an input to U1 and the other W0 prototypes (G0-X14). - ADR-F1a. The drafts carry the owner-session outcomes for D2-01 to D2-16 and the C20 envelope for structured history events (G0-X17).
- Every other row is unchanged in scope.
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. Owner session (5 October): answered. D3-14 decided: add missing staging seeds, prefer preserving staging data, allow justified staging changes, never production |
| 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. Owner session (5 October): answered. D3-15 decided: Firefox, WebKit and touch coverage |
| 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. Owner session (5 October): not authorised; no closure while the hold lasts. The harvest map (5 October) gives this PR group's harvest entries and closure-note draft |
| 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. Owner session (5 October): not authorised; no closure while the hold lasts. The harvest map (5 October) gives this PR group's harvest entries and closure-note draft |
| 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 its fixtures and rule codes into the F1a E23 corpus (T-RD-01, harvest map), then close |
Open; untouched. Owner session (5 October): not authorised. Universal baseline conversion means legacy writes end at R7, not "for years"; the deviation's premise is weaker but the PR stays untouched. The harvest map (5 October) gives this PR group's harvest entries and closure-note draft |
| G0-D7 | #2987, #2629 and #2812 | Close each with a harvest note into the F1a C4 draft (and C14 for #2812's units and metadata types; its response modes go to C4 and E37, per the harvest map). None can merge as it stands: their ADR numbers collide with ADRs on main |
Open; untouched. Owner session (5 October): not authorised; no closure while the hold lasts. The harvest map (5 October) gives this PR group's harvest entries and closure-note draft |
| G0-D8 | #2621 screening-profile prototypes | Close with a harvest note; the UI coverage comparison already compares them | Open; untouched. Owner session (5 October): not authorised; no closure while the hold lasts |
| G0-D9 | #2469 stage overview chart refactor | Close with a harvest note: it conflicts with SF2 and is partly superseded (plan §8) | Open; untouched. Owner session (5 October): not authorised; no closure while the hold lasts |
| 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). Owner session (5 October): not authorised; no request goes to the stack owner and no notification is delivered while the hold lasts |
| G0-D11 | Optional: add external SyRF users to the tester panel? | Yes: name two before the W0 baseline study (UX §9) | CAMARADES panel only. Owner session (5 October): answered. Keep the current tester panel; no external recruitment now (D3-08) |
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. Owner session (5 October): these states were not re-read, and no close happens while the hold lasts.
Next sitting (preview only). Batch D2 (D2-01 to D2-16) is needed before F1a (open questions, D2; Appendix C). Owner session (5 October): the session decided, amended or replaced the other ten D2 questions. D2-09 stays an open owner decision; D2-10 and D2-13 are brief items; D2-03, D2-04 and D2-06 are engineering contracts with no owner question.
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. Owner session (5 October): met; the current panel stays and no external recruitment is needed now | Register §1.14; G0-X1; D3-08 (G0-D11) |
| Joint sequencing with #3961 | Met | D1-02; DOM §15 |
| #3987 direction and date | Met; production is a target. Owner session (5 October): staging continues; the production date stays provisional | D1-03; register §1.14; G0-X3 |
| D3-14 and D3-15 | Optional; pending approval. Owner session (5 October): met, both decided | G0-D2, G0-D3; consolidation |
| PR dispositions | Pending approval. Owner session (5 October): not authorised; no PR is closed while the hold lasts | §2; Appendix B |
| Freezes: package, operating model, calendar | Met once #4013, which adds the G0 inputs and this dossier, merges. Owner session (5 October): met; #4013 merged on 4 October 2026 (3dbe41e61). The owner-session integration amends the package on PR #4045, in review |
#4013; G0-X13; owner-session integration |
| Freeze: five stream briefs | Not met. Owner session (5 October): still not met; the nine specifications supply much of their content, and the ten brief rows T-RD-00 to T-DH-00 are at most "Brief drafted" |
G0-X8, G0-X15; implementation tracker |
| G0 dossier | Met: a fresh verifier checked every link and claim on 4 October (no Blockers; one Major quote attribution fixed). Owner session (5 October): this update has had no fresh verifier pass yet | G0-X5 |
| Chris's approval | Pending approval | — |
| Owner-session decisions integrated (added 5 October) | In review on PR #4045 | Owner-session integration; specifications |
Implementation hold lifted, T-HOLD (added 5 October) |
Not met: the hold has applied since 5 October; it is a separate decision from G0 | The box at the top of this dossier |
Brief approvals, T-RD-00 to T-DH-00 (added 5 October) |
Not met: no brief is approved | Implementation tracker |
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. Owner session (5 October): closed. D3-08 keeps the current panel with no external recruitment now |
| G0-X2 | D4-18 reading unconfirmed | Fix before passing: G0-D1. Owner session (5 October): still open |
| 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. Owner session (5 October): stays. The production date is provisional, and no suggested date is a commitment |
| 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). Owner session (5 October): the check has not run on this update |
| G0-X6 | The notification stack needs rebasing after #3964 | Accept with follow-up: the stack owner (G0-D10). Owner session (5 October): the follow-up waits for the hold lift |
| G0-X7 | A-33: the stack owner has not been consulted | Accept with follow-up: consult in W0. Owner session (5 October): the consultation waits for the hold lift |
| 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. Owner session (5 October): the owner said each workstream needs an approved detailed brief before implementation, which conflicts with the S0-5 and S0-6 exemption. Options: (a) keep the exemption, so both start at G0 plus the hold lift; (b) cover both with a one-page scaffolding brief approved with G0. Recommendation: (b), because it matches the owner's words at little cost. See also G0-X15 |
| 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. Owner session (5 October): met; #4013 merged on 4 October 2026 (3dbe41e61) |
| G0-X14 | Added 5 October. The design-prototype handoff (T-DH-00, OS-A30) is a new early design input that the original ask did not list |
Accept: it is a document, ready now as an input to U1, the other W0 prototypes and F1c. Whether and when to hand it to the Claude Design session that made SyRF Prototype v10 is Chris's decision; this package has messaged no design session and builds no new prototype |
| G0-X15 | Added 5 October. The nine specifications now supply the scope, rules, storage proposals and acceptance evidence that parts of the five stream briefs (G0-X8) would have carried | Accept with follow-up: each brief cites the specifications for its area and adds the slice list, owners and sequencing; the implementation tracker holds the ten brief rows T-RD-00 to T-DH-00; Chris approves each brief by summary read before its first claim. Mapping specifications to streams (PROPOSAL): A takes RD and BC; B takes SP and TI; C takes UX and the design handoff; D takes RS and AC; E takes RI and DM |
| G0-X16 | Added 5 October. M0-3's "draft lease consumed by Save" conflicts with the decided D2-07 and D2-08 | Fix before passing: M0-3's brief re-scopes it to the review domain specification's drafts model (a diff-based change log with base-version checks, one shared session and place across tabs and devices, a form-owned inactivity timeout); a take-over presentation stays optional for small screens |
| G0-X17 | Added 5 October. The F1a ADR drafts (ADR-F1a) were scoped before the owner session | Accept with follow-up: the drafts carry generated session versions (D2-01 amended), the standard target inside the form version (D2-05 amended, OS-A12), the D2-07 and D2-08 decisions, D2-09 parameterised, and the C20 envelope for structured history events. C21 (duplicate consolidation) drafts at F-P and C22 (external and AI-model screening) with its lane; neither is a G0 row |
| G0-X18 | Added 5 October. R6 and R7 change meaning: R6 becomes universal faithful baseline conversion waves after staging trials and production pilots, and R7 becomes legacy-writer retirement, its own verified milestone (baseline conversion specification) | Accept: no G0 row changes; no inventory of production data, dry run, conversion or retirement is authorised by G0 or by the owner session |
| G0-X19 | Added 5 October. R1a-2's catalogue rule changed: D2-15 is decided-amended (one application-wide CAMARADES catalogue, versioned copies with provenance, publication requests) | Accept with follow-up: R1a-2's brief follows the access specification; copying between projects outside the catalogue awaits that specification's ambiguity B5; curated SYRCLE, CAMARADES and ARRIVE templates wait for T-SI-03. Collaborative question drafts with presence stay out of R1a (recommendation in integrated plan §5.3 and the rollout plan's R-AMB-04) |
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 (
PROPOSALin 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.
Owner session (5 October): the live states above were not re-read. Other programmes keep their own approvals; the owner session notes that statistics staging continues and that the production date stays provisional (G0-X3). The capacity figures matter only once the hold lifts.
6. If not passed¶
Options (PROPOSAL; every gate is a re-plan point, §5.6):
- Pass with conditions, for example G0-X8 and G0-X13 met before the first claim.
- Pass a reduced list (S0, R1b, RT-27 and the ADR drafts), holding M0, R1a and W0.
- 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.
Owner session (5 October): the options under the hold (PROPOSAL). Passing G0 no longer
starts work by itself, because the hold and the brief approvals are separate decisions. The three
options above still apply, read with that in mind, and option 1's conditions change: G0-X13 is met,
and G0-X16 (M0-3's re-scope) joins G0-X8 and G0-X15 as conditions before the first claim. A fourth
option follows from the hold:
- Pass G0 and keep the hold. Chris answers G0-D1, approves the plan and the operating model,
and leaves the hold in place. During the hold he answers D2-09 and the owner-visible confirm
items, the specialist inputs
T-SI-01toT-SI-05are requested, and the briefs are drafted for approval. When he lifts the hold, the first approved brief (scaffolding: S0-5 and S0-6 under G0-X8 option (b)) can start at once.
Recommendation: option 4. It records the approvals that are ready, keeps every implementation decision with Chris, and starts nothing until he lifts the hold. Option 3 also fits the hold, but it leaves the operating model unapproved and re-opens planning that the owner session has just settled.
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). Owner session (5 October): D3-14 decided; staging allowed, add-only, never production |
| 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. Owner session (5 October): D3-15 decided; touch journeys join them |
| 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 | Owner session (5 October): re-scope to a diff-based draft change log with base-version checks and one shared session across tabs and devices (G0-X16) |
| 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. Owner session (5 October): D2-15 and D3-15 decided; AC-R1a-09 waits for T-SI-03 (G0-X19) |
| 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. Owner session (5 October): the current panel, no external recruitment (D3-08); D3-02 is a brief item; the design-prototype handoff is an input (G0-X14) |
| 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. Owner session (5 October): F1a adds the C20 envelope and the decided D2 outcomes (G0-X17) |
| 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. Owner session (5 October): these states were not re-read for the update;
only #4013's merge was checked, in git history. Every disposition below waits for the hold lift.
| 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). Owner session (5 October): merged on 4 October 2026, merge commit 3dbe41e61 |
3 Oct 23:35 | G0-X13 (met) |
| #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 |
Owner session (5 October): the session answered most of both sittings. Sitting 2: D2-01, D2-02,
D2-05, D2-07, D2-08, D2-11, D2-12, D2-14, D2-15 and D2-16 are decided, amended or replaced; D2-09 is
open; D2-10 and D2-13 are brief items; D2-03, D2-04 and D2-06 are engineering contracts; Q-27 is
decided; D3-14 is decided; D3-16 and D3-17 are brief items; D4-06 and D4-12 are specialist inputs
(T-SI-03, T-SI-02); D1-08's confirmation from M0 evidence still waits for M0. Sitting 3: D3-03,
D3-04, D3-06, D3-08 and D3-15 are decided; D3-01, D3-02 and D3-20 are brief items. What remains for
a sitting before F1a is D2-09, D1-08's confirmation and the owner-visible confirm items in the
specifications.
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
mainc45648aeb. 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 changesrc/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.mdonmainshows 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 onmainrecords 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
mainonly when #4013 merges. D1-05 put the package onmainbecause every agent session starts frommain(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. Owner session (5 October): every project now converts to a faithful baseline and legacy writers retire at R7, so the "for years" premise is weaker; the PR stays untouched while the hold lasts. Harvest audit (5 October): #2986 validates no write today. Nothing outside its tests calls its validator, and its wiring waited on #2467, which merged on 30 August (audit B). Legacy writes still last until R7, which has no date, and each invalid legacy answer becomes a conversion finding at R6. Recommendation for Chris: keep the deviation (open, outside the programme), with this corrected rationale, and treat the wiring as a legacy-integrity fix that could be authorised separately from the feature-implementation hold (harvest map). Nothing is authorised by this note.
- G0-D7 and G0-D8.
docs/decisions/onmainalready holdsADR-013-sidenav-fork-retirement,ADR-014-integrated-study-pdf-viewer,ADR-016-preview-tls-certificate-and-readinessandADR-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. - Owner-session evidence (5 October). The decisions cited in the owner-session update and in G0-X14 to G0-X19 come from the archived consolidation and register ("Decisions already fixed for this review": "Keep the current tester panel. Add missing staging seeds, prefer preserving staging data, allow genuinely justified staging changes, and do not extend that permission to production. Firefox/WebKit and touch coverage are agreed. Statistics staging continues; production date remains provisional.").
- G0-X13 (5 October).
git log --merges --grep='#4013'in this worktree shows merge commit3dbe41e61, "Merge pull request #4013 from camaradesuk/codex/planning-g0-inputs-and-dossier", dated 4 October 2026 at 01:43 BST. - G0-X14. The design-handoff addendum asks for the handoff and says: "This request is to generate the handoff, not to message or operate the design session. Feature implementation remains on hold."
- G0-X15. The condensed packages say: "Each workstream still needs an approved detailed brief before implementation." The nine specifications are listed in the specifications overview.
- G0-X16. The register's "Decisions already fixed" says autosave "uses increasing draft versions and base-version checks"; D2-07 and D2-08 are decided in the consolidation (§1, §4); the review domain specification replaces the draft lease with the diff change log (§13) and marks the read-only second tab as superseded (§14).
- G0-X17. Review domain specification
§2 (D2 statuses) and the
stage pools specification §10.1 (the
HistoryEventenvelope is a contract at F1a). - G0-X18. Consolidation §5 ("Universal baseline conversion (R4)": "No migration execution is authorized now") and the baseline conversion specification §10.1 and §13.
- G0-X19. The register's "Decisions already fixed" (the MVP catalogue) and the access specification §2 and §12.5 (ambiguity B5).