@caddis/cli 0.4.4 → 0.4.5

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.
@@ -0,0 +1,150 @@
1
+ # Pipeline Glossary
2
+
3
+ > **Shipped as `CADDIS-GLOSSARY.md`.** This defines CADDIS's own vocabulary — the words the
4
+ > toolchain coined, which a user meets constantly and cannot guess from the plain word. Your
5
+ > project's own terms belong in `.caddis/kb/GLOSSARY.md` instead; run `/caddis:glossary` to
6
+ > build one. Two files, two subjects, deliberately different names.
7
+
8
+ Canonical terms used across all agents, skills, and pipeline infrastructure.
9
+ When writing agent instructions, skills, or documentation, use ONLY these terms.
10
+
11
+ Two vocabularies live here and they are NOT interchangeable. **Core Terms** onward describe the
12
+ agent PIPELINE (orchestrator, stages, `pipeline-state.json`). **Toolchain Terms** describe caddis
13
+ as a distributed product (pool, mirror, export target). A word can be canonical in one and absent
14
+ from the other; where they genuinely collide, the collision is named under Flagged ambiguities
15
+ rather than resolved by fiat.
16
+
17
+ Admission test, borrowed from `last30days-skill`'s CONCEPTS.md: a term belongs here when its
18
+ project meaning is **distinct enough from its ordinary technical sense that a newcomer would
19
+ misread it**. `commit` does not belong. `pool` does.
20
+
21
+ ---
22
+
23
+ ## Core Terms
24
+
25
+ | Canonical Term | Definition | DO NOT USE |
26
+ |---------------|------------|------------|
27
+ | artefact | Any file produced by an agent as pipeline output. This is the correct spelling in all contexts — field names, prose, section headers. | artifact, deliverable, output file |
28
+ | stage | A pipeline-level progression step (intent, prd, architect, plan, implement, tester, review, closed) | phase (for pipeline steps), step |
29
+ | phase | A subdivision of work within a Plan (Phase 1, Phase 2…). Phases exist WITHIN the implement stage. | stage (for plan subdivisions), step |
30
+ | chain_id | Feature tracking ID format: `FEAT-YYYY-MMDD-slug`. Links all artefacts for a feature. | feature_id, tracking_id |
31
+ | handoff | Transfer of work from one agent to another via Orchestrator | routing (for the transfer act), delegation, dispatch, hand-off |
32
+ | handoff payload | The `_notes.handoff_payload` object written by Orchestrator via `update_notes` MCP tool before routing to a specialist | routing context, task context |
33
+ | evidence bundle | Anchor's structured proof-of-work document (`agent-docs/anchor-evidence-*.md`) | proof, verification report |
34
+ | gate | A supervision checkpoint requiring approval before pipeline advances (`supervision_gates.*`) | checkpoint, approval point |
35
+ | HARD STOP | Absolute refusal to proceed — security violation, out-of-scope request, or rogue state edit | halt, block, refuse |
36
+ | skill | A reusable knowledge pack in `.github/skills/{category}/{name}/SKILL.md` | SKILL (when referring to the concept, not the filename) |
37
+ | prompt | A reusable prompt file in `.github/prompts/*.prompt.md` | skill (when referring to prompt files — prompts are not skills) |
38
+ | onboarding prompt | The project bootstrap prompt at `.github/prompts/onboarding.prompt.md` | onboarding skill |
39
+
40
+ ## Pipeline Modes
41
+
42
+ | Term | Definition |
43
+ |------|------------|
44
+ | supervised | All gates require manual user approval. Default mode. |
45
+ | assisted | Manual gates with AI guidance hints. Auto-routing between stages. |
46
+ | autopilot | All gates auto-satisfied except `intent_approved`. Fully hands-free after intent approval. |
47
+
48
+ ## Result Statuses
49
+
50
+ ### MCP `notify_orchestrator` — `result_status` parameter
51
+
52
+ | Value | Meaning | Used By |
53
+ |-------|---------|---------|
54
+ | `complete` | Standard stage completion | All agents |
55
+ | `phase_complete` | Multi-phase loop — implement stays in implement for next phase | Implement agent |
56
+ | `recovered` | Recovery after guard failure | Orchestrator (debug flow) |
57
+
58
+ ### Agent-Specific Result Fields
59
+
60
+ | Agent | Field | Possible Values | Meaning |
61
+ |-------|-------|-----------------|---------|
62
+ | Tester | `tester_result.status` | `passed`, `failed` | All tests pass / any test fails |
63
+ | Code Reviewer | `Verdict` | `approved`, `revision-requested` | Code meets standards / needs changes |
64
+ | All agents (artefact YAML header) | `approval` | `approved`, `pending`, `revision-requested` | Artefact acceptance status |
65
+
66
+ ### Orchestrator Artefact Validation Guards
67
+
68
+ | Guard | Checks |
69
+ |-------|--------|
70
+ | `artefact_exists` | File at `artefact_path` exists on disk |
71
+ | `artefact_approved` | YAML header `approval:` field is `approved` |
72
+ | `all_phases_done` | All implementation phases complete |
73
+
74
+ ## File Naming Conventions
75
+
76
+ | Pattern | Example | Usage |
77
+ |---------|---------|-------|
78
+ | Agent file | `frontend-developer.agent.md` | Lowercase kebab-case matching `name` frontmatter field |
79
+ | Skill file | `.github/skills/{category}/{name}/SKILL.md` | Category folder + name folder + SKILL.md |
80
+ | Plan file | `.github/plans/{feature-slug}.md` | Feature slug from chain_id |
81
+ | Evidence file | `agent-docs/anchor-evidence-{feature}.md` | Per-feature evidence bundle |
82
+ | Artefact registry | `agent-docs/ARTIFACTS.md` | Single registry for all pipeline artefacts |
83
+ | Pipeline state | `.github/pipeline-state.json` | Live pipeline state — written ONLY by MCP tools |
84
+
85
+ ## Pipeline State Field Ownership
86
+
87
+ All writes to `pipeline-state.json` go through MCP tools. Only `stages[*].status`, `stages[*].artefact`, `stages[*].completed_at`, and `blocked_by` may be set via `editFiles`.
88
+
89
+ | Field | Writer | Tool |
90
+ |-------|--------|------|
91
+ | `current_stage` | Pipeline runner | `notify_orchestrator` |
92
+ | `supervision_gates[*]` | Orchestrator | `satisfy_gate` |
93
+ | `pipeline_mode` | Orchestrator | `set_pipeline_mode` |
94
+ | `_notes.*` | Orchestrator / agents | `update_notes` |
95
+ | `project`, `feature`, `type` | Orchestrator | `pipeline_init` / `pipeline_reset` |
96
+
97
+ ## Common Conflations to Avoid
98
+
99
+ | Wrong | Correct | Why |
100
+ |-------|---------|-----|
101
+ | "Phase 3 of the pipeline" | "The implement stage" | Phases are within a Plan; stages are pipeline-level |
102
+ | "The artifact registry" | "The artefact registry" | British spelling is canonical (matches all field names) |
103
+ | "Run the onboarding skill" | "Run the onboarding prompt" | `.prompt.md` files are prompts, not skills |
104
+ | "Route to the agent" | "Hand off to the agent" | Routing is Orchestrator's internal logic; handoff is the transfer act |
105
+ | `[Stage/Phase N]` | `[Phase N]` (within Plan) or `[Stage: implement]` (pipeline-level) | Don't conflate the two with a slash |
106
+
107
+ ---
108
+
109
+ ## Toolchain Terms
110
+
111
+ caddis-the-product, as opposed to the agent pipeline above. These are the words caddis invented
112
+ out of ordinary English, which is exactly why they need defining: a reader who guesses from the
113
+ plain word gets them wrong. Usage counts were measured across 444 markdown files on 2026-08-29.
114
+
115
+ | Canonical Term | Definition | DO NOT USE |
116
+ |---|---|---|
117
+ | pool | The single source of every shipped resource, living in `.github/` (skills, agents, commands, prompts). Everything a user installs is EXPORTED from the pool; nothing is authored in a bundle. Versioned independently of the CLI, and bumped only by `caddis-push` — never by hand. *(222 uses)* | bundle (for the source), library |
118
+ | bundle | One EXPORTED copy of the pool, shaped for a single target — `dist/runtime-resources/<target>/`. A bundle is generated output; editing one is always a mistake. | pool (for a built copy) |
119
+ | export target | A named consumer in `.github/runtime-targets.json` — claude, antigravity, antigravity-plugin, codex, copilot, plus `-extras` variants. Each takes a different subset and layout from the same pool. | platform, host (for a target) |
120
+ | mirror | The public repo `saajunaid/caddis-plugin`, refreshed by `caddis-push`. The SOURCE repo is private, so the mirror is what any other machine can actually reach. | upstream, remote |
121
+ | relay | `.caddis/relay.md` — the durable resume doc, rewritten by `/caddis:handoff` and injected at SessionStart. Machine-local and gitignored. Only changes when someone runs a handoff, so it is stale between them by design. *(168 uses)* | handoff doc, session notes |
122
+ | session state | `.caddis/session-state.md` — auto-captured by the `Stop` hook at the end of EVERY turn. Distinct from the relay: current without anyone deciding to make it current, and it holds no agreed next step. | relay (they are different files with different guarantees) |
123
+ | drift | A gap between what a consumer HAS installed and what the pool currently ships. `caddis status` reports it per agent. Not code drift, not schema drift. *(160 uses)* | staleness, lag |
124
+ | live-fire | Driving a real binary end to end rather than asserting against a manifest. Coined because three defects in one month passed every test and still gave a human a broken install: the tests asked "does the export match the manifest", never "would this work". An export target is not trusted until it has been live-fired once. | smoke test, integration test, manual test |
125
+ | parking-lot | `.caddis/parking-lot/` — the ONE register of future work. It exists because future work previously scattered to nine places and no session could answer "what is left". Items carry `severity` and `status`; the backlog IS the plan when no plan is active. *(41 uses)* | backlog file, TODO list, icebox |
126
+ | model lane | A named provider route reached by its own binary — `claude-oss`, `claude-glm`, `claude-deepseek` — all speaking the Anthropic protocol. A lane is a route, not a model. | provider, backend, endpoint |
127
+ | core / extras | The two shipping tiers. Core is an EXPLICIT allowlist in `.github/runtime-targets.json`; anything not named there lands in extras. A skill defaults to extras, so placement is a decision, never an accident. | tier 1 / tier 2, full / lite |
128
+ | harness | The agent runtime that loads caddis — Claude Code, agy, Codex, Copilot. caddis is agent-agnostic; "the harness" without a name means whichever one is running. *(135 uses)* | client, IDE, platform |
129
+
130
+ ## Flagged ambiguities
131
+
132
+ Named rather than resolved. Pretending the vocabulary is clean is how a glossary starts lying.
133
+
134
+ - **`gate` is overloaded, badly.** Core Terms defines it as a supervision checkpoint requiring
135
+ approval. That is one of at least twelve senses in live use: *exit gate* (20), *quality gate*
136
+ (9), *evidence gate* (5), *decision gate* (3), plus pre-publish, handover and privacy gates —
137
+ none of which involve pipeline supervision. The word appears 1019 times across 168 files.
138
+ **Prefer the full two-word term everywhere**; a bare "gate" is ambiguous and the reader cannot
139
+ tell which one you meant.
140
+
141
+ - **`artefact` vs `artifact`.** Core Terms makes `artefact` canonical, and for pipeline outputs it
142
+ is. But the toolchain's own code says `artifact_root` and "artifact dir" (17 uses in
143
+ `scripts/setup_project_ai.py` alone), and those are API names that cannot be respelled without
144
+ a breaking change. So: **artefact** in pipeline prose and field names; **artifact dir /
145
+ `artifact_root`** when naming the `.caddis/` directory mechanism. Do not "fix" one into the other.
146
+
147
+ - **`skill` means two things across harnesses.** In the pool it is
148
+ `.github/skills/<category>/<name>/SKILL.md`. But agy CONVERTS commands into skills at install
149
+ time, so `/caddis:catchup` ships as a command and arrives as an agy skill. A skill count that
150
+ disagrees between two agents is usually this, not a bug.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "caddis",
3
- "version": "1.3.90",
3
+ "version": "1.3.91",
4
4
  "description": "caddis — agent-agnostic dev harness as an Antigravity (agy) plugin: TDD skills + commands, single-sourced with the Claude Code plugin."
