@arbiterforge/ca-pi 0.15.2 → 0.15.3

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 (59) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/plugins/ca-pi/CHANGELOG.md +62 -0
  4. package/plugins/ca-pi/COMMANDS.md +3 -9
  5. package/plugins/ca-pi/SKILLS.md +16 -22
  6. package/plugins/ca-pi/agents/coverage-auditor.md +16 -2
  7. package/plugins/ca-pi/generated/command-catalog.json +13 -22
  8. package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-amd64 +0 -0
  9. package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-arm64 +0 -0
  10. package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-amd64 +0 -0
  11. package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-arm64 +0 -0
  12. package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-amd64.exe +0 -0
  13. package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-arm64.exe +0 -0
  14. package/plugins/ca-pi/helpers/artifacts/release.json +6 -6
  15. package/plugins/ca-pi/hooks/_artifactauthoritylib.py +383 -32
  16. package/plugins/ca-pi/hooks/_artifactlib.py +3 -1
  17. package/plugins/ca-pi/hooks/_host.py +1 -1
  18. package/plugins/ca-pi/hooks/artifact-authority-hook.py +4 -21
  19. package/plugins/ca-pi/hooks/artifact-authority.py +11 -0
  20. package/plugins/ca-pi/hooks/hostapi.py +1 -1
  21. package/plugins/ca-pi/includes/command-compatibility.md +31 -0
  22. package/plugins/ca-pi/includes/farm.md +187 -36
  23. package/plugins/ca-pi/includes/maturity-coverage.md +57 -17
  24. package/plugins/ca-pi/includes/routing-table.md +10 -11
  25. package/plugins/ca-pi/includes/safety-core.md +2 -2
  26. package/plugins/ca-pi/package.json +1 -1
  27. package/plugins/ca-pi/routines/INDEX.md +12 -11
  28. package/plugins/ca-pi/routines/context-check/SKILL.md +17 -1
  29. package/plugins/ca-pi/routines/context-creation/SKILL.md +8 -1
  30. package/plugins/ca-pi/routines/debug/SKILL.md +18 -2
  31. package/plugins/ca-pi/routines/decision-lifecycle/SKILL.md +72 -118
  32. package/plugins/ca-pi/routines/decision-lifecycle/references/authoring.md +152 -0
  33. package/plugins/ca-pi/routines/decision-variance/SKILL.md +107 -133
  34. package/plugins/ca-pi/routines/decision-variance/references/analysis.md +136 -0
  35. package/plugins/ca-pi/routines/decompose/SKILL.md +8 -1
  36. package/plugins/ca-pi/routines/finishing-a-development-branch/SKILL.md +85 -7
  37. package/plugins/ca-pi/routines/post-merge-cleanup/SKILL.md +19 -2
  38. package/plugins/ca-pi/routines/refactor/SKILL.md +27 -8
  39. package/plugins/ca-pi/routines/release/SKILL.md +2 -1
  40. package/plugins/ca-pi/routines/security-architecture/SKILL.md +14 -3
  41. package/plugins/ca-pi/routines/tdd/SKILL.md +9 -5
  42. package/plugins/ca-pi/routines/tribunal/SKILL.md +28 -14
  43. package/plugins/ca-pi/skills/ca-adr/SKILL.md +103 -18
  44. package/plugins/ca-pi/skills/ca-adr-status/SKILL.md +6 -24
  45. package/plugins/ca-pi/skills/ca-cleanup/SKILL.md +241 -52
  46. package/plugins/ca-pi/skills/ca-context-check/SKILL.md +87 -24
  47. package/plugins/ca-pi/skills/ca-create-context/SKILL.md +159 -19
  48. package/plugins/ca-pi/skills/ca-debug/SKILL.md +100 -27
  49. package/plugins/ca-pi/skills/ca-decompose/SKILL.md +156 -17
  50. package/plugins/ca-pi/skills/ca-pr/SKILL.md +161 -26
  51. package/plugins/ca-pi/skills/ca-reconcile/SKILL.md +108 -30
  52. package/plugins/ca-pi/skills/ca-refactor/SKILL.md +96 -30
  53. package/plugins/ca-pi/skills/ca-release/SKILL.md +614 -39
  54. package/plugins/ca-pi/skills/ca-status/SKILL.md +1 -1
  55. package/plugins/ca-pi/skills/ca-threat-model/SKILL.md +56 -27
  56. package/plugins/ca-pi/skills/ca-tribunal/SKILL.md +105 -26
  57. package/plugins/ca-pi/routines/skill-author/SKILL.md +0 -129
  58. package/plugins/ca-pi/routines/skill-author/references/skill-template.md +0 -58
  59. package/plugins/ca-pi/skills/ca-new-skill/SKILL.md +0 -129
