Skip to content

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.

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.

PromptSkillVersionTerminal state
G-01 PHASE OPENpetrova-phase-open0.1.0 (new)dry-run phase-open record
G-02 VERIFICATION ROUNDpetrova-verify-round0.1.0 (new)classified friction list
G-03 PHASE CLOSEpetrova-phase-close0.1.0 (new)dry-run close + deferred ledger
G-04 DECISION RECORDpetrova-decide0.2.0dry-run decision record
G-05 ONBOARDpetrova-onboard0.2.0admission sequence + proposed contract
G-06 DRIFT CHECKpetrova-drift-check0.2.0three-class findings, read-only
G-07 RECOVERpetrova-recover0.2.0diagnosis + one recovery path
G-08 PLANpetrova-plan0.2.0task sequence, no code

petrova-phase-cycle → 0.2.0, a deprecation pointer.

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.

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, W3 resolve in the fetched artefact. A restated rule is a paste with extra steps, and it goes stale exactly as the old preamble did.
  • ## Terminal state names what the skill does not do. petrova-verify-round states it does not close the phase; petrova-phase-close states it does not open the next. That sentence is the anti-merge mechanism, sitting in the file rather than in a reviewer’s memory.

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.

Mechanical only. The eight cold-session runs are C5’s, per R-6.

CheckResult
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:

  1. A cold session, no prior context, the fixture repo as cwd.
  2. 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.
  3. Record: did it load the preamble and say so; did it produce the plan its ## Terminal state names; did it name the right files; did it stop where it said it stops.
  4. 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, with commands/.
  • skills/petrova-{decide,onboard,drift-check,recover,plan}/SKILL.md — rewritten, each gaining commands/.
  • 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.
  • 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.
  • 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:devarno on 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.