declare_baseline
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. Emitsdocs/decisions/<date>-petrova-baseline-v<N>.mdpopulated from the operator-supplied scope + roster.
Upholds: MR-7
Side effects: Creates a branch petrova/declare-baseline/v
Constraints
Section titled “Constraints”TARGET_IS_PETROVA_CODES— target_repo must bepetrova-codes. Baselines are control-plane meta-state; consumer repos cannot ratify their own baselines.BASELINE_VERSION_MONOTONIC— baseline_version must be strictly greater than the highest existingpetrova-baseline-v<N>decision doc found in docs/decisions/.BASELINE_VERSION_NOT_DECLARED— no existing docs/decisions/*-petrova-baseline-v<baseline_version>.md may exist (no duplicate declarations of the same version).AUDIT_HAS_NO_FAILS— calling AuditSource.run({force:true}) pre-flight must produce zero rows with status:fail. If any row fails, the verb refuses and surfaces the offending (slug, mr, detail) triples in errors[].EVIDENCE_REFS_RESOLVE— Each evidence_refs entry’s value must be a non-empty string. Strict resolution (HTTP fetch / git-show) is left to reviewer judgement — the verb accepts any string.FLEETS_ALLOWED_EMPTY— Standard policy gate. petrova-codes has fleets_allowed:[] so human override (PETROVA_ALLOW_HUMAN_OVERRIDE=1) is required.
Input shape
Section titled “Input shape”baseline_versioninteger(required)scope_descriptionstring(required)evidence_refsarray(required)- items:
typestring(required) enum:pr_url,adr_path,audit_snapshot,plan_pathvaluestring(required)notestring
- items:
roster_includedarray(required) — Slugs inregistry.yamlthat this baseline covers.roster_deferredarray- items:
slugstring(required)reasonstring(required)
- items:
follow_up_gapsarray- items:
summarystring(required)tracking_refstring
- items:
Output shape
Section titled “Output shape”decision_doc_pathstringaudit_pass_countintegeraudit_warn_countintegeraudit_skip_countintegerpr→PRRefdiff_preview→DiffPreview
Example
Section titled “Example”Input:
{ "envelope": { "verb": "declare_baseline", "target_repo": "petrova-codes", "idempotency_key": "abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789", "dry_run": true, "actor": "human:alex@devarno.com", "triggered_by": { "kind": "human_request", "ref": "~/.claude/plans/glittery-popping-bear.md#wave-3" } }, "params": { "baseline_version": 2, "scope_description": "Architectural formalization: petrova-onboard + declare-baseline verbs; MR-14 + MR-15 audit checks; outranks default-convention; contract-SHA drift resolution.", "evidence_refs": [ { "type": "adr_path", "value": "docs/decisions/2026-05-13-petrova-baseline-v1.md", "note": "precursor baseline" }, { "type": "adr_path", "value": "docs/decisions/2026-05-13-outranks-default-convention.md" }, { "type": "pr_url", "value": "https://github.com/petrova-codes/petrova/pull/74", "note": "Wave 1: audit refinements + drift bumps" }, { "type": "pr_url", "value": "https://github.com/petrova-codes/petrova/pull/75", "note": "Wave 2: petrova_onboard verb" } ], "roster_included": [ "petrova-codes", "kahn-hq", "stratt-hq", "choco-hq", "devarno-cloud", "traceo-mcp-server", "grace-hq", "rocky-hq", "eva-hq", "skyflow-hq", "smo1-io", "oompa-tools" ], "roster_deferred": [ { "slug": "rocky-hq", "reason": "MR-1 + MR-12 warns until docs/north-star/ bootstrapped — operator-paced content work" } ] }}Output (n/a):
(none)Recipe
Section titled “Recipe”(no recipe yet — see SKILL guide)