package/README.md CHANGED
@@ -10,9 +10,9 @@ 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.22.2" src="https://img.shields.io/badge/version-2.22.2-2b7489">
13
+ <img alt="version 2.22.3" src="https://img.shields.io/badge/version-2.22.3-2b7489">
14
14
  <img alt="core lanes" src="https://img.shields.io/badge/core_lanes-18-555">
15
- <img alt="skills" src="https://img.shields.io/badge/skills-23-555">
15
+ <img alt="skills" src="https://img.shields.io/badge/skills-22-555">
16
16
  <img alt="agents" src="https://img.shields.io/badge/agents-20-555">
17
17
  <img alt="license AGPL v3" src="https://img.shields.io/badge/license-AGPL_v3-3da639">
18
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arbiterforge/ca-pi",
3
- "version": "0.15.2",
3
+ "version": "0.15.3",
4
4
  "license": "AGPL-3.0-only",
5
5
  "repository": {
6
6
  "type": "git",
@@ -4,6 +4,68 @@ All notable changes to `ca-pi` are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.15.3] - 2026-09-26
8
+
9
+ ### Removed
10
+
11
+ - Retire the `new-skill` command, `skill-author` workflow and bundled template,
12
+ including generated host entries. This maintainer-approved compatibility break
13
+ has no replacement alias; resource edits use the existing change workflows.
14
+
15
+ ### Fixed
16
+
17
+ - Complete context-creation, decomposition and release entry ownership while
18
+ preserving initialization aliases, operational procedures and dry-run limits.
19
+ - Redact complete multiline secret spans before formatting mutation diagnostics
20
+ or truncating gate output for worker feedback.
21
+
22
+ - Consolidate `reconcile` under `decision-variance` with shorter discovery metadata
23
+ and a private analysis card. Report-only and scoped requests avoid an unnecessary
24
+ decision interview; prior choices and sprint method authority are retained.
25
+ - Preserve append-only history when reaffirming a stale architectural decision,
26
+ and require ADR marker cleanup on controlled failure as well as success.
27
+ - Resolve ADR authoring markers through the same host project-root function as
28
+ the ADR guards, retain that path for cleanup, and distinguish first-record
29
+ directory creation from unreadable storage.
30
+
31
+ - Consolidate ADR authoring and read-only status under one concise owner; load
32
+ authoring and acceptance details only on demand, preserving explicit entries
33
+ and full-stem identity without creating records during a status request.
34
+
35
+ - Consolidate tribunal, threat modeling, manual drift, post-merge cleanup and PR
36
+ entry procedures under concise skill owners. Retain explicit entries and mode
37
+ authority; select PR watch/cleanup before creation preflight and avoid wrapper
38
+ reloads or repeated branch-fate questions for an explicit open-PR request.
39
+
40
+ - Generate debug and refactor entries from their owning skills, retaining all
41
+ investigation and parity gates while removing duplicate routing policies.
42
+ - Bound shared farm prompt enrichment and retain neutral retry evidence; existing
43
+ preview authority and HTML farm restrictions remain unchanged.
44
+ - Recover farm merge conflicts against a verified integration commit, retaining
45
+ prior output and rechecking the current protected-test baseline.
46
+ - Cover connection and response-body failure lifecycles; clarify that unavailable
47
+ mutation measurements warn independently of the measured-score threshold.
48
+ - Document bounded farm transport retries and task-local cooldown handling in
49
+ the shared private card without enabling a new backend or HTML farm support.
50
+ - Preserve known rejected-response usage in the shared farm backend and document
51
+ its limits; existing preview authority and HTML farm restrictions remain.
52
+ - Keep built-in mutation nonzero exits as unclassified rejection evidence, not
53
+ measured kills; preserve adverse bounds, diagnostics and autonomous review.
54
+ - Match whole, same-kind farm literals rather than substrings or conventional comments;
55
+ retain existing rejection thresholds and name the actual small-file risk evidence.
56
+
57
+ - Document bounded built-in mutation screening and incomplete-evidence handling
58
+ in the shared private farm procedure, without enabling HTML farm.
59
+ - Credit external farm mutation scores only from successful normalized stdout;
60
+ preserve adverse failed-hook evidence and stop on unverified process cleanup.
61
+ - Isolate farm regression Git and subprocess environments from the invoking shell.
62
+ - Retain farm alternatives through task-worktree qualification before retrying;
63
+ shared backend boundaries remain unchanged.
64
+ - Synchronize shared runtime identity with the current candidate cohort and
65
+ document dependency-ready scheduling and detached canary evaluation in the
66
+ shared farm resource. Existing preview dispatch authority and HTML farm
67
+ restrictions remain unchanged.
68
+
7
69
  ## [0.15.2] - 2026-09-26
