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.
Headline
Section titled “Headline”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.
How this close was produced
Section titled “How this close was produced”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.
Preconditions
Section titled “Preconditions”| # | Precondition | Verdict | Evidence |
|---|---|---|---|
| 1 | A verification-round record exists for THIS phase and is merged | PASS | Round resolves on origin/main at ec813a0, established with git cat-file -e origin/main:<path> — the method F-36 records that no skill specifies. |
| 2 | Every item the round surfaced carries an explicit classification | PASS on the round’s fourteen, with a defect recorded and not repaired | F-22…F-35: 10 DEFERRED, 2 CLOSED, 1 IN-BUDGET, 1 cross-repo. See the F-14 defect below. |
| 3 | Every acceptance gate reads PASS, or has a recorded and merged waiver | PASS via waiver | G-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. |
| 4 | Every DEFERRED item has a named target in the next phase | PASS, with a gate-writing defect of the same class as F-33 | Ten 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 F-14 defect, stated at full weight
Section titled “The F-14 defect, stated at full weight”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.
Gate ledger as closed
Section titled “Gate ledger as closed”| Gate | Verdict at close |
|---|---|
| G-P2-1 · eight skills load cold and plan correctly | PASS — 8/8 runs, four artefacts, four correct refusals |
| G-P2-2 · fetched preamble ≡ pasted block | FAIL, WAIVED — void if P3 closes without discharging F-23, F-24, F-26 |
| G-P2-3 · no skill requires out-of-band context | FAIL, WAIVED — 8 of 8 |
| G-P2-4 · artefact fields present and non-empty | PASS — re-run at round time, not read back from C1’s record |
| G-P2-5 · G4 checker | PASS — exit 1 on seeded orphan, 0 on baseline, PTV-CHK-0036 registered |
| G-P2-6 · 35 rows, uncountersigned | PASS as delivered at 09e3a4a |
What P2 established, and what it did not
Section titled “What P2 established, and what it did not”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.
Milestone state transitions
Section titled “Milestone state transitions”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.
| Milestone | From | To | Basis |
|---|---|---|---|
| C1 · machine artefacts | open | closed | G-P2-4 PASS; delivery 74ae013 (#266) |
| C2 · eight skills | open | closed, with a waived gate | G-P2-1 PASS; G-P2-3 FAIL-waived, fix work carries as F-26…F-31 |
| C3 · G4 checker | open | closed | G-P2-5 PASS |
| C4 · DR allocation ledger | open | closed as delivered | G-P2-6 PASS; ratification is the operator’s (R-3), given 2026-08-13 |
| C5 · round and close | blocked on C1–C4 | closed | Round merged and countersigned; this record is the close. G-P2-2 FAIL-waived |
| PTV-SCF-0001 P2 | open | CLOSED — two gates waived | Four preconditions met; waiver merged |
| PTV-SCF-0001 P3 | — | unchanged | Not opened here. That is G-01, in a separate session |
Deferred ledger — the input P3 consumes
Section titled “Deferred ledger — the input P3 consumes”| Item | Class | Target |
|---|---|---|
| F-22 · preamble self-contradicts on W1 (line 35 forbids number-citation, line 60 instructs it) | DEFERRED | P3 |
| F-23 · fetch path returns a summary, not the artefact | DEFERRED | P3 — discharge-critical |
| F-24 · preamble’s voice reads as injection; intermittent fetch refusal | DEFERRED | P3 — discharge-critical |
| F-25 · verb schemas and golden prompts disagree on who classifies friction | DEFERRED | P3 |
| F-26 · no skill says where phase state lives | DEFERRED | P3 — discharge-critical |
F-27 · petrova-onboard has no already-admitted exit; wrong-registry.yaml trap | DEFERRED | P3 |
F-28 · verb schemas sit under ## Reference, not ## Load first | DEFERRED | P3 |
F-29 · .petrova/brand.yaml absent in consumers and in the control plane | DEFERRED | P3 |
| F-30 · skills mandate undefined vocabularies (severity, milestone states) | DEFERRED | P3 |
F-31 · commands/ invokers unexercised; install path unverified | DEFERRED | P3 |
F-32 · ~30 unverified sub-phase closes and related findings in rocky-hq | DEFERRED (cross-repo, L4) | rocky-hq ledger — handover, not P3 |
| F-36 · “merged” undefined and unevaluable without git history | DEFERRED | P3 |
| F-37 · waivers had no recorded shape | DISCHARGED by 2026-08-13-acceptance-gate-waiver-shape.md | — |
F-38 · close_phase schema cannot express a waiver; blocks every consumer | DEFERRED | P3 |
| F-14 (P2 sense) · P0 has no close record | UNCLASSIFIED — routed to the round by …p2-open.md:57 and never classified there; ID collides with P1’s F-14 | needs 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).
Waiver scrutiny
Section titled “Waiver scrutiny”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:
- 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.
- 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.
Consequences
Section titled “Consequences”- 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.
A note on the close_phase payload
Section titled “A note on the close_phase payload”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.
References
Section titled “References”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.
Sign-off
Section titled “Sign-off”- 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:devarnoon 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.
- Countersigned by