Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .antigravity-plugin/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "canon",
"displayName": "Canon Assistant Support for Antigravity",
"version": "0.64.0",
"version": "0.65.0",
"description": "Canon provides semantic governance for AI-assisted engineering work: structured packets, governed evidence, approvals, lineage, project memory, and reusable delivery knowledge.",
"author": {
"name": "Apply The",
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "canon",
"displayName": "Canon Assistant Support for Claude Code",
"version": "0.64.0",
"version": "0.65.0",
"description": "Canon provides semantic governance for AI-assisted engineering work: structured packets, governed evidence, approvals, lineage, project memory, and reusable delivery knowledge.",
"author": {
"name": "Apply The",
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "canon",
"displayName": "Canon Assistant Support for Codex",
"version": "0.64.0",
"version": "0.65.0",
"description": "Canon provides semantic governance for AI-assisted engineering work: structured packets, governed evidence, approvals, lineage, project memory, and reusable delivery knowledge.",
"author": {
"name": "Apply The",
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "canon",
"displayName": "Canon Assistant Support for Cursor",
"version": "0.64.0",
"version": "0.65.0",
"description": "Canon provides semantic governance for AI-assisted engineering work: structured packets, governed evidence, approvals, lineage, project memory, and reusable delivery knowledge.",
"author": {
"name": "Apply The",
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- uses: taiki-e/install-action@v2
with:
tool: cargo-llvm-cov
- run: cargo llvm-cov --workspace --all-features --lcov --output-path lcov.info
- run: bash scripts/coverage.sh
- name: SonarQube Scan
uses: SonarSource/sonarqube-scan-action@v6.0.0
env:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Ignore the homebrew-canon directory, which may contain generated files or dependencies related to the project.
/homebrew-canon

# Generated by Cargo
# will have compiled files and executables
debug
Expand Down
2 changes: 1 addition & 1 deletion .specify/feature.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"feature_directory": "specs/065-reasoning-posture-v2"
"feature_directory": "specs/067-systematic-debugging"
}
5 changes: 3 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Canon Development Guidelines

Auto-generated from all feature plans. Last updated: 2026-06-01
Auto-generated from all feature plans. Last updated: 2026-06-03

## Governing Constitution

Expand All @@ -13,6 +13,7 @@ Auto-generated from all feature plans. Last updated: 2026-06-01
## Active Technologies
- Rust 1.96.0, Edition 2024; Markdown planning artifacts + workspace crates `canon-cli` and `canon-engine`; existing `clap`, `serde`, `serde_json`, `serde_yaml`, and `tracing`; planned `ratatui` plus `crossterm` for the full-screen init UI; existing `assert_cmd` and `tempfile` for CLI validation (063-interactive-init-ui)
- `.canon/` runtime scaffolding in the target workspace; planning and contract artifacts under `specs/063-interactive-init-ui/` (063-interactive-init-ui)
- Rust 1.96.0, Edition 2024 + clap, serde, serde_json, serde_yaml, tracing, thiserror (067-systematic-debugging)

- Rust 1.96.0, Edition 2024
- `clap`, `serde`, `serde_json`, `serde_yaml`, `toml`
Expand Down Expand Up @@ -74,9 +75,9 @@ Before 1.0.0, breaking changes MAY occur in minor versions.
- `specs/001-canon-spec/decision-log.md`

## Recent Changes
- 067-systematic-debugging: Added Rust 1.96.0, Edition 2024 + clap, serde, serde_json, serde_yaml, tracing, thiserror
- 063-interactive-init-ui: Added Rust 1.96.0, Edition 2024; Markdown planning artifacts + workspace crates `canon-cli` and `canon-engine`; existing `clap`, `serde`, `serde_json`, `serde_yaml`, and `tracing`; planned `ratatui` plus `crossterm` for the full-screen init UI; existing `assert_cmd` and `tempfile` for CLI validation
- 062-clarify-run-refinement: Added Rust 1.96.0, Edition 2024; Markdown documentation and templates; existing Spec Kit shell helpers + workspace crates `canon-engine`, `canon-cli`, `canon-adapters`; existing `clap`, `serde`, `serde_json`, `serde_yaml`, `toml`, `thiserror`, `tracing`, `uuid`, and `time`; repo-local methods, templates, and skill-source documents
- 061-skill-runtime-contracts: Added Bash 5.x (macOS/Linux), PowerShell 7.x (cross-platform) + `jq` (JSON validation), `canon` CLI (version

<!-- MANUAL ADDITIONS START -->
## Codex Skills Frontend
Expand Down
15 changes: 12 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,19 @@ The repository history contains no release bumps for `0.10.0`, `0.13.0`,
`0.16.0`, or `0.17.0`, so adjacent feature slices are rolled into the next
recorded workspace version.

## [Upcoming]
## [0.65.0] - 2026-06-03

Planning notes for the next release line are not fixed yet. This section will
be updated once new work is scoped.
Delivered specs:

- `specs/067-systematic-debugging/`

Highlights:

- Added a first-class `debugging` mode for systematic defect resolution, emphasizing root-cause isolation and red-to-green test transitions.
- Enforced required artifacts for the `debugging` mode: `01-context`, `02-reproduction`, `03-root-cause`, `04-fix-decision`, and `05-verification`.
- Integrated `debugging` mode into the governance surface and CLI contracts as a recommendation-only, green-zone workflow.
- Updated docs, README, and CLI references to include `debugging`.
- Bumped workspace version to `0.65.0`.

## [0.64.0] - 2026-06-02

Expand Down
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ resolver = "2"
edition = "2024"
license = "MIT"
rust-version = "1.96.0"
version = "0.64.0"
version = "0.65.0"

[workspace.dependencies]
assert_cmd = "2"
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ These are the commands you'll actually use every day:

| Command | What it does |
|---|---|
| `canon run` | Start a new governed session with explicit boundaries. |
| `canon run` | Start a new governed session with explicit boundaries. Available modes include `requirements`, `architecture`, `debugging`, `change`, `incident`, and more. |
| `canon status` | See exactly what the agent is doing right now. |
| `canon inspect` | Review generated evidence and artifacts. |
| `canon approve` | Unblock a session that hit a governance gate. |
Expand Down
2 changes: 1 addition & 1 deletion assistant/plugin-metadata.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "canon",
"displayName": "Canon Assistant Support",
"version": "0.64.0",
"version": "0.65.0",
"description": "Governed packet runtime for AI-assisted engineering work",
"author": {
"name": "Apply The",
Expand Down
1 change: 1 addition & 0 deletions crates/canon-engine/src/artifacts/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ pub fn contract_for_mode(mode: Mode) -> ArtifactContract {
Mode::Migration => operations::migration(),
Mode::DomainLanguage => domain::domain_language(),
Mode::DomainModel => domain::domain_model(),
Mode::Debugging => delivery::debugging(),
};

build_contract(files)
Expand Down
38 changes: 38 additions & 0 deletions crates/canon-engine/src/artifacts/contract/delivery.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ const REGRESSION_EVIDENCE_MD: &str = "regression-evidence.md";
const CONTRACT_DRIFT_CHECK_MD: &str = "contract-drift-check.md";
const NO_FEATURE_ADDITION_MD: &str = "no-feature-addition.md";

// Debugging
const CONTEXT_MAP_MD: &str = "context-map.md";
const REPRODUCTION_HARNESS_MD: &str = "reproduction-harness.md";
const ROOT_CAUSE_ISOLATION_MD: &str = "root-cause-isolation.md";
const FIX_APPLICATION_MD: &str = "fix-application.md";
const VERIFICATION_SUMMARY_MD: &str = "verification-summary.md";

// ── Mode contracts ────────────────────────────────────────────────────────────

/// Returns the artifact requirements for the [`Backlog`](crate::domain::mode::Mode::Backlog) mode.
Expand Down Expand Up @@ -223,6 +230,37 @@ pub(super) fn refactor() -> Vec<ArtifactRequirement> {
]
}

/// Returns the artifact requirements for the [`Debugging`](crate::domain::mode::Mode::Debugging) mode.
pub(super) fn debugging() -> Vec<ArtifactRequirement> {
vec![
requirement(
CONTEXT_MAP_MD,
&[SUMMARY, "Context Map", "Defect Description", "Stakeholder Impact"],
&[GateKind::Exploration, GateKind::Risk],
),
requirement(
REPRODUCTION_HARNESS_MD,
&[SUMMARY, "Reproduction Harness", "Red State Verification"],
&[GateKind::Reproduction, GateKind::TestDrivenDevelopment],
),
requirement(
ROOT_CAUSE_ISOLATION_MD,
&[SUMMARY, "Root Cause Isolation", "Fault Chain", "Isolation Proof"],
&[GateKind::RootCause, GateKind::Architecture],
),
requirement(
FIX_APPLICATION_MD,
&[SUMMARY, "Fix Application", "Bounded Changes", "Invariant Preservation"],
&[GateKind::RootCause, GateKind::ReleaseReadiness],
),
requirement(
VERIFICATION_SUMMARY_MD,
&[SUMMARY, "Verification Summary", "Green State", "No Regression Evidence"],
&[GateKind::ReleaseReadiness, GateKind::TestDrivenDevelopment],
),
]
}

#[cfg(test)]
mod tests {
use super::*;
Expand Down
5 changes: 3 additions & 2 deletions crates/canon-engine/src/artifacts/markdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,9 @@ pub use authoring::{
render_requirements_artifact_from_evidence, render_system_shaping_artifact,
};
pub use delivery::{
render_backlog_artifact, render_change_artifact, render_implementation_artifact,
render_incident_artifact, render_migration_artifact, render_refactor_artifact,
render_backlog_artifact, render_change_artifact, render_debugging_artifact,
render_implementation_artifact, render_incident_artifact, render_migration_artifact,
render_refactor_artifact,
};
pub use domain::{render_domain_language_artifact, render_domain_model_artifact};
pub use governance::{
Expand Down
Loading
Loading