Use when performing a Petrova control-plane action against a registered repo - opening a decision doc, adding/updating/deferring a milestone, opening or closing a phase, recording a verification round
Use to audit capability boundaries — every place this repo has scripts, agents, or CI workflows writing to sensitive surfaces (.github/workflows/, *.env, secrets/, deploy/credentials/, IAM, the databa
Use when recording any non-trivial architectural call, scope change, supersession, or decision-shaped event in PETROVA-format — date-stamped, append-only, ≥2 alternatives considered, sign-off block re
Use to detect drift — between this repo and PETROVA's shared methodology, between this repo's CLAUDE.md and its actual code, between recent commits and the north-star intent. Produces a numbered drift
Use to audit any repo against the full meta-rule set (MR-1 through MR-17) — the cross-cutting invariants. Read-only; never modifies files. Produces a single PASS/WARN/FAIL table with per-rule evidence
Use when admitting a new repository to the PETROVA control plane — composing the registry-update PR, deriving the right role/profile/fleets_allowed, and (optionally) bootstrapping the consumer with co
Use at every phase boundary — runs the mandatory verification round (MR-10), classifies surfaced friction (closed / in-budget / deferred per MR-2), composes phase-N-close.md with human countersign, th
Use to plan any feature, refactor, or non-trivial change with PETROVA discipline — taskset-shaped sequencing, halt-for-confirmation gates, MR-grounded rationale, explicit reuse-before-build, drift-ris
Use when this repo's work has drifted from its north-star intent — recent commits land features outside scope, the backlog has eaten the focus, or load-bearing infrastructure is being neglected for su
Use when a verb returned failed, --apply errored, or something unexpected happened during a PETROVA operation. Maps the error code to the canonical recovery playbook, prescribes the recovery path adap
Use when the user wants a read-only view of Petrova-line repos - cross-repo status dashboard ("what's open across my projects?"), single-repo diagnose ("what's the state of kahn-hq?"), or MR/conventio
Close an open phase. Requires a paired verification_round decision doc and explicit friction classification for every surfaced item. Marks the phase's decision doc status=closed via supersession-style edit (only permitted edit to a closed-side doc per MR-7 is adding the back-reference).
Operationalises SPEC-07 distribution-pipeline steps 3-5. Given a PUBLISHED Daedalus journal entry (gated:false AND artifact_shipped:true) and a shipped artifact_ref, derives the voice-routed social post-pack (Bluesky primary; X/LinkedIn opt-in via channels) from daedalus/contracts/marketing-engine.yaml, and appends one distribution event to daedalus/content/arc.yaml. target_repo MUST be devarno-cloud. Emits a PR; never auto-posts.
Ratify a new petrova baseline version (v2, v3, …) as a decision doc in petrova-codes. The verb's pre-flight runs the full server-side audit and refuses to proceed if any MR check is `fail` — declaration is a real verification, not a paper claim. Emits `docs/decisions/<date>-petrova-baseline-v<N>.md` populated from the operator-supplied scope + roster.
Read-only collection of cross-cutting context across a target repo: current phase, open milestones, recent decisions, recent findings, failing CI checks. Returns a structured report consumable by other verbs (notably propose_fix) or by humans/agents directly.
Open a new dated decision doc in the target repo's docs/decisions/. Creates a PR adding a single file conforming to the repo's decision-doc template. The doc is opened in 'open' status with sign-off block awaiting human countersign.
Remove a consumer entry from registry.yaml. Opens a PR against petrova-codes:main deleting repos[slug] and co-emits an ADR recording the deregistration rationale. Refuses unless an explicit confirm_slug matches the slug being removed. target_repo MUST be petrova-codes.
Reconcile a drifted consumer registry entry. Given a slug whose state-sweep reports contract_drift=true, opens a PR against petrova-codes:main bumping registry.yaml > repos[slug].contract_sha to match the consumer's current .petrova/contract.yaml SHA. Co-emits a docs/decisions/<date>-petrova_act_reconcile_drift-<slug>.md ADR recording the realignment. target_repo MUST be petrova-codes (control-plane self-edit).
Register a new consumer repo in registry.yaml. Reads the new repo's .petrova/contract.yaml on its default branch, derives slug + url + default_branch + contract_sha + fleets_allowed + integrations + registered_at, and opens a PR adding repos[<slug>] = <derived>. Co-emits an ADR recording the registration. target_repo MUST be petrova-codes.
Generic registry-mutation substrate. Applies a list of structured ops (set/add/remove against dotted paths under repos[<slug>].*) to registry.yaml and opens a PR with the diff plus a co-emitted ADR. Ops outside repos[<slug>].* are rejected — this verb cannot edit top-level registry fields. target_repo MUST be petrova-codes.
Deposit the petrova playbook (META-RULES.md, 00-bootstrap.md, mr-preamble.xml, progress-signal.xml, airlock-rules.xml, progress.schema.json) into a consumer repo's `.petrova/playbook/` directory. Cross-references remain Fleet-MCP fetch directives (petrova.prompts.get <slug>); they are NOT rewritten to local filesystem paths (consumers carry only .petrova/playbook/). This is Step 0 of the bare-bones-to-baselined journey; petrova_onboard depends on it for path resolution.
Initialise a registered repo's mechanical petrova floor: write `.petrova/contract.yaml` with default integration declarations + install `.github/workflows/docs-invariants.yml` if missing. Narrow compliance verb — does NOT generate CLAUDE.md / MILESTONES.md / AGENTS.xml / north-star (those stay prose-driven via `00-bootstrap.md`). The verb's job is to make the mechanical floor harder to skip.
Draft a fix PR grounded in a preceding diagnose run. Composes request_review under the hood, but adds a hard binding to a diagnosis_id and requires explicit MR-12 grounding for the proposed change. The verb fleets reach for when implementing fixes.
Open a PR (same surface as request_review) AND mark it for auto-merge once branch protection / CI gates pass. Profile-restricted: only permitted on registry profile=permissive, or profile=standard with explicit fleet allow. Never permitted on profile=strict — those repos require human merge.
Generic write surface: open a PR with arbitrary file changes and request review. The lower-level primitive other write verbs may compose. Does NOT mark auto-merge — human approval gates the merge.
Open a new phase. Composes open_decision (writes phase-N-open.md) plus update_milestone seeding for declared sub-milestones. Predecessor phase must be closed.
Add a new milestone or transition an existing one in the target repo's MILESTONES.md. State transitions are restricted: planned → active → complete | deferred | retired. Marking complete requires evidence_path resolving to docs/verification/.
Record the output of a phase-close verification round. Creates a dated decision doc capturing surfaced items prior to classification (close_phase consumes this doc and applies the classifications). Mandatory at every phase close per MR-10, even when no friction surfaces.
Flip a registered consumer repo's `.petrova/contract.yaml` integration block from `pending` (or `failing`) to `wired`, with a validated evidence object. Generic over integration: ARES, TRACEO, CRUMB, ROCKY, EVA. The evidence schema is enforced per integration (mirrors contracts/contract.schema.json's integration_<name> sub-schemas). Refuses to wire an integration that is already `wired` (use a new verb for re-wiring or evidence updates). Requires a ratifying decision doc at the cited path; that ADR is the human accountability anchor.