@arbiterforge/ca-pi 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +29 -90
  2. package/package.json +1 -1
  3. package/plugins/ca-pi/CHANGELOG.md +77 -0
  4. package/plugins/ca-pi/COMMANDS.md +141 -64
  5. package/plugins/ca-pi/SKILLS.md +137 -28
  6. package/plugins/ca-pi/agents/INDEX.md +3 -2
  7. package/plugins/ca-pi/agents/checkpoint-aggregator.md +8 -7
  8. package/plugins/ca-pi/agents/finding-triage.md +31 -14
  9. package/plugins/ca-pi/agents/verdict-aggregator.md +64 -0
  10. package/plugins/ca-pi/arbiter.md +12 -3
  11. package/plugins/ca-pi/extensions/codearbiter.js +86 -1
  12. package/plugins/ca-pi/generated/command-catalog.json +386 -186
  13. package/plugins/ca-pi/generated/roles.json +9 -0
  14. package/plugins/ca-pi/hooks/_bashguardlib.py +18 -11
  15. package/plugins/ca-pi/hooks/_gitexec.py +23 -0
  16. package/plugins/ca-pi/hooks/_githooks.py +50 -23
  17. package/plugins/ca-pi/hooks/_hooklib.py +94 -7
  18. package/plugins/ca-pi/hooks/_host.py +9 -1
  19. package/plugins/ca-pi/hooks/_modelib.py +173 -55
  20. package/plugins/ca-pi/hooks/_protectedlib.py +13 -4
  21. package/plugins/ca-pi/hooks/_releaselib.py +278 -48
  22. package/plugins/ca-pi/hooks/_updatelib.py +230 -50
  23. package/plugins/ca-pi/hooks/doctor.py +56 -8
  24. package/plugins/ca-pi/hooks/git-enforce.py +10 -3
  25. package/plugins/ca-pi/hooks/hostapi.py +220 -22
  26. package/plugins/ca-pi/hooks/session-start.py +8 -6
  27. package/plugins/ca-pi/hooks/statusline.py +1 -1
  28. package/plugins/ca-pi/hooks/wire-statusline.py +13 -8
  29. package/plugins/ca-pi/includes/command-compatibility.md +16 -0
  30. package/plugins/ca-pi/includes/routing-table.md +13 -5
  31. package/plugins/ca-pi/routines/INDEX.md +1 -1
  32. package/plugins/ca-pi/routines/decision-lifecycle/SKILL.md +54 -2
  33. package/plugins/ca-pi/routines/decision-lifecycle/references/adr-template.md +9 -1
  34. package/plugins/ca-pi/routines/dispatching-parallel-agents/SKILL.md +4 -4
  35. package/plugins/ca-pi/routines/release/SKILL.md +1 -1
  36. package/plugins/ca-pi/skills/ca-checkpoint/SKILL.md +5 -4
  37. package/plugins/ca-pi/skills/ca-cleanup/SKILL.md +6 -0
  38. package/plugins/ca-pi/skills/ca-context-check/SKILL.md +6 -0
  39. package/plugins/ca-pi/skills/ca-create-context/SKILL.md +6 -0
  40. package/plugins/ca-pi/skills/ca-decompose/SKILL.md +6 -0
  41. package/plugins/ca-pi/skills/ca-doctor/SKILL.md +4 -0
  42. package/plugins/ca-pi/skills/ca-init/SKILL.md +18 -1
  43. package/plugins/ca-pi/skills/ca-pr/SKILL.md +17 -1
  44. package/plugins/ca-pi/skills/ca-review/SKILL.md +3 -4
  45. package/plugins/ca-pi/skills/ca-status/SKILL.md +13 -1
  46. package/plugins/ca-pi/skills/ca-watch/SKILL.md +6 -0
package/README.md CHANGED
@@ -10,10 +10,10 @@ project context. You decide. codeArbiter enforces.
10
10
  <img alt="Claude Code plugin" src="https://img.shields.io/badge/Claude_Code-plugin-d97757">
11
11
  <img alt="Codex plugin" src="https://img.shields.io/badge/OpenAI_Codex-plugin-10a37f">
12
12
  <img alt="Pi Feature Forge preview" src="https://img.shields.io/badge/ca--pi-Feature_Forge_preview-d97757">
13
- <img alt="version 2.15.1" src="https://img.shields.io/badge/version-2.15.1-2b7489">
14
- <img alt="commands" src="https://img.shields.io/badge/commands-38-555">
13
+ <img alt="version 2.17.0" src="https://img.shields.io/badge/version-2.17.0-2b7489">
14
+ <img alt="core lanes" src="https://img.shields.io/badge/core_lanes-18-555">
15
15
  <img alt="skills" src="https://img.shields.io/badge/skills-23-555">
