Skip to content

PTV-SCF-0001 P2 — phase close

Date: 2026-08-13 Status: open Supersedes: none Superseded-by: none — current Phase: PTV-SCF-0001 P2 · Golden prompts as skills Shape: G-03 (docs/PETROVA-GOLDEN-PROMPTS.md §4) Round: docs/decisions/2026-08-13-ptv-scf-0001-p2-verification-round.md, merged 2ac4bad (#272), countersigned ec813a0 (#273) Waiver: docs/decisions/2026-08-13-waiver-ptv-scf-0001-p2.md, merged 80d8e6e (#276) Terminal state of this record: P2 closed, two gates waived, and a deferred ledger P3 consumes. It does not open P3.

P2 closes with G-P2-2 and G-P2-3 waived. Not passed. Per R-W1 and the waiver’s §6, no reading of this record may report P2’s gates as green and no projection may omit the two waived gates. Four gates passed on re-run evidence; two failed, were not reworded, and were not made to pass by absorbing work.

In a separate cold session with no access to the authoring session’s context — the separation R-2 exists to enforce, applied to the phase that authored R-2. It was run twice. The first attempt, before any waiver existed, refused at precondition 3 (docs/findings/20260813-2047-p2-close-refused-at-precondition-3.md). This record is the second attempt, after the waiver shape and the waiver itself merged.

The session was asked to scrutinise the waiver rather than accept it. Its verdict is in §Waiver scrutiny below, and it is not a clean bill of health.

#PreconditionVerdictEvidence
1A verification-round record exists for THIS phase and is mergedPASSRound resolves on origin/main at ec813a0, established with git cat-file -e origin/main:<path> — the method F-36 records that no skill specifies.
2Every item the round surfaced carries an explicit classificationPASS on the round’s fourteen, with a defect recorded and not repairedF-22…F-35: 10 DEFERRED, 2 CLOSED, 1 IN-BUDGET, 1 cross-repo. See the F-14 defect below.
3Every acceptance gate reads PASS, or has a recorded and merged waiverPASS via waiverG-P2-1/-4/-5 PASS, G-P2-6 PASS as delivered; G-P2-2 and G-P2-3 FAIL and still read FAIL, waived by 2026-08-13-waiver-ptv-scf-0001-p2.md.
4Every DEFERRED item has a named target in the next phasePASS, with a gate-writing defect of the same class as F-33Ten items → P3. F-32 → rocky-hq’s ledger: a named target that is not “in the next phase”, because under L4 that is the only correct target and rerouting it into P3 would be this repo absorbing another repo’s findings.

All four hold. Not one of them holds cleanly, and that sentence belongs in the record rather than in a footnote.

The P2 open record (…p2-open.md:57) raised F-14 · P0 has no close record and said it was “carried into P2’s own verification round for classification”. The round does not mention it. An item the phase itself routed into the round was never classified by it.

It is also an ID collision: P1’s verification round already bound F-14 to “ARES is on the master with no registered slug behind it” (…p1-verification-round.md:164,191), classified IN-BUDGET there.

This does not fail precondition 2 as worded — the round did not surface it, so there is no unclassified item among those the round surfaced. But the precondition’s purpose is that a phase does not close over unexamined friction, and here it closes over exactly one item, admitted rather than discovered later.

The close does not classify it. That is the round’s job, the round has merged, and classifying it here would be the close doing the round’s work — the specific act G-03 forbids. It is carried below as unclassified, with the collision named, and it needs a round’s act rather than a close’s.

GateVerdict at close
G-P2-1 · eight skills load cold and plan correctlyPASS — 8/8 runs, four artefacts, four correct refusals
G-P2-2 · fetched preamble ≡ pasted blockFAIL, WAIVED — void if P3 closes without discharging F-23, F-24, F-26
G-P2-3 · no skill requires out-of-band contextFAIL, WAIVED — 8 of 8
G-P2-4 · artefact fields present and non-emptyPASS — re-run at round time, not read back from C1’s record
G-P2-5 · G4 checkerPASS — exit 1 on seeded orphan, 0 on baseline, PTV-CHK-0036 registered
G-P2-6 · 35 rows, uncountersignedPASS as delivered at 09e3a4a

Established. The eight golden prompts exist as skills that load cold and reach their declared terminal states. The three machine artefacts carry every field the phase specified. Gate G4 — asserted by CI since the SDD was written and implemented by nobody — now runs, and the CI job that runs it exists, because G3 and G4 were both specified to run in CI and neither did. The 35-slug DR allocation ledger is complete, matches the estate’s computed population, and was delivered uncountersigned by design. petrova-phase-cycle, the merged anti-shape task 5 forbids, is retired behind a deprecation pointer rather than deleted.

Not established: that an agent fetching the law receives it. The close session re-reproduced F-23 live — the preamble came back as a summary, with W2 absent from the returned text. P2’s objective was make governance law fetchable rather than pasted; the artefacts are correct and curl returns 8,235 bytes of exact law, but the path between the artefact and the agent is not yet trustworthy. That finding is the phase’s most valuable output, not its failure. It could not have been found by inspecting the artefact, only by running against it.

Stated with a caveat the workflow itself cannot satisfy: F-30 records that no artefact enumerates the legal milestone states, so “each legal for its current state” is unverifiable. These use the vocabulary the P2 open record used.

MilestoneFromToBasis
C1 · machine artefactsopenclosedG-P2-4 PASS; delivery 74ae013 (#266)
C2 · eight skillsopenclosed, with a waived gateG-P2-1 PASS; G-P2-3 FAIL-waived, fix work carries as F-26…F-31
C3 · G4 checkeropenclosedG-P2-5 PASS
C4 · DR allocation ledgeropenclosed as deliveredG-P2-6 PASS; ratification is the operator’s (R-3), given 2026-08-13
C5 · round and closeblocked on C1–C4closedRound merged and countersigned; this record is the close. G-P2-2 FAIL-waived
PTV-SCF-0001 P2openCLOSED — two gates waivedFour preconditions met; waiver merged
PTV-SCF-0001 P3—unchangedNot opened here. That is G-01, in a separate session
ItemClassTarget
F-22 · preamble self-contradicts on W1 (line 35 forbids number-citation, line 60 instructs it)DEFERREDP3
F-23 · fetch path returns a summary, not the artefactDEFERREDP3 — discharge-critical
F-24 · preamble’s voice reads as injection; intermittent fetch refusalDEFERREDP3 — discharge-critical
F-25 · verb schemas and golden prompts disagree on who classifies frictionDEFERREDP3
F-26 · no skill says where phase state livesDEFERREDP3 — discharge-critical
F-27 · petrova-onboard has no already-admitted exit; wrong-registry.yaml trapDEFERREDP3
F-28 · verb schemas sit under ## Reference, not ## Load firstDEFERREDP3
F-29 · .petrova/brand.yaml absent in consumers and in the control planeDEFERREDP3
F-30 · skills mandate undefined vocabularies (severity, milestone states)DEFERREDP3
F-31 · commands/ invokers unexercised; install path unverifiedDEFERREDP3
F-32 · ~30 unverified sub-phase closes and related findings in rocky-hqDEFERRED (cross-repo, L4)rocky-hq ledger — handover, not P3
F-36 · “merged” undefined and unevaluable without git historyDEFERREDP3
F-37 · waivers had no recorded shapeDISCHARGED by 2026-08-13-acceptance-gate-waiver-shape.md—
F-38 · close_phase schema cannot express a waiver; blocks every consumerDEFERREDP3
F-14 (P2 sense) · P0 has no close recordUNCLASSIFIED — routed to the round by …p2-open.md:57 and never classified there; ID collides with P1’s F-14needs a round’s act, not a close’s

Closed, carrying nothing: F-33 (a gate asserted a mutable property with no timestamp — resolved in-record), F-35 (doctor-all.sh fails on kahn-hq and stratt-hq, pre-existing, reproduced on a clean tree before any P2 work). Absorbed in-budget: F-34 (author/verifier separation achieved between verify and close, not between authoring and round).

The close session was asked to judge the waiver, not accept it. Its findings, carried here rather than summarised away:

Conforms on every required field — filename, rank: waiver, specific gate IDs with no wildcard, verdict_source pointing at the merged round, a non-trivial discharge and expiry, all four body sections, and §1 quoting the FAIL verdicts rather than paraphrasing them. Merged at 80d8e6e. Countersigned on a directive that names the waiver and names what is waived, which is R-W4’s requirement — and the round’s own countersign explicitly refused to do that job, which is the discipline working rather than an accident.

Is a gate being weakened rather than a failure recorded? On the whole, no. Neither gate text was touched, both still read FAIL, and §6 closes four escape routes: reporting them green, waiving them again in P3, pasting as a workaround, and closing on the other preconditions.

Two qualifications that are not nodded through:

  1. G-P2-2 is waived against the letter of R-W2. The fetch path degrading is a propagating condition — the textbook case R-W2 says must be fixed rather than waived — and the entire justification rests on the §5 expiry. The waiver argues against itself on this point and hands the reader everything needed to refuse it, which is the opposite of softening. But the honest summary is that G-P2-2 holds by the narrowest legitimate margin, on the strength of a deadline.
  2. The circularity is real. F-23 — the fetch returning a paraphrase — is both the mechanism behind the waived gate and the condition under which this close session read the law. The instrument closing the phase was evaluated by an agent operating under exactly the defect the instrument defers. No verdict in this record depends on the paraphrased law — every one rests on a file path or a merge check — but it is the sharpest available evidence that F-23’s discharge in P3 is not optional.
  • P3 · Verification harness may open. It inherits the ledger above. Opening it is G-01, in a separate session.
  • P3 may not waive G-P2-2 or G-P2-3 again. It inherits the work, not the exemption (waiver §6, R-W3).
  • If P3 closes without discharging F-23, F-24 and F-26, this close stands on a lapsed waiver — a finding to be raised at P3’s close, not a matter of interpretation.
  • F-14 needs a round’s act before it can be classified. Whether that is an addendum round for P2 or an item adopted at P3’s open is the operator’s call; the close cannot make it without doing the round’s job.
  • Skills continue to fetch. The pasted arm outperforming the fetched arm is a finding about transport, not a reversal of the objective.

The skill’s terminal state names a close_phase dry-run. There is no such surface here. petrova-codes carries fleets_allowed: [] by design, the P2 open record’s Verb invocation section says None, and per F-38 the schema carries no field that can reference a waiver — so a conforming close of a phase with a waived gate cannot be expressed in a close_phase payload at all, in any repo. This record is the deliverable in its place: a PR, unapplied, pending countersign.

  • docs/decisions/2026-08-13-ptv-scf-0001-p2-open.md — scope, six gates, R-1…R-3, F-14 as raised.
  • docs/decisions/2026-08-13-ptv-scf-0001-p2-verification-round.md — the merged round.
  • docs/decisions/2026-08-13-waiver-ptv-scf-0001-p2.md — the waiver.
  • docs/decisions/2026-08-13-acceptance-gate-waiver-shape.md — R-W1…R-W4.
  • docs/findings/20260813-2047-p2-close-refused-at-precondition-3.md — the first, refused attempt.
  • docs/decisions/2026-08-12-ptv-scf-0001-p1-verification-round.md:164,191 — the F-14 collision.
  • Subagent: PTV-SCF-0001 P2 C5 close (cold session, 2026-08-13)
  • Human: ☑ (proxy) countersign — closes P2 with G-P2-2 and G-P2-3 waived, on the ledger above, and accepts F-14 carried unclassified pending a round’s act.
    • Countersigned by human:devarno on 2026-08-13, by explicit directive in session (“close P2 accordingly”). Ticked by the agent as scribe, not as signatory. No other part of this document is edited (MR-7).
    • PTV-SCF-0001 P2 is CLOSED as of this signature, with G-P2-2 and G-P2-3 recorded FAIL and waived, and with F-14 carried unclassified. This signature does not decide F-14’s route — whether it is classified by an addendum round for P2 or adopted at P3’s open remains open, and P3’s open record must state which it took.
    • It also does not open P3. That is G-01, in a separate session.