AI-native documentation platform

Documentation that keeps up.

Canon indexes every markdown file in your repos, analyzes every PR against your docs, and verifies that your code actually implements what was specified. When reality changes, docs update automatically.

Install a GitHub App. Write specs in structured markdown. The AI agent handles PR reviews, ticket sync, doc-update PRs, and code-aware verification—across your entire org.

Install on GitHub Explore Dashboard
C
canon bot commented on PR #142

This PR implements retry logic for the payments service. It addresses 2 of 3 acceptance criteria in payments-overhaul.md §3.2 and introduces a new error type not yet documented.

Spec Realization
§3.2 AC1 Exponential backoff — realized in src/payments/retry.ts:42
§3.2 AC2 Max 3 retries — code uses max 5. Update spec or code?
§3.2 AC3 Preserve idempotency key across retries — not addressed
Other Docs Affected
README.md §Error Handling — missing PaymentTimeoutError
docs/architecture.md §Retry Strategy — references "3 retries," now stale

See it in action

Your org's docs at a glance

The Spec Explorer dashboard gives you real-time visibility into documentation health across every repo.

canonhq.co
Spec Explorer dashboard showing repos, specs, coverage, and filters
Spec detail page with sections, acceptance criteria, and progress

The problem

Your docs are already wrong

The moment a PR merges, some document somewhere becomes inaccurate. Nobody notices until a new hire reads it, a customer hits a bug, or an audit fails.

Without Canon

  • × Specs go stale within weeks—nobody trusts them
  • × PRs are reviewed without any spec context
  • × Tickets close but nobody verifies the code matches the spec
  • × READMEs, ADRs, and guides rot silently
  • × "What percentage is done?" requires a meeting
  • × New engineers have no idea what's been built or why

With Canon

  • Agent verifies code against spec requirements
  • Every PR analyzed against all indexed docs
  • Stale docs flagged before anyone reads them
  • Doc-update PRs generated automatically on merge
  • Tickets sync bidirectionally from spec sections
  • One search across every doc in every repo

The feedback loop

How docs stay alive

Canon creates a continuous loop between specs, code, and documentation. Every PR makes the system smarter. Every merge keeps docs accurate.

PM writes a structured spec

Define requirements, acceptance criteria, owners, and teams in markdown. Specs live in your repo—version controlled, reviewable, and always the source of intent.

Agent indexes all markdown

On every push, Canon indexes specs, READMEs, ADRs, architecture docs, and guides. Every doc becomes searchable and available as context for AI analysis.

Tickets created from spec sections

Each spec section generates a ticket in Jira, Linear, or GitHub Issues. Links are embedded as hidden comments. Engineers work tickets as normal.

Engineer opens a PR

The agent analyzes the diff against all indexed docs—not just specs. It evaluates whether acceptance criteria are realized in code, flags conflicts with existing docs, and identifies undocumented behavior.

PR merges, docs update

The agent generates doc-update PRs for any affected markdown—specs, READMEs, guides, architecture docs. Spec sections auto-transition to "done" when the code verifies all acceptance criteria.

Stale docs flagged proactively

A scheduled scan compares doc freshness against code changes. If code changed but related docs didn't, the agent opens an issue with links to the relevant PRs and suggests updates.

Updated docs feed back into the knowledge base — richer context for the next PR analysis.

Capabilities

Everything your docs need to stay alive

Canon installs as a GitHub App and works across your entire organization. Write specs, push code, and let the agent handle the rest.

01 / index

All-Markdown Knowledge Base

Every markdown file in your repos is indexed and searchable—specs, READMEs, ADRs, architecture docs, runbooks, changelogs. One search surface for your entire org's documentation, powered by hybrid semantic + keyword search.

02 / verify

Code-Aware Spec Realization

The agent doesn't just check if a ticket is closed—it reads the code to verify that acceptance criteria are actually implemented. Each spec section shows realization status with links to the PRs and files that fulfill it.

03 / review

Spec-Aware PR Analysis

When a PR opens, the Claude agent analyzes the diff against all relevant docs. It identifies which spec sections are addressed, flags discrepancies, and catches when READMEs or architecture docs are affected by the change.

04 / sync

Bidirectional Ticket Sync

Spec sections generate tickets in Jira, Linear, or GitHub Issues. Tickets sync bidirectionally—close a ticket and the spec updates; mark a section done in a PR and the ticket closes. No manual status juggling.

05 / update

Automatic Doc-Update PRs

When a PR merges, the agent generates a follow-up PR with suggested updates to any affected markdown—specs, READMEs, guides. Review and merge the doc PR, or dismiss it. The agent learns from your feedback.

06 / coverage

Spec Coverage Dashboard

Track completion across sections and acceptance criteria for every spec. The Spec Explorer dashboard shows org-wide coverage broken down by repo, team, and status. Know exactly what's shipped and what's still planned.

Developer experience

Specs where you already work

Canon meets developers in their existing tools. No context switching, no new workflow to learn.

@canon commands
# On any PR, comment:
 
@canon reanalyze
Re-run spec analysis on this PR
 
@canon apply docs
Create a doc-update PR from suggestions
 
@canon dismiss
Remove the bot's analysis comment
MCP — coding agent integration
# In Claude Code, Cursor, or VS Code:
 
> "What does the spec say about retry handling?"
 
From payments-overhaul.md §3.2:
Exponential backoff, max 3 retries, with jitter.
Idempotency key preserved across retries.
 
Current code (src/payments/retry.ts:42):
Max retries is 5 — conflicts with spec.

Setup

Self-hosted, your data stays yours

Canon runs on your infrastructure. No SaaS vendor, no data leaving your environment. Deploy with Helm or Docker Compose and connect your GitHub org.

1

Install the GitHub App

One click installs Canon across your org. It subscribes to pushes, PRs, and issues. Select all repos or choose specific ones.

2

Deploy the platform

Use the Helm chart for Kubernetes or docker compose for local development. See the self-hosting guide for full details.

  • Requires: PostgreSQL with pgvector, Anthropic API key
  • Optional: GCP Vertex AI for semantic search embeddings
3

Write specs and push

Add structured markdown to docs/specs/ in any repo. Optionally add CANON.yaml for per-repo config. Every push indexes your docs, every PR gets AI analysis against all relevant documentation.

Integrations

Connects to your stack

Canon plugs into the tools your team already uses. No migration, no rip-and-replace.

Source Control

  • GitHub (native)
  • GitLab (planned)
  • Bitbucket (planned)

Tickets

  • Jira
  • Linear
  • GitHub Issues
  • Asana (planned)

Dev Tools

  • Claude Code (MCP)
  • Cursor (MCP)
  • VS Code (planned)

Communication

  • Slack (planned)
  • Microsoft Teams (planned)
  • Email digests (planned)

Stop maintaining docs. Let the agent do it.

Install the Canon GitHub App on your organization. Self-hosted, open source, and free to start. Your documentation will never go stale again.

Install on GitHub Explore Dashboard View Source