@caddis/cli 0.4.29 → 0.4.32

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 (47) hide show
  1. package/bundles/antigravity-plugin/caddis_statusline.py +0 -1
  2. package/bundles/antigravity-plugin/mcp_ping_server.py +1 -1
  3. package/bundles/antigravity-plugin/plugin.json +1 -1
  4. package/bundles/antigravity-plugin/scripts/caddis_adhoc.py +301 -66
  5. package/bundles/antigravity-plugin/scripts/caddis_exit.py +15 -0
  6. package/bundles/antigravity-plugin/scripts/caddis_frontmatter.py +145 -0
  7. package/bundles/antigravity-plugin/scripts/caddis_gate.py +33 -10
  8. package/bundles/antigravity-plugin/scripts/caddis_governor.py +5 -2
  9. package/bundles/antigravity-plugin/scripts/caddis_lanes.py +13 -1
  10. package/bundles/antigravity-plugin/scripts/caddis_migrate_dir.py +1 -1
  11. package/bundles/antigravity-plugin/scripts/caddis_spawn.py +2 -2
  12. package/bundles/antigravity-plugin/scripts/caddis_statusline.py +0 -1
  13. package/bundles/antigravity-plugin/scripts/caddis_tidy.py +9 -14
  14. package/bundles/antigravity-plugin/scripts/claudster_doctor.py +66 -0
  15. package/bundles/antigravity-plugin/scripts/convert_doc_to_confluence.py +1430 -0
  16. package/bundles/antigravity-plugin/scripts/new-machine.ps1 +1 -1
  17. package/bundles/antigravity-plugin/scripts/oss_ask.py +6 -5
  18. package/bundles/antigravity-plugin/scripts/oss_model.py +1 -1
  19. package/bundles/antigravity-plugin/scripts/oss_review.py +84 -15
  20. package/bundles/antigravity-plugin/scripts/secret_filter.py +316 -0
  21. package/bundles/antigravity-plugin/scripts/setup_project_ai.py +9 -4
  22. package/bundles/antigravity-plugin/skills/_registry.md +5 -3
  23. package/bundles/antigravity-plugin/skills/catchup/SKILL.md +37 -2
  24. package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +1 -1
  25. package/bundles/antigravity-plugin/skills/data-lineage/SKILL.md +1 -1
  26. package/bundles/antigravity-plugin/skills/digress/SKILL.md +1 -1
  27. package/bundles/antigravity-plugin/skills/handoff/SKILL.md +8 -1
  28. package/bundles/antigravity-plugin/skills/hld/SKILL.md +1 -1
  29. package/bundles/antigravity-plugin/skills/implement/SKILL.md +3 -1
  30. package/bundles/antigravity-plugin/skills/install-statusline/SKILL.md +105 -0
  31. package/bundles/antigravity-plugin/skills/lld/SKILL.md +1 -1
  32. package/bundles/antigravity-plugin/skills/mmr/SKILL.md +23 -14
  33. package/bundles/antigravity-plugin/skills/resume/SKILL.md +2 -32
  34. package/bundles/antigravity-plugin/skills/review/SKILL.md +2 -96
  35. package/bundles/antigravity-plugin/skills/review-pr/SKILL.md +100 -0
  36. package/bundles/antigravity-plugin/skills/statusline/SKILL.md +2 -101
  37. package/bundles/antigravity-plugin-extras/plugin.json +1 -1
  38. package/bundles/antigravity-plugin-extras/skills/cross-review/SKILL.md +3 -3
  39. package/bundles/antigravity-plugin-extras/skills/golden-plan/SKILL.md +1 -1
  40. package/bundles/codex/.codex/config.toml.example +0 -16
  41. package/bundles/codex/AGENTS.md +2 -2
  42. package/bundles/manifest.json +3 -3
  43. package/dist/claude-deepseek.js +1 -1
  44. package/dist/claude-glm.js +1 -1
  45. package/dist/claude-oss.js +1 -1
  46. package/dist/cli.js +1 -1
  47. package/package.json +1 -1
@@ -1,105 +1,6 @@
1
1
  ---
2
2
  name: statusline
3
- description: Install the caddis status line into Claude Code and agy — one renderer, once per machine
3
+ description: Renamed to /caddis:install-statusline (alias, removed next release)
4
4
  ---
5
5
 