8
70
 
9
71
  ### Fixed
@@ -13,12 +13,12 @@ loads only when that route is invoked. Never bulk-read the directory.
13
13
  | Visibility | Count |
14
14
  |---|---:|
15
15
  | Core | 18 |
16
- | Advanced | 12 |
17
- | Canonical total | 30 |
16
+ | Advanced | 11 |
17
+ | Canonical total | 29 |
18
18
  | Compatibility aliases | 5 |
19
19
  | Internal | 1 |
20
20
  | Deprecated | 1 |
21
- | **Total** | **37** |
21
+ | **Total** | **36** |
22
22
 
23
23
  ## Core lanes
24
24
 
@@ -108,12 +108,6 @@ loads only when that route is invoked. Never bulk-read the directory.
108
108
  | `/ca-metrics` | `[--window N]` | Report override, small-lane, and low-confidence trends against the prior window. |
109
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
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
111
  ### Help
118
112
 
119
113
  | Command | Argument | Purpose |
@@ -9,12 +9,12 @@ skill is invoked — never bulk-read this directory.
9
9
  | Visibility | Count |
10
10
  |---|---:|
11
11
  | Core | 18 |
12
- | Advanced | 12 |
13
- | Canonical total | 30 |
12
+ | Advanced | 11 |
13
+ | Canonical total | 29 |
14
14
  | Compatibility aliases | 5 |
15
15
  | Internal | 1 |
16
16
  | Deprecated | 1 |
17
- | **Total** | **37** |
17
+ | **Total** | **36** |
18
18
 
19
19
  ## Core
20
20
 
@@ -38,7 +38,7 @@ skill is invoked — never bulk-read this directory.
38
38
  | `/ca-chore` | Sanctioned lane for non-behavioral work — docs-only edits, dependency bumps, reverts. Type-scaled gates; no TDD demanded of prose. |
39
39
  | `/ca-feature` | Start a feature: brainstorm a spec, get it approved, then drive it test-first through the pipeline. The one entry to implementation. |
40
40
  | `/ca-fix` | Fix a confirmed bug: a failing regression test first, then a minimal fix, then the rest of the tdd gates. |
41
- | `/ca-refactor` | Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change. |
41
+ | `/ca-refactor` | Restructure code without changing observable behavior: rename, extract, inline, move, deduplicate, or replace an internal implementation with an equivalent one. Prove parity through unchanged pre-existing tests. Not for new behavior, bug fixes, explanation-only questions, or committing finished work. |
42
42
  | `/ca-spike` | Exploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or /ca-feature. |
43
43
  | `/ca-sprint` | Autonomous sprint — one interactive spec gate, then plan-to-PR execution with every auto-decision SMARTS-scored and logged. Hard gates remain true stops. |
