Skip to content

Phase integrity has no milestone


rank: decision outranks: [] doc_id: PTV-DEC-0027 title: Phase integrity has no milestone — a gap that blocks G-P3-2 regardless of what else P3 builds date: 2026-08-28 status: open — UNRATIFIED, proposes a milestone and does not create one owner: petrova-codes scaffold: PTV-SCF-0001 phase: P3 supersedes: none amends: docs/decisions/2026-08-14-ptv-scf-0001-p3-open.md depends_on: docs/decisions/2026-08-28-ptv-scf-0001-p3-first-green-campaign.md

Section titled “rank: decision outranks: [] doc_id: PTV-DEC-0027 title: Phase integrity has no milestone — a gap that blocks G-P3-2 regardless of what else P3 builds date: 2026-08-28 status: open — UNRATIFIED, proposes a milestone and does not create one owner: petrova-codes scaffold: PTV-SCF-0001 phase: P3 supersedes: none amends: docs/decisions/2026-08-14-ptv-scf-0001-p3-open.md depends_on: docs/decisions/2026-08-28-ptv-scf-0001-p3-first-green-campaign.md”

docs/specs/2026-08-12-ptv-scf-0001-scaffold-rev-a.xml:237-241 (A2) names eleven hops the write probe must assert:

Build the end-to-end write probe. Assert every hop: schema resolution, fingerprint match, idempotency key, registry lookup, admission, phase integrity, dry-run render, apply, PR emission, metadata parse-back, AND re-invocation returning already-emitted rather than a duplicate.

Phase integrity is one of the eleven. It is also carried in the baseline: docs/PETROVA-SDD-BASELINE.md:484 reads

F60: F6.0 Phase integrity check

confirmed by reading that line directly. The hop has a name in the spec and a line in the baseline. It has no implementation, and — this is the fact this record exists to state — no milestone.

docs/decisions/2026-08-14-ptv-scf-0001-p3-open.md:244-252 carries P3’s milestone table, M3.1 through M3.8, read in full:

IDChunkAcceptance gate
M3.1C0 · canary repo registered and credential scopedG-P3-1
M3.2C1 · probe skeleton: schema resolution, fingerprint, registry lookup, admissionG-P3-2 (partial)
M3.3C2 · probe write path: dry-run render, apply, PR emission, metadata parse-backG-P3-2
M3.4C3 · re-invocation and idempotency assertionG-P3-3
M3.5C4 · structured per-run records and named recovery pathsG-P3-5, G-P3-6
M3.6C5 · VCRM — six SRs to test-verifiedG-P3-4
M3.7C6 · discharge F-23, F-24, F-26G-P3-7, G-P3-8, G-P3-9
M3.8C7 · verification round, then closeG-P3-10

None of the eight names phase integrity. M3.2 and M3.3 enumerate the hops they cover explicitly, and phase integrity is absent from both lists. M3.4 is scoped to re-invocation and idempotency only — confirmed by reading it — not to phase integrity, contrary to what an earlier artefact implied (PTV-FND-0067, discharged in PTV-DEC-0026 §3). There is no ninth milestone. The hop is not backlogged anywhere in this phase.

2 · Why this blocks the gate regardless of what else is built

Section titled “2 · Why this blocks the gate regardless of what else is built”

G-P3-2’s first clause requires the probe to assert every hop named in A2, not a majority of them and not every hop that happens to have a milestone. docs/decisions/2026-08-28-ptv-scf-0001-p3-first-green-campaign.md (PTV-DEC-0026) §2 already shows this concretely: eight of A2’s eleven hops exist, three are absent (idempotency key and re-invocation, both scoped to M3.4; and phase integrity, scoped nowhere), and three consecutive green runs against eight hops does not satisfy a clause that names eleven.

This means finishing every milestone currently on the table — M3.1 through M3.8, all of them, cleanly — still does not close G-P3-2. The milestone set itself is short one entry for the gate it exists to satisfy. This is a phase-gating omission, not a backlog item competing for priority against other backlog items: it is not that phase integrity is low-priority work still to be scheduled, it is that the schedule as currently written has no place for it to land.

3 · What this record proposes, and what it explicitly does not do

Section titled “3 · What this record proposes, and what it explicitly does not do”

Proposed: M3.9 · phase integrity hop, targeting G-P3-2, added to the milestone table in docs/decisions/2026-08-14-ptv-scf-0001-p3-open.md.

Not done here: this record does not add that row. The milestone table lives in a dated, append-only decision record, and adding to it is a human’s act, not a text edit this record performs on its own authority. Proposing M3.9 and creating it are different acts, and this record is the first only. If ratified, a human (or a subsequent, explicitly-authorized act) appends the row to p3-open.md; this record does not amend that table’s contents itself.

4 · What is not known, and why this is a design question and not a transcription

Section titled “4 · What is not known, and why this is a design question and not a transcription”

What “phase integrity” should actually assert has never been specified beyond two words in A2 and one line in the baseline (F6.0 Phase integrity check). Neither source says what property a phase-integrity hop checks — whether it asserts that a write only lands during an admitted phase of the verb’s lifecycle, that phase transitions are monotonic, that a probe run cannot straddle two phases, or something else entirely. There is no draft hop, no acceptance criterion, and no prior art in this scaffold to copy from the way admission_refuses was copied from admission’s shape.

Scoping M3.9 is therefore a design task, not a transcription of an existing intent into a milestone table. This record deliberately stops at naming the gap and proposing that a milestone exist to hold it; it does not attempt to specify what the hop asserts, because doing so here would be inventing the scope rather than deciding to schedule it.

M3.9 · phase integrity hop now exists, against G-P3-2.

How it exists, since the table it belongs to cannot be edited. P3’s milestone table lives in docs/decisions/2026-08-14-ptv-scf-0001-p3-open.md, a dated decision record. Decision records are append-only, so that table is not rewritten here. This record’s amends: field is the mechanism: the milestone set for P3 is p3-open.md’s table as amended by every ratified record naming it, and this is now one of them. Reading the table alone under-reports the phase by one milestone, and that is a property of the append-only rule rather than an oversight in this record.

idscopestatusgate
M3.9phase integrity hop — the eleventh A2 hop, unbuilt and unspecifiedopenG-P3-2

What ratification does not do. It does not specify what the hop asserts — §4 stands: two words in A2 and one line in the baseline are the whole of the requirement, and turning that into an assertion is a design act nobody has performed. It does not make G-P3-2 pass; the hop must still be built and exercised in a green campaign. It does not change any VCRM row, because phase integrity is a hop and not a requirement.

One claim elsewhere is now stale by this act. PTV-DEC-0026 §2 records phase integrity as “absent — never scoped to a milestone”, and §3 as “never been assigned a milestone”. Both were true when written this morning and are false from this ratification. PTV-DEC-0026 is append-only and is not edited; this paragraph is where that supersession is recorded, and PTV-DEC-0026’s own countersign note points here.