6
- # /statusline — set up the status bar
7
-
8
- Wire the caddis status line into every coding agent on this machine. One Python renderer serves
9
- both hosts. It installs at **user scope**, so every project gets the line and no project holds a
10
- copy that can drift.
11
-
12
- ## What the user gets
13
-
14
- Claude Code:
15
-
16
- ```
17
- ⌂ claudster-source | saajunaid/caddis ⎇ main +2 ●1 ?3 ↑1 | ◆ Opus 5 (1M context) v2.1.239 |
18
- ◉ 412k/1M [███░░░░░] 41% | ⚡ 386k cached | effort:high | style:Plain | thinking |
19
- 5h:12% 7d:40% | 💻 57% (37 GB) | ⏺ relay | ◷ 07:58
20
- ```
21
-
22
- agy (Antigravity):
23
-
24
- ```
25
- ▛▜ agy | ● idle | 🧠 Gemini 3.6 Flash (High) (high) | 📁 claudster-source | ⎇ main ?3 |
26
- ◉ 48.5k/1M [░░░░░░░░] 5% | ⚡ 40k cached | q 62% | 💻 57% (37 GB) | ⏺ relay | ◷ 08:01
27
- ```
28
-
29
- Both lines come from `caddis_statusline.py`. It has two profiles, because the two hosts send
30
- different field names — agy's payload is a sibling of Claude Code's, not a copy.
31
-
32
- ## Run it
33
-
34
- Find the renderer in this install and run it. Try these paths in order and use the first that exists:
35
-
36
- - `${CLAUDE_PLUGIN_ROOT}/scripts/caddis_statusline.py`
37
- - `claude-harness/scripts/caddis_statusline.py` (working inside the caddis source repo)
38
-
39
- Then:
40
-
41
- ```bash
42
- python "${CLAUDE_PLUGIN_ROOT}/scripts/caddis_statusline.py" --install # both hosts
43
- python "${CLAUDE_PLUGIN_ROOT}/scripts/caddis_statusline.py" --install --host claude
44
- python "${CLAUDE_PLUGIN_ROOT}/scripts/caddis_statusline.py" --install --host agy
45
- python "${CLAUDE_PLUGIN_ROOT}/scripts/caddis_statusline.py" --install --dry-run # print, write nothing
46
- ```
47
-
48
- `--install` does four things:
49
-
50
- 1. Copies the renderer to `~/.caddis/statusline.py` — a **stable** path. Pointing the host
51
- settings at the plugin cache would break on every caddis upgrade, because the version number
52
- is in that path.
53
- 2. Creates `~/.caddis/statusline.json` with the default toggles. It never overwrites an existing one.
54
- 3. Backs up each host's `settings.json` to `settings.json.bak-caddis-statusline`.
55
- 4. Sets `statusLine` in `~/.claude/settings.json` and `~/.gemini/antigravity-cli/settings.json`,
56
- preserving every other key. A host that is not installed is skipped, not failed.
57
-
58
- Report the tool's own output to the user. Then tell them the line appears on the **next** session —
59
- neither host re-reads `settings.json` mid-session.
60
-
61
- ## Verify
62
-
63
- ```bash
64
- python ~/.caddis/statusline.py --check # what is wired where
65
- python ~/.caddis/statusline.py --sample --profile claude # preview, no host needed
66
- python ~/.caddis/statusline.py --sample --profile agy
67
- ```
68
-
69
- `--check` exits non-zero when a host's `statusLine` is missing or points somewhere else.
70
-
71
- ## Change the look
72
-
73
- Edit `~/.caddis/statusline.json`. Every key is optional; a missing file means defaults.
74
-
75
- | key | default | what it controls |
76
- |---|---|---|
77
- | `color` | `true` | ANSI colour |
78
- | `icons` | `true` | Unicode segment icons. These are plain Unicode, **not** Nerd Font glyphs |
79
- | `progress_bar` | `true` | the `[███░░░░░]` context bar |
80
- | `bar_width` | `8` | bar cells |
81
- | `token_counts` | `true` | `◉ 412k/1M` |
82
- | `cached_tokens` | `true` | `⚡ 386k cached` — bold and bright by design, never width-gated |
83
- | `ram` | `true` | `💻 57% (37 GB)` |
84
- | `ram_min_width` | `0` | hide RAM below this terminal width; `0` always shows it |
85
- | `clock` | `true` | `◷ 07:58` |
86
- | `relay` | `true` | `⏺ relay` when a parked resume pointer exists |
87
- | `rate_limits` | `true` | `5h:12% 7d:40%` (Claude Code only) |
88
- | `session_id` | `false` | `#a1b2c3d4` |
89
- | `git` | `true` | branch, staged/unstaged/untracked counts, ahead/behind |
90
- | `separator` | `"\|"` | segment separator |
91
-
92
- Config changes take effect on the next render. No reinstall needed.
93
-
94
- ## Notes for you, not the user
95
-
96
- - Do **not** hand-edit either `settings.json` to wire this. `--install` reads, merges and writes
97
- back, so it cannot drop an unrelated key. Hand edits have dropped `trustedWorkspaces` before.
98
- - The renderer never crashes the host. A bad payload, a missing field, or an unreadable config
99
- degrades to fewer segments; a hard failure degrades to the directory name.
100
- - RAM on Windows uses `ctypes` `GlobalMemoryStatusEx`, an in-process call. Do not replace it with
101
- `Get-CimInstance Win32_OperatingSystem` — that cost about 300 ms on **every** render in the
102
- PowerShell line this replaced.
103
- - If the user asks why their old `~/.claude/statusline-custom.sh` or
104
- `~/.gemini/statusline/statusline.ps1` no longer runs: nothing points at them any more. They are
105
- superseded, not deleted. Both are safe to remove once the user is happy with the new line.
6
+ This command was renamed to /caddis:install-statusline. Run /caddis:install-statusline now with the same arguments ($ARGUMENTS), and tell the user once: "/caddis:statusline is renamed to /caddis:install-statusline; the old name will be removed in the next release."
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "caddis-extras",
3
- "version": "1.3.36",
3
+ "version": "1.3.38",
4
4
  "description": "caddis-extras — the long-tail skills for the Antigravity (agy) caddis plugin; install alongside caddis for the full set."