44
44
 
@@ -52,15 +52,15 @@ skill is invoked — never bulk-read this directory.
52
52
 
53
53
  | Skill | Purpose |
54
54
  |---|---|
55
- | `/ca-adr` | Author a numbered, dated, user-attributed Architecture Decision Record under .codearbiter/decisions/. |
55
+ | `/ca-adr` | Record user-decided ADRs or inspect their health read-only. Preserve attribution and acceptance evidence. |
56
56
 
57
57
  ### Ship
58
58
 
59
59
  | Skill | Purpose |
60
60
  |---|---|
61
61
  | `/ca-commit` | Create a verified local Git commit when committing changes is requested. Not for explaining commit history, drafting a message only, or postponing a commit. Applies every commit gate and never implies a push or PR. |
62
- | `/ca-pr` | Open a pull request the only sanctioned way — clear every BLOCK-level review finding, then stage the PR. Never a direct write to the default branch. |
63
- | `/ca-release` | Cut a release the only sanctioned way — derive the target's declared version policy from the commit log, roll its changelog, compose an annotated tag, and optionally publish its exact declared assets. Takes the declared target's name as its only argument, or --dry-run to preview one with no write. The only path to a version tag. |
62
+ | `/ca-pr` | Open a PR or finish branch disposition; route CI watching and post-merge cleanup to their owners. Merge and discard need explicit authority. |
63
+ | `/ca-release` | Prepare a declared release target, or preview it with --dry-run. Derive its version and require authorization before publication. |
64
64
 
65
65
  ### Operate
66
66
 
@@ -77,22 +77,22 @@ skill is invoked — never bulk-read this directory.
77
77
 
78
78
  | Skill | Purpose |
79
79
  |---|---|
80
- | `/ca-debug` | Investigate-then-decide root-cause analysis for a defect whose cause is unknown. No code changes — exits to /ca-fix, /ca-adr, or a no-action close. |
80
+ | `/ca-debug` | Investigate an unexplained defect or unexpected behavior without changing application code. Use for root-cause diagnosis and an evidence-backed handoff. A no-action close records a board note. Not for implementing a known fix, new features, or explanation-only questions. |
81
81
 
82
82
  ### Review
83
83
 
84
84
  | Skill | Purpose |
85
85
  |---|---|
86
86
  | `/ca-checkpoint` | Periodic multi-reviewer sweep of the whole codebase — surfaces a triaged checkpoint report. |
87
- | `/ca-threat-model` | Opt-in lightweight STRIDE pass for a sensitive feature before implementation. Not a routine gate — invoke it when a change warrants security thought. |
88
- | `/ca-tribunal` | Deep, rarely-convened whole-codebase audit — eleven specialist lenses, a resumable on-disk audit log, findings filed as GitHub issues on approval. Expensive; estimates cost and STOPs before running. Never a required gate. |
87
+ | `/ca-threat-model` | Threat-model a sensitive design with STRIDE on request. Read-only analysis of threats, controls, and implementation constraints. |
88
+ | `/ca-tribunal` | Run an opt-in deep codebase audit with persisted findings. Confirm cost before dispatch; filing and telemetry need separate approval. |
89
89
 
90
90
  ### Decide
91
91
 
92
92
  | Skill | Purpose |
93
93
  |---|---|
94
- | `/ca-adr-status` | Report the health of Architecture Decision Records — aged, unchallenged, supersession candidates, unresolved CONFIRM-NN. Read-only. |
95
- | `/ca-reconcile` | SMARTS arbitration — reconcile architectural artifacts against the scaffold and prior decisions; every variance resolved by an explicit, user-attributed choice. |
94
+ | `/ca-adr-status` | Inspect ADR health read-only; optionally select one ADR with --adr N. |
95
+ | `/ca-reconcile` | Inspect architectural variances with SMARTS; record only explicit user choices. Report-only requests make no changes. |
96
96
 
97
97
  ### Operate
98
98
 
