{
  "source": {
    "repository": "PrepLabsAI/Rovara",
    "ref": "origin/mainline",
    "commit": "2deee3d70d3aa4c410e1bee030110c9d01858ef5",
    "checkedAt": "2026-10-14",
    "note": "Reviewed against merged product mainline. Source inspection does not prove release availability, live installation, or runtime acceptance. The website separately labels the scoped pre-PR E2E assumption.",
    "releaseCommit": "a0984e3d26b15618505ac37a53dd55de594c38a4",
    "releaseTag": "v0.3.4"
  },
  "claims": [
    {
      "id": "isolated-workspace",
      "claim": "Each Slack thread and MCP task gets an isolated EC2 worker and persistent encrypted EBS workspace.",
      "evidence": [
        {
          "file": "README.md",
          "contains": "Each Slack thread owns its own EC2 worker and encrypted EBS volume."
        },
        {
          "file": "docs/architecture-production.md",
          "contains": "encrypted EBS"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "idle-persistence",
      "claim": "Idle compute stops while workspace files and conversation state remain available for resume.",
      "evidence": [
        {
          "file": "README.md",
          "contains": "Files and conversation live on the thread's volume. The idle reaper stops compute and keeps the disk, so the next mention resumes."
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "entry-points",
      "claim": "Slack and MCP task tools for Claude Code, Codex, and Cursor can start or continue tasks.",
      "evidence": [
        {
          "file": "README.md",
          "contains": "Claude Code, Codex or Cursor"
        },
        {
          "file": "README.md",
          "contains": "agentx mcp install"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "license",
      "claim": "MIT is the current license grant for PrepLabsAI-owned Rovara code, including earlier releases. The previously issued Apache 2.0 grant remains available; third-party components keep their own licenses.",
      "evidence": [
        {
          "file": "README.md",
          "contains": "Licensed under the [MIT License](LICENSE)"
        },
        {
          "file": "README.md",
          "contains": "Apache 2.0 grant for"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "benchmark-status",
      "claim": "Historical selected Pro batch: 40 of 50 tasks resolved according to saved graders, with all 50 outcomes inspectable. This is not an official full-benchmark score or a model comparison.",
      "evidence": [],
      "websiteEvidence": [
        "assets/evidence/evaluation-batches/pro-50-receipts.json",
        "docs/benchmarks/index.html"
      ],
      "availability": "Historical website evidence; qualified separately from current release and runtime.",
      "releasedSourceReference": false
    },
    {
      "id": "cost-example",
      "claim": "Approximately $211 per month using default Bedrock models at documented sample workload in us-east-1.",
      "expectedRoundedUsd": 211,
      "evidence": [
        {
          "file": "packages/cli/src/init/cost.ts",
          "contains": "STATED_USAGE"
        },
        {
          "file": "packages/model-runtime/src/config.ts",
          "contains": "DEFAULT_BEDROCK_MODELS"
        },
        {
          "file": "docs/install.md",
          "contains": "1,000 turns, 100 worker sessions, 60 worker instance-hours and 10 kept workspaces"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "verification-hook",
      "claim": "New and resumed coding sessions install the runtime verification extension. It reports missing checks and gives one additional attempt on regression.",
      "evidence": [
        {
          "file": "packages/worker/src/run-task.ts",
          "contains": "const verification = verificationExtension({"
        },
        {
          "file": "packages/worker/src/verification/extension.ts",
          "contains": "if (plan.source === \"none\") return report(unverified(\"no_checks\", claim));"
        },
        {
          "file": "packages/worker/src/verification/extension.ts",
          "contains": "if (status === \"regression\" && extraTry === \"not_needed\")"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "check-artifact",
      "claim": "Worker task results store checks.json and can carry a compact check report.",
      "evidence": [
        {
          "file": "packages/worker/src/run-task.ts",
          "contains": "name: \"checks.json\""
        },
        {
          "file": "packages/worker/src/verification/extension.ts",
          "contains": "export function compactCheckReport(report: CheckReport): CheckReport"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "publication-checks",
      "claim": "Publication reruns readiness checks, reports checks when requested, and preserves the older refusal path. CodeBuild evidence runs before the PR sink; it does not block publication on failing gate results.",
      "evidence": [
        {
          "file": "packages/worker/src/publish.ts",
          "contains": "const reportChecks = invocation.payload.reportChecks === true;"
        },
        {
          "file": "packages/worker/src/publish.ts",
          "contains": "if (!reportChecks && checks.some((check) => check.outcome !== \"passed\"))"
        },
        {
          "file": "packages/worker/src/publish.ts",
          "contains": "const codeBuildChecks = await runCodeBuildGates({"
        },
        {
          "file": "packages/broker/src/aws/broker.ts",
          "contains": "draft: checksMakeDraft(publishChecks, latestChecks, standingFailures) ? true : draft,"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "node-range",
      "claim": "Product source engines require Node >=22.19.0 <23. The static website preview has its own separate Node engine.",
      "evidence": [
        {
          "file": "package.json",
          "contains": "\"node\": \">=22.19.0 <23\""
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "slack-routing",
      "claim": "On mainline, a plain top-level Slack mention is routed: a question is answered, and a change gets a card suggesting Quick or Full. Nothing that changes code starts without a click.",
      "evidence": [
        {
          "file": "README.md",
          "contains": "Nothing that changes code starts without a click."
        },
        {
          "file": "docs/project-configuration.md",
          "contains": "Prefixes skip routing and never call the model"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "automatic-review-and-pr",
      "claim": "On mainline, after the coding plan is approved, checks run, then code and security reviews start automatically, and a draft PR of exactly the checked code opens when they pass.",
      "evidence": [
        {
          "file": "docs/project-configuration.md",
          "contains": "then starts the code and security reviews by itself"
        },
        {
          "file": "packages/broker/src/aws/developer-tasks.ts",
          "contains": "Started automatically after the selected checks passed."
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "task-page",
      "claim": "On mainline, the task owner can decide and teammates can comment on the task page; one decision is recorded however many places it is pressed.",
      "evidence": [
        {
          "file": "docs/slack.md",
          "contains": "## Deciding and commenting on the task page"
        },
        {
          "file": "docs/how-it-works.md",
          "contains": "exactly one decision is recorded however many"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "chatgpt",
      "claim": "On mainline, admins can let developers run their own tasks on their own ChatGPT Plus or Pro plan; it is off by default.",
      "evidence": [
        {
          "file": "docs/chatgpt.md",
          "contains": "It's off until an admin turns it on"
        },
        {
          "file": "docs/day-two.md",
          "contains": "models.chatgpt.enabled"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "rovara-loop",
      "claim": "On mainline, rovara loop runs Do, Quick, Full, Review and Contribute loops locally from GitHub issue comments, with no Rovara install or AWS account.",
      "evidence": [
        {
          "file": "docs/loop.md",
          "contains": "It needs no Rovara install and no AWS account"
        },
        {
          "file": "packages/cli/src/main.ts",
          "contains": "rovara loop"
        }
      ],
      "availability": "source references also match published v0.3.4 tag; runtime acceptance separate",
      "releasedSourceReference": true
    },
    {
      "id": "serial-task-dependencies",
      "claim": "Mainline contains an opt-in serial plan implementation for 1\u20138 ordered required items in one repository, with one final PR. The flag is off by default; runtime activation and qualification are separate.",
      "evidence": [
        {
          "file": "specs/059-task-dependencies/spec.md",
          "contains": "1\u20138"
        },
        {
          "file": "specs/059-task-dependencies/spec.md",
          "contains": "one final PR"
        }
      ],
      "availability": "mainline source; serial activation off by default",
      "releasedSourceReference": false
    }
  ]
}