16
- <img alt="agents" src="https://img.shields.io/badge/agents-18-555">
16
+ <img alt="agents" src="https://img.shields.io/badge/agents-19-555">
17
17
  <img alt="license AGPL v3" src="https://img.shields.io/badge/license-AGPL_v3-3da639">
18
18
 
19
19
  [Start learning](https://arbiterforge.github.io/codeArbiter/learn/)
@@ -26,12 +26,6 @@ project context. You decide. codeArbiter enforces.
26
26
 
27
27
  </div>
28
28
 
29
- > [!IMPORTANT]
30
- > **License notice.** Since v2.6.0, codeArbiter is licensed under the
31
- > [GNU AGPLv3](LICENSE), a change from its earlier MIT license. Copyright (C) 2026 SUaDtL, who
32
- > reserves the right to dual-license under separate proprietary terms; commercial licenses are not
33
- > offered at this time. See [License and contributions](#license-and-contributions).
34
-
35
29
  ## Agentic coding, with a record
36
30
 
37
31
  codeArbiter is for teams and power users who let coding agents do consequential work and need more
@@ -105,7 +99,9 @@ stability, command syntax, trust, and platform differences.
105
99
  **Prerequisites:** Python 3 on `PATH` and `git config user.email` set. Pi also requires Node.js
106
100
  22.19+. If Python is missing, Pi installs its final wrappers but blocks mutating calls and points to
107
101
  `/ca-doctor`; Claude Code and Codex surface an interpreter breadcrumb instead of silently claiming
108
- governance is active.
102
+ governance is active. The [compatibility matrix](https://arbiterforge.github.io/codeArbiter/getting-started/compatibility/)
103
+ defines the supported native Git/runtime and linked-worktree boundary; mixed Windows Git and WSL Git
104
+ over one shared repository are not supported.
109
105
 
110
106
  ### Claude Code
111
107
 
@@ -119,7 +115,7 @@ Approve the normal plugin trust prompt, open the target repository, and continue
119
115
 
120
116
  ### Codex CLI
121
117
 
122
- The public GitHub-slug flow is **available now**. The repository currently ships `ca-codex 0.7.1`;
118
+ The public GitHub-slug flow is **available now**. The repository currently ships `ca-codex 0.9.0`;
123
119
  the dated end-to-end public-install record discovered `ca-codex 0.2.4` from release `v2.8.13`.
124
120
  Current packaging and shared-core parity are continuously verified, while that dated live-install
125
121
  record stays labeled rather than being silently promoted to evidence for a newer adapter:
@@ -287,86 +283,29 @@ gate bypasses, merges, and unresolved questions remain true stops. See
287
283
 
288
284
  ## Core lanes
289
285
 
290
- | Intent | Claude Code | What the lane proves |
291
- |---|---|---|
292
- | New behavior | `/ca:feature "desc"` | approved spec and plan, test-first implementation, review, commit, PR |
293
- | Autonomous delivery | `/ca:sprint "goal"` | one interactive design gate, persisted work, logged SMARTS decisions |
294
- | Confirmed defect | `/ca:fix "bug"` | failing regression test before the minimal fix |
295
- | Unknown cause | `/ca:debug "symptom"` | investigation and root-cause decision before any fix lane |
296
- | Structural change | `/ca:refactor "surface"` | behavioral parity through unchanged pre-existing tests |
297
- | Dependency | `/ca:add-dep "pkg"` | license, provenance, maintenance, CVE, and supply-chain review |
298
- | Architecture decision | `/ca:adr "title"` | numbered, dated, user-attributed decision record |
299
- | Commit | `/ca:commit` | the full commit gate and selective staging |
300
- | Pull request | `/ca:pr` | cleared BLOCK findings and a draft PR, never a direct default-branch write |
301
-
302
- Claude Code's catalog is [`plugins/ca/COMMANDS.md`](./plugins/ca/COMMANDS.md). Codex uses the
303
- generated [`plugins/ca-codex/COMMANDS.md`](./plugins/ca-codex/COMMANDS.md), and Pi uses the generated
304
- [`plugins/ca-pi/COMMANDS.md`](./plugins/ca-pi/COMMANDS.md). Current generated counts are `ca: 38`,
305
- `ca-codex: 36`, and `ca-pi: 37`. Codex omits `statusline` and `prune`; Pi omits `statusline` and uses
306
- native compaction for pruning.
307
-
308
- <details>
309
- <summary><strong>All 38 Claude Code commands</strong></summary>
310
-
311
- ### Implementation
312
-
313
- | Command | Purpose |
314
- |---|---|
315
- | `/ca:feature "desc"` | Spec-driven feature; the only entry to new implementation |
316
- | `/ca:sprint "goal"` | Autonomous spec-to-PR sprint with SMARTS-scored decisions |
317
- | `/ca:fix "bug"` | Regression-test-first defect fix |
318
- | `/ca:refactor "surface"` | Behavior-preserving restructure behind a parity gate |
319
- | `/ca:debug "symptom"` | Investigate, identify root cause, then choose the owning lane |
320
- | `/ca:chore <docs\|deps\|revert>` | Type-scaled non-behavioral lane |
321
- | `/ca:spike "question"` | Throwaway exploration that never merges |
322
-
323
- ### Commit and ship
324
-
325
- | Command | Purpose |
326
- |---|---|
327
- | `/ca:commit` | The only path to a commit |
328
- | `/ca:pr` | Clear review findings and open or finish a pull request |
329
- | `/ca:watch <PR>` | Watch hosted CI, diagnose red, offer merge on green |
330
- | `/ca:review [path]` | Reviewer-fleet pass over the current diff |
331
- | `/ca:checkpoint` | Lean periodic whole-codebase reviewer sweep |
332
- | `/ca:tribunal [scope-path]` | Deep, resumable eleven-lens audit; never a routine gate |
333
- | `/ca:release [--dry-run]` | Target-aware SemVer, changelog, and annotated tag |
334
- | `/ca:add-dep "pkg"` | Vet license, provenance, maintenance, CVEs, and supply chain |
335
-
336
- ### Decisions
337
-
338
- | Command | Purpose |
339
- |---|---|
340
- | `/ca:adr "title"` | Author a numbered, user-attributed ADR |
341
- | `/ca:adr-status [--adr N]` | Inspect ADR health and supersession chains |
342
- | `/ca:reconcile ["scope"]` | Reconcile architectural artifacts through SMARTS |
343
- | `/ca:conflict "description"` | Stop work and surface an unresolvable rule conflict |
344
- | `/ca:threat-model "scope"` | Optional lightweight STRIDE pass |
345
-
346
- ### Project and meta
347
-
348
- | Command | Purpose |
349
- |---|---|
350
- | `/ca:decompose` | Greenfield interview that populates `.codearbiter/` |
351
- | `/ca:create-context` | Brownfield source scout and context backfill |
352
- | `/ca:init` | Scaffold the shared project-state store |
353
- | `/ca:status` | Show stage, branch, tasks, questions, and recent overrides |
354
- | `/ca:task` | The only sanctioned writer for `open-tasks.md` |
355
- | `/ca:statusline` | Install or remove the Claude Code statusline |
356
- | `/ca:doctor` | Prove interpreter, payload, hooks, cache, and live-fire behavior |
357
- | `/ca:preview` | Read-only prediction of reviewers plus a state-free secret scan |
358
- | `/ca:context-check` | Manual provenance-drift audit |
359
- | `/ca:standup` | Read repo hygiene, then confirm safe cleanup actions one by one |
360
- | `/ca:cleanup` | Finish an already-merged branch with ancestry proof |
361
- | `/ca:new-skill "gap"` | Author a new skill only after proving the gap |
362
- | `/ca:btw "question"` | Lightweight project Q&A with no state change |
363
- | `/ca:override "reason"` | Logged, attributed bypass for one immediate action when the gate permits it; never H-18 |
364
- | `/ca:audit [range]` | Assemble a dated governance packet |
365
- | `/ca:metrics [--window N]` | Read-only override, small-lane, and confidence trends |
366
- | `/ca:prune [status\|dry\|run\|audit\|on\|off]` | Inspect or trim transcript bulk |
367
- | `/ca:commands` | Show the public catalog |
286
+ Choose the workflow first. The canonical lanes keep daily work compact; advanced operations and
287
+ compatibility routes remain available in the complete reference.
368
288
 
369
- </details>
289
+ <!-- core-lane-chooser:start -->
290
+ | Workflow | Choose | Use it for |
291
+ |---|---|---|
292
+ | Evaluate | `/ca:preview` | Predict reviewers and run a read-only secret scan |
293
+ | Initialize | `/ca:init` | Create or inspect the repository-owned state store |
294
+ | Change | `/ca:feature`, `/ca:sprint`, `/ca:fix`, `/ca:refactor`, `/ca:chore`, `/ca:spike`, `/ca:add-dep` | Build, repair, restructure, explore, or change the supply chain through the owning gate |
295
+ | Review | `/ca:review` | Run the reviewer fleet over a diff or bounded path |
296
+ | Decide | `/ca:adr` | Record a numbered, user-attributed architecture decision |
297
+ | Ship | `/ca:commit`, `/ca:pr`, `/ca:release` | Commit, stage a pull request, or prepare an authorized release |
298
+ | Operate | `/ca:status`, `/ca:task`, `/ca:doctor`, `/ca:override` | Inspect state, manage the task board, verify enforcement, or log an allowed bypass |
299
+ <!-- core-lane-chooser:end -->
300
+
301
+ [Complete command reference](https://arbiterforge.github.io/codeArbiter/reference/commands/) includes
302
+ advanced operations, compatibility routes, internal protocols, deprecation guidance, and host
303
+ availability. The generated host catalogs remain inspectable in
304
+ [`plugins/ca/COMMANDS.md`](./plugins/ca/COMMANDS.md),
305
+ [`plugins/ca-codex/COMMANDS.md`](./plugins/ca-codex/COMMANDS.md), and
306
+ [`plugins/ca-pi/COMMANDS.md`](./plugins/ca-pi/COMMANDS.md). Claude Code includes `statusline` and
307
+ `prune`; Codex intentionally omits both. Pi omits `statusline` and uses native compaction through
308
+ its `prune` route.
370
309
 
371
310
  ## Trust and host boundaries
372
311
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbiterforge/ca-pi",
3
- "version": "0.8.1",
3
+ "version": "0.10.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,6 +4,83 @@ All notable changes to `ca-pi` are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.10.0] - 2026-09-02
8
+
9
+ ### Added
10
+
11
+ - Command discovery now groups the supported core lanes while retaining
12
+ advanced operations and compatibility routes in the generated Pi catalog.
13
+ - Pi rejects malformed alias graphs at runtime, and release-state plus
14
+ documentation-inventory drift now fail closed against canonical source;
15
+ tag-only or unverified Releases are rejected.
16
+
17
+ ## [0.9.0] - 2026-09-02
18
+
19
+ ### Added
20
+
21
+ - Accepted ADRs now have content-bound lifecycle records, sealed obligation
22
+ sets, and evidence-derived implementation and verification states.
23
+ - Destructive-operation policy now uses one four-item registry with generated
24
+ host parity and item-for-item enforcement.
25
+
26
+ ## [0.8.9] - 2026-09-02
27
+
28
+ ### Fixed
29
+
30
+ - Hook registration and doctor now bind every Git probe to the requested
31
+ repository, resolve effective hook paths through Git, and fail closed when
32
+ linked-worktree ownership cannot be proven.
33
+
34
+ ## [0.8.8] - 2026-09-02
35
+
36
+ ### Fixed
37
+
38
+ - Release-note reconstruction now accepts only exact changelog headings,
39
+ rejects ambiguous `Unreleased` and duplicate sections, and reads the
40
+ regular-file blob from the exact tag and repository root without inherited
41
+ Git repository overrides or replacement objects.
42
+
43
+ ## [0.8.7] - 2026-09-01
44
+
45
+ ### Added
46
+
47
+ - Review and generic parallel batches now terminate at a read-only verdict
48
+ aggregator, while checkpoint persistence remains a separate non-overwriting
49
+ writer invoked only by the explicit checkpoint workflow.
50
+
51
+ ## [0.8.6] - 2026-09-01
52
+
53
+ ### Fixed
54
+
55
+ - The update notifier now ignores unrelated release series, keeps `ca-pi-v*`
56
+ state independent from Claude and Codex, and emits Pi's native package
57
+ update command.
58
+
59
+ ## [0.8.5] - 2026-08-26
60
+
61
+ ### Changed
62
+
63
+ - The shared generated root kernel now derives its internal package root from the executing module and validates containment independently of host-native boundaries; Pi remains Forge-only and keeps its module/file-location semantics.
64
+ - Generated status-line and hook payloads were refreshed in lockstep with the Claude and Codex adapters without adding a separate runtime core package.
65
+
66
+ ## [0.8.4] - 2026-08-24
67
+
68
+ ### Fixed
69
+
70
+ - The shared Git enforcement hook now resolves linked-worktree security and migration markers through the main-checkout marker root while preserving worktree-local commit inspection.
71
+
72
+ ## [0.8.3] - 2026-08-21
73
+
74
+ ### Fixed
75
+
76
+ - Shared hook payload refresh: the explicit-workdir recognition added for Codex desktop wrapped execution is carried by the common guard. Pi does not set this field, so its runtime behavior is unchanged.
77
+
78
+ ## [0.8.2] - 2026-08-13
79
+
80
+ ### Fixed
81
+
82
+ - Shared-core mode-plane fix: the orchestration mode is stored one file per session under `.codearbiter/.markers/mode.d/` instead of a single shared map, so sessions sharing one `.codearbiter/` store can no longer overwrite each other's posture. Pi reports the mode read-only, and now reports a value no concurrent session can have silently reverted.
83
+
7
84
  ## [0.8.1] - 2026-08-13
8
85
 
9
86
  ### Changed
@@ -1,83 +1,160 @@
1
- # codeArbiter commands
1
+ # codeArbiter commands
2
2
 
3
- All user intent flows through these commands. A direct instruction outside a command channel gets a
4
- redirect to the closest command (see the §6 redirect). Every command ships as a `ca-`-prefixed
5
- skill invoke `$ca-<name>`.
3
+ Start with the job in front of you. A direct instruction outside a command channel routes to the
4
+ closest supported lane; installed legacy entry points remain listed under [Compatibility
5
+ routes](#compatibility-routes). Each route ships as a `ca-`-prefixed skill; invoke it as
6
+ `$ca-<name>`.
6
7
 
7
- This table is the surface scan. A command body (`<plugin-root>/skills/ca-<name>/SKILL.md`) loads
8
- ONLY when that command is invoked never bulk-read the directory.
8
+ A command body (`<plugin-root>/skills/ca-<name>/SKILL.md`)
9
+ loads only when that route is invoked. Never bulk-read the directory.
9
10
 
10
- ## Implementation
11
+ ## Installed surface
12
+
13
+ | Visibility | Count |
14
+ |---|---:|
15
+ | Core | 18 |
16
+ | Advanced | 12 |
17
+ | Canonical total | 30 |
18
+ | Compatibility aliases | 5 |
19
+ | Internal | 1 |
20
+ | Deprecated | 1 |
21
+ | **Total** | **37** |
22
+
23
+ ## Core lanes
24
+
25
+ ### Evaluate
26
+
27
+ | Command | Argument | Purpose |
28
+ |---|---|---|
29
+ | `/ca-preview` | _(none)_ | Predict the reviewer fleet and run a state-free secret scan without writing. |
30
+
31
+ ### Initialize
32
+
33
+ | Command | Argument | Purpose |
34
+ |---|---|---|
35
+ | `/ca-init` | `[--stage N] [--greenfield\|--brownfield] \| --check` | Scaffold or inspect `.codearbiter/`; explicit strategies enter the existing greenfield or brownfield workflows. |
36
+
37
+ ### Change
38
+
39
+ | Command | Argument | Purpose |
40
+ |---|---|---|
41
+ | `/ca-feature` | `"description"` | Approve a spec and plan, then build test-first. This is the entry to new behavior. |
42
+ | `/ca-sprint` | `["goal"] [--farm]` | Run one approved spec through plan-to-PR execution with SMARTS-scored decisions. `--farm` is an off-by-default Feature Forge preview that requires `FARM_API_KEY`. |
43
+ | `/ca-fix` | `"bug description"` | Prove a confirmed defect with a failing regression test, then make the smallest fix. |
44
+ | `/ca-refactor` | `"surface and motivation"` | Restructure behind behavioral parity proven by unchanged pre-existing tests. |
45
+ | `/ca-chore` | `<docs\|deps\|revert> …` | Route non-behavioral work through type-scaled gates. |
46
+ | `/ca-spike` | `"question" [timebox]` | Explore on a disposable branch and exit to findings or `/ca-feature`; never merge the spike. |
47
+ | `/ca-add-dep` | `"package"` | Vet license, provenance, maintenance, known vulnerabilities, and supply-chain risk before install. |
48
+
49
+ ### Review
50
+
51
+ | Command | Argument | Purpose |
52
+ |---|---|---|
53
+ | `/ca-review` | `[path or scope]` | Run the reviewer fleet over the current diff and block on CRITICAL or HIGH findings. |
54
+
55
+ ### Decide
56
+
57
+ | Command | Argument | Purpose |
58
+ |---|---|---|
59
+ | `/ca-adr` | `"title"` | Author a numbered, dated, user-attributed architecture decision. |
60
+
61
+ ### Ship
62
+
63
+ | Command | Argument | Purpose |
64
+ |---|---|---|
65
+ | `/ca-commit` | _(none)_ | Run the full commit gate and stage only the reviewed paths. |
66
+ | `/ca-pr` | `["title"] \| --watch [PR] \| --cleanup` | Open or finish a pull request; watch hosted CI; or clean a proven merged branch. Never write directly to the default branch. |
67
+ | `/ca-release` | `[--dry-run]` | Prepare a target-aware SemVer bump, changelog, and annotated tag when release authority is explicit. |
68
+
69
+ ### Operate
11
70
 
12
71
  | Command | Argument | Purpose |
13
72
  |---|---|---|
14
- | `/ca-feature` | `"description"` | Spec-driven feature: brainstorm plan test-first build → commit → finish. The only path to implementation. |
15
- | `/ca-sprint` | `["goal"] [--farm]` | Autonomous sprint: one interactive spec gate, then plan-to-PR execution; every auto-decision SMARTS-scored and logged with a confidence flag. Hard gates still stop. `--farm` is a Feature Forge `preview` (off by default, needs `FARM_API_KEY`; not yet validated). |
16
- | `/ca-fix` | `"bug description"` | Fix a defect via `tdd`, regression-test-first. |
17
- | `/ca-refactor` | `"surface and motivation"` | Behavior-preserving restructure behind a parity-coverage gate. |
18
- | `/ca-debug` | `"symptom"` | Investigate-then-decide root-cause analysis; exits to `/ca-fix`, `/ca-adr`, or a no-action close. |
19
- | `/ca-chore` | `<docs\|deps\|revert> …` | Non-behavioral lane: docs edits, dependency bumps, reverts — type-scaled gates, no TDD demanded of prose. |
20
- | `/ca-spike` | `"question" [timebox]` | Throwaway exploration on a `spike/*` branch. Never merges; exits to a findings note or `/ca-feature`. |
73
+ | `/ca-status` | `(none) \| drift` | Show project state, or explicitly inspect provenance drift. The default path is read-only. |
74
+ | `/ca-task` | `add "<desc>" \| start <id\|"title"> \| done <id\|"title">` | Add, start, or complete task-board entries through the only sanctioned writer. |
75
+ | `/ca-doctor` | _(none)_ | Verify the active install, payload, package ownership, enforcement, and a harmless live-fire probe. |
76
+ | `/ca-override` | `"reason"` | Log one attributed bypass when the governing hard rule permits it. |
21
77
 
22
- ## Commit & ship
78
+ <details>
79
+ <summary><strong>Advanced operations</strong></summary>
80
+
81
+ ### Change
23
82
 
24
83
  | Command | Argument | Purpose |
25
84
  |---|---|---|
26
- | `/ca-commit` | _(none)_ | The only path to a commit; routes to `commit-gate` (nine gates). |
27
- | `/ca-pr` | `["title"]` | Finish a branch: open-PR / merge-via-PR / discard. No direct-to-default. |
28
- | `/ca-watch` | `<PR number\|url\|branch>` | Babysit a PR's CI server-side: diagnose on red, notify + offer the merge on green. Never auto-merges. Auto-attaches from `/ca-pr` when `CODEARBITER_BABYSIT` is on. |
29
- | `/ca-review` | `[path or scope]` | Dispatch the reviewer fleet over the diff; BLOCK on CRITICAL/HIGH. |
30
- | `/ca-checkpoint` | `[focus]` | Lean periodic reviewer sweep; surfaces a triaged report. |
31
- | `/ca-tribunal` | `[scope-path] [--tag <label>]` | Deep, rarely-run whole-codebase audit across eleven specialist lenses; one file per finding plus append-only run/triage logs, resumable from disk; files GitHub issues on approval. Never a required gate. |
32
- | `/ca-release` | `[--dry-run]` | Lean SemVer release: bump-from-commits + changelog + annotated tag. |
33
- | `/ca-add-dep` | `"package"` | Vet a dependency (license, provenance, supply chain) before install. |
85
+ | `/ca-debug` | `"symptom"` | Investigate an unknown cause, then exit to `/ca-fix`, `/ca-adr`, or a no-action close. |
34
86
 
35
- ## Decisions
87
+ ### Review
36
88
 
37
89
  | Command | Argument | Purpose |
38
90
  |---|---|---|
39
- | `/ca-adr` | `"title"` | Author a numbered, user-attributed ADR. |
40
- | `/ca-adr-status` | `[--adr N]` | List/inspect ADR status and supersede chains. |
41
- | `/ca-reconcile` | `["scope"]` | Reconcile artifacts vs. scaffold; arbitrate via SMARTS, user-attributed. |
42
- | `/ca-conflict` | `"description"` | Stop all work and surface a rule conflict. |
43
- | `/ca-threat-model` | `"scope"` | Optional lightweight STRIDE pass for a sensitive feature. |
91
+ | `/ca-checkpoint` | `[focus]` | Run a periodic whole-codebase reviewer sweep and return a triaged report. |
92
+ | `/ca-threat-model` | `"scope"` | Run an opt-in lightweight STRIDE pass for a sensitive feature. |
93
+ | `/ca-tribunal` | `[scope-path] [--tag <label>]` | Run a deep, resumable eleven-lens audit. It is expensive and never a routine gate. |
44
94
 
45
- Which one? `/ca-conflict` when two *rules* contradict (persona vs. docs vs. code) and work cannot
46
- safely continue — it halts everything. `/ca-reconcile` when *artifacts* have drifted (ADRs, scaffold,
47
- context docs disagree about the architecture) and you want each variance arbitrated — work continues.
95
+ ### Decide
48
96
 
49
- ## Project & meta
97
+ | Command | Argument | Purpose |
98
+ |---|---|---|
99
+ | `/ca-adr-status` | `[--adr N]` | Inspect ADR health, age, challenges, and supersession chains without writing. |
100
+ | `/ca-reconcile` | `["scope"]` | Reconcile architectural artifacts through explicit, user-attributed SMARTS choices. |
101
+
102
+ ### Operate
50
103
 
51
104
  | Command | Argument | Purpose |
52
105
  |---|---|---|
53
- | `/ca-decompose` | _(none)_ | Greenfield: layered interview to populate `.codearbiter/`. |
54
- | `/ca-create-context` | _(none)_ | Brownfield: back-fill `.codearbiter/` from existing source. |
55
- | `/ca-init` | `[--stage N \| --check]` | Scaffold the root-level `.codearbiter/` state store, or `--check` to report detection state without writing. |
56
- | `/ca-status` | _(none)_ | Show maturity, open tasks, unresolved `CONFIRM-NN`, overrides since checkpoint. |
57
- | `/ca-task` | `add "<desc>" \| start <id\|"title"> \| done <id\|"title">` | The sanctioned task-board writer: add a queued task, start one (flips to in-progress + stamps the date, minting a dotted ID on pick-up), or mark an in-progress task done. The only blessed write to `open-tasks.md`. |
58
- | `/ca-audit` | `[range]` | Assemble the governance packet for a window — commits, overrides, ADRs, sprint decisions, open items — into `.codearbiter/audits/`. Read-only. |
59
- | `/ca-metrics` | `[--window N]` | Read-only governance trend glance: override rate, small-lane rate, sprint low-confidence ratio, each with a direction arrow vs. the prior 20-commit window. Not a second `/ca-audit` packet. |
60
- | `/ca-prune` | `status \| dry \| run <path> \| audit <path> \| on \| off` | Select shared semantic prune policy and use Pi native compaction without rewriting the active session. |
61
- | `/ca-doctor` | _(none)_ | Verify the install is enforcing: interpreter, payload, cache staleness, repo state, wrapper self-test and active-dispatch coverage gap. |
62
- | `/ca-preview` | _(none)_ | Zero-onboarding read-only dry-run of the reviewer fleet on the current diff: predicts reviewers by path, runs the state-free secret scan, writes nothing. |
63
- | `/ca-context-check` | _(none)_ | Optional manual drift audit: report stale provenance-tracked docs, then per stale doc offer re-scout, re-baseline, or defer. Not the daily loop — commit-gate auto-heal owns routine maintenance. |
64
- | `/ca-standup` | _(none)_ | Daily hygiene: review repo state, then ff-only pull / prune merged branches / remove stale worktrees / surface stashes — each under per-action confirmation. |
65
- | `/ca-cleanup` | _(none)_ | Finish an already-merged branch: prove ancestry of the fetched default, classify leftover artifacts as unique/redundant/superseded, `--ff-only` to the default branch, delete the merged local branch. Every discard confirmed per item. |
66
- | `/ca-new-skill` | `"gap"` | Author a new skill after the gap is proven uncovered. |
67
- | `/ca-btw` | `"question"` | Lightweight Q&A; no state change. |
68
- | `/ca-override` | `"reason"` | Sanctioned, logged single-identity gate bypass. |
69
- | `/ca-commands` | _(none)_ | Show this catalog. |
70
-
71
- ## Glossary — the words the gates speak
72
-
73
- - **stage** — the project's maturity, a single number in `.codearbiter/CONTEXT.md`; higher stages
74
- demand stricter coverage and review.
75
- - **skill** a gated routine a command routes to (e.g. `tdd`, `commit-gate`).
76
- - **phase** one step inside a skill; each ends in a gate.
77
- - **gate** — a phase exit condition. **STOP** waits for you; **BLOCK** halts until the condition is met.
78
- - **severity** a review finding's class (CRITICAL/HIGH/MEDIUM/LOW), independent of gate action.
79
- - **`[CONFIRM-NN]`** — a numbered open question only you can answer; dependent work pauses until
80
- it is resolved in `.codearbiter/open-questions.md`.
81
- - **SMARTS** the six-lens scoring rubric used to arbitrate decisions; every arbitration is
82
- attributed to you, never decided silently.
83
- - **ADR** an Architecture Decision Record under `.codearbiter/decisions/`, authored only via `/ca-adr`.
106
+ | `/ca-standup` | _(none)_ | Review repository hygiene, then confirm each safe cleanup action separately. |
107
+ | `/ca-audit` | `[range]` | Assemble a dated governance packet from source records. Read-only. |
108
+ | `/ca-metrics` | `[--window N]` | Report override, small-lane, and low-confidence trends against the prior window. |
109
+ | `/ca-prune` | `status \| dry \| run <path> \| audit <path> \| on \| off` | Select shared prune policy and use Pi native compaction without rewriting the active session. |
110
+
111
+ ### Extend
112
+
113
+ | Command | Argument | Purpose |
114
+ |---|---|---|
115
+ | `/ca-new-skill` | `"gap"` | Prove a capability gap, approve a spec, then author a new skill. |
116
+
117
+ ### Help
118
+
119
+ | Command | Argument | Purpose |
120
+ |---|---|---|
121
+ | `/ca-commands` | _(none)_ | Show this grouped catalog. |
122
+
123
+ </details>
124
+
125
+ <details>
126
+ <summary><strong>Compatibility routes</strong></summary>
127
+
128
+ These entry points remain installed for the declared compatibility window. New work should use the
129
+ canonical form; each legacy route continues to execute its original workflow.
130
+
131
+ | Existing route | Canonical form | Purpose |
132
+ |---|---|---|
133
+ | `/ca-watch` | `/ca-pr --watch [PR]` | Watch hosted CI, diagnose red, and offer the merge on green. |
134
+ | `/ca-cleanup` | `/ca-pr --cleanup` | Finish a proven merged branch under per-item discard consent. |
135
+ | `/ca-decompose` | `/ca-init --greenfield` | Populate a new project through the layered decomposition interview. |
136
+ | `/ca-create-context` | `/ca-init --brownfield` | Scout an existing codebase and backfill repository context. |
137
+ | `/ca-context-check` | `/ca-status drift` | Inspect provenance-tracked document drift and offer explicit follow-up choices. |
138
+
139
+ </details>
140
+
141
+ <details>
142
+ <summary><strong>Internal and deprecated routes</strong></summary>
143
+
144
+ | Status | Command | Argument | Purpose |
145
+ |---|---|---|---|
146
+ | Internal protocol | `/ca-conflict` | `"description"` | Stop work when governing rules contradict and surface both sides for the user. |
147
+ | Deprecated | `/ca-btw` | `"question"` | Ask a lightweight project question without state change. Prefer asking the question directly. |
148
+
149
+ </details>
150
+
151
+ ## Glossary
152
+
153
+ - **stage:** the project's maturity level in `.codearbiter/CONTEXT.md`; higher stages demand stricter coverage and review.
154
+ - **skill:** a gated routine that a command routes to, such as `tdd` or `commit-gate`.
155
+ - **phase:** one step inside a skill. Each phase ends at a gate.
156
+ - **gate:** a phase exit condition. **STOP** waits for the user; **BLOCK** halts until the condition is met.
157
+ - **severity:** a review finding's CRITICAL, HIGH, MEDIUM, or LOW classification, independent of gate action.
158
+ - **`[CONFIRM-NN]`:** a numbered question only the user can resolve; dependent work pauses until `.codearbiter/open-questions.md` records the answer.
159
+ - **SMARTS:** the Scalable, Maintainable, Available, Reliable, Testable, and Securable lenses used for attributed arbitration.
160
+ - **ADR:** an Architecture Decision Record under `.codearbiter/decisions/`, authored only through `/ca-adr`.