5
5
  }
@@ -919,6 +919,10 @@ English does not, and marks which already have an entry:
919
919
  It cannot write the definitions - only a person or the model reading the code can say what
920
920
  a coined word MEANS here. Run `/caddis:glossary` to have them drafted, or write them.
921
921
 
922
+ This file is for YOUR project's vocabulary. caddis's own coined words - pool, relay, drift,
923
+ export target - are defined separately in `CADDIS-GLOSSARY.md` at the plugin root, which also
924
+ serves as a worked example of what a good entry looks like. Do not copy those terms in here.
925
+
922
926
  | Term | Definition | DO NOT USE |
923
927
  |---|---|---|
924
928
  | _example_ | Replace this row. Say what the word means HERE, and why the ordinary reading is wrong. | the synonyms that cause confusion |
@@ -52,6 +52,10 @@ Each row gets three things:
52
52
  | **Definition** | What it means HERE, and — where it helps — why the ordinary reading misleads. Say the thing a newcomer would get wrong. |
53
53
  | **DO NOT USE** | The synonyms actually causing confusion in this repo. Leave blank rather than inventing some. |
54
54
 
55
+ **A worked example ships with caddis.** `CADDIS-GLOSSARY.md` at the plugin root defines caddis's
56
+ own coined vocabulary the same way — read a few entries before writing yours. It is caddis's
57
+ words, not this project's: never copy its terms into a project glossary.
58
+
55
59
  Good: *"pool — the single source of every shipped resource, in `.github/`. Everything installed is EXPORTED from it; nothing is authored in a bundle."*
56
60
 
57
61
  Bad: *"pool — a pool of resources."*
@@ -1,7 +1,7 @@
1
1
  {
2
- "poolVersion": "1.3.90",
2
+ "poolVersion": "1.3.91",
3
3
  "bundles": {
4
- "antigravity-plugin": "1.3.90",
4
+ "antigravity-plugin": "1.3.91",
5
5
  "antigravity-plugin-extras": "1.3.28",
6
6
  "codex": "unknown"
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caddis/cli",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "Install, update and diagnose the caddis dev harness across every coding agent you use (Claude Code, agy/Antigravity, and more).",
5
5
  "keywords": [
6
6
  "caddis",