5
5
  }
@@ -79,7 +79,7 @@ python "$TOOL" --range origin/main..HEAD # review a branch's c
79
79
  ```
80
80
  Optional flags: `--cwd <repo>`, `--base-url <url>`, `--model <id>` (override the env).
81
81
 
82
- **Diff-size ceiling.** A diff over `REVIEW_MAX_DIFF_CHARS` (default 60,000 chars) is **split into batches** on whole-file boundaries and each batch reviewed separately (verdict is CLEAN only if every batch is). Exit 2 now means a *single unsplittable file* over the ceiling, or too many batches — not an ordinary large diff. Previously it was refused with exit 2
82
+ **Diff-size ceiling.** A diff over `REVIEW_MAX_DIFF_CHARS` (default 60,000 chars) is **split into batches** on whole-file boundaries and each batch reviewed separately (verdict is CLEAN only if every batch is). Exit 4 means a *single unsplittable file* over the ceiling, or too many batches — not an ordinary large diff. Previously it was refused before any LLM call
83
83
  *before* any LLM call — an oversized diff has been observed to come back either an empty response, or
84
84
  worse, a `REVIEW: CLEAN` with zero real engagement. If you hit this, narrow `--range` or review in
85
85
  smaller chunks; don't just raise `--max-diff-chars` without knowing the endpoint's real limit.
@@ -89,14 +89,14 @@ smaller chunks; don't just raise `--max-diff-chars` without knowing the endpoint
89
89
  - **1 — REVIEW: BLOCKING** → the reviewer found blocking issues. **Read the printed findings, then FIX
90
90
  each blocking item** (or, if you judge one a false positive, state explicitly why it's safe to ignore).
91
91
  Re-run until CLEAN.
92
- - **2 — error** → no verdict parsed, a git failure, or an endpoint/parse failure. Read stderr; do not
92
+ - **4 — error** → no verdict parsed, a git failure, or an endpoint/parse failure. Read stderr; do not
93
93
  treat this as CLEAN — investigate.
94
94
  - **3 — misconfigured** → `REVIEW_API_KEY` is unset. Set it (see Prerequisites) and re-run.
95
95
 
96
96
  ## Rules
97
97
  - This is a **read-only second opinion** — the tool never edits, commits, or pushes. YOU apply fixes in
98
98
  the main thread after reading the findings.
99
- - Treat exit 2/3 as blocking-unknown, never as approval (the tool is fail-closed by design).
99
+ - Treat exit 3/4 as blocking-unknown, never as approval (the tool is fail-closed by design).
100
100
  - Different vendor ⇒ different style; weigh its findings on merit, don't cargo-cult them.
101
101
  - **Never use `find`, `Get-ChildItem -Recurse`, or any other filesystem-wide search to locate
102
102
  `oss_review.py`.** Check only the two paths above. On Git Bash under Windows, `find /` (or any
@@ -7,7 +7,7 @@ description: "USE THIS SKILL whenever a user asks for a comprehensive implementa
7
7
  # Golden Plan
8
8
 
9
9
  > **`/caddis:feature-plan` is the canonical planning entry point.** It writes to `.caddis/plans/`,
10
- > which is what `/caddis:implement`, `/caddis:handoff`, `/caddis:digress` and `/caddis:resume`
10
+ > which is what `/caddis:implement`, `/caddis:handoff`, `/caddis:digress` and `/caddis:catchup`
11
11
  > actually read, and it now carries this skill's evidence gate. Reach for golden-plan when you
12
12
  > specifically need its heavier apparatus — the data-binding tables, the query catalog, the
13
13
  > self-sweep. For ordinary multi-phase work, feature-plan is the shorter path to the same place.
@@ -18,19 +18,3 @@
18
18
  # [[skills.config]]
19
19
  # path = ".codex/skills/devops/windows-deployment"
20
20
  # enabled = false
21
-
22
- # ── junai MCP (pipeline state + project context) ─────────────────────────────
23
- # OFF by default. The junai MCP server tracks pipeline stage and project state
24
- # across sessions. Enable when the server is available locally.
25
- #
26
- # Prerequisites:
27
- # pip install junai-mcp (or: uv tool install junai-mcp)
28
- # codex mcp add junai -- python -m junai_mcp --project-root .
29
- #
30
- # Or add the block below manually and run `codex mcp list` to confirm:
31
- #
32
- # [[mcp_servers]]
33
- # name = "junai"
34
- # command = "python"
35
- # args = ["-m", "junai_mcp", "--project-root", "."]
36
- # env = {}
@@ -57,7 +57,7 @@ On a fresh session read in order: `.caddis/relay.md` (if present) → the active
57
57
  runbook, analysis, handoff) must open with a YAML frontmatter block:
58
58
  ```yaml
