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.
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 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.
| Decision | Chose | Rejected | Cost accepted |
|---|---|---|---|
| Rule enforcement | One shared rule registry, enforced identically across every repo in the fleet | Each repo carrying its own clippy config and ad hoc CI script | Coupling — a rule change in kanon can, in principle, break a gate in a repo untouched for months |
| Recording target | Run kanon lint / kanon gate against the public aletheia repo | Recording against kanon’s own source | Proves 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
| Claim | Method | Where to check |
|---|---|---|
| 311,090 lines Rust (code-only), 361,727 including comments | tokei against a local clone, 2026-07-20 | private repo; artifact available on request |
| 13 workspace crates | crate count in the workspace Cargo.toml | private repo; artifact available on request |
| ~6,628 test-attribute occurrences | rg -c '#\[(tokio::)?test', 2026-07-20 | private repo; artifact available on request |
| Binary version 0.1.12 | kanon lint --help / kanon gate --help output, captured 2026-07-20 | private repo; artifact available on request |