Skip to content

Canon Modes

Modes dictate the structural requirements, required metadata, and expected evidence for packets. Canon supports a wide variety of modes out-of-the-box, ensuring you can govern virtually any type of engineering knowledge.

Available Modes

Below is a list of the primary modes available in Canon, based on the default templates:

Architecture & Domain

  • architecture: Capture structural decisions, architectural boundaries, and system-level trade-offs.
  • domain-language: Define the ubiquitous language and terms used across the project to maintain semantic consistency.
  • domain-model: Document entities, relationships, invariants, and boundaries for a specific bounded context.

Delivery & Engineering

  • requirements: Structure product or technical requirements before execution begins.
  • backlog: Formulate backlog items with explicit acceptance criteria and lineage to requirements.
  • discovery: Log investigative work, spikes, or feasibility studies.
  • implementation: Record the implementation plan, logic design, or completed code structure.
  • verification: Track test plans, coverage goals, and verification outcomes.

Evolution & Maintenance

  • change: Govern standard operational changes or configuration updates.
  • refactor: Propose and document internal structural improvements without altering external behavior.
  • migration: Track data, system, or library migrations, including rollback strategies.

Quality & Review

  • pr-review: Structure peer review or AI-assisted review findings for Pull Requests.
  • review: Generic review artifacts for designs, documents, or processes.
  • security-assessment: Document threat models, risk surfaces, and security review outcomes.
  • system-assessment: Evaluate system health, performance, or compliance.
  • supply-chain-analysis: Assess dependencies, licensing, and third-party risks.

Operations

  • incident: Capture incident reports, root cause analyses, and remediation actions.
  • system-shaping: Govern broad, cross-cutting structural adjustments or organizational engineering alignments.

Choosing a Mode

Pick a mode based on the intent of your work, not just the file you happen to have open. If you are defining terms, use domain-language. If you are planning how a feature will be built, use implementation.

Each mode defines its own required evidence and readiness criteria. You can run canon init --mode <mode-name> to generate a skeleton packet that contains the specific requirements for that mode.

Released under the MIT License.