@arbiterforge/ca-pi 0.6.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/LICENSE +661 -0
- package/README.md +558 -0
- package/package.json +35 -0
- package/plugins/ca-pi/CHANGELOG.md +1030 -0
- package/plugins/ca-pi/COMMANDS.md +90 -0
- package/plugins/ca-pi/ORCHESTRATOR.md +159 -0
- package/plugins/ca-pi/SKILLS.md +47 -0
- package/plugins/ca-pi/SPRINT.md +142 -0
- package/plugins/ca-pi/agents/INDEX.md +31 -0
- package/plugins/ca-pi/agents/architecture-drift-reviewer.md +86 -0
- package/plugins/ca-pi/agents/auth-crypto-reviewer.md +60 -0
- package/plugins/ca-pi/agents/backend-author.md +60 -0
- package/plugins/ca-pi/agents/checkpoint-aggregator.md +111 -0
- package/plugins/ca-pi/agents/coverage-auditor.md +71 -0
- package/plugins/ca-pi/agents/decision-challenger.md +116 -0
- package/plugins/ca-pi/agents/dependency-reviewer.md +79 -0
- package/plugins/ca-pi/agents/design-quality-reviewer.md +80 -0
- package/plugins/ca-pi/agents/finding-triage.md +86 -0
- package/plugins/ca-pi/agents/frontend-author.md +64 -0
- package/plugins/ca-pi/agents/grader.md +173 -0
- package/plugins/ca-pi/agents/infra-author.md +64 -0
- package/plugins/ca-pi/agents/map-deps.md +35 -0
- package/plugins/ca-pi/agents/map-structure.md +37 -0
- package/plugins/ca-pi/agents/migration-reviewer.md +65 -0
- package/plugins/ca-pi/agents/scout.md +127 -0
- package/plugins/ca-pi/agents/security-reviewer.md +72 -0
- package/plugins/ca-pi/agents/tribunal-lens-reviewer.md +65 -0
- package/plugins/ca-pi/extensions/codearbiter-child.js +1885 -0
- package/plugins/ca-pi/extensions/codearbiter.js +9802 -0
- package/plugins/ca-pi/generated/command-catalog.json +197 -0
- package/plugins/ca-pi/generated/roles.json +213 -0
- package/plugins/ca-pi/helpers/windows-supervisor.js +205 -0
- package/plugins/ca-pi/hooks/_activationlib.py +196 -0
- package/plugins/ca-pi/hooks/_arbiterstatelib.py +208 -0
- package/plugins/ca-pi/hooks/_babysitlib.py +76 -0
- package/plugins/ca-pi/hooks/_bashguardlib.py +1667 -0
- package/plugins/ca-pi/hooks/_boxlib.py +131 -0
- package/plugins/ca-pi/hooks/_colorlib.py +304 -0
- package/plugins/ca-pi/hooks/_durabilitylib.py +186 -0
- package/plugins/ca-pi/hooks/_entrylib.py +41 -0
- package/plugins/ca-pi/hooks/_fmtlib.py +161 -0
- package/plugins/ca-pi/hooks/_gitexec.py +45 -0
- package/plugins/ca-pi/hooks/_githooks.py +920 -0
- package/plugins/ca-pi/hooks/_gitlib.py +110 -0
- package/plugins/ca-pi/hooks/_hooklib.py +595 -0
- package/plugins/ca-pi/hooks/_host.py +115 -0
- package/plugins/ca-pi/hooks/_intentlib.py +242 -0
- package/plugins/ca-pi/hooks/_ledgerlib.py +1035 -0
- package/plugins/ca-pi/hooks/_metricslib.py +709 -0
- package/plugins/ca-pi/hooks/_pathnorm.py +74 -0
- package/plugins/ca-pi/hooks/_planfilelib.py +664 -0
- package/plugins/ca-pi/hooks/_previewlib.py +193 -0
- package/plugins/ca-pi/hooks/_protectedlib.py +312 -0
- package/plugins/ca-pi/hooks/_protectedstatelib.py +411 -0
- package/plugins/ca-pi/hooks/_provenancelib.py +971 -0
- package/plugins/ca-pi/hooks/_prunelib.py +1398 -0
- package/plugins/ca-pi/hooks/_prunepolicy.py +235 -0
- package/plugins/ca-pi/hooks/_readinjectlib.py +1080 -0
- package/plugins/ca-pi/hooks/_releaselib.py +2657 -0
- package/plugins/ca-pi/hooks/_scopelib.py +262 -0
- package/plugins/ca-pi/hooks/_segmentslib.py +278 -0
- package/plugins/ca-pi/hooks/_sensitivelib.py +270 -0
- package/plugins/ca-pi/hooks/_sessionlib.py +78 -0
- package/plugins/ca-pi/hooks/_sloplib.py +244 -0
- package/plugins/ca-pi/hooks/_standuplib.py +214 -0
- package/plugins/ca-pi/hooks/_subagentslib.py +219 -0
- package/plugins/ca-pi/hooks/_taskboardlib.py +1088 -0
- package/plugins/ca-pi/hooks/_updatelib.py +278 -0
- package/plugins/ca-pi/hooks/babysit.py +47 -0
- package/plugins/ca-pi/hooks/boardsync.py +129 -0
- package/plugins/ca-pi/hooks/doctor.py +420 -0
- package/plugins/ca-pi/hooks/git-enforce.py +325 -0
- package/plugins/ca-pi/hooks/hostapi.py +460 -0
- package/plugins/ca-pi/hooks/init-codearbiter.py +225 -0
- package/plugins/ca-pi/hooks/metrics.py +62 -0
- package/plugins/ca-pi/hooks/migration-pass.py +129 -0
- package/plugins/ca-pi/hooks/pi-bridge.py +543 -0
- package/plugins/ca-pi/hooks/post-write-edit.py +231 -0
- package/plugins/ca-pi/hooks/pre-bash.py +90 -0
- package/plugins/ca-pi/hooks/pre-edit.py +284 -0
- package/plugins/ca-pi/hooks/pre-read.py +81 -0
- package/plugins/ca-pi/hooks/pre-write.py +217 -0
- package/plugins/ca-pi/hooks/preview.py +69 -0
- package/plugins/ca-pi/hooks/prune-transcript.py +232 -0
- package/plugins/ca-pi/hooks/releasehash.py +216 -0
- package/plugins/ca-pi/hooks/security-pass.py +139 -0
- package/plugins/ca-pi/hooks/session-start.py +1218 -0
- package/plugins/ca-pi/hooks/statusline.py +736 -0
- package/plugins/ca-pi/hooks/taskwrite.py +351 -0
- package/plugins/ca-pi/hooks/update-refresh.py +51 -0
- package/plugins/ca-pi/hooks/wire-statusline.py +435 -0
- package/plugins/ca-pi/includes/anti-slop-design/INDEX.md +55 -0
- package/plugins/ca-pi/includes/anti-slop-design/color.md +43 -0
- package/plugins/ca-pi/includes/anti-slop-design/core.md +244 -0
- package/plugins/ca-pi/includes/anti-slop-design/images.md +32 -0
- package/plugins/ca-pi/includes/anti-slop-design/layout.md +45 -0
- package/plugins/ca-pi/includes/anti-slop-design/medium-cli.md +39 -0
- package/plugins/ca-pi/includes/anti-slop-design/medium-dataviz.md +43 -0
- package/plugins/ca-pi/includes/anti-slop-design/medium-diagram.md +35 -0
- package/plugins/ca-pi/includes/anti-slop-design/medium-documents.md +70 -0
- package/plugins/ca-pi/includes/anti-slop-design/medium-slides.md +30 -0
- package/plugins/ca-pi/includes/anti-slop-design/medium-web.md +39 -0
- package/plugins/ca-pi/includes/anti-slop-design/typography.md +51 -0
- package/plugins/ca-pi/includes/author-tdd-workflow.md +14 -0
- package/plugins/ca-pi/includes/compaction-charter.md +16 -0
- package/plugins/ca-pi/includes/cut-docs.md +16 -0
- package/plugins/ca-pi/includes/dev-mode.md +30 -0
- package/plugins/ca-pi/includes/farm.md +237 -0
- package/plugins/ca-pi/includes/fresh-verification.md +14 -0
- package/plugins/ca-pi/includes/harvest.md +69 -0
- package/plugins/ca-pi/includes/maturity-coverage.md +102 -0
- package/plugins/ca-pi/includes/pi-host-notes.md +69 -0
- package/plugins/ca-pi/includes/redirect.md +69 -0
- package/plugins/ca-pi/includes/reference-map.md +22 -0
- package/plugins/ca-pi/includes/review-matrix.md +14 -0
- package/plugins/ca-pi/includes/reviewer-contract.md +53 -0
- package/plugins/ca-pi/includes/routing-table.md +47 -0
- package/plugins/ca-pi/includes/security-gate-record.md +22 -0
- package/plugins/ca-pi/includes/smarts/core.md +90 -0
- package/plugins/ca-pi/includes/smarts/decision-log-format.md +56 -0
- package/plugins/ca-pi/routines/INDEX.md +32 -0
- package/plugins/ca-pi/routines/brainstorming/SKILL.md +122 -0
- package/plugins/ca-pi/routines/commit-gate/SKILL.md +151 -0
- package/plugins/ca-pi/routines/context-check/SKILL.md +85 -0
- package/plugins/ca-pi/routines/context-creation/SKILL.md +171 -0
- package/plugins/ca-pi/routines/crypto-compliance/SKILL.md +41 -0
- package/plugins/ca-pi/routines/debug/SKILL.md +99 -0
- package/plugins/ca-pi/routines/decision-lifecycle/SKILL.md +104 -0
- package/plugins/ca-pi/routines/decision-lifecycle/references/adr-template.md +74 -0
- package/plugins/ca-pi/routines/decision-variance/SKILL.md +147 -0
- package/plugins/ca-pi/routines/decompose/SKILL.md +168 -0
- package/plugins/ca-pi/routines/dispatching-parallel-agents/SKILL.md +76 -0
- package/plugins/ca-pi/routines/executing-plans/SKILL.md +83 -0
- package/plugins/ca-pi/routines/finishing-a-development-branch/SKILL.md +91 -0
- package/plugins/ca-pi/routines/post-merge-cleanup/SKILL.md +233 -0
- package/plugins/ca-pi/routines/refactor/SKILL.md +91 -0
- package/plugins/ca-pi/routines/release/SKILL.md +315 -0
- package/plugins/ca-pi/routines/secret-handling/SKILL.md +67 -0
- package/plugins/ca-pi/routines/security-architecture/SKILL.md +63 -0
- package/plugins/ca-pi/routines/skill-author/SKILL.md +108 -0
- package/plugins/ca-pi/routines/skill-author/references/skill-template.md +58 -0
- package/plugins/ca-pi/routines/subagent-driven-development/SKILL.md +149 -0
- package/plugins/ca-pi/routines/subagent-driven-development/references/farm-dispatch.md +145 -0
- package/plugins/ca-pi/routines/tdd/SKILL.md +139 -0
- package/plugins/ca-pi/routines/tribunal/SKILL.md +109 -0
- package/plugins/ca-pi/routines/tribunal/references/ai-markers.md +29 -0
- package/plugins/ca-pi/routines/tribunal/references/cost-and-models.md +64 -0
- package/plugins/ca-pi/routines/tribunal/references/finding-record.md +27 -0
- package/plugins/ca-pi/routines/tribunal/references/issue-filing.md +47 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/appsec.md +22 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/architecture.md +23 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/coverage.md +20 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/infra.md +24 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/migration.md +22 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/observability.md +21 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/performance.md +22 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/reliability.md +23 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/secrets-supply.md +22 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/test-fidelity.md +24 -0
- package/plugins/ca-pi/routines/tribunal/references/lenses/typesafety.md +21 -0
- package/plugins/ca-pi/routines/tribunal/references/report.md +19 -0
- package/plugins/ca-pi/routines/tribunal/references/schemas.md +58 -0
- package/plugins/ca-pi/routines/tribunal/references/telemetry.md +28 -0
- package/plugins/ca-pi/routines/tribunal/references/triage.md +53 -0
- package/plugins/ca-pi/routines/using-git-worktrees/SKILL.md +85 -0
- package/plugins/ca-pi/routines/writing-plans/SKILL.md +129 -0
- package/plugins/ca-pi/routines/writing-plans/references/farm-plan.md +50 -0
- package/plugins/ca-pi/skills/ca-add-dep/SKILL.md +88 -0
- package/plugins/ca-pi/skills/ca-adr/SKILL.md +30 -0
- package/plugins/ca-pi/skills/ca-adr-status/SKILL.md +30 -0
- package/plugins/ca-pi/skills/ca-arbiter/SKILL.md +36 -0
- package/plugins/ca-pi/skills/ca-audit/SKILL.md +51 -0
- package/plugins/ca-pi/skills/ca-btw/SKILL.md +23 -0
- package/plugins/ca-pi/skills/ca-checkpoint/SKILL.md +50 -0
- package/plugins/ca-pi/skills/ca-chore/SKILL.md +58 -0
- package/plugins/ca-pi/skills/ca-cleanup/SKILL.md +55 -0
- package/plugins/ca-pi/skills/ca-commands/SKILL.md +21 -0
- package/plugins/ca-pi/skills/ca-commit/SKILL.md +27 -0
- package/plugins/ca-pi/skills/ca-conflict/SKILL.md +61 -0
- package/plugins/ca-pi/skills/ca-context-check/SKILL.md +32 -0
- package/plugins/ca-pi/skills/ca-create-context/SKILL.md +32 -0
- package/plugins/ca-pi/skills/ca-debug/SKILL.md +42 -0
- package/plugins/ca-pi/skills/ca-decompose/SKILL.md +30 -0
- package/plugins/ca-pi/skills/ca-dev/SKILL.md +42 -0
- package/plugins/ca-pi/skills/ca-doctor/SKILL.md +44 -0
- package/plugins/ca-pi/skills/ca-feature/SKILL.md +105 -0
- package/plugins/ca-pi/skills/ca-fix/SKILL.md +42 -0
- package/plugins/ca-pi/skills/ca-init/SKILL.md +56 -0
- package/plugins/ca-pi/skills/ca-metrics/SKILL.md +80 -0
- package/plugins/ca-pi/skills/ca-new-skill/SKILL.md +34 -0
- package/plugins/ca-pi/skills/ca-override/SKILL.md +72 -0
- package/plugins/ca-pi/skills/ca-pr/SKILL.md +61 -0
- package/plugins/ca-pi/skills/ca-preview/SKILL.md +86 -0
- package/plugins/ca-pi/skills/ca-prune/SKILL.md +100 -0
- package/plugins/ca-pi/skills/ca-reconcile/SKILL.md +43 -0
- package/plugins/ca-pi/skills/ca-refactor/SKILL.md +43 -0
- package/plugins/ca-pi/skills/ca-release/SKILL.md +57 -0
- package/plugins/ca-pi/skills/ca-review/SKILL.md +63 -0
- package/plugins/ca-pi/skills/ca-spike/SKILL.md +41 -0
- package/plugins/ca-pi/skills/ca-sprint/SKILL.md +44 -0
- package/plugins/ca-pi/skills/ca-standup/SKILL.md +112 -0
- package/plugins/ca-pi/skills/ca-status/SKILL.md +56 -0
- package/plugins/ca-pi/skills/ca-task/SKILL.md +61 -0
- package/plugins/ca-pi/skills/ca-threat-model/SKILL.md +45 -0
- package/plugins/ca-pi/skills/ca-tribunal/SKILL.md +44 -0
- package/plugins/ca-pi/skills/ca-watch/SKILL.md +78 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-audit
|
|
3
|
+
description: Assemble the governance record for a range — commits, overrides, ADRs, sprint auto-decisions, open questions, checkpoint findings — into one dated audit packet. Read-only.
|
|
4
|
+
argument-hint: "[<from-ref> <to-ref> | --since-checkpoint | --since <date>]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-audit — promotion packet
|
|
8
|
+
|
|
9
|
+
Everything codeArbiter logs, it logs append-only and scattered: `overrides.log`, `triage.log`,
|
|
10
|
+
`decisions/`, `sprint-log.md`, `checkpoints/`. This command assembles them into the one document a
|
|
11
|
+
team lead, compliance reviewer, or auditor actually asks for: *what happened in this window, who
|
|
12
|
+
authorized it, and what is still open.* Read-only over every source; its only write is the packet.
|
|
13
|
+
|
|
14
|
+
## Window
|
|
15
|
+
|
|
16
|
+
- `<from-ref> <to-ref>` — two tags/SHAs (e.g. `v1.2.0 v1.3.0`).
|
|
17
|
+
- `--since-checkpoint` — from the `last-checkpoint` record to HEAD.
|
|
18
|
+
- `--since <date>` — ISO date to HEAD.
|
|
19
|
+
- No argument → from the most recent tag to HEAD (no tags → last checkpoint; neither → BLOCK and
|
|
20
|
+
ask for an explicit window).
|
|
21
|
+
|
|
22
|
+
## Flow
|
|
23
|
+
|
|
24
|
+
1. Resolve the window to a commit range and a time range; both appear in the packet header.
|
|
25
|
+
2. Gather, citing each source file:
|
|
26
|
+
- **Commits** — `git log` over the range, grouped by Conventional-Commit type; merge commits
|
|
27
|
+
listed with their PR reference.
|
|
28
|
+
- **Overrides** — every `overrides.log` line in the time range, verbatim (including
|
|
29
|
+
`SECURITY-OVERRIDE` and `DEV:` entries), each with its `BY:` identity.
|
|
30
|
+
- **Triage** — every small-lane classification in `triage.log` in range.
|
|
31
|
+
- **Decisions** — ADRs created or superseded in range (from `decisions/` file dates and the
|
|
32
|
+
supersede chains), each with its Decided-by attribution.
|
|
33
|
+
- **Sprint auto-decisions** — entries from `sprint-log.md` in range; list every `low`-confidence
|
|
34
|
+
entry verbatim, count the `high` ones.
|
|
35
|
+
- **Open questions** — all currently-unresolved `[CONFIRM-NN]` items.
|
|
36
|
+
- **Checkpoint findings** — from the most recent `checkpoints/*.md`: findings still open.
|
|
37
|
+
3. Write the packet to `<project-root>/.codearbiter/audits/<YYYY-MM-DD>.md` (second run the
|
|
38
|
+
same day appends `-2`, `-3`, … — an existing packet is never overwritten). Surface the path and
|
|
39
|
+
a three-line summary: commits, overrides, open items.
|
|
40
|
+
|
|
41
|
+
## Hard gate
|
|
42
|
+
|
|
43
|
+
Read-only over every source — MUST NOT modify any log, decision, or checkpoint while assembling.
|
|
44
|
+
MUST NOT overwrite an existing packet. MUST quote override and low-confidence sprint entries
|
|
45
|
+
verbatim — never paraphrase an audit line. An empty section is stated as empty, never omitted —
|
|
46
|
+
"no overrides in window" is itself the finding.
|
|
47
|
+
|
|
48
|
+
## When NOT to use
|
|
49
|
+
|
|
50
|
+
- Live project state right now → `/ca-status`.
|
|
51
|
+
- Triggering reviews → `/ca-checkpoint` (this command only reports what reviews already found).
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-btw
|
|
3
|
+
description: Lightweight Q&A about the project — answer from context and return, no routing, no state change.
|
|
4
|
+
argument-hint: "<question>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-btw — quick Q&A
|
|
8
|
+
|
|
9
|
+
The one exception to the slash-command pipeline. Answer the question and return. No skill is routed
|
|
10
|
+
to, no agent dispatched, no file written. Always safe to invoke.
|
|
11
|
+
|
|
12
|
+
## Flow
|
|
13
|
+
|
|
14
|
+
1. Read `<project-root>/.codearbiter/` docs as needed to answer accurately — `CONTEXT.md`,
|
|
15
|
+
`tech-stack.md`, `coding-standards.md`, `security-controls.md`, `decisions/`, `specs/`, `plans/`.
|
|
16
|
+
2. Answer directly and conversationally — not a formatted report.
|
|
17
|
+
3. If the answer is not in context, say so plainly. Never guess.
|
|
18
|
+
|
|
19
|
+
## Hard gate
|
|
20
|
+
|
|
21
|
+
Read-only. MUST NOT write or modify any file, route to a skill, dispatch an agent, run tests, or
|
|
22
|
+
resolve a `[CONFIRM-NN]`. If the question is really a request to build or fix something, say so and
|
|
23
|
+
point to `/ca-feature` or `/ca-fix` — do not start implementation from `/ca-btw`.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-checkpoint
|
|
3
|
+
description: Periodic multi-reviewer sweep of the whole codebase — surfaces a triaged checkpoint report.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-checkpoint — codebase sweep
|
|
8
|
+
|
|
9
|
+
Periodic sweep of the entire codebase with the reviewer fleet, funneled to a single dated report. Surfaces findings — not a promotion gate, enforces no sign-off.
|
|
10
|
+
|
|
11
|
+
## Flow
|
|
12
|
+
|
|
13
|
+
1. Build the unit list — the same fleet as `/ca-review`, scoped to the whole codebase against the
|
|
14
|
+
`<project-root>/.codearbiter/` docs:
|
|
15
|
+
|
|
16
|
+
| Reviewer | Reads |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `security-reviewer` | `security-controls.md`; reviews security posture |
|
|
19
|
+
| `auth-crypto-reviewer` | `security-controls.md`; authn/crypto/key/secret paths |
|
|
20
|
+
| `dependency-reviewer` | dependency manifests; license + supply-chain posture |
|
|
21
|
+
| `migration-reviewer` | migration history; safety + classification |
|
|
22
|
+
| `coverage-auditor` | test coverage vs. obligations across the tree |
|
|
23
|
+
| `architecture-drift-reviewer` | `decisions/`; drift between code and accepted ADRs |
|
|
24
|
+
|
|
25
|
+
2. Route to `dispatching-parallel-agents` (`<plugin-root>/routines/dispatching-parallel-agents/SKILL.md`) with that unit list (read-only batch). It dedupes, then
|
|
26
|
+
funnels through `finding-triage` → `checkpoint-aggregator`.
|
|
27
|
+
3. `checkpoint-aggregator` writes the dated report to
|
|
28
|
+
`<project-root>/.codearbiter/checkpoints/YYYY-MM-DD.md`: findings by severity with
|
|
29
|
+
file:line, and out-of-scope items marked inline `[NEEDS-TRIAGE]`.
|
|
30
|
+
4. Write the current override **count** to `<project-root>/.codearbiter/last-checkpoint` — the
|
|
31
|
+
integer baseline the startup briefing subtracts for its overrides-since-checkpoint counter. The value is
|
|
32
|
+
the number of non-comment, non-blank lines in `overrides.log` at this moment (`0` if the log is
|
|
33
|
+
absent). This re-zeros the `over:N` segment until the next `/ca-override`. Write a bare integer,
|
|
34
|
+
not a timestamp — the briefing treats any value above the current total as stale and falls back
|
|
35
|
+
to showing every override.
|
|
36
|
+
5. Report the checkpoint path.
|
|
37
|
+
|
|
38
|
+
## Hard gate
|
|
39
|
+
|
|
40
|
+
Read-only except writing the checkpoint doc and `last-checkpoint` — MUST NOT modify code. MUST NOT
|
|
41
|
+
consume raw reviewer output — only the `finding-triage` → `checkpoint-aggregator` verdict. MUST NOT
|
|
42
|
+
resolve a `[CONFIRM-NN]` surfaced during the sweep by guessing. The report surfaces findings; it does
|
|
43
|
+
not block or sign off anything.
|
|
44
|
+
|
|
45
|
+
## When NOT to use
|
|
46
|
+
|
|
47
|
+
- Reviewing just the current diff → `/ca-review`.
|
|
48
|
+
- A pre-implementation threat model → `/ca-threat-model`.
|
|
49
|
+
- ADR health only → `/ca-adr-status`.
|
|
50
|
+
- A whole-codebase deep audit → `/ca-tribunal` (checkpoint is the lean periodic sweep; tribunal its rare deep counterpart).
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-chore
|
|
3
|
+
description: Sanctioned lane for non-behavioral work — docs-only edits, dependency bumps, reverts. Type-scaled gates; no TDD demanded of prose.
|
|
4
|
+
argument-hint: "<docs|deps|revert> <description or SHA>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-chore — non-behavioral change lane
|
|
8
|
+
|
|
9
|
+
The sanctioned path for work that has no behavioral surface to test-drive. Three types, each with
|
|
10
|
+
the gates that fit it — and nothing it doesn't need. Everything still exits through `commit-gate`
|
|
11
|
+
(classification `docs` / `chore` / `revert`) and lands via branch/PR.
|
|
12
|
+
|
|
13
|
+
## Types
|
|
14
|
+
|
|
15
|
+
**docs** — README, comments, CHANGELOG, `.codearbiter/` prose, typo fixes.
|
|
16
|
+
- Gates: secrets scan over the diff; diff review (no behavioral code change smuggled in);
|
|
17
|
+
anti-slop copy pass on any user-facing doc in the change; `commit-gate`.
|
|
18
|
+
- **Anti-slop copy pass** — for any user-facing doc the change touches (repo-root community docs
|
|
19
|
+
and `docs/**`; not codeArbiter's own framework bodies), load
|
|
20
|
+
`<plugin-root>/includes/anti-slop-design/INDEX.md`, then `core.md` and the
|
|
21
|
+
`medium-documents` leaf (§7.A.1), and run the §3.A em-dash ban and the §3.B copy self-audit over
|
|
22
|
+
the authored prose before `commit-gate`. The `H-13` PostToolUse reminder surfaces §3.A separator
|
|
23
|
+
dashes as you write, so the pass is a confirmation, not a discovery.
|
|
24
|
+
- No `tdd` — prose has no failing test to write.
|
|
25
|
+
|
|
26
|
+
**deps** — bump an existing dependency's version (manifest + lockfile together, never one without
|
|
27
|
+
the other).
|
|
28
|
+
- Gates: dispatch `dependency-reviewer` (same vetting as `/ca-add-dep` — license, provenance,
|
|
29
|
+
supply chain, changelog of the bump); full test suite green after the bump; `commit-gate`.
|
|
30
|
+
- A bump that requires code changes to adopt is not a chore — route the code change through
|
|
31
|
+
`/ca-feature` or `/ca-fix`.
|
|
32
|
+
|
|
33
|
+
**revert** — back out a named commit.
|
|
34
|
+
- Gates: `git revert <SHA>` (never hand-edited backout); full suite green after the revert; the
|
|
35
|
+
commit message references the reverted SHA and the reason; `commit-gate`.
|
|
36
|
+
- No new regression test demanded — the revert restores already-tested behavior. If the revert is
|
|
37
|
+
fixing a defect the suite missed, open `/ca-fix` afterward to pin it.
|
|
38
|
+
|
|
39
|
+
## Flow
|
|
40
|
+
|
|
41
|
+
1. Classify `$ARGUMENTS` into one of the three types. Anything with a behavioral code change beyond
|
|
42
|
+
a mechanical revert is NOT a chore — redirect to `/ca-feature` or `/ca-fix` and stop.
|
|
43
|
+
2. Run the type's gates above.
|
|
44
|
+
3. Exit through `commit-gate` with the matching classification, then
|
|
45
|
+
`finishing-a-development-branch` as usual.
|
|
46
|
+
|
|
47
|
+
## Hard gate
|
|
48
|
+
|
|
49
|
+
MUST reject a change containing behavioral code (beyond the revert itself) — that is `/ca-feature`
|
|
50
|
+
or `/ca-fix` territory. MUST keep manifest and lockfile changes in the same commit for `deps`.
|
|
51
|
+
MUST run the full suite for `deps` and `revert`. MUST run the anti-slop copy pass on any user-facing
|
|
52
|
+
doc a `docs` change authors or edits. Never skips `commit-gate`.
|
|
53
|
+
|
|
54
|
+
## When NOT to use
|
|
55
|
+
|
|
56
|
+
- Any new or changed behavior → `/ca-feature` / `/ca-fix`.
|
|
57
|
+
- Adding a NEW dependency → `/ca-add-dep`.
|
|
58
|
+
- Restructuring code → `/ca-refactor`.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-cleanup
|
|
3
|
+
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.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-cleanup — post-merge branch transition
|
|
8
|
+
|
|
9
|
+
Your PR merged. You are still standing on the branch, with build output, worktree
|
|
10
|
+
residue, and scratch files around you. This command owns the ordinary walk back:
|
|
11
|
+
prove the branch actually landed, decide what the leftovers are, get to a clean
|
|
12
|
+
fast-forwarded default checkout, and drop the merged local branch.
|
|
13
|
+
|
|
14
|
+
It exists because nothing else owned it. `/ca-standup` is daily hygiene and
|
|
15
|
+
deliberately never touches the current branch or the default one;
|
|
16
|
+
`/ca-chore` takes docs, dependency bumps, and reverts. Issue #308 recorded
|
|
17
|
+
what the gap produced: a routine cleanup routed to `/ca-chore`, which
|
|
18
|
+
refused it, and then to `/ca-override` — a bypass invented to cover missing
|
|
19
|
+
coverage. This is that coverage.
|
|
20
|
+
|
|
21
|
+
## Routes to
|
|
22
|
+
|
|
23
|
+
The `post-merge-cleanup` skill (`<plugin-root>/routines/post-merge-cleanup/SKILL.md`),
|
|
24
|
+
which owns the containment proof, the artifact classification, and the per-item
|
|
25
|
+
confirmations.
|
|
26
|
+
|
|
27
|
+
## When NOT to use
|
|
28
|
+
|
|
29
|
+
- The branch has NOT merged yet → `/ca-pr` (`finishing-a-development-branch`)
|
|
30
|
+
owns the terminal decision; come back here after it lands.
|
|
31
|
+
- Daily start-of-day hygiene across *other* branches and worktrees →
|
|
32
|
+
`/ca-standup`.
|
|
33
|
+
- A read-only look at what is dirty → `/ca-status`.
|
|
34
|
+
- Uncommitted work you want to keep → `/ca-commit`. This command never
|
|
35
|
+
commits for you.
|
|
36
|
+
|
|
37
|
+
## Hard gate
|
|
38
|
+
|
|
39
|
+
- MUST prove the current branch is contained in the **fetched** default branch —
|
|
40
|
+
SHA-ancestry, or a squash-merge proven by the merged PR record (`headRefOid`
|
|
41
|
+
== HEAD) — before anything is deleted. An unproven or unfetched comparison
|
|
42
|
+
STOPs — a branch that only *looks* merged is not merged.
|
|
43
|
+
- MUST classify every dirty or untracked artifact as **unique**, **redundant**,
|
|
44
|
+
or **superseded**, and MUST NOT discard a unique or unclassifiable one without
|
|
45
|
+
explicit per-item confirmation naming it.
|
|
46
|
+
- MUST confirm each removal individually — no batched yes, no implied yes.
|
|
47
|
+
- MUST reach the default branch with a clean working tree, and MUST fast-forward
|
|
48
|
+
with `--ff-only` only — never a merge commit, never a rebase, never a reset
|
|
49
|
+
that discards work.
|
|
50
|
+
- MUST use `git branch -d`, and MAY use `-D` only when the squash-merge PR-record
|
|
51
|
+
proof held this run and `-d` refused, with that proof restated and the branch
|
|
52
|
+
named in the confirmation. MUST NOT otherwise force-delete a branch, force-push,
|
|
53
|
+
delete a remote branch, or write to the default branch.
|
|
54
|
+
- MUST NOT require `/ca-override`. This is ordinary lifecycle work; if it
|
|
55
|
+
cannot proceed, the reason is a stated gate, not a bypass.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-commands
|
|
3
|
+
description: Show the codeArbiter command catalog — the public command list and what each routes to.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-commands — command catalog
|
|
8
|
+
|
|
9
|
+
Present the public command list. Read-only, no state change.
|
|
10
|
+
|
|
11
|
+
## Flow
|
|
12
|
+
|
|
13
|
+
1. Read the quick-reference table from `<plugin-root>/COMMANDS.md` — the single source of truth
|
|
14
|
+
for the catalog.
|
|
15
|
+
2. Output that table only — command, one-line description, route. No prose walkthrough, and no
|
|
16
|
+
second copy maintained here (a hard-coded table drifts against `COMMANDS.md`).
|
|
17
|
+
|
|
18
|
+
## Hard gate
|
|
19
|
+
|
|
20
|
+
Read-only. MUST NOT modify a file or route to a skill. MUST render from `COMMANDS.md`, never from a
|
|
21
|
+
catalog copied into this file. Output the catalog only.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-commit
|
|
3
|
+
description: Run the full commit gate — the only sanctioned path to a git commit.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-commit — commit gate
|
|
8
|
+
|
|
9
|
+
The only path to a commit. The orchestrator issues no `git commit` without the `commit-gate` skill
|
|
10
|
+
clearing first. "It looks good" is not authorization. No arguments — the skill reads current git
|
|
11
|
+
state (staged files, diff, test results) and decides whether every gate is green.
|
|
12
|
+
|
|
13
|
+
## Routes to
|
|
14
|
+
|
|
15
|
+
The `commit-gate` skill (`<plugin-root>/routines/commit-gate/SKILL.md`) — all phases. The skill
|
|
16
|
+
is canonical for its phases, gates, and output format.
|
|
17
|
+
|
|
18
|
+
## When NOT to use
|
|
19
|
+
|
|
20
|
+
- Before writing code → `/ca-feature` or `/ca-fix` first.
|
|
21
|
+
- To check PR readiness → `/ca-pr` (dispatches additional BLOCK-level reviewers).
|
|
22
|
+
- To run tests without committing → run the test command from `tech-stack.md` directly.
|
|
23
|
+
|
|
24
|
+
## Hard gate
|
|
25
|
+
|
|
26
|
+
MUST NOT commit without `commit-gate` clearing. MUST NOT commit if the project test suite is not
|
|
27
|
+
green.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-conflict
|
|
3
|
+
description: Stop everything and surface a rule conflict — persona vs. docs vs. code. Present both sides and the conflict-hierarchy level; the user resolves. No silent reconciliation.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-conflict — conflict protocol
|
|
8
|
+
|
|
9
|
+
Orchestrator protocol, not a skill route. When a rule conflict surfaces — the persona, a `.codearbiter/` document, and code contradict each other, or two docs contradict each other — all other work STOPs and the conflict is presented for the user to resolve. The orchestrator never picks a side.
|
|
10
|
+
|
|
11
|
+
## Flow
|
|
12
|
+
|
|
13
|
+
1. **Halt** — suspend the in-progress task. No partial progress.
|
|
14
|
+
2. **Identify** the conflicting sources (A and B): which document, file, or rule each is.
|
|
15
|
+
3. **Quote** the exact passages side by side.
|
|
16
|
+
4. **Classify** the conflict against the §2 conflict-resolution hierarchy and name the level the
|
|
17
|
+
tension sits at. Note which source was more recently updated — informational, not determinative.
|
|
18
|
+
5. **Present** and wait. Work resumes only after the user explicitly resolves.
|
|
19
|
+
|
|
20
|
+
## Output
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
## Conflict detected — work halted
|
|
24
|
+
|
|
25
|
+
### Source A
|
|
26
|
+
File: <path> · Last updated: <date>
|
|
27
|
+
> <exact quoted text>
|
|
28
|
+
|
|
29
|
+
### Source B
|
|
30
|
+
File: <path> · Last updated: <date>
|
|
31
|
+
> <exact quoted text>
|
|
32
|
+
|
|
33
|
+
### Nature of conflict
|
|
34
|
+
<what the two sources disagree about>
|
|
35
|
+
|
|
36
|
+
### Conflict-hierarchy level
|
|
37
|
+
Level N — <why the tension sits here>
|
|
38
|
+
|
|
39
|
+
### To resolve
|
|
40
|
+
<options — update A, update B, or supersede one via an ADR>
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
Work is halted. Resolve before the orchestrator proceeds.
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## When routed automatically
|
|
47
|
+
|
|
48
|
+
The orchestrator surfaces a conflict on its own when the persona and a `.codearbiter/` doc contradict
|
|
49
|
+
each other, two docs contradict, code contradicts an accepted ADR, a new ADR contradicts an accepted
|
|
50
|
+
one, or a task instruction contradicts a hard gate.
|
|
51
|
+
|
|
52
|
+
## After resolution
|
|
53
|
+
|
|
54
|
+
The orchestrator records the resolution; if the user authorized a doc update, it makes that update
|
|
55
|
+
(the one sanctioned side effect) and resumes from the suspension point.
|
|
56
|
+
|
|
57
|
+
## Hard gate
|
|
58
|
+
|
|
59
|
+
MUST stop ALL other work. MUST NOT pick a side without explicit user instruction. MUST NOT decide by
|
|
60
|
+
recency alone. MUST NOT silently continue past a detected conflict. If the conflict involves a guessed
|
|
61
|
+
or auto-resolved `[CONFIRM-NN]`, flag that as a separate critical finding.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-context-check
|
|
3
|
+
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.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-context-check — manual drift audit
|
|
8
|
+
|
|
9
|
+
An optional, on-demand audit for bypass cases: a merge or external edit
|
|
10
|
+
changed a tracked source file you are not about to commit, so commit-gate's
|
|
11
|
+
auto-heal did not fire. Routes to the `context-check` skill.
|
|
12
|
+
|
|
13
|
+
## When to use
|
|
14
|
+
|
|
15
|
+
Use this only when you believe drift was introduced outside a commit (e.g. a
|
|
16
|
+
direct push, a merge you did not author, a manual file edit while outside a
|
|
17
|
+
normal commit workflow). The SessionStart drift line (backed by
|
|
18
|
+
`startup_drift_line`) is the usual signal that this check is warranted.
|
|
19
|
+
|
|
20
|
+
## When NOT to use
|
|
21
|
+
|
|
22
|
+
- **Routine maintenance** — commit-gate auto-heal runs automatically on every
|
|
23
|
+
commit that touches a `drift_trigger` source. No manual intervention needed
|
|
24
|
+
for the common case.
|
|
25
|
+
- Full brownfield re-scan from scratch → `/ca-create-context`.
|
|
26
|
+
- Project state snapshot → `/ca-status`.
|
|
27
|
+
|
|
28
|
+
## Hard gate
|
|
29
|
+
|
|
30
|
+
Read-only unless the user explicitly chooses re-scout (partial scout run) or
|
|
31
|
+
re-baseline (hash update in `.codearbiter/.provenance/`). MUST NOT commit on
|
|
32
|
+
its own. MUST NOT modify any derived doc without an explicit user selection.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-create-context
|
|
3
|
+
description: Brownfield back-fill — scout an existing codebase and populate .codearbiter/, then lock it initialized.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-create-context — brownfield populate
|
|
8
|
+
|
|
9
|
+
Wraps an existing codebase in project state without guessing. Dispatches parallel scouts to read the repository, synthesizes their findings into the surviving `.codearbiter/` doc set, resolves gaps via a targeted interview, and locks the project initialized. No arguments — the skill reads the repo and asks only what it cannot determine.
|
|
10
|
+
|
|
11
|
+
The only permitted path to populate `.codearbiter/` when meaningful source code already exists. For a greenfield project with no source, use `/ca-decompose`.
|
|
12
|
+
|
|
13
|
+
## Routes to
|
|
14
|
+
|
|
15
|
+
The `context-creation` skill (`<plugin-root>/routines/context-creation/SKILL.md`) — six gated
|
|
16
|
+
phases: pre-flight, scout dispatch, synthesis, gap interview, write, lock. Scouts return paths, line
|
|
17
|
+
numbers, and named values only — never raw source or secret values. The skill is canonical for the
|
|
18
|
+
phases and their gates.
|
|
19
|
+
|
|
20
|
+
## When NOT to use
|
|
21
|
+
|
|
22
|
+
- Project already initialized (`<!--INITIALIZED-->` in `CONTEXT.md`) → `/ca-status`.
|
|
23
|
+
- Greenfield project, no source → `/ca-decompose`.
|
|
24
|
+
- `.codearbiter/` not yet scaffolded → `/ca-init` first.
|
|
25
|
+
- Update one doc → edit `<project-root>/.codearbiter/` directly or use `/ca-feature`.
|
|
26
|
+
|
|
27
|
+
## Hard gate
|
|
28
|
+
|
|
29
|
+
BLOCK if `<!--INITIALIZED-->` is already present in `CONTEXT.md`. BLOCK if no meaningful source exists
|
|
30
|
+
(route to `/ca-decompose`). BLOCK if any scout fails to return before synthesis. BLOCK if any
|
|
31
|
+
`[CONFIRM-NN]` exits the gap interview unresolved and undeferred. MUST NOT write `<!--INITIALIZED-->`
|
|
32
|
+
until every gap is resolved or deferred to `open-questions.md`.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-debug
|
|
3
|
+
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.
|
|
4
|
+
argument-hint: "<observed symptom>"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-debug — root-cause investigation
|
|
8
|
+
|
|
9
|
+
Investigates a defect, anomaly, or unexpected behavior whose cause is not yet known. Separates investigation from implementation: no code is modified while debugging. Describe the symptom with enough fidelity that another operator could reproduce it — observed behavior, reproduction steps (or intermittent-trigger profile), and environment. Vague descriptions ("it's flaky") are rejected; the orchestrator asks for clarification before routing.
|
|
10
|
+
|
|
11
|
+
If the cause is already known and a regression test is already named, invoke `/ca-fix` directly.
|
|
12
|
+
|
|
13
|
+
## Routes to
|
|
14
|
+
|
|
15
|
+
The `debug` skill (`<plugin-root>/routines/debug/SKILL.md`) — five gated phases: symptom
|
|
16
|
+
capture, hypothesis generation, evidence gathering, root-cause decision, handoff. Phase 4 forces one
|
|
17
|
+
named exit:
|
|
18
|
+
|
|
19
|
+
- **(a) Confirmed bug → `/ca-fix`**, carrying the confirmed bug statement, cited evidence, and a named
|
|
20
|
+
regression test obligation tied to the minimal repro.
|
|
21
|
+
- **(b) Behavior/design ambiguity → `/ca-adr`**, with the ambiguity statement and evidence ledger,
|
|
22
|
+
authored only with explicit user attribution.
|
|
23
|
+
- **(c) No-action close** — symptom and rationale appended to
|
|
24
|
+
`<project-root>/.codearbiter/open-tasks.md`.
|
|
25
|
+
|
|
26
|
+
A real finding that is out of scope for those exits is marked inline `[NEEDS-TRIAGE]` and the
|
|
27
|
+
investigation continues.
|
|
28
|
+
|
|
29
|
+
## When NOT to use
|
|
30
|
+
|
|
31
|
+
- Known bug with a named regression test → `/ca-fix` directly.
|
|
32
|
+
- Design discussion with no failing behavior → `/ca-adr`.
|
|
33
|
+
- New feature → `/ca-feature`.
|
|
34
|
+
- A general "why does it behave this way" question with no defect → `/ca-btw`.
|
|
35
|
+
- Re-entry from inside `/ca-fix` or `/ca-adr` → exit that command first (routing-cycle prevention).
|
|
36
|
+
|
|
37
|
+
## Hard gate
|
|
38
|
+
|
|
39
|
+
MUST NOT modify any code during Phases 1–5 — code changes belong to `/ca-fix`. MUST exit Phase 4 with
|
|
40
|
+
exactly one of (a)/(b)/(c). Exit (a) MUST carry a regression test obligation. Exit (b) MUST obtain
|
|
41
|
+
user attribution before any `/ca-adr`. MUST NOT promote INCONCLUSIVE evidence to CONFIRMED without a
|
|
42
|
+
cited source.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-decompose
|
|
3
|
+
description: Greenfield decomposition interview — a layered interview that populates .codearbiter/ and locks it initialized.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-decompose — greenfield populate
|
|
8
|
+
|
|
9
|
+
Stands up project state for a greenfield project — one with no meaningful source code yet. A senior-architect persona drives a six-layer interview eliciting purpose, scope, primary users, domain vocabulary, and architectural constraints, persisting each layer to disk so a context reset loses nothing, then writes the surviving `.codearbiter/` doc set and locks the project initialized. No arguments — the skill interviews the user (a handoff summary may be supplied freely during the interview).
|
|
10
|
+
|
|
11
|
+
The only permitted path to populate `.codearbiter/` when no meaningful source exists. For an existing codebase, use `/ca-create-context`.
|
|
12
|
+
|
|
13
|
+
## Routes to
|
|
14
|
+
|
|
15
|
+
The `decompose` skill (`<plugin-root>/routines/decompose/SKILL.md`) — six gated phases:
|
|
16
|
+
pre-flight, persona adoption, layered interview, synthesis, population, lock. The skill is canonical
|
|
17
|
+
for the layers and their gates.
|
|
18
|
+
|
|
19
|
+
## When NOT to use
|
|
20
|
+
|
|
21
|
+
- Project already initialized (`<!--INITIALIZED-->` in `CONTEXT.md`) → `/ca-status`.
|
|
22
|
+
- Existing codebase with source present → `/ca-create-context`.
|
|
23
|
+
- `.codearbiter/` not yet scaffolded → `/ca-init` first.
|
|
24
|
+
- Update one doc → edit `<project-root>/.codearbiter/` directly or use `/ca-feature`.
|
|
25
|
+
|
|
26
|
+
## Hard gate
|
|
27
|
+
|
|
28
|
+
BLOCK if `<!--INITIALIZED-->` is already present in `CONTEXT.md`. BLOCK if meaningful source is
|
|
29
|
+
detected (route to `/ca-create-context`). BLOCK if any `[CONFIRM-NN]` exits synthesis unresolved and
|
|
30
|
+
undeferred. MUST NOT write `<!--INITIALIZED-->` until every required doc is present and non-empty.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-dev
|
|
3
|
+
description: Maintainer override — suspend orchestration to edit codeArbiter itself. Env-gated (CODEARBITER_DEV=1), entry/exit logged to overrides.log.
|
|
4
|
+
argument-hint: "[note]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-dev — maintainer override
|
|
8
|
+
|
|
9
|
+
Suspends orchestration for working ON codeArbiter — skill, agent, command, and hook bodies,
|
|
10
|
+
`ORCHESTRATOR.md`, settings. Not for project work; for that, use the normal commands or
|
|
11
|
+
`/ca-override`.
|
|
12
|
+
|
|
13
|
+
## Flow
|
|
14
|
+
|
|
15
|
+
1. **Env gate** — check the `CODEARBITER_DEV` environment variable. Not set to `1` → refuse in one
|
|
16
|
+
line ("dev mode requires CODEARBITER_DEV=1") and remain in orchestration. This keeps the mode a
|
|
17
|
+
deliberate maintainer posture, not a casual bypass.
|
|
18
|
+
2. **Log entry** — detect identity from `git config user.email`; append to
|
|
19
|
+
`<project-root>/.codearbiter/overrides.log` (append-only, `>>`):
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
[ISO-8601 timestamp] | BY: <email> | DEV: enter | NOTE: <note or —>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
3. **Marker** — drop `<project-root>/.codearbiter/.markers/dev-active` (gitignored UI flag).
|
|
26
|
+
4. **Mode** — plain, direct coding assistant: no routing, no skills, no gates, no `[CONFIRM-NN]`
|
|
27
|
+
surfacing, no redirect. Persists until `/ca-arbiter` or a new session.
|
|
28
|
+
|
|
29
|
+
Note (#271): if another session starts in this repo while this marker is live, SessionStart no longer
|
|
30
|
+
unconditionally clears it out from under you — it is session-scoped now, so a concurrently-running dev
|
|
31
|
+
session's marker survives a different session's startup. See `/ca-arbiter` for the exit-path detail.
|
|
32
|
+
|
|
33
|
+
## Hard gate
|
|
34
|
+
|
|
35
|
+
MUST refuse without `CODEARBITER_DEV=1`. MUST write the `DEV: enter` log line before suspending
|
|
36
|
+
orchestration. Even in dev mode, `overrides.log` is never rewritten — the append-only rule has no
|
|
37
|
+
dev exception.
|
|
38
|
+
|
|
39
|
+
## When NOT to use
|
|
40
|
+
|
|
41
|
+
- Bypassing a single gate on project work → `/ca-override "reason"`.
|
|
42
|
+
- Asking a question → `/ca-btw`.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ca-doctor
|
|
3
|
+
description: Verify the active host install, package, command ownership, enforcement, wrapper self-test, and active-dispatch coverage gap. Read-only.
|
|
4
|
+
argument-hint: (none)
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /ca-doctor — install health
|
|
8
|
+
|
|
9
|
+
Silent dormancy is the worst failure shape this plugin has: the gates look installed but never fire.
|
|
10
|
+
This command proves the active host is healthy and reports every non-OK finding with an exact
|
|
11
|
+
remediation.
|
|
12
|
+
|
|
13
|
+
## Flow
|
|
14
|
+
|
|
15
|
+
1. The `/ca-doctor` alias has already run the extension's structured Pi doctor report before sending
|
|
16
|
+
this generated skill. Present the `<codearbiter-doctor-report>` block below verbatim.
|
|
17
|
+
2. The report inspects, without granting trust: active Git package origin/version, exact Pi CLI and
|
|
18
|
+
module package identity, stable Pi/Node/Python support, shared-core and bridge paths, command and
|
|
19
|
+
native-equivalent skill-expansion ownership, child/ambient-marker state, and final wrapper sources.
|
|
20
|
+
3. Its `wrapper-self-test` row submits only `git add --all --dry-run` directly to the stored governed
|
|
21
|
+
Pi bash wrapper. The exact shared-core `[H-03]` block is healthy and cannot stage files; execution
|
|
22
|
+
or a different block is unhealthy. This self-test does not traverse Pi's active dispatcher. Do not
|
|
23
|
+
rerun or respell it.
|
|
24
|
+
4. Its `active-dispatch` row remains degraded because supported Pi 0.80.5/0.80.10 public extension
|
|
25
|
+
APIs cannot submit that deterministic call through the active dispatcher. PI-AC-28 remains blocked
|
|
26
|
+
until supported-version real-host promotion/CI evidence closes the gap.
|
|
27
|
+
|
|
28
|
+
## Remediation ladder
|
|
29
|
+
|
|
30
|
+
1. Restart Pi so package resources and final wrappers register in one fresh process.
|
|
31
|
+
2. Reinstall `ca-pi` from the approved pinned Git tag. For project-local packages, inspect `/trust`
|
|
32
|
+
and grant trust only if you accept that source; codeArbiter never grants it.
|
|
33
|
+
3. If dormancy was intended, `/ca-init` opts the repository in.
|
|
34
|
+
|
|
35
|
+
## When NOT to use
|
|
36
|
+
|
|
37
|
+
- Scaffold state only → `/ca-init --check`.
|
|
38
|
+
- Project progress, not install health → `/ca-status`.
|
|
39
|
+
|
|
40
|
+
## Hard gate
|
|
41
|
+
|
|
42
|
+
Read-only. MUST NOT create markers, stage files, grant trust, weaken a block, or retry the
|
|
43
|
+
wrapper self-test with different spelling. MUST preserve the degraded active-dispatch diagnosis until
|
|
44
|
+
supported-version real-host promotion/CI evidence closes PI-AC-28.
|