@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.
- package/bundles/antigravity-plugin/caddis_statusline.py +0 -1
- package/bundles/antigravity-plugin/mcp_ping_server.py +1 -1
- package/bundles/antigravity-plugin/plugin.json +1 -1
- package/bundles/antigravity-plugin/scripts/caddis_adhoc.py +301 -66
- package/bundles/antigravity-plugin/scripts/caddis_exit.py +15 -0
- package/bundles/antigravity-plugin/scripts/caddis_frontmatter.py +145 -0
- package/bundles/antigravity-plugin/scripts/caddis_gate.py +33 -10
- package/bundles/antigravity-plugin/scripts/caddis_governor.py +5 -2
- package/bundles/antigravity-plugin/scripts/caddis_lanes.py +13 -1
- package/bundles/antigravity-plugin/scripts/caddis_migrate_dir.py +1 -1
- package/bundles/antigravity-plugin/scripts/caddis_spawn.py +2 -2
- package/bundles/antigravity-plugin/scripts/caddis_statusline.py +0 -1
- package/bundles/antigravity-plugin/scripts/caddis_tidy.py +9 -14
- package/bundles/antigravity-plugin/scripts/claudster_doctor.py +66 -0
- package/bundles/antigravity-plugin/scripts/convert_doc_to_confluence.py +1430 -0
- package/bundles/antigravity-plugin/scripts/new-machine.ps1 +1 -1
- package/bundles/antigravity-plugin/scripts/oss_ask.py +6 -5
- package/bundles/antigravity-plugin/scripts/oss_model.py +1 -1
- package/bundles/antigravity-plugin/scripts/oss_review.py +84 -15
- package/bundles/antigravity-plugin/scripts/secret_filter.py +316 -0
- package/bundles/antigravity-plugin/scripts/setup_project_ai.py +9 -4
- package/bundles/antigravity-plugin/skills/_registry.md +5 -3
- package/bundles/antigravity-plugin/skills/catchup/SKILL.md +37 -2
- package/bundles/antigravity-plugin/skills/cross-review/SKILL.md +1 -1
- package/bundles/antigravity-plugin/skills/data-lineage/SKILL.md +1 -1
- package/bundles/antigravity-plugin/skills/digress/SKILL.md +1 -1
- package/bundles/antigravity-plugin/skills/handoff/SKILL.md +8 -1
- package/bundles/antigravity-plugin/skills/hld/SKILL.md +1 -1
- package/bundles/antigravity-plugin/skills/implement/SKILL.md +3 -1
- package/bundles/antigravity-plugin/skills/install-statusline/SKILL.md +105 -0
- package/bundles/antigravity-plugin/skills/lld/SKILL.md +1 -1
- package/bundles/antigravity-plugin/skills/mmr/SKILL.md +23 -14
- package/bundles/antigravity-plugin/skills/resume/SKILL.md +2 -32
- package/bundles/antigravity-plugin/skills/review/SKILL.md +2 -96
- package/bundles/antigravity-plugin/skills/review-pr/SKILL.md +100 -0
- package/bundles/antigravity-plugin/skills/statusline/SKILL.md +2 -101
- package/bundles/antigravity-plugin-extras/plugin.json +1 -1
- package/bundles/antigravity-plugin-extras/skills/cross-review/SKILL.md +3 -3
- package/bundles/antigravity-plugin-extras/skills/golden-plan/SKILL.md +1 -1
- package/bundles/codex/.codex/config.toml.example +0 -16
- package/bundles/codex/AGENTS.md +2 -2
- package/bundles/manifest.json +3 -3
- package/dist/claude-deepseek.js +1 -1
- package/dist/claude-glm.js +1 -1
- package/dist/claude-oss.js +1 -1
- package/dist/cli.js +1 -1
- package/package.json +1 -1
|
@@ -1,105 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: statusline
|
|
3
|
-
description:
|
|
3
|
+
description: Renamed to /caddis:install-statusline (alias, removed next release)
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
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."
|
|
@@ -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
|
|
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
|
-
- **
|
|
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
|
|
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:
|
|
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 = {}
|
package/bundles/codex/AGENTS.md
CHANGED
|
@@ -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:
|
|
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
|
package/bundles/manifest.json
CHANGED
package/dist/claude-deepseek.js
CHANGED
package/dist/claude-glm.js
CHANGED
package/dist/claude-oss.js
CHANGED
package/dist/cli.js
CHANGED
package/package.json
CHANGED