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”Phase integrity has no milestone
Section titled “Phase integrity has no milestone”1 · The gap, stated plainly
Section titled “1 · The gap, stated plainly”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 checkconfirmed 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:
| ID | Chunk | Acceptance gate |
|---|---|---|
| M3.1 | C0 · canary repo registered and credential scoped | G-P3-1 |
| M3.2 | C1 · probe skeleton: schema resolution, fingerprint, registry lookup, admission | G-P3-2 (partial) |
| M3.3 | C2 · probe write path: dry-run render, apply, PR emission, metadata parse-back | G-P3-2 |
| M3.4 | C3 · re-invocation and idempotency assertion | G-P3-3 |
| M3.5 | C4 · structured per-run records and named recovery paths | G-P3-5, G-P3-6 |
| M3.6 | C5 · VCRM — six SRs to test-verified | G-P3-4 |
| M3.7 | C6 · discharge F-23, F-24, F-26 | G-P3-7, G-P3-8, G-P3-9 |
| M3.8 | C7 · verification round, then close | G-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.
5 · Countersign
Section titled “5 · Countersign”- Ratified by alex@devarno.com on 2026-08-28.
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.
| id | scope | status | gate |
|---|---|---|---|
| M3.9 | phase integrity hop — the eleventh A2 hop, unbuilt and unspecified | open | G-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.