AI ships your code. We keep it on course.

Every change, checked against what your team actually decided.

Some checks failed 1 failing · 2 successful
ci / build2m 14s
ci / tests4m 02s
TrueCourse / guard1 drift detectedDetails

“Refunds must return to the original payment method.”

Refund policy · Payments
Observed: refund issued as store credit
Merging is blocked Merge

Why now

AI made writing code fast. Review is the new bottleneck.

AI agents ship a growing share of production code.

PRs arrive faster than reviewers can keep up.

Senior engineers spend their days reviewing AI output, not building.

Slowing AI down isn't the answer. Faster verification is.

The next 10× in engineering comes from verifying code at AI speed.

Our approach

Your docs become scenario tests, bound to each spec section. Every change is checked against them.

01Curate

From your docs

PRDs, ADRs, RFCs, design docs, pulled from Confluence, Jira, Notion, wherever they live. Noise dropped, the rest grouped into areas, disagreements flagged.

02Generate

Into scenario tests

Each spec section gets declarative scenarios: authored once, proven by running them on the spot.

03Run

On every PR

Every PR runs them in a fresh sandbox and gates on the result. A failure means spec and code disagree.

Refund policy

Sarah Lin · Payments · updated 2d ago

When a customer requests a refund on a completed order, refunds must return to the original payment method used at checkout.

Partial refunds are allowed within 90 days of purchase…

refund-original-method.yaml
1scenario: refund-original-method
2given:
3  order: paid_by_card
4when: refund_issued
5expect:
6  refund.method: original_card
Drift surfaces both ways:code changed → scenarios failspec edited → scenarios go stale

Where it runs

No runners to host. Every PR runs in its own sandbox.

TrueCourse creates a sandbox per PR, seeds test data, runs every scenario, and posts the gate back. Then it all gets torn down.

01Create sandboxfresh, isolated env
02Seed datafixtures + synthetic rows
03Run scenariosin parallel
04Gate the PRevidence attached
sandbox-7f2arunning
$ truecourse guard run --area payments
order total = sum of line items1.2s
tax applied to subtotal0.8s
refund emits webhook
node:20 · postgres:16 · seeded: 3 users, 12 orders
sandbox-b910passed
$ truecourse guard run --area auth
auth blocks expired token0.6s
role gate on /admin0.9s
reset link is one-time use1.4s
python:3.12 · seeded: fixtures/auth.sql
sandbox-c4d1running
$ truecourse guard run --area billing
invoice PDF fields present2.1s
dunning retries 3× then stops
currency rounds to 2dp0.4s
node:20 · stripe-mock · seeded: 5 tenants

Spun up in parallel · seeded from your fixtures · torn down after the run.

Integrations

We plug into the tools your team already uses.

No new workflow. Decisions are captured where your team writes them; PRs are gated where you host code.

Knowledge sources

Where decisions live

Notion
specs, OKRs
Confluence
engineering wikis
Slack
decision threads
GitHub
READMEs, ADRs
Google Docs
design reviews
Linear
tickets
Jira
tickets
and more
on request

PR gates

Where we gate PRs

The gate shows up where reviews already happen.

GitHub
cloud + Enterprise Server
GitLab
cloud + self-managed
Bitbucket
cloud + Data Center
Gitea
self-hosted

Azure DevOps and other platforms on request.

Enterprise & data

Built for teams where data security is not optional.

Self-hosted

Deploy in your VPC or on-prem. Code and specs never touch TrueCourse.

SSO

Okta, Azure AD, Google Workspace. No separate credentials to manage.

RBAC

Viewer, Contributor, Admin, Auditor. Control who resolves conflicts and promotes scenarios.

Full audit trail

Every scenario change, conflict resolution, and drift event is timestamped and attributed.

Isolated by default

Every check runs in an ephemeral sandbox, destroyed on finish. Telemetry off with one flag.

Compliance-ready

Built for regulated industries: fintech, healthtech, defense. Documentation auditors accept.

Verify at AI speed.

AI made writing fast; review is the bottleneck. Every change checked against what your team decided, before it ships.