@arbiterforge/ca-pi 0.6.3 → 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.
- package/README.md +41 -98
- package/package.json +1 -1
- package/plugins/ca-pi/CHANGELOG.md +145 -0
- package/plugins/ca-pi/COMMANDS.md +138 -68
- package/plugins/ca-pi/SKILLS.md +137 -30
- package/plugins/ca-pi/agents/INDEX.md +3 -2
- package/plugins/ca-pi/agents/checkpoint-aggregator.md +8 -7
- package/plugins/ca-pi/agents/design-quality-reviewer.md +1 -1
- package/plugins/ca-pi/agents/finding-triage.md +31 -14
- package/plugins/ca-pi/agents/verdict-aggregator.md +64 -0
- package/plugins/ca-pi/{ORCHESTRATOR.md → arbiter.md} +37 -36
- package/plugins/ca-pi/extensions/codearbiter.js +844 -19
- package/plugins/ca-pi/generated/command-catalog.json +386 -196
- package/plugins/ca-pi/generated/roles.json +9 -0
- package/plugins/ca-pi/hooks/_arbiterstatelib.py +59 -11
- package/plugins/ca-pi/hooks/_bashguardlib.py +30 -12
- package/plugins/ca-pi/hooks/_gitexec.py +23 -0
- package/plugins/ca-pi/hooks/_githooks.py +50 -23
- package/plugins/ca-pi/hooks/_hooklib.py +148 -20
- package/plugins/ca-pi/hooks/_host.py +9 -1
- package/plugins/ca-pi/hooks/_metricslib.py +20 -0
- package/plugins/ca-pi/hooks/_modelib.py +762 -0
- package/plugins/ca-pi/hooks/_protectedlib.py +13 -4
- package/plugins/ca-pi/hooks/_prunelib.py +51 -12
- package/plugins/ca-pi/hooks/_prunepolicy.py +33 -7
- package/plugins/ca-pi/hooks/_readinjectlib.py +10 -4
- package/plugins/ca-pi/hooks/_releaselib.py +278 -48
- package/plugins/ca-pi/hooks/_updatelib.py +230 -50
- package/plugins/ca-pi/hooks/doctor.py +58 -9
- package/plugins/ca-pi/hooks/git-enforce.py +10 -3
- package/plugins/ca-pi/hooks/hostapi.py +220 -22
- package/plugins/ca-pi/hooks/pi-bridge.py +10 -4
- package/plugins/ca-pi/hooks/prompt-submit.py +486 -0
- package/plugins/ca-pi/hooks/prune-transcript.py +23 -3
- package/plugins/ca-pi/hooks/session-start.py +529 -435
- package/plugins/ca-pi/hooks/statusline.py +28 -10
- package/plugins/ca-pi/hooks/wire-statusline.py +13 -8
- package/plugins/ca-pi/includes/anti-slop-design/INDEX.md +1 -1
- package/plugins/ca-pi/includes/command-compatibility.md +16 -0
- package/plugins/ca-pi/includes/dangerous-mode.md +57 -0
- package/plugins/ca-pi/includes/ops-mode.md +96 -0
- package/plugins/ca-pi/includes/pi-host-notes.md +10 -1
- package/plugins/ca-pi/includes/redirect.md +12 -1
- package/plugins/ca-pi/includes/routing-table.md +14 -5
- package/plugins/ca-pi/includes/safety-core.md +86 -0
- package/plugins/ca-pi/includes/smarts/core.md +1 -1
- package/plugins/ca-pi/routines/INDEX.md +1 -1
- package/plugins/ca-pi/routines/decision-lifecycle/SKILL.md +55 -3
- package/plugins/ca-pi/routines/decision-lifecycle/references/adr-template.md +9 -1
- package/plugins/ca-pi/routines/decompose/SKILL.md +1 -1
- package/plugins/ca-pi/routines/dispatching-parallel-agents/SKILL.md +4 -4
- package/plugins/ca-pi/routines/release/SKILL.md +1 -1
- package/plugins/ca-pi/skills/ca-checkpoint/SKILL.md +5 -4
- package/plugins/ca-pi/skills/ca-cleanup/SKILL.md +6 -0
- package/plugins/ca-pi/skills/ca-context-check/SKILL.md +6 -0
- package/plugins/ca-pi/skills/ca-create-context/SKILL.md +6 -0
- package/plugins/ca-pi/skills/ca-decompose/SKILL.md +6 -0
- package/plugins/ca-pi/skills/ca-doctor/SKILL.md +4 -0
- package/plugins/ca-pi/skills/ca-init/SKILL.md +18 -1
- package/plugins/ca-pi/skills/ca-pr/SKILL.md +17 -1
- package/plugins/ca-pi/skills/ca-review/SKILL.md +3 -4
- package/plugins/ca-pi/skills/ca-spike/SKILL.md +15 -8
- package/plugins/ca-pi/skills/ca-status/SKILL.md +13 -1
- package/plugins/ca-pi/skills/ca-watch/SKILL.md +6 -0
- package/plugins/ca-pi/includes/dev-mode.md +0 -30
- package/plugins/ca-pi/skills/ca-arbiter/SKILL.md +0 -36
- package/plugins/ca-pi/skills/ca-dev/SKILL.md +0 -42
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.
|
|
14
|
-
<img alt="
|
|
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-
|
|
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.
|
|
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:
|
|
@@ -188,6 +184,17 @@ Follow the complete
|
|
|
188
184
|
[first-repository walkthrough](https://arbiterforge.github.io/codeArbiter/getting-started/quickstart/)
|
|
189
185
|
for expected output, proof, and recovery.
|
|
190
186
|
|
|
187
|
+
## Practice before using your own repository
|
|
188
|
+
|
|
189
|
+
[Arbiter Academy](https://arbiterforge.github.io/arbiter-academy/) is an optional practice course for
|
|
190
|
+
codeArbiter. It starts in a personal fork of the Academy repository, so you can make real commits,
|
|
191
|
+
inspect governed evidence, and recover from a failed attempt without placing your own project at risk.
|
|
192
|
+
|
|
193
|
+
The Academy website is the lesson surface. Each published lesson identifies whether an action belongs
|
|
194
|
+
in the browser, native terminal, active harness, or with the agent, then provides a copyable command,
|
|
195
|
+
the result to expect, the evidence to inspect, and a safe recovery path. Start there when you want to
|
|
196
|
+
learn the workflow before protecting a production repository.
|
|
197
|
+
|
|
191
198
|
## The docs are the operating manual
|
|
192
199
|
|
|
193
200
|
The site is designed as a continuous path from first contact to source-backed operation:
|
|
@@ -255,7 +262,7 @@ explains who creates, reads, and updates every artifact, plus its recovery rules
|
|
|
255
262
|
- No raw secret stored in the repository, logs, images, or prompts.
|
|
256
263
|
- No direct write to the default branch and no force-push.
|
|
257
264
|
- No ADR outside `/ca:adr`, with explicit user attribution.
|
|
258
|
-
- Every `/ca:override`,
|
|
265
|
+
- Every `/ca:override`, `mode --dangerous`/`mode --ops` entry/exit, and sprint auto-decision is durable and attributable.
|
|
259
266
|
- H-18 activation protection has no in-session override path; disabling a repository requires an
|
|
260
267
|
external editor and an explicit audit record.
|
|
261
268
|
|
|
@@ -276,93 +283,29 @@ gate bypasses, merges, and unresolved questions remain true stops. See
|
|
|
276
283
|
|
|
277
284
|
## Core lanes
|
|
278
285
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
| New behavior | `/ca:feature "desc"` | approved spec and plan, test-first implementation, review, commit, PR |
|
|
282
|
-
| Autonomous delivery | `/ca:sprint "goal"` | one interactive design gate, persisted work, logged SMARTS decisions |
|
|
283
|
-
| Confirmed defect | `/ca:fix "bug"` | failing regression test before the minimal fix |
|
|
284
|
-
| Unknown cause | `/ca:debug "symptom"` | investigation and root-cause decision before any fix lane |
|
|
285
|
-
| Structural change | `/ca:refactor "surface"` | behavioral parity through unchanged pre-existing tests |
|
|
286
|
-
| Dependency | `/ca:add-dep "pkg"` | license, provenance, maintenance, CVE, and supply-chain review |
|
|
287
|
-
| Architecture decision | `/ca:adr "title"` | numbered, dated, user-attributed decision record |
|
|
288
|
-
| Commit | `/ca:commit` | the full commit gate and selective staging |
|
|
289
|
-
| Pull request | `/ca:pr` | cleared BLOCK findings and a draft PR, never a direct default-branch write |
|
|
290
|
-
|
|
291
|
-
Claude Code's catalog is [`plugins/ca/COMMANDS.md`](./plugins/ca/COMMANDS.md). Codex uses the
|
|
292
|
-
generated [`plugins/ca-codex/COMMANDS.md`](./plugins/ca-codex/COMMANDS.md), and Pi uses the generated
|
|
293
|
-
[`plugins/ca-pi/COMMANDS.md`](./plugins/ca-pi/COMMANDS.md). Current generated counts are `ca: 40`,
|
|
294
|
-
`ca-codex: 38`, and `ca-pi: 39`. Codex omits `statusline` and `prune`; Pi omits `statusline` and uses
|
|
295
|
-
native compaction for pruning.
|
|
286
|
+
Choose the workflow first. The canonical lanes keep daily work compact; advanced operations and
|
|
287
|
+
compatibility routes remain available in the complete reference.
|
|
296
288
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
|
303
|
-
|
|
304
|
-
| `/ca:
|
|
305
|
-
| `/ca:
|
|
306
|
-
| `/ca:
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
| `/ca:pr` | Clear review findings and open or finish a pull request |
|
|
318
|
-
| `/ca:watch <PR>` | Watch hosted CI, diagnose red, offer merge on green |
|
|
319
|
-
| `/ca:review [path]` | Reviewer-fleet pass over the current diff |
|
|
320
|
-
| `/ca:checkpoint` | Lean periodic whole-codebase reviewer sweep |
|
|
321
|
-
| `/ca:tribunal [scope-path]` | Deep, resumable eleven-lens audit; never a routine gate |
|
|
322
|
-
| `/ca:release [--dry-run]` | Target-aware SemVer, changelog, and annotated tag |
|
|
323
|
-
| `/ca:add-dep "pkg"` | Vet license, provenance, maintenance, CVEs, and supply chain |
|
|
324
|
-
|
|
325
|
-
### Decisions
|
|
326
|
-
|
|
327
|
-
| Command | Purpose |
|
|
328
|
-
|---|---|
|
|
329
|
-
| `/ca:adr "title"` | Author a numbered, user-attributed ADR |
|
|
330
|
-
| `/ca:adr-status [--adr N]` | Inspect ADR health and supersession chains |
|
|
331
|
-
| `/ca:reconcile ["scope"]` | Reconcile architectural artifacts through SMARTS |
|
|
332
|
-
| `/ca:conflict "description"` | Stop work and surface an unresolvable rule conflict |
|
|
333
|
-
| `/ca:threat-model "scope"` | Optional lightweight STRIDE pass |
|
|
334
|
-
|
|
335
|
-
### Project and meta
|
|
336
|
-
|
|
337
|
-
| Command | Purpose |
|
|
338
|
-
|---|---|
|
|
339
|
-
| `/ca:decompose` | Greenfield interview that populates `.codearbiter/` |
|
|
340
|
-
| `/ca:create-context` | Brownfield source scout and context backfill |
|
|
341
|
-
| `/ca:init` | Scaffold the shared project-state store |
|
|
342
|
-
| `/ca:status` | Show stage, branch, tasks, questions, and recent overrides |
|
|
343
|
-
| `/ca:task` | The only sanctioned writer for `open-tasks.md` |
|
|
344
|
-
| `/ca:statusline` | Install or remove the Claude Code statusline |
|
|
345
|
-
| `/ca:doctor` | Prove interpreter, payload, hooks, cache, and live-fire behavior |
|
|
346
|
-
| `/ca:preview` | Read-only prediction of reviewers plus a state-free secret scan |
|
|
347
|
-
| `/ca:context-check` | Manual provenance-drift audit |
|
|
348
|
-
| `/ca:standup` | Read repo hygiene, then confirm safe cleanup actions one by one |
|
|
349
|
-
| `/ca:cleanup` | Finish an already-merged branch with ancestry proof |
|
|
350
|
-
| `/ca:new-skill "gap"` | Author a new skill only after proving the gap |
|
|
351
|
-
| `/ca:btw "question"` | Lightweight project Q&A with no state change |
|
|
352
|
-
| `/ca:override "reason"` | Logged, attributed bypass for one immediate action when the gate permits it; never H-18 |
|
|
353
|
-
| `/ca:audit [range]` | Assemble a dated governance packet |
|
|
354
|
-
| `/ca:metrics [--window N]` | Read-only override, small-lane, and confidence trends |
|
|
355
|
-
| `/ca:prune [status\|dry\|run\|audit\|on\|off]` | Inspect or trim transcript bulk |
|
|
356
|
-
| `/ca:commands` | Show the public catalog |
|
|
357
|
-
|
|
358
|
-
### Maintainer
|
|
359
|
-
|
|
360
|
-
| Command | Purpose |
|
|
361
|
-
|---|---|
|
|
362
|
-
| `/ca:dev ["note"]` | Enter the env-gated, logged maintainer override |
|
|
363
|
-
| `/ca:arbiter` | Exit dev mode and restore orchestration |
|
|
364
|
-
|
|
365
|
-
</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.
|
|
366
309
|
|
|
367
310
|
## Trust and host boundaries
|
|
368
311
|
|
package/package.json
CHANGED
|
@@ -4,6 +4,151 @@ 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
|
+
|
|
84
|
+
## [0.8.1] - 2026-08-13
|
|
85
|
+
|
|
86
|
+
### Changed
|
|
87
|
+
|
|
88
|
+
- `/ca-spike` now preserves only the committed findings file on the parent before deleting its disposable spike branch. Exploratory spike code and commits never land in implementation history.
|
|
89
|
+
|
|
90
|
+
## [0.8.0] - 2026-08-12
|
|
91
|
+
|
|
92
|
+
### Added
|
|
93
|
+
|
|
94
|
+
- Orchestration **mode plane** (ADR-0030): `arbiter`, `dangerous`, and `ops`. The injected persona is
|
|
95
|
+
now `safety-core.md` plus the active mode's body, composed rather than a single fixed file.
|
|
96
|
+
**On Pi this release is read-only:** the footer reports the active mode and the shared store is
|
|
97
|
+
keyed the same way as on the other hosts, but Pi cannot yet CHANGE the mode — the control token is
|
|
98
|
+
intercepted on Claude and Codex only. A Pi session runs `arbiter`. The input-event handler, the
|
|
99
|
+
bridge flip path, and the per-turn persona refresh are tracked and not in this release.
|
|
100
|
+
- `ops` mode: an advisory carve-out permitting in-channel work that starts, observes, or exercises a
|
|
101
|
+
running system, keyed on the durable artifact produced. Anything mutating tracked files, the index,
|
|
102
|
+
git history, or published state stays routed and refused.
|
|
103
|
+
|
|
104
|
+
### Changed
|
|
105
|
+
|
|
106
|
+
- `ORCHESTRATOR.md` is renamed `arbiter.md` and reframed as the arbiter mode's body rather than an
|
|
107
|
+
always-on kernel. Its header records the former name so historical citations stay resolvable.
|
|
108
|
+
- Persona injection moved off `SessionStart` to the per-turn prompt seam; a once-per-session event
|
|
109
|
+
cannot express a mid-session posture change. The startup block is now per-mode composable emitters.
|
|
110
|
+
- `dev` mode becomes `dangerous`: a general gates-off posture for any repository, with no
|
|
111
|
+
maintainer-only env gate. No enforcement hook reads the mode, so every gate fires in all modes.
|
|
112
|
+
|
|
113
|
+
### Removed
|
|
114
|
+
|
|
115
|
+
- The `dev` and `arbiter` mode-entry commands. The mode bodies are the surface. The shared source
|
|
116
|
+
catalog under `core/surface/commands/` drops from 40 to 38; Pi's own visible catalog goes 38 → 37,
|
|
117
|
+
because each host excludes entries it cannot serve and a source count is never a host count.
|
|
118
|
+
|
|
119
|
+
### Fixed
|
|
120
|
+
|
|
121
|
+
- A compaction could silently clear a live mode, because the mode plane borrowed the legacy marker's
|
|
122
|
+
owner record to decide whether it had seen a session before. It now keeps its own anchor.
|
|
123
|
+
- Mode and marker state resolved through two different roots in three places; in a linked worktree a
|
|
124
|
+
transition pair could split across two audit logs, or a stale session go undetected.
|
|
125
|
+
## [0.7.1] - 2026-08-12
|
|
126
|
+
|
|
127
|
+
### Fixed
|
|
128
|
+
|
|
129
|
+
- Shared bash guard refresh. `_bashguardlib` is re-vendored here from `core/pysrc/`, so `ca-pi`
|
|
130
|
+
carries the same guard as its siblings. The behavior it corrects is Codex execution-workdir
|
|
131
|
+
handling: an explicit workdir is honored, so H-01's branch check reads the repository the command
|
|
132
|
+
actually runs in rather than the process's own directory. Nothing changes for a Pi session — this
|
|
133
|
+
host never sets that workdir — but the payload did, so the version advances with it.
|
|
134
|
+
|
|
135
|
+
## [0.7.0] - 2026-08-10
|
|
136
|
+
|
|
137
|
+
### Added
|
|
138
|
+
|
|
139
|
+
- `/ca-sidebar on|off|toggle|width N`: an optional right-hand sidebar column at
|
|
140
|
+
pi-sidebar-tui panel parity (session, subagents, workspace, todos), defaulting
|
|
141
|
+
on in interactive parents at 120 columns or wider, width clamped 24..60. The
|
|
142
|
+
compositor uses Pi render hooks that are undocumented in every promoted
|
|
143
|
+
version, so each install is probe-gated at runtime, every paint re-validates
|
|
144
|
+
terminal geometry inside a synchronized-output envelope, and any failure
|
|
145
|
+
disposes back to native rendering with a single bounded warning — the sidebar
|
|
146
|
+
can degrade to unavailable, never wedge the terminal. Workspace and todos
|
|
147
|
+
panels are trusted-only; the MCP panel renders only when Pi exposes servers,
|
|
148
|
+
which no promoted version does. `/ca-doctor` gains a sidebar health row, and
|
|
149
|
+
the activity registry now retains up to 16 concurrent active entries so the
|
|
150
|
+
sidebar's subagents panel can show the detail the footer cannot fit.
|
|
151
|
+
|
|
7
152
|
## [0.6.3] - 2026-08-10
|
|
8
153
|
|
|
9
154
|
### Changed
|
|
@@ -1,90 +1,160 @@
|
|
|
1
|
-
# codeArbiter
|
|
1
|
+
# codeArbiter commands
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
skill
|
|
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
|
-
|
|
8
|
-
|
|
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
|
-
##
|
|
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
|
|
11
56
|
|
|
12
57
|
| Command | Argument | Purpose |
|
|
13
58
|
|---|---|---|
|
|
14
|
-
| `/ca-
|
|
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`. |
|
|
59
|
+
| `/ca-adr` | `"title"` | Author a numbered, dated, user-attributed architecture decision. |
|
|
21
60
|
|
|
22
|
-
|
|
61
|
+
### Ship
|
|
23
62
|
|
|
24
63
|
| Command | Argument | Purpose |
|
|
25
64
|
|---|---|---|
|
|
26
|
-
| `/ca-commit` | _(none)_ |
|
|
27
|
-
| `/ca-pr` | `["title"]` |
|
|
28
|
-
| `/ca-
|
|
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. |
|
|
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. |
|
|
34
68
|
|
|
35
|
-
|
|
69
|
+
### Operate
|
|
36
70
|
|
|
37
71
|
| Command | Argument | Purpose |
|
|
38
72
|
|---|---|---|
|
|
39
|
-
| `/ca-
|
|
40
|
-
| `/ca-
|
|
41
|
-
| `/ca-
|
|
42
|
-
| `/ca-
|
|
43
|
-
|
|
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. |
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary><strong>Advanced operations</strong></summary>
|
|
80
|
+
|
|
81
|
+
### Change
|
|
44
82
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
83
|
+
| Command | Argument | Purpose |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| `/ca-debug` | `"symptom"` | Investigate an unknown cause, then exit to `/ca-fix`, `/ca-adr`, or a no-action close. |
|
|
48
86
|
|
|
49
|
-
|
|
87
|
+
### Review
|
|
50
88
|
|
|
51
89
|
| Command | Argument | Purpose |
|
|
52
90
|
|---|---|---|
|
|
53
|
-
| `/ca-
|
|
54
|
-
| `/ca-
|
|
55
|
-
| `/ca-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
## Maintainer
|
|
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. |
|
|
94
|
+
|
|
95
|
+
### Decide
|
|
72
96
|
|
|
73
97
|
| Command | Argument | Purpose |
|
|
74
98
|
|---|---|---|
|
|
75
|
-
| `/ca-
|
|
76
|
-
| `/ca-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
|
103
|
+
|
|
104
|
+
| Command | Argument | Purpose |
|
|
105
|
+
|---|---|---|
|
|
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`.
|