Web app overview
The Kanon web app is the reading and management surface for your knowledge base. You use the plugin to generate content; you use the web app to read, review, and act on it.
Pages
Knowledge base (/knowledge-base/{repo-id})
The main reading surface. A sidebar shows spaces → domains → features. Each scanned feature links to its guide page.
Overview page: totals (domains, features, claims, facts), coverage bar, honest gaps (unscanned features, empty domains), domain table.
Feature guide page: the full generated guide with all sections — narrative, principles, lifecycle, business risks, vendor dependencies, user journey, known limitations, compliance flags, data model, route map, jobs, flags, events, experiments, test plan, and glossary. Every behavioral sentence carries a trust badge (verified/asserted/drifted) and a citation linking back to the source code.
Tracking plan (/events/{repo-id})
Manage your analytics event inventory. The tracking plan reconciles what's in the code against what SHOULD be tracked.
Statuses: implemented (in code, aligned), suggested (Kanon recommends adding), approved (user accepted, not yet coded), missing (in plan, removed from code), misaligned (in code but differs from plan).
Actions: approve/reject suggestions, add events manually, edit existing entries, create a Linear ticket for the diff between the plan and the code.
Flag plan (/flags/{repo-id})
Feature flag lifecycle management. Tracks every flag with its provider, lifecycle (temporary/permanent/experiment/ops/kill-switch), owner, cleanup date, and gate site count.
Statuses: implemented, planned, stale (marked for cleanup), missing, undocumented (in code but not in the plan).
Actions: document undocumented flags, mark stale, set cleanup dates, create a Linear ticket for maintenance.
Experiments (/experiments/{repo-id})
A/B test inventory. Shows every experiment detected in the code with its provider, variants, hypothesis, metric, and status (active/concluded).
Concluded experiments get a warning callout — they should be cleaned up (ship the winner, remove the branching code).
Security audit (/security/{repo-id})
Static analysis findings grouped by OWASP category. Each finding shows severity (critical/high/medium/low), description, remediation guidance, code evidence, and source location.
Not a penetration test — pattern-based detection of common anti-patterns (hardcoded secrets, SQL injection, XSS, broken auth, etc.).
Testing plan (/testing/{repo-id})
E2E test scenarios across the whole product. Grouped by feature with priority (critical/high/normal/low), step counts, category (happy path/error path/edge case), and automation status.
Review taxonomy (/knowledge-base/{repo-id}/review)
The approval UI for discovery proposals. Accept, edit & accept, or reject each proposed domain and feature. Bulk "Accept all" per domain.
Changes (/knowledge-base/{repo-id}/changes)
Pending product changes — spec changes from Linear tickets, scan-detected drift, or GitHub PRs. Shows status (open/implementing/resolved/dismissed) and affected claims.
Each open change offers two execution paths: copy the /kanon:work command
for a terminal session, or — when a worker daemon is
online — click Run with worker to queue it. A queued change shows a live
status chip linking to its session view
(/knowledge-base/{repo-id}/tasks/{task-id}): a step-by-step trace of what
the worker is doing, a cancel button, and the PR link when it lands.
Settings (/settings)
- Members — invite users, manage roles (admin/member/viewer)
- Integrations — connect Linear (OAuth, team binding per repo), connect GitHub
- API tokens — machine access tokens for CI and the plugin
AI chat
Every knowledge base page has an AI chat assistant. Ask questions about your product and get grounded answers:
- Answers cite specific claims and sections from the knowledge base
- Tables and diagrams are rendered as widgets, not inline markdown
- When you discuss changing product behavior, the AI proactively drafts a Linear ticket (categorized as bug/improvement/feature with a comprehensive template)
- When you ask a factual question, it answers without suggesting changes