@@ -103,12 +103,6 @@ skill is invoked — never bulk-read this directory.
103
103
  | `/ca-prune` | Trim transcript clutter to extend session lifetime — analyze, prune a copy, or toggle the after-each-turn service. Dry-run by default; gains land at resume/compaction, not the current turn. |
104
104
  | `/ca-standup` | Daily repo hygiene — review the day's repo state, then perform the cleanups under per-action confirmation. Fast-forward only, never destructive without a yes. |
105
105
 
106
- ### Extend
107
-
108
- | Skill | Purpose |
109
- |---|---|
110
- | `/ca-new-skill` | Assess a request for a new reusable codeArbiter skill, prove the uncovered gap, agree scope, author and integrate it. Questions and one-off tasks do not authorize adding a skill. |
111
-
112
106
  ### Help
113
107
 
114
108
  | Skill | Purpose |
@@ -121,21 +115,21 @@ skill is invoked — never bulk-read this directory.
121
115
 
122
116
  | Skill | Purpose | Replacement |
123
117
  |---|---|---|
124
- | `/ca-create-context` | Brownfield back-fill — scout an existing codebase and populate .codearbiter/, then lock it initialized. | `/ca-init --brownfield` |
125
- | `/ca-decompose` | Greenfield decomposition interview — a layered interview that populates .codearbiter/ and locks it initialized. | `/ca-init --greenfield` |
118
+ | `/ca-create-context` | Build project context from an existing codebase through isolated scouts, resolve gaps, and preserve initialization gates. | `/ca-init --brownfield` |
119
+ | `/ca-decompose` | Develop greenfield project context through a layered interview, preserve decisions, and initialize only after the required gates. | `/ca-init --greenfield` |
126
120
 
127
121
  ### Ship
128
122
 
129
123
  | Skill | Purpose | Replacement |
130
124
  |---|---|---|
131
- | `/ca-cleanup` | Finish an already-merged branch — classify the leftover artifacts, return to a fast-forwarded default checkout, and delete the merged local branch. Every discard confirmed per item; containment proven, never assumed. | `/ca-pr --cleanup` |
125
+ | `/ca-cleanup` | Clean up an already-merged local branch after proving containment. Confirm each discard and preserve unique work. | `/ca-pr --cleanup` |
132
126
  | `/ca-watch` | Watch a PR's CI to completion — diagnose on red, notify and offer the merge on green. Never auto-merges. | `/ca-pr --watch` |
133
127
 
134
128
  ### Operate
135
129
 
136
130
  | Skill | Purpose | Replacement |
137
131
  |---|---|---|
138
- | `/ca-context-check` | 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. | `/ca-status drift` |
132
+ | `/ca-context-check` | Audit stale provenance-tracked docs on request. Report first; re-scout or re-baseline only for selected docs. | `/ca-status drift` |
139
133
 
140
134
  ## Internal
141
135
 
@@ -27,7 +27,14 @@ one place for that reason.
27
27
 
28
28
  ### 1. Coverage threshold
29
29
 
30
- Run the coverage command from `tech-stack.md` (or use the last run output). Compare against the threshold for the `stage:` maturity value in `CONTEXT.md`, applying **every metric `maturity-coverage.md` names as binding** — a report clearing one and failing another is below threshold. Flag that as **HIGH** (blocks PR at the commit gate).
30
+ Resolve the surface's **declared coverage profile** from `tech-stack.md` against
31
+ `maturity-coverage.md`. Run its coverage command or use a current report bound to
32
+ the tested source, tools, scope and hosts. Compare every metric required by that
33
+ profile against the threshold for `stage:` in `CONTEXT.md`. Flag a failing required
34
+ metric, an undeclared profile change, or invalid/missing overall evidence as
35
+ **HIGH** (blocks the overall coverage gate). Apply `verification-boundary.md` to
36
+ distinguish a scoped local PARTIAL result from the complete hosted merge verdict.
37
+ Report unmeasured metrics explicitly; never infer them from another metric.
31
38
 
