Product proof

Here is what Repave actually does

This page maps public claims to current capabilities: generate, adopt, configure, upgrade, observe, and remediate. Examples are labeled. Nothing here is a customer case study.

The problem

Creating a repository from a template is not the same as keeping it on an approved path. Repave records desired state, runs deterministic gates on mutating work, and observes whether the repository still matches that record. It is not a catalog-only IDP, and it is not live infrastructure reconciliation.

The governed repository lifecycle

Generate or Adopt establish a governed repository. Configure and Upgrade are intentional change. Observe is read-only. Remediate restores only remediable governed-file drift, then Observe again. These are not one collapsed “success” button.

Start Intentional change Continuous governance

Brownfield adopt

repository.adopt brings an existing repository under governance without rewriting application source. The CLI experience is still repave import. Layout uses git mv. Each moved file is SHA-256 checked against its pre-move digest. Missing governance files are added. The result is a reviewable pull request.

sanitized fixture Sanitized adopt evidence. Wording follows repo_import: byte-identical git mv verification and a reviewable import PR. Application source is not rewritten.
capability_id: repository.adopt
layout: git mv into golden-path paths
verification: SHA-256 of each moved file matches the pre-move digest
commit_message: Pure file moves, no content changes. 12 files SHA-256 verified.
scaffold: missing governance files only (repave.yaml, blueprint CI)
source_rewrite: not performed
publish: reviewable pull request on the existing repository
claim_limit: this adopt operation only; not forever-after source integrity
sanitized fixture Sanitized lineage fields written to repave.yaml. Names are public-demo shaped; this is not a dump of a private artifact.
schema: golden-path-artifact  # recorded desired state, not a receipt dump
blueprint: opa-policy
blueprint_version: '1.2.0'
artifactType: opa-policy
inputs:
  module_name: platform-guardrails
governance:
  standard: platform-guardrails
  policy_profile: default

Governed generate

repository.generate turns blueprint intent into a repository only when gates accept the tree. Plan evaluates without publishing. Apply may still fail gates. Publish happens only after an acceptable apply. Dispatch may propose generate; it cannot skip gates.

illustrative Illustrative generate phases. The engine distinguishes plan (dry-run), apply, gate evaluation, and publish. A failed gate set does not publish.
capability_id: repository.generate
plan: gates evaluated, tree not published
apply: write attempted only after gates
gates.outcome: failed  # OPA
publish: skipped
---
plan: gates evaluated
apply: gates.outcome: passed
publish: repository created on the far side
evidence: repave.yaml + gate_results

Inspectable generated output

These GitHub repositories are the public generated set already linked from the Repave home page. They are generated artifacts, not private engine source.

  • opa-policy-platform-guardrails

    Public generated OPA guardrails artifact (landing page proof set).

    opa-policy-platform-guardrails

    Kind: public generated repo

  • checkov-policy-platform-baseline

    Public generated Checkov baseline artifact.

    checkov-policy-platform-baseline

    Kind: public generated repo

  • helm-payments-api

    Public generated Helm chart artifact.

    helm-payments-api

    Kind: public generated repo

Observe

repository.observe is read-only. Status is compliant, drifted, or unknown. A newer approved baseline is newer_approved_baseline, not automatic drift. This is repository observation, not live infrastructure drift.

sanitized fixture Sanitized ObservationResult JSON keys. Status is compliant while the catalog already has a newer approved baseline. That lag is not repository drift. Live cloud drift is not this capability.
capability_id: repository.observe
status: compliant
governed: true
newer_approved_baseline: true
recommended_next_capability: repository.upgrade
recorded_baseline: opa-policy@1.2.0
approved_baseline: opa-policy@1.3.0
findings: []
observed_at: 2026-09-06T18:00:00+00:00  # point-in-time
sanitized fixture Sanitized observation when a managed file diverged from the recorded baseline. Remediate restores that recorded state; it does not move the approved baseline.
capability_id: repository.observe
status: drifted
governed: true
newer_approved_baseline: false
recommended_next_capability: repository.remediate
findings:
  - code: managed_file_diff
    classification: remediable
    path: policy/destructive_delete.rego
    summary: governed file differs from recorded desired state

Upgrade and remediate are not interchangeable

Upgrade follows a newer approved baseline. Remediate restores remediable governed files to the recorded baseline. Configure changes desired inputs without moving that baseline. Remediate refuses unknown observations and refuses when the next step is upgrade.

sanitized fixture Sanitized keys from upgrade/configure/remediate audit extras. Upgrade moves baseline. Remediate restores recorded files. Configure changes desired inputs on the current baseline.
repository.upgrade:
  source_baseline: opa-policy@1.2.0
  target_baseline: opa-policy@1.3.0
  input_change_count: 0
  meaning: approved baseline moved; repository must follow

repository.remediate:
  recorded_baseline: opa-policy@1.2.0
  observation_status: drifted
  newer_approved_baseline: false
  meaning: restore remediable governed files to the recorded state

repository.update (configure):
  same approved baseline, new desired inputs
  not remediate, not upgrade

Gates: automation participates; it is not authority

Mutating paths run deterministic gates. A failed gate blocks the write. Per-gate states are not collapsed: passed, failed, skipped, waived, timeout, and empty (no gates recorded) mean different things. Dispatch does not grade policy.

  • passed
  • failed
  • skipped
  • waived
  • timeout
  • empty
illustrative Illustrative gate set shaped like engine GateResult rows. The OPA failure matches the public guardrails repo's stated purpose: block a destructive delete without replacement. Outcome uses the same aggregator as audit (passed | failed | timeout | empty); waived and skipped stay distinct.
capability: repository.generate
phase: apply  # not plan, not publish
gates.outcome: failed
gates.failed: ['opa']
publish: not attempted

opa: failed
FAIL - destructive delete without replacement

Durable lifecycle evidence

Observe, configure, upgrade, and remediate append to the same audit sink as generate and adopt when audit is enabled. Plan is not apply. Apply is not publish. Opening a pull request is not a known merge. Follow-up compliance exists only when Observe ran again.

sanitized fixture Sanitized lifecycle_audit rows. Observe, configure, upgrade, and remediate share the generate/import audit sink. Plan, apply, and publish stay separate. Post-change compliance is shown only when Observe actually ran again.
event=observe lifecycle_action=observe  observation_status=drifted  merge_known=false
event=remediate lifecycle_action=plan    dry_run=true   pr_created=false
event=remediate lifecycle_action=apply   dry_run=false  merge_known=false
event=observe lifecycle_action=observe  observation_status=compliant  # follow-up ran
event=upgrade lifecycle_action=plan     dry_run=true
event=upgrade lifecycle_action=apply    pr_created=false
event=upgrade lifecycle_action=publish  pr_created=true  merge_known=false
# publish ≠ PR merged. merged is recorded only when Repave knows it.

What this page does not claim

  • No customer names, ROI, time saved, or adoption counts.
  • No self-serve hosted generate. Evaluation is founder-assisted early access.
  • No live cloud drift, FinOps, or Dispatch proof.
  • No human-merge reconciliation beyond what Repave already recorded as known.
  • No public brownfield source repository was created for this page.

Try Repave with your repository

Hosted access is waitlist and invite. Leave a work email if you want a founder-assisted evaluation against a real repository. This is not checkout and not general self-service.

Generic waitlist

Interest only, no card form. Invited operators sign in from the home page.

Join waitlist