Derived from your code

Stop asking an engineer what your product does.

Kanon reads your codebase and writes down what your product does, with the line of code behind every sentence.

Read it. Ask it. Change it.

Free to start. An engineer connects it in three commands. It reads the code in their own Claude Code session, and nothing leaves the machine but what you approve.

demo/paymentsillustrative example
What happens when a payment fails?Ask ↵
Answer
A failed charge is retried on a backoff schedule for up to 3 attempts . After the final failure the subscription moves to past_due , and a dunning email is sent. The card is never re-tried outside that window.
charge.ts
86async function retryCharge(sub) {
87 for (let i = 0; i < MAX; i++) {
88 const MAX = 3; await backoff(i);
89 if (await attempt(sub)) return ok;
90 }
91 sub.status = 'past_due';
An illustrative example on a sample codebase. Connect your repo to read your own.Connect a repository →

Your code is the only honest description of your product. Nobody who needs it can read it.

Every wiki is a snapshot of what someone believed six months ago. The one description that stays current is the code, written in a language most of your team can’t read.

The answer used to cost a Slack thread, two interruptions, and a day. Now it costs a question.

Derived, not written

Nobody wrote this. It was read.

Kanon connects to your repository and derives a guide for every feature. Each sentence is a claim, anchored to the exact line behind it. When the code changes, the guide is read again.

A refund can never exceed the amount originally captured.

Verifiedrefund.ts:42 · proven by 1 test

A failed charge is retried up to three times before the subscription is marked past due.

Assertedcharge.ts:88

Checkout is gated by two feature flags; the one-click path is hidden when express_checkout is off.

Assertedflags.ts:12
Calibrated honesty

Every claim is Asserted until a test proves it, and we tell you which is which.

We never write your tests. We find the ones you already have, and check what they actually prove. That’s the difference between “the tests pass” and “the rule is proven.”

Verified

A real test in your own suite exercised this rule, with the evidence and a date attached. Nothing else earns the word.

Asserted

Inferred from the code and labelled honestly, the calm and neutral default. Most of a young knowledge base lives here, and that’s the truth, not a gap.

Corporate Cards · coverage18 Verified · 122 Asserted

A fully-amber bar is the truthful picture, not a broken one. The green is believable precisely because we didn’t paint everything green.

The boring stuff, read straight out of code

Nobody knows how many feature flags you have. Your codebase does.

Every flag, what it gates, whether it's on or off, and the exact line that declares it. The flag that's been on for eighteen months that nobody dares delete is in here, with its blast radius.

FlagGatesStateSource
express_checkoutOne-click checkout pathoffflags.ts:12
new_pricingPricing table & tax linesonflags.ts:19
legacy_dunningOld retry cadence (no reads in 18mo)onflags.ts:27
audit_logWrite-ahead audit trailonflags.ts:31
47
feature flags
3
dead, no reads
128
analytics events
10s
to answer “are we tracking that?”
From request to change

Describe the change in the language of the product. It becomes a ticket, or a pull request.

Product teams have always written requirements that engineers translate. This one doesn't need translating. A request written against the guide becomes a ticket, or a pull request, linked to the exact claims it changes. You review it before it's real.

Draft changeteam ENG · review before it’s real
Request, written on the guide
Retry a failed charge up to 5 times before it goes past due, not 3.
Links 2 claims it changes
charge.ts:88charge.ts:95
Who it's for

One knowledge base. Every role that has to know what the product does.

Product

“What’s the refund limit?” Answered without reading Ruby or waiting on an engineer.

Support

“Why did this charge fail?” The exact retry and dunning behavior, cited.

Compliance

“Show me the rule and the line that enforces it,” with its trust state.

New joiner

Onboarding used to take a quarter. Now it’s an afternoon of asking questions.

Where this goes

Every pull request makes the documentation more accurate, not less.

Documentation decays every sprint. This compounds every sprint: the first source of truth whose maintenance cost goes down over time.

Claims re-anchor to the code that moved, so the guide survives the refactor. Your CI already knows which tests touched which lines. That’s all it takes to prove a rule.
Every change in flight, shown next to the part of the product it changes. in flight
Agents check the tests you already have, continuously. If the rule says a refund can’t exceed the capture, something proves it, not because someone remembered to.
Getting started

Connecting takes three commands and an engineer’s five minutes.

Kanon reads your repository from your team's own Claude Code session, so your subscription runs the crawl and nothing leaves the machine but the taxonomy you approve. Sign-in is a browser approval, no credentials touch the agent, and you review every proposal before a single feature is scanned deeply.

payments-api · zshillustrative example
Install once per machine
$claude plugin marketplace add KanonAI/kanon-web
$claude plugin install kanon@kanon
Sign in from your repo, then map it
/kanon:setup
/kanon:discover → pushes a taxonomy here for review
Read-only by defaultYou approve before any deep scanYour tokens, your machine

Your product, in writing. Finally accurate.

Read it. Ask it. Change it.