32
39
  Where the surface has no coverage tooling, say so and flag nothing on this check; do not invent a command or infer a number. Report it as the no-tooling exemption from `maturity-coverage.md`, quoting the `tech-stack.md` Coverage section that omits a command for this surface — an audit that cannot show what it read is the same unverifiable claim the exemption exists to prevent.
33
40
 
@@ -49,6 +56,10 @@ For every feature or bug fix in scope:
49
56
 
50
57
  Flag logical gaps as **MEDIUM**. Flag complete absence of negative-path tests as **HIGH**.
51
58
 
59
+ Apply the shared critical-path requirements in `maturity-coverage.md`, including
60
+ actual outcome assertions and focused mutation checks for changed safeguards.
61
+ Flag missing critical-path evidence as **HIGH** even when percentages pass.
62
+
52
63
  ### 4. Test quality
53
64
 
54
65
  - "Does not throw" with no behavior assertion → **LOW**.
@@ -67,5 +78,8 @@ computes (an audit that hides its number is an unverifiable claim):
67
78
 
68
79
  ```
69
80
  ### Coverage
70
- Current: <N>% | Threshold: <N>% | Status: PASS | BELOW THRESHOLD
81
+ Profile: <declared profile> | Scope: <source tree> | Hosts: <measured / required>
82
+ Required metrics: <metric: N%, ...> | Threshold: <N>%
83
+ Unmeasured: <metrics, or none> | Critical-path evidence: <covered / missing>
84
+ Status: PASS | BELOW THRESHOLD | PARTIAL | INVALID EVIDENCE
71
85
  ```
@@ -54,7 +54,7 @@
54
54
  },
55
55
  "adr": {
56
56
  "name": "adr",
57
- "description": "Author a numbered, dated, user-attributed Architecture Decision Record under .codearbiter/decisions/.",
57
+ "description": "Record user-decided ADRs or inspect their health read-only. Preserve attribution and acceptance evidence.",
58
58
  "skillPath": "skills/ca-adr/SKILL.md",
59
59
  "visibility": "core",
60
60
  "workflow": "decide",
@@ -63,7 +63,7 @@
63
63
  },
64
64
  "adr-status": {
65
65
  "name": "adr-status",
66
- "description": "Report the health of Architecture Decision Records — aged, unchallenged, supersession candidates, unresolved CONFIRM-NN. Read-only.",
66
+ "description": "Inspect ADR health read-only; optionally select one ADR with --adr N.",
67
67
  "skillPath": "skills/ca-adr-status/SKILL.md",
68
68
  "visibility": "advanced",
69
69
  "workflow": "decide",
@@ -107,7 +107,7 @@
107
107
  },
108
108
  "cleanup": {
109
109
  "name": "cleanup",
110
- "description": "Finish an already-merged branch — classify the leftover artifacts, return to a fast-forwarded default checkout, and delete the merged local branch. Every discard confirmed per item; containment proven, never assumed.",
110
+ "description": "Clean up an already-merged local branch after proving containment. Confirm each discard and preserve unique work.",
111
111
  "skillPath": "skills/ca-cleanup/SKILL.md",
112
112
  "visibility": "alias",
113
113
  "workflow": "ship",
@@ -143,7 +143,7 @@
143
143
  },
144
144
  "context-check": {
145
145
  "name": "context-check",
146
- "description": "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.",
146
+ "description": "Audit stale provenance-tracked docs on request. Report first; re-scout or re-baseline only for selected docs.",
147
147
  "skillPath": "skills/ca-context-check/SKILL.md",
148
148
  "visibility": "alias",
149
149
  "workflow": "operate",
@@ -152,7 +152,7 @@
152
152
  },
153
153
  "create-context": {
154
154
  "name": "create-context",
155
- "description": "Brownfield back-fill — scout an existing codebase and populate .codearbiter/, then lock it initialized.",
155
+ "description": "Build project context from an existing codebase through isolated scouts, resolve gaps, and preserve initialization gates.",
156
156
  "skillPath": "skills/ca-create-context/SKILL.md",
157
157
  "visibility": "alias",
158
158
  "workflow": "initialize",
@@ -161,7 +161,7 @@
161
161
  },
