The IDE for product owners
AI writes the code. You own what it does.
Every requirement you wrote, proven on every pull request before a bug reaches anyone.
Backed by
How it works
- 01
Connect your docs
Add wherever your requirements live. Repository markdown, a documentation site, Jira, Confluence, Google Drive, Notion.
TrueCourse N Northwind Labs Home Context Code Flows Agent Notifications 2 Settings A Ada Okafor ada@northwind.dev Context Add context Scan Sources Documents Conflicts Search documents DOCUMENT SOURCE Refunds Northwind Docs Invoices and credit notes Northwind Docs Billing cycles Northwind Docs Tax by customer country Northwind Docs Store credit northwind/billing Trials northwind/checkout 171 total Refunds Northwind Docs · docs/billing/refunds.md Refunds Partial refunds are allowed within ninety days of the charge. Refunds must return to the original payment method. A refunded invoice keeps its number and receives a credit note. Store credit is offered only when the customer asks for it. Add context Source Scope Repository Documentation site Jira Confluence Google Drive OneDrive Notion Linear Slack Add and sync Syncing Synced Back Refunds must return to the original payment method. - 02
Connect your repository
Pick the repositories those docs describe. TrueCourse maps their interfaces and installs as a check on each one.
TrueCourse N Northwind Labs Home Context Code Flows Agent Notifications 2 Settings A Ada Okafor ada@northwind.dev Code Connect repository Search repositories REPOSITORY REQUIREMENTS PROVEN LAST CHECK BASELINE northwind/checkout 1 4 58 3 88% Passing 1h ago main · 1d ago northwind/ledger 1 9 30 4 68% Failing 5h ago main · 3d ago northwind/notifications 22 2 92% Passing 3h ago main · 2d ago 1 Failing 2 Passing 3 total Connect a repository Provider Repositories Confirm northwind · GitHub Connected northwind/billing private northwind/customer-portal private northwind/api-gateway private northwind/design-system public northwind/checkout connected northwind/ledger connected Connect Connecting Connected Back northwind/billing Runs Pipeline Context Interfaces Dependencies Settings Search interfaces INTERFACE SURFACE KIND ORIGIN USED BY POST /refunds Issue a refund for a charge API Operation derived 4 tests GET /refunds/:id Read one refund API Operation derived 2 tests GET /invoices/:id Read one invoice API Operation derived 6 tests POST /invoices/:id/credit-notes Credit an invoice API Operation derived 3 tests Refunds /billing/refunds Web Screen derived 3 tests Invoice /billing/invoices/:id Web Screen derived 2 tests billing reconcile Settle the day’s ledger CLI Command derived 1 test 4 Operation 2 Screen 1 Command 7 total - 03
Docs become flows
Each requirement becomes a flow, a scenario run against the running product with every step on record.
TrueCourse N Northwind Labs Home Context Code Flows Agent Notifications 2 Settings A Ada Okafor ada@northwind.dev Flows Search flows FILTER Repository · northwind/billing Add filter FLOW STATUS DRIVERS REPOSITORY SECTIONS refund-returns-to-original-method Failed Web northwind/billing 2 invoice-totals-are-integer-cents Succeeded API northwind/billing 1 partial-refund-within-ninety-days Succeeded API northwind/billing 2 overdue-invoice-sends-reminder Blocked API Web northwind/billing 1 credit-note-reverses-invoice Succeeded API northwind/billing 3 vat-applied-per-customer-country Succeeded API northwind/billing 2 trial-ends-without-a-card-on-file Never run Web northwind/billing 1 invoice-due-date-follows-terms Succeeded API northwind/billing 1 reminder-sent-three-days-before-due Succeeded API northwind/billing 2 credit-note-emails-the-customer Succeeded Web northwind/billing 1 1 Failed 1 Blocked 1 Never run 7 Succeeded 10 of 52 › refund-returns-to-original-method › Run 12 min ago refund-returns-to-original-method Failed Web · northwind/billing · 2 sections · last run 12 min ago Failed Broke at step 4 · Next: return the refund to the original payment method, not store credit FILMSTRIP Replay session.webm Step 1 40.00 Step 2 Store credit issued Step 3 Issued as store credit Step 4 STEPS 1 web open /billing/invoices/inv_1042 1.2s 2 web click "Refund", fill amount 40.00 0.4s 3 web click "Issue refund" 0.9s 4 web expect "Refunded to Visa 4242" 0.3s EXPECTED Refunded to Visa 4242 ACTUAL Issued as store credit TRANSCRIPT 12:04:18 open /billing/invoices/inv_1042 200 12:04:19 click "Refund" fill amount 40.00 12:04:20 click "Issue refund" banner "Store credit issued" 12:04:21 expect "Refunded to Visa 4242" found "Issued as store credit" - 04
Every pull request is checked
Flows run in an isolated sandbox. A failing check quotes the doc sentence and what was observed instead.
Move refunds to store credit #482 Open ada-okafor wants to merge 3 commits into main from feature/store-credit-refunds Conversation 4 Commits 3 Checks 3 Files changed 6 ada-okafor commented 2 hours ago Refunds now land as store credit so the customer can spend it right away. Some checks haven't completed yet 1 in progress and 2 successful checks Some checks were not successful 1 failing and 2 successful checks ci / build Successful in 2m 14s Details ci / tests Successful in 4m 02s Details In progress TrueCourse / guard 1 failing Details refund-returns-to-original-method Refunds must return to the original payment method. docs/billing/refunds.md › Payment method Observed: refund issued as store credit Merging is blocked The base branch requires all checks to pass before merging. Merge pull request Reviewers No reviews Assignees No one Labels billing Milestone No milestone - 05
Claude Code closes the loop
Claude Code reads the failing result over MCP, fixes the code, and the check goes green.
claude · northwind/billing > fix the failing TrueCourse flows ⏺ truecourse - failing_flows (MCP) ⎿ refund-returns-to-original-method failed expected "Refunded to Visa 4242", found "Issued as store credit" ⏺ Update(src/billing/refund.ts) ⎿ Updated src/billing/refund.ts with 1 addition and 1 removal - return issueStoreCredit(charge, amount); + return refundToOriginalMethod(charge, amount); ⏺ truecourse - run_flow (MCP) ⎿ refund-returns-to-original-method succeeded 4 steps 2.8s ⏺ Refunds return to the original payment method again. Pushed to feature/store-credit-refunds. Move refunds to store credit #482 Some checks were not successful 1 failing and 2 successful checks All checks have passed 3 successful checks ci / build Details ci / tests Details 1 failing Successful in 2m 48s TrueCourse / guard Details Merging is blocked All checks must pass. Merge pull request Ready to merge No conflicts with main. Merge pull request
Every flow runs in isolation.
TrueCourse boots your product in a fresh machine for each flow, seeds the data that flow needs, and destroys the machine when the run ends. Nothing for your team to set up or keep running.
Enterprise
Runs where your code lives.
Self-hosted in your VPC or hosted by us. Every run works on a copy of the repository in a machine destroyed when it ends, secrets are encrypted at rest, and nothing about your product leaves your account.
Talk to salesSelf-hosted
Runs in your VPC. Code and docs stay with you.
Single sign-on
Okta, Azure AD and Google Workspace.
Audit trail
Every run and decision, timestamped and attributed.
Workspaces
Several teams under one account, each with its own repositories and docs.
Put your docs to the test.
Click the water to set sail. Your cursor is the wind.