Skip to content

Make attestation staleness first-class for downstream agents #58

Description

@caioribeiroclw-pixel

Roam already has the strongest shape I have seen for local codebase evidence: roam_attest, roam_cga_emit, PR-risk envelopes, dogfood PR comments, and explicit index freshness hints.

One small thing that would make those packets safer for downstream agents/reviewers: make staleness / replay conditions first-class in the attestation output.

Concrete shape I mean:

{
  "schema": "roam.pr_attestation.v1",
  "subject": {
    "kind": "pull_request|commit_range|working_tree",
    "repo": "owner/name",
    "base": "...",
    "head": "..."
  },
  "evidence_scope": {
    "commands": ["roam health", "roam pr-risk", "roam affected-tests"],
    "index_commit": "...",
    "indexed_commit": "...",
    "head_commit": "...",
    "roam_version": "...",
    "rule_config_hash": "..."
  },
  "verdict": "safe|review_recommended|blocked|not_checked",
  "not_checked": ["coverage_unavailable", "runtime_tests_not_run"],
  "verification_command": "roam attest --verify <bundle>",
  "stale_if": [
    "head_commit_changed",
    "indexed_commit != head_commit",
    "rule_config_hash_changed",
    "roam_version_major_changed",
    "coverage_import_changed",
    "target_branch_moved"
  ],
  "privacy": {
    "raw_source_included": false,
    "raw_prompt_included": false,
    "secrets_included": false
  }
}

The key bit is not the exact names. It is that an agent reading a Roam attestation later can answer: can I still use this as authority, or do I need to rerun the evidence?

Why this seems useful:

  • Roam's current envelopes already expose freshness hints like indexed_commit != HEAD; promoting that into a stable stale_if/not_checked contract would make the packet easier to consume from Claude Code, Codex, CI, or another reviewer without parsing prose.
  • It keeps the proof local/privacy-safe. No raw prompts, transcripts, source bodies, or secrets need to be embedded.
  • It turns roam_attest from “a good review artifact now” into a replay-safe handoff artifact: useful when a PR is resumed by another agent, rebased, re-reviewed after dependency changes, or summarized in a merge note.

If this already exists under a different command/flag, the discoverability gap may just be docs: a short “when is a Roam attestation stale?” section would solve most of it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions