Skip to content

kanon

The standards engine that gates every other repo on this site: a lint/gate CLI, code intelligence, and PR/issue orchestration, private by choice.

PRIVATE · CASE STUDY PRIVATE · CASE STUDY Rust · MCP server · standards-as-code Gates every other public repo on this site · aletheia, thumos, hamma, harmonia, and logismos each carry a standards/ pointer into kanon's canonical rule set
kanon · lint --fix, then gate · run against the public aletheia repo, not kanon's own source 1:15 · .tape

RECORDING FORTHCOMING: kanon lint finds a violation (seeded for the recording, labeled on-screen as SEEDED VIOLATION — LABELED IN-CAST) → kanon lint --fix clears the mechanical class → kanon gate runs clean

What this shows: The standards engine finding and fixing a real violation class, then passing a clean gate against a public repo, so nothing of kanon's own source is exposed. What it doesn’t show: kanon's own source. This is a private repo by choice, not because the tool doesn't work — the case-study framing exists precisely so the design is visible without the code.

What it is

kanon is the standards and dispatch control plane the rest of this fleet is built and gated against: a lint engine, a CI-exact gate system, a code-intelligence layer, and a PR/issue-orchestration MCP server. It’s private, but not because it doesn’t work — every other public repo on this site (aletheia, thumos, hamma, harmonia, logismos) points its own standards/ directory at kanon’s canonical rule set and runs kanon’s gate before anything merges. This page is a case study rather than a source tour: the design thinking is visible without exposing the tool itself.

Concretely, kanon lint finds mechanical rule violations across a repo (--fix auto-resolves the fixable class, --diff-base scopes it to a PR’s actual diff), and kanon gate runs the fast-feedback check (format, compile check, lint), with a --full mode that adds clippy, the full test suite, and a Gate-Passed commit trailer once everything’s clean.

Decisions and trade-offs

Private by choice, not by necessity

kanon stays private not because the source is sensitive, but because it isn’t yet hardened for public traffic the way the fleet’s other repos are. Systems built in employment are a different case entirely — employer property, described on this site only as experience. The trade-off accepted here: a stronger portfolio artifact would be a public repo with real stars and real issues; the current call prioritizes not shipping a standards tool to strangers before it’s ready for that audience.

DecisionChoseRejectedCost accepted
Rule enforcementOne shared rule registry, enforced identically across every repo in the fleetEach repo carrying its own clippy config and ad hoc CI scriptCoupling — a rule change in kanon can, in principle, break a gate in a repo untouched for months
Recording targetRun kanon lint / kanon gate against the public aletheia repoRecording against kanon’s own sourceProves the engine works without exposing a single line of private source; a seeded violation, if used, is labeled on-screen as seeded

What’s solid / what’s open

Solid: kanon lint and kanon lint --fix for mechanical rule violations, kanon gate and kanon gate --full for the fast-feedback and full-verification paths, an MCP server surface for PR/issue orchestration and code intelligence, and a standards registry that five other repos in this fleet already depend on in production.

Open: not yet hardened for public traffic, which is the entire reason it stays private. No public issue tracker or contribution path exists while that’s true.

Numbers, and how they were measured

ClaimMethodWhere to check
311,090 lines Rust (code-only), 361,727 including commentstokei against a local clone, 2026-07-20private repo; artifact available on request
13 workspace cratescrate count in the workspace Cargo.tomlprivate repo; artifact available on request
~6,628 test-attribute occurrencesrg -c '#\[(tokio::)?test', 2026-07-20private repo; artifact available on request
Binary version 0.1.12kanon lint --help / kanon gate --help output, captured 2026-07-20private repo; artifact available on request

Where to look