const HELP: &str = r#"ripr — find changed Rust code where nearby tests may not actually catch the changed behavior.
Usage:
ripr init [--root PATH] [--ci github] [--dry-run] [--force]
ripr pilot [--root PATH] [--out PATH] [--mode draft] [--max-seams 5] [--timeout-ms 30000]
ripr outcome --before PATH --after PATH [--format md|json] [--out PATH]
ripr evidence-health [--root PATH] [--out PATH] [--out-md PATH] [--mutation-calibration PATH]
ripr review-comments --root . --base SHA --head SHA [--out target/ripr/review/comments.json]
ripr gate evaluate --pr-guidance PATH [--mode visible-only] [--out target/ripr/reports/gate-decision.json]
ripr baseline create --from target/ripr/reports/gate-decision.json [--out .ripr/gate-baseline.json] [--dry-run] [--force]
ripr baseline diff --baseline .ripr/gate-baseline.json --current target/ripr/reports/gate-decision.json [--out target/ripr/reports/baseline-debt-delta.json] [--out-md target/ripr/reports/baseline-debt-delta.md]
ripr baseline update --baseline .ripr/gate-baseline.json --current target/ripr/reports/gate-decision.json --remove-resolved [--out .ripr/gate-baseline.json]
ripr zero status --delta target/ripr/reports/baseline-debt-delta.json [--baseline .ripr/gate-baseline.json] [--gap-ledger target/ripr/reports/gap-decision-ledger.json] [--gate target/ripr/reports/gate-decision.json] [--out target/ripr/reports/ripr-zero-status.json] [--out-md target/ripr/reports/ripr-zero-status.md]
ripr policy readiness [--gate-decision target/ripr/reports/gate-decision.json] [--baseline-delta target/ripr/reports/baseline-debt-delta.json] [--out target/ripr/reports/policy-readiness.json] [--out-md target/ripr/reports/policy-readiness.md]
ripr policy operations --policy-readiness target/ripr/reports/policy-readiness.json [--waiver-aging target/ripr/reports/waiver-aging.json] [--suppression-health target/ripr/reports/suppression-health.json] [--out target/ripr/reports/policy-operations.json] [--out-md target/ripr/reports/policy-operations.md]
ripr policy history --current target/ripr/reports/policy-operations.json [--history .ripr/policy-history.jsonl] [--commit HEAD] [--pr-number 123] [--out target/ripr/reports/policy-history.json] [--out-md target/ripr/reports/policy-history.md]
ripr policy promote --to baseline-check --operations target/ripr/reports/policy-operations.json [--history target/ripr/reports/policy-history.json] [--out target/ripr/reports/policy-promotion-baseline-check.json] [--out-md target/ripr/reports/policy-promotion-baseline-check.md]
ripr policy preview-promote --language typescript --class boundary_gap [--evidence target/ripr/reports/preview-promotion-evidence.json] [--out target/ripr/reports/preview-promotion-typescript-boundary-gap.json] [--out-md target/ripr/reports/preview-promotion-typescript-boundary-gap.md]
ripr policy waiver-aging [--ledger target/ripr/reports/pr-evidence-ledger.json] [--history .ripr/pr-evidence-ledger.jsonl] [--out target/ripr/reports/waiver-aging.json] [--out-md target/ripr/reports/waiver-aging.md]
ripr policy suppression-health [--root .] [--manifest .ripr/suppressions.toml] [--out target/ripr/reports/suppression-health.json] [--out-md target/ripr/reports/suppression-health.md]
ripr pr-ledger record --pr-number 123 --base SHA --head SHA [--gate target/ripr/reports/gate-decision.json] [--baseline-delta target/ripr/reports/baseline-debt-delta.json] [--zero-status target/ripr/reports/ripr-zero-status.json] [--out target/ripr/reports/pr-evidence-ledger.json]
ripr pr-comments plan --pr-guidance target/ripr/review/comments.json [--existing-comments target/ripr/review/existing-comments.json] [--mode off|plan|inline] [--out target/ripr/review/comment-publish-plan.json]
ripr pr-review front-panel [--pr-guidance target/ripr/review/comments.json] [--first-action target/ripr/reports/first-useful-action.json] [--assistant-proof target/ripr/reports/test-oracle-assistant-proof.json] [--assistant-health target/ripr/reports/assistant-loop-health.json] [--ledger target/ripr/reports/pr-evidence-ledger.json] [--out target/ripr/reports/pr-review-front-panel.json]
ripr coverage-grip frontier (--ledger target/ripr/reports/pr-evidence-ledger.json|--baseline-delta target/ripr/reports/baseline-debt-delta.json|--zero-status target/ripr/reports/ripr-zero-status.json) [--coverage target/ripr/reports/coverage-summary.json] [--out target/ripr/reports/coverage-grip-frontier.json]
ripr assistant-loop proof --pr-guidance target/ripr/review/comments.json --agent-packet target/ripr/workflow/agent-brief.json --before target/ripr/pilot/repo-exposure.json --after target/ripr/pilot/after.repo-exposure.json --receipt target/ripr/reports/agent-receipt.json [--out target/ripr/reports/test-oracle-assistant-proof.json]
ripr assistant-loop health --proof target/ripr/reports/test-oracle-assistant-proof.json [--out target/ripr/reports/assistant-loop-health.json]
ripr first-pr [--root .] [--base origin/main] [--head HEAD] [--gap-ledger target/ripr/reports/gap-decision-ledger.json] [--out-dir target/ripr/reports] [--check]
ripr first-action [--root .] [--pr-guidance target/ripr/review/comments.json] [--assistant-proof target/ripr/reports/test-oracle-assistant-proof.json] [--gap-ledger target/ripr/reports/gap-decision-ledger.json] [--ledger target/ripr/reports/pr-evidence-ledger.json] [--out target/ripr/reports/first-useful-action.json]
ripr reports index [--reports-dir target/ripr/reports] [--review-dir target/ripr/review] [--out target/ripr/reports/index.json]
ripr reports gap-ledger --records fixtures/gap-decision-ledger/corpus.json [--out target/ripr/reports/gap-decision-ledger.json]
ripr calibrate cargo-mutants --mutants-json PATH --repo-exposure-json PATH [--format md|json] [--out PATH]
ripr agent start --root . --seam-id ID [--out target/ripr/workflow]
ripr agent brief --root . (--diff PATH|--base REV|--files PATHS|--seam-id ID) --json
ripr agent packet --root . --seam-id ID --json
ripr agent verify --root . --before before.json --after after.json --json
ripr agent receipt --root . --verify-json agent-verify.json --seam-id ID --json
ripr agent status --root . [--json]
ripr agent review-summary --root . [--json]
ripr check [--base origin/main] [--diff PATH] [--mode draft] [--format FORMAT]
ripr explain [--base REV|--diff PATH] <finding-id|file:line>
ripr context [--base REV|--diff PATH] --at <finding-id|file:line>
ripr lsp [--stdio]
ripr doctor
What it does:
Reads changed Rust code, creates mutation-like probes, and estimates whether
tests appear to reach, infect, propagate, and reveal the changed behavior
through meaningful oracles. It does not run mutants.
Quick start:
ripr doctor
ripr pilot
ripr outcome --before target/ripr/pilot/repo-exposure.json --after target/ripr/pilot/after.repo-exposure.json
ripr evidence-health --root .
ripr review-comments --root . --base origin/main --head HEAD --out target/ripr/review/comments.json
ripr gate evaluate --pr-guidance target/ripr/review/comments.json --mode visible-only
ripr baseline create --from target/ripr/reports/gate-decision.json --out .ripr/gate-baseline.json
ripr baseline diff --baseline .ripr/gate-baseline.json --current target/ripr/reports/gate-decision.json
ripr baseline update --baseline .ripr/gate-baseline.json --current target/ripr/reports/gate-decision.json --remove-resolved
ripr zero status --baseline .ripr/gate-baseline.json --delta target/ripr/reports/baseline-debt-delta.json --gate target/ripr/reports/gate-decision.json
ripr policy readiness --gate-decision target/ripr/reports/gate-decision.json --baseline-delta target/ripr/reports/baseline-debt-delta.json
ripr policy operations --policy-readiness target/ripr/reports/policy-readiness.json --waiver-aging target/ripr/reports/waiver-aging.json --suppression-health target/ripr/reports/suppression-health.json
ripr policy history --current target/ripr/reports/policy-operations.json --history .ripr/policy-history.jsonl
ripr policy promote --to baseline-check --operations target/ripr/reports/policy-operations.json --history target/ripr/reports/policy-history.json
ripr policy preview-promote --language typescript --class boundary_gap
ripr policy waiver-aging --ledger target/ripr/reports/pr-evidence-ledger.json --history .ripr/pr-evidence-ledger.jsonl
ripr policy suppression-health
ripr pr-ledger record --pr-number 123 --base origin/main --head HEAD --baseline-delta target/ripr/reports/baseline-debt-delta.json --zero-status target/ripr/reports/ripr-zero-status.json
ripr pr-comments plan --pr-guidance target/ripr/review/comments.json --mode plan
ripr pr-review front-panel --pr-guidance target/ripr/review/comments.json --first-action target/ripr/reports/first-useful-action.json --ledger target/ripr/reports/pr-evidence-ledger.json
ripr coverage-grip frontier --ledger target/ripr/reports/pr-evidence-ledger.json --coverage target/ripr/reports/coverage-summary.json
ripr assistant-loop proof --pr-guidance target/ripr/review/comments.json --agent-packet target/ripr/workflow/agent-brief.json --before target/ripr/pilot/repo-exposure.json --after target/ripr/pilot/after.repo-exposure.json --receipt target/ripr/reports/agent-receipt.json
ripr assistant-loop health --proof target/ripr/reports/test-oracle-assistant-proof.json
ripr first-pr --root . --base origin/main --head HEAD
ripr first-action --pr-guidance target/ripr/review/comments.json --assistant-proof target/ripr/reports/test-oracle-assistant-proof.json --ledger target/ripr/reports/pr-evidence-ledger.json
ripr reports index
ripr reports gap-ledger --records fixtures/gap-decision-ledger/corpus.json
ripr calibrate cargo-mutants --mutants-json target/mutants/outcomes.json --repo-exposure-json target/ripr/pilot/after.repo-exposure.json
ripr agent start --root . --seam-id f3c9e4d21a0b7c88
ripr agent brief --root . --diff change.diff --json
ripr agent packet --root . --seam-id f3c9e4d21a0b7c88 --json
ripr agent verify --root . --before target/ripr/workflow/before.repo-exposure.json --after target/ripr/workflow/after.repo-exposure.json --json
ripr agent receipt --root . --verify-json target/ripr/workflow/agent-verify.json --seam-id f3c9e4d21a0b7c88 --json
ripr agent status --root .
ripr agent review-summary --root .
ripr check --diff crates/ripr/examples/sample/example.diff
ripr check --diff crates/ripr/examples/sample/example.diff --json
ripr explain --diff crates/ripr/examples/sample/example.diff <finding-id>
"#;
const INIT_HELP: &str = r#"Write an optional repo policy file (ripr.toml) and, with --ci github, a non-blocking advisory workflow.
Usage: ripr init [--root PATH] [--ci github] [--dry-run] [--force]
`ripr init` is optional. It writes the built-in defaults to a repo-local
ripr.toml so teams can commit, review, and tune policy. Missing ripr.toml is
the normal first-run state and uses the same defaults. Running `ripr init` does
not unlock basic CLI, editor, or pilot usefulness.
Options:
--root PATH Workspace root where ripr.toml should be written. Defaults to current directory.
--ci github Also write .github/workflows/ripr.yml with advisory reports and optional SARIF rendering/upload.
--dry-run Print the generated config without writing.
--force Overwrite an existing ripr.toml or generated workflow.
Generated config:
- uses draft analysis mode and includes unchanged tests
- shows actionable weak or missing seams with default severities
- hides seams whose configured severity is off
- records the built-in saved-workspace LSP seam diagnostic default
- remains advisory and does not configure CI blocking or mutation execution
Generated GitHub workflow:
- installs ripr and writes a pilot packet plus repo report artifacts
- uploads report artifacts and writes a reviewer-oriented advisory summary
- surfaces future PR test guidance reports as non-blocking check annotations
- renders and uploads diff/repo SARIF only while RIPR_UPLOAD_SARIF is true
- uses continue-on-error for advisory RIPR work and upload steps
- does not enable baseline failure policy by default
"#;
const PILOT_HELP: &str = r#"Find the top test gap in this repo and write a packet you can act on.
Usage: ripr pilot [--root PATH] [--out PATH] [--mode MODE] [--max-seams N] [--timeout-ms MS]
Options:
--root PATH Workspace root to analyze. Defaults to current directory.
--out PATH Output directory for the pilot packet. Defaults to target/ripr/pilot.
--mode MODE instant, draft, fast, deep, or ready. Defaults to draft unless ripr.toml sets one.
--max-seams N Maximum ranked seams in the pilot summary. Defaults to 5.
--timeout-ms MS Maximum analysis budget before writing a partial summary. Defaults to 30000.
Outputs:
- repo-exposure.json and repo-exposure.md
- agent-seam-packets.json
- pilot-summary.json and pilot-summary.md
The pilot packet is advisory. It reports saved-workspace static seam evidence
and points to one next focused test action; it does not run mutation testing,
edit source files, or configure CI policy. If analysis exceeds the timeout,
pilot-summary.json and pilot-summary.md are written with status=partial and an
explicit retry command.
"#;
const OUTCOME_HELP: &str = r#"Compare before/after static evidence after adding a focused test.
Usage: ripr outcome --before PATH --after PATH [--format md|json] [--out PATH]
Options:
--before PATH Repo-exposure JSON snapshot before the focused test.
--after PATH Repo-exposure JSON snapshot after the focused test.
--format FORMAT md, markdown, text, or json. Defaults to md.
--out PATH Write the rendered receipt to a file instead of stdout.
The outcome receipt is advisory. It compares static repo-exposure snapshots by
seam_id and reports moved, unchanged, regressed, new, and removed seams; it
does not run analysis, mutation testing, or CI policy.
"#;
const EVIDENCE_HEALTH_HELP: &str = r#"Summarize how strong the current static evidence looks across the workspace.
Usage: ripr evidence-health [--root PATH] [--out PATH] [--out-md PATH] [--mutation-calibration PATH]
Options:
--root PATH Workspace root to summarize. Defaults to current directory.
--out PATH JSON output path. Defaults to target/ripr/reports/evidence-health.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/evidence-health.md.
--mutation-calibration PATH Optional imported mutation-calibration JSON for calibration availability counts.
The evidence-health report is an advisory Lane 1 analyzer-health view. It
summarizes seam grip classes, missing discriminators, observed values, related
test confidence, oracle strength, unknown static stages, and optional imported
calibration availability. It does not change analyzer behavior, run mutation
testing, edit source files, configure CI policy, or make gate decisions.
"#;
const REVIEW_COMMENTS_HELP: &str = r#"Write advisory PR test guidance on changed lines (does not post to GitHub).
Usage: ripr review-comments [--root PATH] --base SHA --head SHA [--gap-ledger PATH] [--out PATH]
Options:
--root PATH Workspace root. Defaults to current directory.
--base SHA Pull-request base revision.
--head SHA Pull-request head revision.
--gap-ledger PATH
Optional gap decision ledger JSON; when supplied, changed-line
repair cards come only from `projection_eligibility.pr_comment`
GapRecord targets.
--out PATH JSON output path. Defaults to target/ripr/review/comments.json.
The review-comments command writes a bounded advisory PR guidance report as
JSON plus a sibling Markdown file. It joins existing static seam evidence with
the changed-line diff by default and only places line guidance on changed
lines. When `--gap-ledger` is supplied, it does not rerun analysis; it renders
only eligible PR-local repair cards from explicit GapRecord records. It does
not post to GitHub, edit source, generate tests, run mutation testing, or make
CI blocking by default.
"#;
const GATE_HELP: &str = r#"Evaluate the optional pass/fail gate against existing PR guidance (advisory unless explicitly enabled).
Usage: ripr gate evaluate [--pr-guidance PATH | --gap-ledger PATH] [--mode MODE] [--out PATH] [--out-md PATH]
Options:
--root PATH Workspace root. Defaults to current directory.
--repo-exposure PATH Optional repo-exposure JSON input.
--pr-guidance PATH Optional PR guidance JSON from `ripr review-comments`.
--gap-ledger PATH Optional gap decision ledger JSON; when supplied, gate candidates come from repairable GapRecord projection targets.
--sarif-policy PATH Optional SARIF policy JSON input.
--labels-json PATH Optional JSON array or object with labels.
--label LABEL Repeatable current PR label input.
--agent-verify PATH Optional agent verify JSON input.
--agent-receipt PATH Optional agent receipt JSON input.
--recommendation-calibration PATH Optional recommendation calibration JSON input.
--mutation-calibration PATH Optional imported mutation calibration JSON input.
--baseline PATH Explicit baseline for baseline-check or calibrated-gate.
--mode MODE visible-only, acknowledgeable, baseline-check, or calibrated-gate. Defaults to visible-only.
--acknowledgement-label LABEL Repeatable acknowledgement label. Defaults to ripr-waive.
--out PATH JSON output path. Defaults to target/ripr/reports/gate-decision.json.
--out-md PATH Markdown output path. Defaults to --out with .md extension.
The gate evaluator is read-only policy over existing RIPR evidence. It writes
JSON and Markdown before returning a non-zero exit for `blocked` or
`config_error` decisions. It does not post comments, edit source, generate
tests, run mutation testing, upload SARIF, mutate GitHub state, or change
generated workflow defaults.
"#;
const BASELINE_HELP: &str = r#"Create, diff, and shrink a reviewed baseline of acknowledged test gaps.
Usage:
ripr baseline create --from PATH [--out PATH] [--dry-run] [--force]
ripr baseline diff --baseline PATH --current PATH [--out PATH] [--out-md PATH]
ripr baseline update --baseline PATH --current PATH --remove-resolved [--out PATH]
Create options:
--from PATH Gate-decision JSON from `ripr gate evaluate`.
--out PATH Baseline ledger path. Defaults to .ripr/gate-baseline.json.
--dry-run Print the baseline ledger JSON without writing.
--force Overwrite an existing baseline ledger.
Diff options:
--baseline PATH Reviewed baseline ledger. Defaults are supplied by callers.
--current PATH Current gate-decision JSON from `ripr gate evaluate`.
--out PATH JSON output path. Defaults to target/ripr/reports/baseline-debt-delta.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/baseline-debt-delta.md.
Update options:
--baseline PATH Reviewed baseline ledger to refresh.
--current PATH Current gate-decision JSON from `ripr gate evaluate`.
--remove-resolved Required shrink-only mode; remove identities absent from current evidence.
--out PATH Updated baseline path. Defaults to --baseline.
The baseline create command writes a stable reviewed historical-debt ledger
from existing gate-decision evidence. It includes advisory, acknowledged, and
blocking identities; skips suppressed, configured-off, not-applicable, and
malformed decisions; and refuses to overwrite by default. It does not edit
source, run analysis, run mutation testing, generate tests, change gate policy,
or make CI blocking by default.
The baseline diff command compares a reviewed baseline ledger with current
gate-decision evidence and writes advisory JSON/Markdown debt movement. It
reports still-present, resolved, new policy-eligible, acknowledged, suppressed,
stale, invalid, and missing-input identities. It does not update baselines,
edit source, run analysis, run mutation testing, generate tests, change gate
policy, or make CI blocking by default.
The baseline update command refreshes a reviewed baseline ledger in shrink-only
mode. `--remove-resolved` removes reviewed identities that are absent from the
current gate-decision evidence, preserves malformed or ambiguous entries for
manual review, and never adopts new current debt. Generated CI should not use
this command to rewrite checked-in baselines automatically.
"#;
const ZERO_HELP: &str = r#"Summarize current RIPR Zero progress over existing baselines and gate decisions.
Usage: ripr zero status --delta PATH [--baseline PATH] [--gap-ledger PATH] [--gate PATH] [--pr-guidance PATH] [--recommendation-calibration PATH] [--out PATH] [--out-md PATH]
Status options:
--baseline PATH Optional reviewed gate baseline ledger.
--delta PATH Required baseline-debt-delta JSON from `ripr baseline diff`.
--gap-ledger PATH Optional gap decision ledger JSON whose ripr_zero_count targets define the visible target count.
--gate PATH Optional gate-decision JSON from `ripr gate evaluate`.
--pr-guidance PATH Optional PR guidance JSON from `ripr review-comments`.
--recommendation-calibration PATH Optional recommendation calibration JSON.
--out PATH JSON output path. Defaults to target/ripr/reports/ripr-zero-status.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/ripr-zero-status.md.
The RIPR Zero status report is read-only advisory progress evidence over
existing baselines, baseline debt deltas, gap decision ledgers, gate decisions, PR guidance, and
optional calibration artifacts. It reports visible unresolved debt, baseline
movement, metadata health, top debt areas, and bounded repair routes. It does
not run analysis, mutate baselines, edit source, generate tests, call an LLM,
run mutation testing, change gate policy, or make CI blocking by default.
"#;
const POLICY_HELP: &str = r#"Summarize which RIPR policy posture is safe for the current repo.
Usage: ripr policy readiness [--root PATH] [--gate-decision PATH] [--baseline-delta PATH] [--recommendation-calibration PATH] [--mutation-calibration PATH] [--waiver-aging PATH] [--suppression-health PATH] [--repo-config PATH] [--previous-readiness PATH] [--out PATH] [--out-md PATH]
ripr policy operations [--root PATH] --policy-readiness PATH [--waiver-aging PATH] [--suppression-health PATH] [--baseline-delta PATH] [--gate-decision PATH] [--recommendation-calibration PATH] [--mutation-calibration PATH] [--preview-boundary PATH] [--out PATH] [--out-md PATH]
ripr policy history [--root PATH] --current PATH [--history PATH] [--commit REV] [--pr-number NUMBER] [--out PATH] [--out-md PATH]
ripr policy promote [--root PATH] --to MODE --operations PATH [--history PATH] [--out PATH] [--out-md PATH]
ripr policy preview-promote [--root PATH] --language LANGUAGE --class CLASS [--evidence PATH] [--out PATH] [--out-md PATH]
ripr policy waiver-aging [--root PATH] [--ledger PATH] [--history PATH] [--out PATH] [--out-md PATH]
ripr policy suppression-health [--root PATH] [--manifest PATH] [--out PATH] [--out-md PATH]
Readiness options:
--root PATH Display root for the report. Defaults to current directory.
--gate-decision PATH Optional gate-decision JSON from `ripr gate evaluate`.
--baseline-delta PATH Optional baseline-debt-delta JSON from `ripr baseline diff`.
--recommendation-calibration PATH Optional recommendation calibration JSON.
--mutation-calibration PATH Optional imported mutation calibration JSON.
--waiver-aging PATH Optional waiver-aging JSON.
--suppression-health PATH Optional suppression-health JSON.
--repo-config PATH Optional repo config summary JSON.
--previous-readiness PATH Optional prior policy-readiness JSON.
--out PATH JSON output path. Defaults to target/ripr/reports/policy-readiness.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/policy-readiness.md.
Operations options:
--root PATH Display root for the report. Defaults to current directory.
--policy-readiness PATH Policy-readiness JSON from `ripr policy readiness`.
--waiver-aging PATH Optional waiver-aging JSON.
--suppression-health PATH Optional suppression-health JSON.
--baseline-delta PATH Optional baseline-debt-delta JSON.
--gate-decision PATH Optional gate-decision JSON.
--recommendation-calibration PATH Optional recommendation calibration JSON.
--mutation-calibration PATH Optional imported mutation calibration JSON.
--preview-boundary PATH Optional preview-boundary JSON.
--out PATH JSON output path. Defaults to target/ripr/reports/policy-operations.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/policy-operations.md.
History options:
--root PATH Display root for the report. Defaults to current directory.
--current PATH Policy-operations JSON from `ripr policy operations`.
--history PATH Optional policy history JSONL.
--commit REV Optional current snapshot commit identity.
--pr-number NUMBER Optional current snapshot PR number.
--out PATH JSON output path. Defaults to target/ripr/reports/policy-history.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/policy-history.md.
Promotion options:
--root PATH Display root for the report. Defaults to current directory.
--to MODE Target mode: visible-only, acknowledgeable, baseline-check, or calibrated-gate.
--operations PATH Policy-operations JSON from `ripr policy operations`.
--history PATH Optional policy-history JSON from `ripr policy history`.
--out PATH JSON output path. Defaults to target/ripr/reports/policy-promotion-<mode>.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/policy-promotion-<mode>.md.
Preview promotion options:
--root PATH Display root for the report. Defaults to current directory.
--language LANGUAGE Preview language under review: typescript or python.
--class CLASS Preview evidence class under review, for example boundary_gap.
--evidence PATH Optional explicit preview promotion evidence receipts JSON.
--out PATH JSON output path. Defaults to target/ripr/reports/preview-promotion-<language>-<class>.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/preview-promotion-<language>-<class>.md.
Waiver aging options:
--root PATH Display root for the report. Defaults to current directory.
--ledger PATH Optional current PR evidence ledger JSON.
--history PATH Optional PR evidence ledger JSONL history.
--out PATH JSON output path. Defaults to target/ripr/reports/waiver-aging.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/waiver-aging.md.
Suppression health options:
--root PATH Workspace root for reading the manifest. Defaults to current directory.
--manifest PATH Suppression manifest path. Defaults to .ripr/suppressions.toml.
--out PATH JSON output path. Defaults to target/ripr/reports/suppression-health.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/suppression-health.md.
The policy readiness report is read-only advisory governance over explicit
existing artifacts. It recommends advisory-only, visible-only, acknowledgeable,
baseline-check, or calibrated-gate posture without executing a gate. Preview
language evidence stays visible and advisory by default. The policy operations
report composes existing policy artifacts into current ceiling, next safe
action, safe/not-safe promotion modes, blockers, and input health without
promoting anything. The policy history report shows whether readiness, waivers,
suppressions, baseline debt, calibration, and preview boundaries are improving
or decaying without appending history. The policy promotion packet reads policy
operations plus optional policy history and writes manual-review promotion
evidence without changing config. The preview promotion packet writes default
blocked evidence accounting for TypeScript and Python preview classes while
keeping preview evidence visible, advisory, non-gating, outside RIPR Zero, and
outside calibrated confidence until a later explicit policy is reviewed. The
waiver-aging report keeps repeated waivers visible as repair or policy-review
signals. The suppression-health report flags durable exception metadata gaps
while keeping suppressed findings visible. These commands do not run analysis,
mutate baselines or suppressions, post comments, edit source, generate tests,
run mutation testing, change gate policy, promote preview evidence, or make CI
blocking.
"#;
const PR_LEDGER_HELP: &str = r#"Record a read-only PR evidence ledger entry over existing reports.
Usage: ripr pr-ledger record --pr-number VALUE --base REV --head REV [--gate PATH] [--baseline-delta PATH] [--zero-status PATH] [--pr-guidance PATH] [--gap-ledger PATH] [--recommendation-calibration PATH] [--agent-receipt PATH] [--coverage PATH] [--history PATH] [--out PATH] [--out-md PATH]
Record options:
--pr-number VALUE Pull request number or local identifier.
--base REV Pull request base revision.
--head REV Pull request head revision.
--label LABEL Repeatable PR label to preserve in the record.
--gate PATH Optional gate-decision JSON from `ripr gate evaluate`.
--baseline-delta PATH Optional baseline-debt-delta JSON from `ripr baseline diff`.
--zero-status PATH Optional RIPR Zero status JSON from `ripr zero status`.
--pr-guidance PATH Optional PR guidance JSON from `ripr review-comments`.
--gap-ledger PATH Optional gap decision ledger JSON with policy-targeted repairable gap records.
--recommendation-calibration PATH Optional recommendation calibration JSON.
--agent-receipt PATH Optional agent receipt JSON.
--coverage PATH Optional coverage summary JSON.
--history PATH Optional previous PR evidence ledger JSONL history.
--out PATH JSON output path. Defaults to target/ripr/reports/pr-evidence-ledger.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/pr-evidence-ledger.md.
The PR evidence ledger is read-only advisory history over existing RIPR
artifacts. It records PR-local movement, waiver visibility, suppressions,
repair receipts, and optional coverage/grip frontier signals. It does not run
analysis, mutate baselines, post comments, edit source, generate tests, call an
LLM, run mutation testing, change gate policy, or make CI blocking by default.
"#;
const PR_COMMENTS_HELP: &str = r#"Plan or publish bounded inline PR comments (off / plan / inline).
Usage: ripr pr-comments plan [--root PATH] [--pr-guidance PATH] [--existing-comments PATH] [--mode off|plan|inline] [--pull-request N] [--event-name NAME] [--head-repo OWNER/REPO] [--base-repo OWNER/REPO] [--token-available] [--no-write-permission] [--out PATH] [--out-md PATH]
Plan options:
--root PATH Workspace root label. Defaults to current directory.
--pr-guidance PATH PR guidance JSON from `ripr review-comments`.
--existing-comments PATH Optional existing RIPR comment metadata.
--mode MODE off, plan, or inline. Defaults to off.
--pull-request N Pull request number for inline safety checks.
--event-name NAME GitHub event name, usually pull_request.
--head-repo OWNER/REPO Pull request head repository.
--base-repo OWNER/REPO Pull request base repository.
--token-available Mark a pull-request write token as available.
--no-token Mark the token as unavailable. This is the default.
--write-permission Mark pull-request write permission as available. This is the default.
--no-write-permission Mark pull-request write permission as unavailable.
--max-inline-comments N Maximum publishable inline comments. Defaults to 3.
--out PATH JSON output path. Defaults to target/ripr/review/comment-publish-plan.json.
--out-md PATH Markdown output path. Defaults to target/ripr/review/comment-publish-plan.md.
The PR comments plan is a read-only advisory projection over existing
`ripr review-comments` output and optional existing-comment metadata. It emits
create/update/keep/delete/skip/blocked operations for a later explicit
publisher, but it never posts comments, calls GitHub, edits source, generates
tests, runs mutation testing, changes gate authority, or makes CI blocking by
default.
"#;
const PR_REVIEW_HELP: &str = r#"Compose the first-screen PR review summary from existing review artifacts.
Usage: ripr pr-review front-panel [--root PATH] [--pr-guidance PATH] [--first-action PATH] [--assistant-proof PATH] [--assistant-health PATH] [--ledger PATH] [--baseline-delta PATH] [--zero-status PATH] [--gate-decision PATH] [--recommendation-calibration PATH] [--mutation-calibration PATH] [--coverage-frontier PATH] [--receipt PATH] [--out PATH] [--out-md PATH]
Front-panel options:
--root PATH Workspace root label. Defaults to current directory.
--pr-guidance PATH Optional PR guidance JSON from `ripr review-comments`.
--first-action PATH Optional first-useful-action JSON.
--assistant-proof PATH Optional proof JSON from `ripr assistant-loop proof`.
--assistant-health PATH Optional health JSON from `ripr assistant-loop health`.
--ledger PATH Optional PR evidence ledger JSON.
--baseline-delta PATH Optional baseline-debt-delta JSON.
--zero-status PATH Optional RIPR Zero status JSON.
--gate-decision PATH Optional gate-decision JSON; gate remains pass/fail authority.
--recommendation-calibration PATH Optional recommendation calibration JSON.
--mutation-calibration PATH Optional imported mutation calibration JSON.
--coverage-frontier PATH Optional coverage/grip frontier JSON.
--receipt PATH Optional agent or targeted-test receipt JSON.
--out PATH JSON output path. Defaults to target/ripr/reports/pr-review-front-panel.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/pr-review-front-panel.md.
The PR review front panel is a read-only advisory first-screen report over
explicit existing RIPR artifacts. It shows the top issue or fallback, policy
state, movement, repair route, receipt state, calibration context, and artifact
groups. It does not rerun analysis, edit source, generate tests, call a
provider, run mutation testing, publish inline comments, or make CI blocking by
default.
"#;
const REPORTS_HELP: &str = r#"Write reviewer-first report projections from explicit artifacts.
Usage:
ripr reports index [--root PATH] [--reports-dir PATH] [--review-dir PATH] [--receipts-dir PATH] [--workflow-dir PATH] [--agent-dir PATH] [--pilot-dir PATH] [--ci-dir PATH] [--out PATH] [--out-md PATH]
ripr reports gap-ledger --records PATH [--root PATH] [--out PATH] [--out-md PATH]
ripr reports gap-ledger --check-output PATH [--root PATH] [--out PATH] [--out-md PATH]
Index options:
--root PATH Workspace root label. Defaults to current directory.
--reports-dir PATH Directory containing report artifacts. Defaults to target/ripr/reports.
--review-dir PATH Directory containing PR guidance artifacts. Defaults to target/ripr/review.
--receipts-dir PATH Directory containing receipt artifacts. Defaults to target/ripr/receipts.
--workflow-dir PATH Directory containing workflow repair artifacts. Defaults to target/ripr/workflow.
--agent-dir PATH Directory containing agent handoff artifacts. Defaults to target/ripr/agent.
--pilot-dir PATH Directory containing pilot artifacts. Defaults to target/ripr/pilot.
--ci-dir PATH Directory containing CI context artifacts. Defaults to target/ci.
--out PATH JSON output path. Defaults to target/ripr/reports/index.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/index.md.
Gap ledger options:
--records PATH Explicit GapRecord JSON, gap_records JSON, or fixture corpus JSON.
--repo-exposure PATH Derive repo-scoped Rust GapRecords from seams[].evidence_record.
--check-output PATH Derive PR-local presentation/output contract gaps from finding_alignment.items.
--root PATH Workspace root label. Defaults to current directory.
--out PATH JSON output path. Defaults to target/ripr/reports/gap-decision-ledger.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/gap-decision-ledger.md.
The report-packet index is a read-only advisory map over explicit existing
RIPR artifacts. It groups reports by reviewer use, names the start-here
artifact, preserves gate-decision as the configured pass/fail authority,
lists missing expected surfaces with regeneration commands when known, and
does not rerun analysis, edit source, generate tests, call providers, run
mutation testing, publish inline comments, or make CI blocking by default.
The gap decision ledger command is a read-only advisory renderer for explicit
GapRecord input or existing repo-exposure evidence records. It normalizes
supplied or derived gap records into JSON and Markdown,
summarizes projection eligibility, preserves gate-decision as the configured
pass/fail authority, and does not rerun hidden analysis, publish comments,
edit source, generate tests, call providers, run mutation testing, or change
default CI blocking.
"#;
const COVERAGE_GRIP_HELP: &str = r#"Report whether line coverage and behavior evidence moved together.
Usage: ripr coverage-grip frontier (--ledger PATH|--baseline-delta PATH|--zero-status PATH) [--coverage PATH] [--out PATH] [--out-md PATH]
Frontier options:
--coverage PATH Optional coverage summary JSON.
--ledger PATH Optional PR evidence ledger JSON from `ripr pr-ledger record`.
--baseline-delta PATH Optional baseline-debt-delta JSON from `ripr baseline diff`.
--zero-status PATH Optional RIPR Zero status JSON from `ripr zero status`.
--out PATH JSON output path. Defaults to target/ripr/reports/coverage-grip-frontier.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/coverage-grip-frontier.md.
The coverage/grip frontier report is read-only advisory evidence. It keeps
line execution coverage and RIPR behavioral grip movement as separate axes. It
does not treat coverage as adequacy, run mutation testing, change gate policy,
or make CI blocking by default.
"#;
const ASSISTANT_LOOP_HELP: &str = r#"Produce or summarize advisory agent proof and proof-loop health.
Usage:
ripr assistant-loop proof [--pr-guidance PATH] [--agent-packet PATH] [--before PATH] [--after PATH] [--receipt PATH] [--ledger PATH] [--coverage-frontier PATH] [--gate-decision PATH] [--out PATH] [--out-md PATH]
ripr assistant-loop health --proof PATH [--proof PATH ...] [--out PATH] [--out-md PATH]
Proof options:
--root PATH Workspace root label. Defaults to current directory.
--pr-guidance PATH Optional PR guidance JSON from `ripr review-comments`.
--agent-packet PATH Optional editor/agent handoff JSON from `ripr agent brief`.
--before PATH Optional before repo-exposure JSON snapshot.
--after PATH Optional after repo-exposure JSON snapshot.
--receipt PATH Optional agent receipt JSON from `ripr agent receipt`.
--ledger PATH Optional PR evidence ledger JSON from `ripr pr-ledger record`.
--coverage-frontier PATH Optional coverage/grip frontier JSON.
--gate-decision PATH Optional gate-decision JSON from `ripr gate evaluate`.
--out PATH JSON output path. Defaults to target/ripr/reports/test-oracle-assistant-proof.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/test-oracle-assistant-proof.md.
The assistant-loop proof report is read-only advisory evidence over explicit
Campaign 20 artifacts. It requires at least one supplied artifact input, joins
PR guidance, agent handoff packets, before and after static evidence, receipts,
and optional CI projection artifacts, and marks missing proof pieces as
incomplete or unknown. It does not rerun analysis, post comments, edit source,
generate tests, call a provider, run mutation testing, change gate policy, or
make CI blocking by default.
Health options:
--root PATH Workspace root label. Defaults to current directory.
--proof PATH Explicit test-oracle assistant proof JSON. Repeatable.
--out PATH JSON output path. Defaults to target/ripr/reports/assistant-loop-health.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/assistant-loop-health.md.
The assistant-loop health report is read-only advisory evidence over explicit
test-oracle assistant proof JSON artifacts. It summarizes proof completeness,
missing inputs, static movement, recurring warnings, and bounded repair queues.
It does not rerun analysis, inspect source to infer missing data, edit source,
generate tests, call a provider, run mutation testing, change gate policy, or
make CI blocking by default.
"#;
const FIRST_ACTION_HELP: &str = r#"Recommend the next focused test to add from existing review artifacts.
Usage: ripr first-action [--root PATH] [--pr-guidance PATH] [--assistant-proof PATH] [--gap-ledger PATH] [--ledger PATH] [--baseline-delta PATH] [--receipt PATH] [--gate-decision PATH] [--coverage-frontier PATH] [--editor-context PATH] [--out PATH] [--out-md PATH]
Options:
--root PATH Workspace root label. Defaults to current directory.
--pr-guidance PATH Optional PR guidance JSON from `ripr review-comments`.
--assistant-proof PATH Optional proof JSON from `ripr assistant-loop proof`.
--gap-ledger PATH Optional gap decision ledger JSON from `ripr reports gap-ledger`.
--ledger PATH Optional PR evidence ledger JSON from `ripr pr-ledger record`.
--baseline-delta PATH Optional baseline-debt-delta JSON from `ripr baseline diff`.
--receipt PATH Optional agent receipt JSON from `ripr agent receipt`.
--gate-decision PATH Optional gate-decision JSON from `ripr gate evaluate`.
--coverage-frontier PATH Optional coverage/grip frontier JSON.
--editor-context PATH Optional editor evidence context packet JSON.
--out PATH JSON output path. Defaults to target/ripr/reports/first-useful-action.json.
--out-md PATH Markdown output path. Defaults to target/ripr/reports/first-useful-action.md.
The first-action report is a read-only advisory router over explicit existing
RIPR artifacts. It writes one next useful test action or one fallback reason
for developers, reviewers, or coding agents. It does not rerun analysis, post
comments, edit source, generate tests, call a provider, run mutation testing,
invent policy, or make CI blocking by default.
"#;
const CALIBRATE_HELP: &str = r#"Import cargo-mutants outcomes as advisory calibration over static evidence.
Usage: ripr calibrate cargo-mutants --mutants-json PATH --repo-exposure-json PATH [--format md|json] [--out PATH]
Options:
--mutants-json PATH cargo-mutants JSON file, or directory containing outcomes.json and/or mutants.json.
--repo-exposure-json PATH RIPR repo-exposure-json snapshot to join against.
--format FORMAT md, markdown, text, or json. Defaults to md.
--out PATH Write the rendered calibration report to a file instead of stdout.
The calibration report is advisory. It imports already-produced runtime
mutation data and joins it to static seam evidence by seam_id first, then by
unambiguous file/line. It does not run mutation testing, alter static
classifications, or configure CI policy.
"#;
const AGENT_HELP: &str = r#"Create a bounded packet for a coding agent and verify what it did.
Usage: ripr agent <subcommand>
Subcommands:
start Write a source-edit-free workflow manifest for one seam.
brief Rank a working-set brief for the agent-active router.
packet Expand one visible seam into the existing agent seam packet JSON.
verify Compare before/after repo-exposure JSON for agent verification.
receipt Summarize one seam from agent verify JSON for review handoff.
status Report existing agent-loop artifacts and the next missing command.
review-summary
Join agent-loop artifacts into a compact review packet.
Run `ripr agent start --help` for the workflow manifest, `ripr agent brief
--help`, `ripr agent packet --help`, or `ripr agent verify --help` for
JSON-only agent surfaces. Run `ripr agent receipt --help` for the verification
receipt surface, `ripr agent status --help` for the artifact status lens, and
`ripr agent review-summary --help` for the PR-review packet.
"#;
const AGENT_START_HELP: &str = r#"Start a source-edit-free workflow packet for one selected change.
Usage: ripr agent start [--root PATH] --seam-id ID [--out PATH]
Options:
--root PATH Workspace root. Defaults to current directory.
--seam-id ID Select one visible seam by ID.
--out PATH Workflow output directory. Defaults to target/ripr/workflow.
The start command writes a source-edit-free workflow packet for one seam:
workflow.json, commands.md, and agent-brief.json. The packet contains artifact
paths and shared command templates for the before snapshot, packet, brief,
after snapshot, verify, and receipt steps. It remains advisory and static; it
does not call an LLM API, run mutation testing, generate tests, edit files,
change cache behavior, or touch LSP/MCP surfaces.
"#;
const AGENT_BRIEF_HELP: &str = r#"Write a bounded brief for a coding agent over the current diff or change.
Usage: ripr agent brief [--root PATH] (--diff PATH|--base REV|--files PATHS|--seam-id ID) --json [--max-seams N]
Options:
--root PATH Workspace root. Defaults to current directory.
--diff PATH Select a diff file and line-level working set.
--base REV Derive the working set from a base revision.
--files PATHS Comma-separated repo-relative file paths.
--seam-id ID Select one visible seam by ID.
--json Required until a human brief surface exists.
--max-seams N Requested seam cap. Defaults to 3 and cannot exceed 10.
This parser is the first implementation seam for RIPR-SPEC-0010. The brief
router remains advisory and static; it does not run mutation testing, generate
tests, edit files, change cache behavior, or touch LSP/MCP surfaces.
"#;
const AGENT_PACKET_HELP: &str = r#"Write a per-change handoff packet for a coding agent.
Usage: ripr agent packet [--root PATH] --seam-id ID --json
ripr agent packet [--root PATH] --gap-ledger PATH --gap-id ID --json
Options:
--root PATH Workspace root. Defaults to current directory.
--seam-id ID Select one visible seam by ID.
--gap-ledger PATH Explicit gap decision ledger JSON.
--gap-id ID Select a GapRecord by gap_id or canonical_gap_id.
--json Required until a human packet surface exists.
The packet command expands a seam selected by `ripr agent brief` into the
existing agent-seam-packets-json envelope with one packet. With `--gap-ledger`,
it renders one agent packet from an explicit agent-packet-eligible GapRecord
without rerunning analysis. It remains advisory and static; it does not run
mutation testing, generate tests, edit files, change cache behavior, or touch
LSP/MCP surfaces.
"#;
const AGENT_VERIFY_HELP: &str = r#"Verify static-evidence movement between a before and after snapshot.
Usage: ripr agent verify [--root PATH] --before PATH --after PATH --json
Options:
--root PATH Workspace root. Defaults to current directory.
--before PATH Before `repo-exposure-json` snapshot.
--after PATH After `repo-exposure-json` snapshot.
--json Required until a human verify surface exists.
The verify command compares two saved static repo-exposure artifacts and emits
an agent-focused before/after summary. Snapshot paths must resolve under
`--root`. The command remains advisory and static; it does not run analysis,
mutation testing, generate tests, edit files, change cache behavior, or touch
LSP/MCP surfaces.
"#;
const AGENT_RECEIPT_HELP: &str = r#"Write a provenance receipt with bounded next-action guidance for one change.
Usage: ripr agent receipt [--root PATH] --verify-json PATH --seam-id ID --json [--test NAME] [--command CMD] [--out PATH]
Options:
--root PATH Workspace root. Defaults to current directory.
--verify-json PATH JSON emitted by `ripr agent verify`.
--seam-id ID Select one seam from the verify JSON.
--json Required until a human receipt surface exists.
--test NAME Optional focused test added or changed by the agent.
--command CMD Optional verification command that was run. Repeatable.
--out PATH Write the JSON receipt to a file instead of stdout.
The receipt command narrows a saved agent verify artifact to one seam and adds
handoff metadata for review. The verify JSON path and the before/after snapshot
paths named inside it must resolve under `--root`; receipt provenance hashes
those three artifacts without rerunning analysis. It remains advisory and
static; it does not run analysis, mutation testing, generate tests, edit files,
change cache behavior, or touch LSP/MCP surfaces.
"#;
const AGENT_STATUS_HELP: &str = r#"Report local agent-loop artifact state and the next command to run.
Usage: ripr agent status [--root PATH] [--json]
Options:
--root PATH Workspace root. Defaults to current directory.
--json Emit the machine-readable status report. Human Markdown is the default.
The status command reads existing agent-loop artifacts under target/ripr only
and reports which before snapshot, after snapshot, brief, packet, verify, and
receipt files are present or missing. It may recover a seam_id from those
artifacts and emits the next command to run for missing inputs. It remains
advisory and static; it does not run analysis, mutation testing, generate
tests, edit files, change cache behavior, or touch LSP/MCP surfaces.
"#;
const AGENT_REVIEW_SUMMARY_HELP: &str = r#"Summarize agent-loop artifacts into a compact review packet.
Usage: ripr agent review-summary [--root PATH] [--json]
Options:
--root PATH Workspace root. Defaults to current directory.
--json Emit the machine-readable review summary. Human Markdown is the default.
The review-summary command reads existing agent-loop artifacts and joins agent
status, receipt, workflow, operator cockpit, repo exposure, LSP cockpit when
present, and local CI artifact state into a compact review packet. It remains
advisory and static; it does not run analysis, mutation testing, generate
tests, edit files, change cache behavior, or touch LSP/MCP surfaces.
"#;
const CHECK_HELP: &str = r#"Analyze a diff or workspace and emit findings in human, JSON, SARIF, or badge form.
Usage: ripr check [OPTIONS]
Options:
--root PATH Workspace root. Defaults to current directory.
--base REV Base revision for git diff. Defaults to origin/main.
--diff PATH Read a unified diff file instead of running git diff.
--mode MODE instant, draft, fast, deep, or ready. Defaults to draft.
--format FORMAT human, json, github, sarif, badge-json, badge-shields,
badge-plus-json, badge-plus-shields, repo-badge-json,
repo-badge-shields, repo-badge-plus-json,
repo-badge-plus-shields, repo-seams-json,
repo-seams-md, repo-exposure-json, repo-exposure-md,
repo-sarif, agent-seam-packets-json. Defaults to human.
badge-plus-* and repo-badge-plus-* formats require
target/ripr/reports/test-efficiency.json (run
`cargo xtask test-efficiency-report` first).
repo-* and agent-seam-packets-json formats render
against the full repo baseline; the non-repo badge-*
formats remain diff-scoped.
--gap-ledger PATH For repo-badge-* formats only, render badge counts
from explicit gap-decision-ledger projection targets
instead of seam-native/test-efficiency counts.
--json Shortcut for --format json.
--no-unchanged-tests Limit the index to changed Rust files.
Examples:
ripr check
ripr check --base HEAD~1
ripr check --diff crates/ripr/examples/sample/example.diff --format github
ripr check --mode ready --json
"#;
const EXPLAIN_HELP: &str = r#"Print why ripr flagged a specific change.
Usage: ripr explain [--root PATH] [--base REV|--diff PATH] <finding-id|file:line>
"#;
const CONTEXT_HELP: &str = r#"Print the per-change context packet for one finding or location.
Usage: ripr context [--root PATH] [--base REV|--diff PATH] --at <finding-id|file:line> [--max-related-tests N] [--json]
"#;
const DOCTOR_HELP: &str = r#"Diagnose the local ripr setup (Rust toolchain, workspace, paths).
Usage: ripr doctor [--root PATH]
Checks:
- root directory exists
- Cargo.toml is present at the selected root
- ripr.toml load status and effective defaults are visible
- git, cargo, and rustc are available
"#;
const LSP_HELP: &str = r#"Start the experimental ripr LSP server over stdio.
Usage: ripr lsp [--stdio] [--version]
Options:
--stdio Run the language server over stdio LSP framing. This is the default.
--version Print the language server version.
"#;
pub(super) fn print_help() {
println!("{HELP}");
}
pub(super) fn print_check_help() {
println!("{CHECK_HELP}");
}
pub(super) fn print_init_help() {
println!("{INIT_HELP}");
}
pub(super) fn print_pilot_help() {
println!("{PILOT_HELP}");
}
pub(super) fn print_outcome_help() {
println!("{OUTCOME_HELP}");
}
pub(super) fn print_evidence_health_help() {
println!("{EVIDENCE_HEALTH_HELP}");
}
pub(super) fn print_review_comments_help() {
println!("{REVIEW_COMMENTS_HELP}");
}
pub(super) fn print_gate_help() {
println!("{GATE_HELP}");
}
pub(super) fn print_baseline_help() {
println!("{BASELINE_HELP}");
}
pub(super) fn print_zero_help() {
println!("{ZERO_HELP}");
}
pub(super) fn print_policy_help() {
println!("{POLICY_HELP}");
}
pub(super) fn print_pr_ledger_help() {
println!("{PR_LEDGER_HELP}");
}
pub(super) fn print_pr_comments_help() {
println!("{PR_COMMENTS_HELP}");
}
pub(super) fn print_pr_review_help() {
println!("{PR_REVIEW_HELP}");
}
pub(super) fn print_coverage_grip_help() {
println!("{COVERAGE_GRIP_HELP}");
}
pub(super) fn print_assistant_loop_help() {
println!("{ASSISTANT_LOOP_HELP}");
}
pub(super) fn print_first_action_help() {
println!("{FIRST_ACTION_HELP}");
}
pub(super) fn print_reports_help() {
println!("{REPORTS_HELP}");
}
pub(super) fn print_calibrate_help() {
println!("{CALIBRATE_HELP}");
}
pub(super) fn print_agent_help() {
println!("{AGENT_HELP}");
}
pub(super) fn print_agent_start_help() {
println!("{AGENT_START_HELP}");
}
pub(super) fn print_agent_brief_help() {
println!("{AGENT_BRIEF_HELP}");
}
pub(super) fn print_agent_packet_help() {
println!("{AGENT_PACKET_HELP}");
}
pub(super) fn print_agent_verify_help() {
println!("{AGENT_VERIFY_HELP}");
}
pub(super) fn print_agent_receipt_help() {
println!("{AGENT_RECEIPT_HELP}");
}
pub(super) fn print_agent_status_help() {
println!("{AGENT_STATUS_HELP}");
}
pub(super) fn print_agent_review_summary_help() {
println!("{AGENT_REVIEW_SUMMARY_HELP}");
}
pub(super) fn print_explain_help() {
println!("{EXPLAIN_HELP}");
}
pub(super) fn print_context_help() {
println!("{CONTEXT_HELP}");
}
pub(super) fn print_doctor_help() {
println!("{DOCTOR_HELP}");
}
pub(super) fn print_lsp_help() {
println!("{LSP_HELP}");
}
#[cfg(test)]
mod tests {
use super::{
AGENT_BRIEF_HELP, AGENT_HELP, AGENT_PACKET_HELP, AGENT_RECEIPT_HELP,
AGENT_REVIEW_SUMMARY_HELP, AGENT_START_HELP, AGENT_STATUS_HELP, AGENT_VERIFY_HELP,
ASSISTANT_LOOP_HELP, BASELINE_HELP, CALIBRATE_HELP, CHECK_HELP, CONTEXT_HELP,
COVERAGE_GRIP_HELP, DOCTOR_HELP, EVIDENCE_HEALTH_HELP, EXPLAIN_HELP, FIRST_ACTION_HELP,
GATE_HELP, HELP, INIT_HELP, LSP_HELP, OUTCOME_HELP, PILOT_HELP, POLICY_HELP,
PR_COMMENTS_HELP, PR_LEDGER_HELP, PR_REVIEW_HELP, REPORTS_HELP, REVIEW_COMMENTS_HELP,
ZERO_HELP,
};
#[test]
fn top_level_help_mentions_supported_commands() {
assert!(HELP.contains("ripr init"));
assert!(HELP.contains("ripr pilot"));
assert!(HELP.contains("ripr outcome"));
assert!(HELP.contains("ripr evidence-health"));
assert!(HELP.contains("ripr review-comments"));
assert!(HELP.contains("ripr gate evaluate"));
assert!(HELP.contains("ripr baseline create"));
assert!(HELP.contains("ripr baseline diff"));
assert!(HELP.contains("ripr baseline update"));
assert!(HELP.contains("ripr zero status"));
assert!(HELP.contains("ripr policy readiness"));
assert!(HELP.contains("ripr policy operations"));
assert!(HELP.contains("ripr policy history"));
assert!(HELP.contains("ripr policy promote"));
assert!(HELP.contains("ripr policy preview-promote"));
assert!(HELP.contains("ripr policy waiver-aging"));
assert!(HELP.contains("ripr pr-ledger record"));
assert!(HELP.contains("ripr pr-comments plan"));
assert!(HELP.contains("ripr pr-review front-panel"));
assert!(HELP.contains("ripr coverage-grip frontier"));
assert!(HELP.contains("ripr assistant-loop proof"));
assert!(HELP.contains("ripr assistant-loop health"));
assert!(HELP.contains("ripr first-pr"));
assert!(HELP.contains("ripr first-action"));
assert!(HELP.contains("ripr reports index"));
assert!(HELP.contains("ripr reports gap-ledger"));
assert!(HELP.contains("ripr calibrate"));
assert!(HELP.contains("ripr agent start"));
assert!(HELP.contains("ripr agent brief"));
assert!(HELP.contains("ripr agent packet"));
assert!(HELP.contains("ripr agent verify"));
assert!(HELP.contains("ripr agent receipt"));
assert!(HELP.contains("ripr agent status"));
assert!(HELP.contains("ripr agent review-summary"));
assert!(HELP.contains("ripr check"));
assert!(HELP.contains("ripr explain"));
assert!(HELP.contains("ripr context"));
assert!(HELP.contains("ripr doctor"));
}
#[test]
fn check_help_mentions_repo_badge_formats_and_examples() {
assert!(CHECK_HELP.contains("repo-badge-plus-shields"));
assert!(CHECK_HELP.contains("repo-exposure-json"));
assert!(CHECK_HELP.contains("agent-seam-packets-json"));
assert!(CHECK_HELP.contains("repo-sarif"));
assert!(CHECK_HELP.contains("test-efficiency-report"));
assert!(CHECK_HELP.contains("--mode ready --json"));
}
#[test]
fn command_specific_help_usage_lines_are_stable() {
assert!(INIT_HELP.starts_with("Write an optional repo policy file"));
assert!(INIT_HELP.contains("Usage: ripr init"));
assert!(INIT_HELP.contains("--ci github"));
assert!(INIT_HELP.contains("--dry-run"));
assert!(INIT_HELP.contains("--force"));
assert!(PILOT_HELP.starts_with("Find the top test gap in this repo"));
assert!(PILOT_HELP.contains("Usage: ripr pilot"));
assert!(PILOT_HELP.contains("pilot-summary.json"));
assert!(PILOT_HELP.contains("--timeout-ms MS"));
assert!(OUTCOME_HELP.starts_with("Compare before/after static evidence"));
assert!(OUTCOME_HELP.contains("Usage: ripr outcome"));
assert!(OUTCOME_HELP.contains("--before PATH"));
assert!(
EVIDENCE_HEALTH_HELP.starts_with("Summarize how strong the current static evidence")
);
assert!(EVIDENCE_HEALTH_HELP.contains("Usage: ripr evidence-health"));
assert!(EVIDENCE_HEALTH_HELP.contains("--mutation-calibration PATH"));
assert!(REVIEW_COMMENTS_HELP.starts_with("Write advisory PR test guidance"));
assert!(REVIEW_COMMENTS_HELP.contains("Usage: ripr review-comments"));
assert!(REVIEW_COMMENTS_HELP.contains("target/ripr/review/comments.json"));
assert!(GATE_HELP.starts_with("Evaluate the optional pass/fail gate"));
assert!(GATE_HELP.contains("Usage: ripr gate evaluate"));
assert!(GATE_HELP.contains("visible-only"));
assert!(GATE_HELP.contains("ripr-waive"));
assert!(BASELINE_HELP.starts_with("Create, diff, and shrink a reviewed baseline"));
assert!(BASELINE_HELP.contains("Usage:"));
assert!(BASELINE_HELP.contains("ripr baseline create"));
assert!(BASELINE_HELP.contains("ripr baseline diff"));
assert!(BASELINE_HELP.contains("ripr baseline update"));
assert!(BASELINE_HELP.contains(".ripr/gate-baseline.json"));
assert!(BASELINE_HELP.contains("baseline-debt-delta.json"));
assert!(BASELINE_HELP.contains("--remove-resolved"));
assert!(ZERO_HELP.starts_with("Summarize current RIPR Zero progress"));
assert!(ZERO_HELP.contains("Usage: ripr zero status"));
assert!(ZERO_HELP.contains("baseline-debt-delta JSON"));
assert!(ZERO_HELP.contains("RIPR Zero status report"));
assert!(POLICY_HELP.starts_with("Summarize which RIPR policy posture"));
assert!(POLICY_HELP.contains("Usage: ripr policy readiness"));
assert!(POLICY_HELP.contains("ripr policy operations"));
assert!(POLICY_HELP.contains("ripr policy history"));
assert!(POLICY_HELP.contains("ripr policy promote"));
assert!(POLICY_HELP.contains("ripr policy preview-promote"));
assert!(POLICY_HELP.contains("ripr policy waiver-aging"));
assert!(POLICY_HELP.contains("ripr policy suppression-health"));
assert!(POLICY_HELP.contains("policy-readiness.json"));
assert!(POLICY_HELP.contains("policy-operations.json"));
assert!(POLICY_HELP.contains("policy-history.json"));
assert!(POLICY_HELP.contains("policy-promotion-<mode>.json"));
assert!(POLICY_HELP.contains("preview-promotion-<language>-<class>.json"));
assert!(POLICY_HELP.contains("waiver-aging.json"));
assert!(POLICY_HELP.contains("suppression-health.json"));
assert!(POLICY_HELP.contains("read-only advisory governance"));
assert!(PR_LEDGER_HELP.starts_with("Record a read-only PR evidence ledger"));
assert!(PR_LEDGER_HELP.contains("Usage: ripr pr-ledger record"));
assert!(PR_LEDGER_HELP.contains("pr-evidence-ledger.json"));
assert!(PR_LEDGER_HELP.contains("read-only advisory history"));
assert!(PR_COMMENTS_HELP.starts_with("Plan or publish bounded inline PR comments"));
assert!(PR_COMMENTS_HELP.contains("Usage: ripr pr-comments plan"));
assert!(PR_COMMENTS_HELP.contains("comment-publish-plan.json"));
assert!(PR_COMMENTS_HELP.contains("read-only advisory projection"));
assert!(PR_REVIEW_HELP.starts_with("Compose the first-screen PR review summary"));
assert!(PR_REVIEW_HELP.contains("Usage: ripr pr-review front-panel"));
assert!(PR_REVIEW_HELP.contains("pr-review-front-panel.json"));
assert!(PR_REVIEW_HELP.contains("read-only advisory first-screen report"));
assert!(
COVERAGE_GRIP_HELP.starts_with("Report whether line coverage and behavior evidence")
);
assert!(COVERAGE_GRIP_HELP.contains("Usage: ripr coverage-grip frontier"));
assert!(COVERAGE_GRIP_HELP.contains("coverage-grip-frontier.json"));
assert!(COVERAGE_GRIP_HELP.contains("separate axes"));
assert!(ASSISTANT_LOOP_HELP.starts_with("Produce or summarize advisory agent proof"));
assert!(ASSISTANT_LOOP_HELP.contains("Usage:"));
assert!(ASSISTANT_LOOP_HELP.contains("ripr assistant-loop proof"));
assert!(ASSISTANT_LOOP_HELP.contains("ripr assistant-loop health"));
assert!(ASSISTANT_LOOP_HELP.contains("test-oracle-assistant-proof.json"));
assert!(ASSISTANT_LOOP_HELP.contains("assistant-loop-health.json"));
assert!(ASSISTANT_LOOP_HELP.contains("Campaign 20 artifacts"));
assert!(FIRST_ACTION_HELP.starts_with("Recommend the next focused test"));
assert!(FIRST_ACTION_HELP.contains("Usage: ripr first-action"));
assert!(FIRST_ACTION_HELP.contains("--gap-ledger PATH"));
assert!(FIRST_ACTION_HELP.contains("first-useful-action.json"));
assert!(FIRST_ACTION_HELP.contains("read-only advisory router"));
assert!(REPORTS_HELP.starts_with("Write reviewer-first report projections"));
assert!(REPORTS_HELP.contains("Usage:"));
assert!(REPORTS_HELP.contains("ripr reports index"));
assert!(REPORTS_HELP.contains("ripr reports gap-ledger"));
assert!(REPORTS_HELP.contains("target/ripr/reports/index.json"));
assert!(REPORTS_HELP.contains("gap-decision-ledger.json"));
assert!(REPORTS_HELP.contains("read-only advisory map"));
assert!(CALIBRATE_HELP.starts_with("Import cargo-mutants outcomes"));
assert!(CALIBRATE_HELP.contains("Usage: ripr calibrate cargo-mutants"));
assert!(CALIBRATE_HELP.contains("--mutants-json PATH"));
assert!(AGENT_HELP.starts_with("Create a bounded packet for a coding agent"));
assert!(AGENT_HELP.contains("Usage: ripr agent"));
assert!(AGENT_START_HELP.starts_with("Start a source-edit-free workflow packet"));
assert!(AGENT_START_HELP.contains("Usage: ripr agent start"));
assert!(AGENT_START_HELP.contains("workflow.json"));
assert!(AGENT_BRIEF_HELP.starts_with("Write a bounded brief for a coding agent"));
assert!(AGENT_BRIEF_HELP.contains("Usage: ripr agent brief"));
assert!(AGENT_BRIEF_HELP.contains("--max-seams N"));
assert!(AGENT_BRIEF_HELP.contains("RIPR-SPEC-0010"));
assert!(AGENT_PACKET_HELP.starts_with("Write a per-change handoff packet"));
assert!(AGENT_PACKET_HELP.contains("Usage: ripr agent packet"));
assert!(AGENT_PACKET_HELP.contains("agent-seam-packets-json"));
assert!(AGENT_VERIFY_HELP.starts_with("Verify static-evidence movement"));
assert!(AGENT_VERIFY_HELP.contains("Usage: ripr agent verify"));
assert!(AGENT_VERIFY_HELP.contains("repo-exposure-json"));
assert!(AGENT_RECEIPT_HELP.starts_with("Write a provenance receipt"));
assert!(AGENT_RECEIPT_HELP.contains("Usage: ripr agent receipt"));
assert!(AGENT_RECEIPT_HELP.contains("--verify-json PATH"));
assert!(AGENT_STATUS_HELP.starts_with("Report local agent-loop artifact state"));
assert!(AGENT_STATUS_HELP.contains("Usage: ripr agent status"));
assert!(AGENT_STATUS_HELP.contains("before snapshot"));
assert!(AGENT_REVIEW_SUMMARY_HELP.starts_with("Summarize agent-loop artifacts"));
assert!(AGENT_REVIEW_SUMMARY_HELP.contains("Usage: ripr agent review-summary"));
assert!(AGENT_REVIEW_SUMMARY_HELP.contains("Human Markdown is the default"));
assert!(EXPLAIN_HELP.starts_with("Print why ripr flagged"));
assert!(EXPLAIN_HELP.contains("Usage: ripr explain"));
assert!(CONTEXT_HELP.starts_with("Print the per-change context packet"));
assert!(CONTEXT_HELP.contains("Usage: ripr context"));
assert!(DOCTOR_HELP.starts_with("Diagnose the local ripr setup"));
assert!(DOCTOR_HELP.contains("Usage: ripr doctor [--root PATH]"));
assert!(DOCTOR_HELP.contains("Cargo.toml"));
assert!(LSP_HELP.starts_with("Start the experimental ripr LSP server"));
assert!(LSP_HELP.contains("--stdio"));
assert!(LSP_HELP.contains("--version"));
}
}