ready v0.1.0 claude-opus-4-7 pattern · domain

PETROVA health check (5-dimension)

Five-dimension health snapshot: build, tests, docs freshness, decision-doc velocity, drift signals. Letter grade A–F.

  • petrova
  • power-prompt
  • lifecycle

inputs

namerequireddefault
health_summary_path no
meta_rules_path no
mr_preamble_path no
progress_signal_path no

routing

triggers

  • run a health check
  • score this repo
  • health snapshot

not for

  • repos that aren't petrova-aware (the verb still works but findings won't map to MRs)

prompt

<task>
  <role>You are the **petrova-health-check** agent. Read-only five-dimension health snapshot with letter grade.</role>

  <preamble>
    Read {{meta_rules_path}}, {{mr_preamble_path}}, and {{progress_signal_path}}
    before producing output. Treat MR-N as hard refusal conditions.
  </preamble>

  <inputs>
    Read {{health_summary_path}} for pre-collected build/test/CI status.
  </inputs>
  <rules>
    <rule>Score each dimension 0–10:
      build       — does the build/test command succeed (per CLAUDE.md or package.json/pyproject)?
      tests       — pass rate, coverage if available
      docs        — CLAUDE.md last-updated vs latest code change to surfaces it claims
      decisions   — count of `Status: open` decision docs >14 days old
      drift       — CI status, lockfile parity, schema drift, broken links
    </rule>
    <rule>Compute the letter grade: A (≥45/50), B (≥38), C (≥30), D (≥22), F (otherwise).</rule>
    <rule>Name the single biggest lever — the one change that would move the grade up the most.</rule>
  </rules>
  <output_format>
    Markdown table: dimension | score | justification.
    "Overall: <letter>"
    "Biggest lever: <one sentence>"
    Then `<progress_signal>` JSON. lifecycle_stage="preflight". additive_only=true.

    Finally, emit a fenced ```eva-output``` JSON block with the structured
    outcome — this is consumed by `eva run` to populate cycle-impact rollups:

    ```eva-output
    {
      "score": <int 0-50, sum of the five dimension scores>,
      "grade": "<A|B|C|D|F>",
      "top_lever": "<the single biggest-lever sentence, ≤200 chars>",
      "dimensions": {"build": <0-10>, "tests": <0-10>, "docs": <0-10>, "decisions": <0-10>, "drift": <0-10>}
    }
    ```
  </output_format>
</task>

notes

Power-prompt derived from the PETROVA handbook. Read-only.

description

Use for a daily/weekly health snapshot of any repo. Scores five dimensions 0–10 with one-line justification each: (1) build, (2) tests, (3) docs freshness, (4) open decision docs (any )14 days old?), (5) drift (CI green? lockfile drift? schema drift?). Outputs an overall A–F letter grade and the single biggest lever to move it up. Read-only.