59
59
  ---
60
- type: plan|prd|adr|design|runbook|handoff|analysis|review
60
+ type: plan|prd|adr|design|runbook|handoff|analysis|review|prompt|parking-lot|rca|todo|relay|comms|reference|note|phase-report|implement-review|phase-verdict|hub-spawn|advisory-context|phase-prompt
61
61
  status: draft|current|done|superseded
62
62
  feature: <feature-slug>
63
63
  creation-agent: caddis
@@ -111,7 +111,7 @@ future: yes # OPTIONAL. yes = committed. Absent or `no` = a candida
111
111
  life, and whether we have agreed to do it. `python scripts/caddis_tidy.py --check` and the
112
112
  `caddis_gate.py parking-lot` gate both fail on a non-conforming item, so this is enforced, not
113
113
  advised. Two neighbours that are NOT the backlog: `/caddis:digress` parks an interrupted task on a
114
- stack (`/caddis:resume` pops it), and `.caddis/backlog/` is written by **docket** as a projection of
114
+ stack (`/caddis:catchup` pops it), and `.caddis/backlog/` is written by **docket** as a projection of
115
115
  its board — never hand-edit that one.
116
116
 
117
117
  ### Write environment facts down in the same turn
@@ -1,8 +1,8 @@
1
1
  {
2
- "poolVersion": "1.3.117",
2
+ "poolVersion": "1.3.120",
3
3
  "bundles": {
4
- "antigravity-plugin": "1.3.117",
5
- "antigravity-plugin-extras": "1.3.36",
4
+ "antigravity-plugin": "1.3.120",
5
+ "antigravity-plugin-extras": "1.3.38",
6
6
  "codex": "unknown"
7
7
  }
8
8
  }
@@ -326,7 +326,7 @@ import { isAbsolute, join } from "path";
326
326
  var PROVIDERS = {
327
327
  deepseek: {
328
328
  baseUrl: "https://api.deepseek.com/anthropic",
329
- model: "deepseek-v4-flash[1m]",
329
+ model: "deepseek-flash[1m]",
330
330
  keyEnv: "DEEPSEEK_API_KEY"
331
331
  },
332
332
  glm: {
@@ -326,7 +326,7 @@ import { isAbsolute, join } from "path";
326
326
  var PROVIDERS = {
327
327
  deepseek: {
328
328
  baseUrl: "https://api.deepseek.com/anthropic",
329
- model: "deepseek-v4-flash[1m]",
329
+ model: "deepseek-flash[1m]",
330
330
  keyEnv: "DEEPSEEK_API_KEY"
331
331
  },
332
332
  glm: {
@@ -326,7 +326,7 @@ import { isAbsolute, join } from "path";
326
326
  var PROVIDERS = {
327
327
  deepseek: {
328
328
  baseUrl: "https://api.deepseek.com/anthropic",
329
- model: "deepseek-v4-flash[1m]",
329
+ model: "deepseek-flash[1m]",
330
330
  keyEnv: "DEEPSEEK_API_KEY"
331
331
  },
332
332
  glm: {
package/dist/cli.js CHANGED
@@ -4888,7 +4888,7 @@ var init_resolve = __esm({
4888
4888
  PROVIDERS = {
4889
4889
  deepseek: {
4890
4890
  baseUrl: "https://api.deepseek.com/anthropic",
4891
- model: "deepseek-v4-flash[1m]",
4891
+ model: "deepseek-flash[1m]",
4892
4892
  keyEnv: "DEEPSEEK_API_KEY"
4893
4893
  },
4894
4894
  glm: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@caddis/cli",
3
- "version": "0.4.29",
3
+ "version": "0.4.32",
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",