From 63a1678b7e7fa4e8367ef3893b38dba6fd131ef7 Mon Sep 17 00:00:00 2001 From: Lahfir Date: Wed, 10 Jun 2026 16:18:14 -0700 Subject: [PATCH] docs: record the perf commit type, pre-1.0 bump policy, and error details field Adds perf: to the allowed commit types (release-please already maps it to a Performance changelog section), records the pre-1.0 versioning policy so a BREAKING footer is expected to cut a minor rather than a major, and shows the optional error.details object in the error envelope docs. The gitignored local AGENTS.md mirror got the same contract sync. --- CLAUDE.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 06c5702..1021a5e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,12 +48,14 @@ Cross-platform Rust CLI + MCP server enabling AI agents to observe and control d - `docs:` — documentation only - `style:` — formatting, no code change - `refactor:` — code change that neither fixes a bug nor adds a feature + - `perf:` — performance improvement with no behavior change - `chore:` — maintenance tasks, dependencies - `ci:` — CI/CD changes - `test:` — adding or fixing tests - Format: `type: concise imperative description` (lowercase type, no capital after colon) - Focus on "why" not "what" - Examples: `feat: add scroll-to command`, `fix: prevent stale ref on window resize`, `ci: add binary size check` +- **Pre-1.0 versioning policy** (release-please `bump-minor-pre-major` + `bump-patch-for-minor-pre-major`): while the version is 0.x, a `BREAKING CHANGE` cuts a **minor** (0.2 → 0.3) and a `feat:` cuts a **patch**. Do not expect a major release before 1.0. ## Core Principle @@ -303,6 +305,8 @@ Error responses: } ``` +The `error` object may also carry an optional `details` object (e.g. the actionability report on an actionability failure, candidate summaries on `AMBIGUOUS_TARGET`, or the last observed state on a `wait` `TIMEOUT`). + ### Serialization Rules - Omit null/None fields (`#[serde(skip_serializing_if = "Option::is_none")]`)