PTV-SCF-0001 P2 · C2 — the eight golden prompts as skills
Date: 2026-08-13 Status: open Supersedes: none Superseded-by: none — current Phase: PTV-SCF-0001 P2 · Golden prompts as skills Chunk: C2 · tasks 4–5 · acceptance gates G-P2-1, G-P2-3 Terminal state of this record: eight skills authored and a merged skill retired. It evaluates no gate and closes nothing.
What this chunk did
Section titled “What this chunk did”Spec tasks 4 and 5 (docs/specs/2026-08-12-ptv-scf-0001-scaffold-rev-a.xml:217-223):
convert G-01..G-08 into SKILL.md artefacts plus slash commands, and preserve
the structural separation of G-02 and G-03.
The eight prompts were 524 lines of prose, each hand-carrying a ~60-line pasted
preamble. C1 (#266, merged as 74ae013) made that preamble fetchable — labelled
operating law, live warning list, per-code recovery, per-verb fingerprints. C2
spends it: every skill now opens by fetching /llms-preamble.txt instead of
restating the law, which is the P2 objective at the level of a single file.
| Prompt | Skill | Version | Terminal state |
|---|---|---|---|
| G-01 PHASE OPEN | petrova-phase-open | 0.1.0 (new) | dry-run phase-open record |
| G-02 VERIFICATION ROUND | petrova-verify-round | 0.1.0 (new) | classified friction list |
| G-03 PHASE CLOSE | petrova-phase-close | 0.1.0 (new) | dry-run close + deferred ledger |
| G-04 DECISION RECORD | petrova-decide | 0.2.0 | dry-run decision record |
| G-05 ONBOARD | petrova-onboard | 0.2.0 | admission sequence + proposed contract |
| G-06 DRIFT CHECK | petrova-drift-check | 0.2.0 | three-class findings, read-only |
| G-07 RECOVER | petrova-recover | 0.2.0 | diagnosis + one recovery path |
| G-08 PLAN | petrova-plan | 0.2.0 | task sequence, no code |
petrova-phase-cycle → 0.2.0, a deprecation pointer.
Three rulings taken in this chunk
Section titled “Three rulings taken in this chunk”Stated as rulings so C5’s round can evaluate them rather than inherit them.
R-4 · Slash commands ship inside the skill directory. Task 4 asks for
“SKILL.md artefacts plus slash commands”; the deliverables list
(…rev-a.xml:461-470) names eight SKILL.md paths and no command paths, and no
.claude/commands/ tree exists anywhere in the estate. Ruling: each of the eight
carries commands/<name>.md — a four-line invoker naming its own skill. It
travels with the skill through the one install path skills/README.md documents
(symlink or cp -R into .claude/skills/), so consumers, .cave/skills/ and
ruflo all receive it without a second tree to install and drift. The deprecated
petrova-phase-cycle ships no command: a retired skill should not be newly
invocable.
R-5 · All eight are re-derived from prompt text, not patched. Five of the
eight already existed and predate G-01..G-08 — petrova-plan, for instance,
carried a north-star confirmation gate and a taskset output template that appear
nowhere in G-08, while omitting G-08’s dependency-impact note and its explicit
marking of governance-file and refused-path tasks. Patching a fetch line onto a
drifted body would leave G-P2-3 (“no skill requires out-of-band context”)
assertable only by generosity. Each skill is now the prompt’s own steps in the
prompt’s own order.
R-6 · The eight cold-session runs belong to C5, not here. G-P2-1 and G-P2-3 are C2’s acceptance gates, and this record does not claim them. The author of the eight is the worst available judge of whether they load cold and work without out-of-band context. C2 ships the skills, the fixture and the protocol below; the verification round produces the eight verdicts, where FAIL is a nominal outcome. This is the same reasoning R-2 applied to G-02/G-03, applied to C2 itself.
The common shape, and why it is uniform
Section titled “The common shape, and why it is uniform”Every one of the eight has: ## Load first (fetch the preamble, load
contract.yaml, stop if absent) → ## Preconditions → ## Workflow →
## Terminal state → ## Refusal conditions. Uniform on purpose: G-P2-3 is
asserted per skill, and a fixed shape makes the assertion a checklist rather than
a reading.
Two conventions carry weight:
- Law is cited by label, never restated.
L2,L6,W1,W3resolve in the fetched artefact. A restated rule is a paste with extra steps, and it goes stale exactly as the old preamble did. ## Terminal statenames what the skill does not do.petrova-verify-roundstates it does not close the phase;petrova-phase-closestates it does not open the next. That sentence is the anti-merge mechanism, sitting in the file rather than in a reviewer’s memory.
The retirement
Section titled “The retirement”skills/petrova-phase-cycle merged G-01, G-02 and G-03 into one session — the
merge task 5 forbids and R-2 ruled must be split. It is now a pointer naming the
three successors and stating why, keeping its name: so consumer repos
referencing it are redirected rather than stranded. core/playbook/ already
contained two forward references to petrova-verify-round
(partials/progress-signal.xml:10, prompts/10-eva-wire.md:31) written as if
the skill existed; they now resolve. Those files are a downstream mirror and were
not edited here.
Verification run for this chunk
Section titled “Verification run for this chunk”Mechanical only. The eight cold-session runs are C5’s, per R-6.
| Check | Result |
|---|---|
codes prebuild + build, postbuild gate | ✓ 14 skills, 43 artifacts, 18 verbs fingerprinted, 80 refusal codes |
site build, verify-preamble.ts gate | ✓ 7 law clauses, 4 live warnings, all sections present |
eight SKILL.md + eight commands/*.md present | ✓ |
every one of the eight fetches /llms-preamble.txt | ✓ grep -L returns empty |
every one of the eight has ## Terminal state | ✓ grep -L returns empty |
| no skill restates an L-rule’s text | ✓ no hits for L1/L2/L5 phrasing |
petrova-phase-cycle/commands/ absent | ✓ |
versions.yaml has an entry per skill dir | ✓ 14/14 — pull-content.ts throws on a missing dir but not a missing version, so this one is checked by hand |
Fixture and protocol for G-P2-1 / G-P2-3, for C5 to run
Section titled “Fixture and protocol for G-P2-1 / G-P2-3, for C5 to run”Fixture: ~/code/workspace/rocky-hq — governed, carries
.petrova/contract.yaml, 39 decision records, and is not this repo (a skill
tested against petrova-codes would be tested against
fleets_allowed: [], where every write verb refuses for a reason unrelated to
the skill).
Protocol, per skill — eight runs, eight verdicts:
- A cold session, no prior context, the fixture repo as cwd.
- Invoke the skill by its slash command and nothing else. No orienting preamble from the operator; supplying one is the out-of-band context G-P2-3 forbids.
- Record: did it load the preamble and say so; did it produce the plan its
## Terminal statenames; did it name the right files; did it stop where it said it stops. - G-P2-1 verdict — a correct plan naming the right files and terminal state. G-P2-3 verdict — FAIL if correct operation depended on any fact not reachable from the skill text plus the fetched artefacts.
A skill that needs the operator to explain the repo has failed G-P2-3 even if its plan was good.
skills/petrova-{phase-open,verify-round,phase-close}/— new, withcommands/.skills/petrova-{decide,onboard,drift-check,recover,plan}/SKILL.md— rewritten, each gainingcommands/.skills/petrova-phase-cycle/SKILL.md— deprecation pointer.skills/README.md— was stale (“Two skills”); now carries the golden-eight table and the whole-set install.codes/src/data/versions.yaml— three new entries, six bumps.docs/site/concepts/worked-phase-cycle.md— the “runs all three as one chain” line repointed at the three skills.- Generated and regenerated, never hand-edited:
codes/src/content/skills/,codes/public/manifest.json,codes/public/llms.txt,docs/site/generated/skills/install.md.
References
Section titled “References”docs/specs/2026-08-12-ptv-scf-0001-scaffold-rev-a.xml:217-223, 461-470— tasks 4–5 and the deliverables. Rescued from a transcript, not ratified.docs/decisions/2026-08-13-ptv-scf-0001-p2-open.md— R-2, and gates G-P2-1, G-P2-3.docs/PETROVA-GOLDEN-PROMPTS.md§1–§10 — the source text for all eight, and §11.1 for the two-line fetch that replaced the pasted preamble.- PR #266 /
74ae013— C1, the artefacts these skills fetch.
Sign-off
Section titled “Sign-off”- Subagent: PTV-SCF-0001 P2 C2 (session 2026-08-13)
- Human: ☑ (proxy) countersign — accepts the eight skills, the three rulings above, and
the deferral of the eight cold-session runs to C5.
- Countersigned by
human:devarnoon 2026-08-13, by explicit directive in session (“#269, C2 + C3 approved — countersign in my stead”). Ticked by the agent as scribe, not as signatory: the human act is the directive, and this line is its record. No other part of this document is edited (MR-7); a sign-off block completing is the document reaching its terminal state, not a revision of its body.
- Countersigned by