162
162
  "debug": {
163
163
  "name": "debug",
164
- "description": "Investigate-then-decide root-cause analysis for a defect whose cause is unknown. No code changes — exits to /ca-fix, /ca-adr, or a no-action close.",
164
+ "description": "Investigate an unexplained defect or unexpected behavior without changing application code. Use for root-cause diagnosis and an evidence-backed handoff. A no-action close records a board note. Not for implementing a known fix, new features, or explanation-only questions.",
165
165
  "skillPath": "skills/ca-debug/SKILL.md",
166
166
  "visibility": "advanced",
167
167
  "workflow": "change",
@@ -170,7 +170,7 @@
170
170
  },
171
171
  "decompose": {
172
172
  "name": "decompose",
173
- "description": "Greenfield decomposition interview — a layered interview that populates .codearbiter/ and locks it initialized.",
173
+ "description": "Develop greenfield project context through a layered interview, preserve decisions, and initialize only after the required gates.",
174
174
  "skillPath": "skills/ca-decompose/SKILL.md",
175
175
  "visibility": "alias",
176
176
  "workflow": "initialize",
@@ -225,15 +225,6 @@
225
225
  "canonical": "metrics",
226
226
  "legacyRoutes": []
227
227
  },
228
- "new-skill": {
229
- "name": "new-skill",
230
- "description": "Assess a request for a new reusable codeArbiter skill, prove the uncovered gap, agree scope, author and integrate it. Questions and one-off tasks do not authorize adding a skill.",
231
- "skillPath": "skills/ca-new-skill/SKILL.md",
232
- "visibility": "advanced",
233
- "workflow": "extend",
234
- "canonical": "new-skill",
235
- "legacyRoutes": []
236
- },
237
228
  "override": {
238
229
  "name": "override",
239
230
  "description": "Sanctioned, logged bypass of a gate or hard rule — one audit line, then proceed.",
@@ -245,7 +236,7 @@
245
236
  },
246
237
  "pr": {
247
238
  "name": "pr",
248
- "description": "Open a pull request the only sanctioned way — clear every BLOCK-level review finding, then stage the PR. Never a direct write to the default branch.",
239
+ "description": "Open a PR or finish branch disposition; route CI watching and post-merge cleanup to their owners. Merge and discard need explicit authority.",
249
240
  "skillPath": "skills/ca-pr/SKILL.md",
250
241
  "visibility": "core",
251
242
  "workflow": "ship",
@@ -275,7 +266,7 @@
275
266
  },
276
267
  "reconcile": {
277
268
  "name": "reconcile",
278
- "description": "SMARTS arbitration — reconcile architectural artifacts against the scaffold and prior decisions; every variance resolved by an explicit, user-attributed choice.",
269
+ "description": "Inspect architectural variances with SMARTS; record only explicit user choices. Report-only requests make no changes.",
279
270
  "skillPath": "skills/ca-reconcile/SKILL.md",
280
271
  "visibility": "advanced",
281
272
  "workflow": "decide",
@@ -284,7 +275,7 @@
284
275
  },
285
276
  "refactor": {
286
277
  "name": "refactor",
287
- "description": "Restructure code with behavioral parity proven through unmodified pre-existing tests, then refactor. No behavior change.",
278
+ "description": "Restructure code without changing observable behavior: rename, extract, inline, move, deduplicate, or replace an internal implementation with an equivalent one. Prove parity through unchanged pre-existing tests. Not for new behavior, bug fixes, explanation-only questions, or committing finished work.",
288
279
  "skillPath": "skills/ca-refactor/SKILL.md",
289
280
  "visibility": "core",
290
281
  "workflow": "change",
@@ -293,7 +284,7 @@
293
284
  },
294
285
  "release": {
295
286
  "name": "release",
296
- "description": "Cut a release the only sanctioned way — derive the target's declared version policy from the commit log, roll its changelog, compose an annotated tag, and optionally publish its exact declared assets. Takes the declared target's name as its only argument, or --dry-run to preview one with no write. The only path to a version tag.",
287
+ "description": "Prepare a declared release target, or preview it with --dry-run. Derive its version and require authorization before publication.",
297
288
  "skillPath": "skills/ca-release/SKILL.md",
298
289
  "visibility": "core",
299
290
  "workflow": "ship",
@@ -358,7 +349,7 @@
358
349
  },
