Common envelope
Shared types referenced by every verb schema. Single source of truth for cross-cutting types.
Definitions
Section titled “Definitions”RepoSlug— Slug from registry.yaml. Must match an entry’s slug field exactly.IsoDate— ISO 8601 date (MR-4). YYYY-MM-DD form for dates; full RFC 3339 for timestamps.IdempotencyKey— SHA256 of|<target_repo>|<canonical_input_json>, hex-encoded, lowercase. 64 chars. MRCitation— Cross-cutting meta-rule identifier from META-RULES.md.Profile— Branch protection / merge profile inherited from registry.yaml.Status— Terminal status of a verb invocation.Actor— Who invoked the verb. fleet:for agent fleets, human: for direct human invocation, system: for petrova internal automation. TriggeredBy— What surfaced the need for this verb invocation. Required by MR-7 — every action has a documented trigger.Envelope— Common input envelope embedded in every verb’s input.OutputEnvelope— Common output envelope returned by every verb invocation.PRRef— Reference to the PR emitted by an applied write verb.DiffPreview— Predicted file changes (returned in dry_run mode). Mirrors the shape applied mode would emit.Error—MilestoneId— Milestone identifier. Numeric form M{phase}.{n}[.{m}] (e.g. M7.8.2) or lettered-track form M-{TRACK}{n}[.{m}] (e.g. M-A1, M-D3) used by repos whose MILESTONES.md follows a lettered-block convention.SeamTier— Autonomy tier per docs/decisions/2026-09-12-seam-class-taxonomy.md (AT0-AT3). Source of truth is host/src/registry.ts’s PetrovaTool.seamTier; this $def exists for schemas that need to reference the type for human readability, per IR-002 step 2. A verb schema echoing its tier here never sets it independently of registry.ts.AuthorizingDecision— Path to the docs/decisions/*.md file that assigned a verb’s seamTier. A tier with no citation is not a grant (docs/decisions/2026-09-12-seam-tier-carrier-field-schema-act.md).
Source
Section titled “Source”spec/verbs/_common.schema.json — see the petrova-codes repo for the authoritative JSON Schema.