359
350
  "threat-model": {
360
351
  "name": "threat-model",
361
- "description": "Opt-in lightweight STRIDE pass for a sensitive feature before implementation. Not a routine gate — invoke it when a change warrants security thought.",
352
+ "description": "Threat-model a sensitive design with STRIDE on request. Read-only analysis of threats, controls, and implementation constraints.",
362
353
  "skillPath": "skills/ca-threat-model/SKILL.md",
363
354
  "visibility": "advanced",
364
355
  "workflow": "review",
@@ -367,7 +358,7 @@
367
358
  },
368
359
  "tribunal": {
369
360
  "name": "tribunal",
370
- "description": "Deep, rarely-convened whole-codebase audit — eleven specialist lenses, a resumable on-disk audit log, findings filed as GitHub issues on approval. Expensive; estimates cost and STOPs before running. Never a required gate.",
361
+ "description": "Run an opt-in deep codebase audit with persisted findings. Confirm cost before dispatch; filing and telemetry need separate approval.",
371
362
  "skillPath": "skills/ca-tribunal/SKILL.md",
372
363
  "visibility": "advanced",
373
364
  "workflow": "review",
@@ -6,32 +6,32 @@
6
6
  "binaries": {
7
7
  "darwin/amd64": {
8
8
  "file": "ca-artifact-darwin-amd64",
9
- "sha256": "3c8d8deb48d85ba1c9a6cfaf1286543cc8193fc8db307fe35446f29e53d3ca7a",
9
+ "sha256": "645fbde59c9db28a51d52dd7c975750f97613516c4003b7f4a3057359893687d",
10
10
  "native_tested": true
11
11
  },
12
12
  "darwin/arm64": {
13
13
  "file": "ca-artifact-darwin-arm64",
14
- "sha256": "af3a36a6926532c6e0b4da10397aae17a472e300f50d5c0dc7886aa722046d28",
14
+ "sha256": "390a6e9b65c2220bf52a6459eab4ec79283d4d560715a305280027f20e7a9d47",
15
15
  "native_tested": true
16
16
  },
17
17
  "linux/amd64": {
18
18
  "file": "ca-artifact-linux-amd64",
19
- "sha256": "83300e32dd6514b4716707091d900611f42454097b177443c9c47f464cad5065",
19
+ "sha256": "65d39e119b446987ad8e8bdd592a1819165a95fe2c00ed887a1349a4fe692f86",
20
20
  "native_tested": true
21
21
  },
22
22
  "linux/arm64": {
23
23
  "file": "ca-artifact-linux-arm64",
24
- "sha256": "47f1e529140642c7574f29664bb9adacc2755458a1cd9a30c6fdc0f9df447f24",
24
+ "sha256": "c5ae37567f9929b58beba88a3cd11e9e2de66bbb11a8f0fafbbae3bbcb0ba53f",
25
25
  "native_tested": true
26
26
  },
27
27
  "windows/amd64": {
28
28
  "file": "ca-artifact-windows-amd64.exe",
29
- "sha256": "fa1a11489cc4521c945a59d2dce9f270ba9fcf6fcdc220011579326d5e97569a",
29
+ "sha256": "b381d900520c5024ec20c86333a29f007fb6f8a2737214c77916912836c3e762",
30
30
  "native_tested": true
31
31
  },
32
32
  "windows/arm64": {
33
33
  "file": "ca-artifact-windows-arm64.exe",
34
- "sha256": "88e0e9c2cf7d5861ff1365d8aa4d9376f6fa1ff8cdf0eb708be78be88af45468",
34
+ "sha256": "ccf2ca3a3ed103d247baee0275a8ce2c62af050a6af46d39c4186d8fd8ff2872",
35
35
  "native_tested": true
36
36
  }
37
37
  }