claudemd-cli 0.24.1 → 0.25.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/CHANGELOG.md +29 -0
- package/README.md +3 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,35 @@ All notable changes to the `claudemd` plugin. This changelog tracks plugin artif
|
|
|
8
8
|
- **Canonical spec version source**: `spec/CLAUDE.md` top-line title (`# AI-CODING-SPEC vX.Y.Z — Core`) + `spec/CLAUDE-changelog.md` top `##` entry.
|
|
9
9
|
- **Plugin semver vs spec semver** are independent: plugin patch (0.2.0 → 0.2.1) may ship when spec is unchanged (this release); plugin minor (0.1.9 → 0.2.0) ships when spec minor updates (v0.2.0 shipped spec v6.10.0).
|
|
10
10
|
|
|
11
|
+
## [0.25.0] - 2026-07-05
|
|
12
|
+
|
|
13
|
+
**Minor — statusLine auto-registration: a new PS1-style statusLine — `user@host:/path (branch) Model [ctx:N%]` — with a semantic context-pressure color (`[ctx:N%]` green <50%, yellow 50–79%, red ≥80%).** Spec content unchanged (stays v6.14.1).
|
|
14
|
+
|
|
15
|
+
- **Auto (install):** a fresh install wires the statusLine into `~/.claude/settings.json` **only when the `statusLine` slot is empty**. An existing statusline (any other provider) is left untouched; a statusline error never fails the install.
|
|
16
|
+
- **Command:** `/claudemd-statusline` (adopt) · `check` (report the current owner, no writes) · `remove` (restore the prior statusline or clear the slot; delete the renderer) · `--force` (take over a foreign slot, saving its command so `remove` can restore it). Always shows the diff and asks before writing (`~/.claude/settings.json` is a §5 hard-AUTH path).
|
|
17
|
+
- **Opt-out:** set `CLAUDEMD_NO_STATUSLINE=1` before install to skip the statusLine write entirely.
|
|
18
|
+
- **Revert:** `/claudemd-statusline remove` restores the prior statusline (or clears the slot) and deletes `~/.claude/claudemd-statusline.sh`.
|
|
19
|
+
|
|
20
|
+
Migration: existing users with a statusline already configured see no change (empty-slot-only install). To adopt claudemd's line, run `/claudemd-statusline` (`--force` to replace another provider's).
|
|
21
|
+
|
|
22
|
+
### Added — `scripts/lib/statusline.js` + `scripts/statusline-adopt.js` (CLI: detect/adopt/remove) + `scripts/statusline.sh` (renderer)
|
|
23
|
+
|
|
24
|
+
- `detect` reports `absent | claudemd | foreign` plus whether `~/.claude/claudemd-statusline.sh` matches the shipped renderer. `adopt` writes the stable-path command `bash "$HOME/.claude/claudemd-statusline.sh"` and copies the renderer (`--empty-only` install-time guard, `--force` foreign-slot takeover with prior-command save, `--dry-run` preview). `remove` restores the saved prior command (or clears the slot) and deletes the copied renderer; no-op if claudemd doesn't own the slot.
|
|
25
|
+
- `scripts/statusline.sh`: single NUL-delimited `jq` read so an embedded newline in a field can't misalign cwd/model/context; `[ctx:N%]` from `.context_window.used_percentage`, threshold-colored (green/yellow/red at 50/80).
|
|
26
|
+
|
|
27
|
+
### Added — `/claudemd-statusline` (agent contract)
|
|
28
|
+
|
|
29
|
+
- `commands/claudemd-statusline.md`: detect → consent gate (always, binds under `AUTONOMY_LEVEL: aggressive`) → adopt/remove → re-verify and cite `verdict: claudemd` as completion evidence.
|
|
30
|
+
|
|
31
|
+
### Changed — `install.js` / `uninstall.js`
|
|
32
|
+
|
|
33
|
+
- Install: best-effort empty-slot-only statusLine adopt runs after the spec/hook/manifest steps; `CLAUDEMD_NO_STATUSLINE=1` skips it entirely.
|
|
34
|
+
- Uninstall: un-wires a claudemd-owned statusLine entry and deletes `~/.claude/claudemd-statusline.sh`; a foreign statusline is left untouched.
|
|
35
|
+
|
|
36
|
+
### Tests
|
|
37
|
+
|
|
38
|
+
- `tests/scripts/statusline.test.js`, `statusline-adopt.test.js`, `statusline-cli.test.js`; install/uninstall coverage in `install.test.js` (#200-202: empty-slot set, foreign no-clobber, `CLAUDEMD_NO_STATUSLINE` opt-out) and `uninstall.test.js` (#546-547: cleanup + foreign-untouched). Full suite: 570 Node tests + 22 shell hook suites + 2 integration suites (`full-lifecycle`, `upgrade-lifecycle`) all pass; `upgrade-lifecycle` explicitly asserts `manifest.version upgraded to 0.25.0`.
|
|
39
|
+
|
|
11
40
|
## [0.24.1] - 2026-07-05
|
|
12
41
|
|
|
13
42
|
**Patch — fix the macOS CI red on v0.24.0: `design-detect.js`'s "run as main" guard now realpaths both sides so a symlinked invocation path resolves.** Spec unchanged.
|
package/README.md
CHANGED
|
@@ -58,9 +58,10 @@ Verify in one command (Linux): `node --version && jq --version && gh --version &
|
|
|
58
58
|
| Layer | Contents |
|
|
59
59
|
|---|---|
|
|
60
60
|
| 16 shell hooks | `banned-vocab-check` · `pre-bash-safety-check` · `ship-baseline-check` · `residue-audit` · `memory-read-check` · `memory-prompt-hint` · `mid-spine-yield-scan` · `sandbox-disposal-check` · `session-start-check` · `session-extended-read` · `session-summary` · `session-end-check` · `transcript-vocab-scan` · `transcript-structure-scan` · `version-sync` · `mem-audit` |
|
|
61
|
-
|
|
|
61
|
+
| 15 slash commands | `/claudemd-install` · `/claudemd-status` · `/claudemd-update` · `/claudemd-audit` · `/claudemd-toggle` · `/claudemd-doctor` · `/claudemd-analyze` · `/claudemd-uninstall` · `/claudemd-rules` · `/claudemd-clean-residue` · `/claudemd-sparkline` · `/claudemd-sampling-audit` · `/claudemd-bypass-audit` · `/claudemd-design-adopt` · `/claudemd-statusline` |
|
|
62
62
|
| 1 standalone CLI | `claudemd-cli lint` · `claudemd-cli audit` ([npm: `claudemd-cli`](https://www.npmjs.com/package/claudemd-cli)) |
|
|
63
63
|
| Spec v6.14 | `~/.claude/CLAUDE.md` · `CLAUDE-extended.md` · `CLAUDE-changelog.md` · `OPERATOR.md` (backup-before-overwrite) |
|
|
64
|
+
| StatusLine (opt-out) | PS1-style line — `user@host:/path (branch) Model [ctx:N%]` — wired into `~/.claude/settings.json` on install **only when the slot is empty**; an existing statusline is left untouched. Skip entirely with `CLAUDEMD_NO_STATUSLINE=1`. Manage via `/claudemd-statusline`. |
|
|
64
65
|
|
|
65
66
|
Install moves any existing `~/.claude/CLAUDE*.md` to `~/.claude/backup-<ISO>/` (last 5 kept automatically). Uninstall offers `keep / restore / delete`; `delete` requires an extra confirmation.
|
|
66
67
|
|
|
@@ -114,6 +115,7 @@ Per-hook timeout (3-5s in `hooks.json`); timeout = treated as exit 0 (pass) per
|
|
|
114
115
|
| `/claudemd-sparkline [--days=A,B,C]` | v0.8.4+ R-N9 — per-`spec_section` cumulative counts of signal events across 3 windows (default 30/60/90d). Trend arrow compares per-period rate; `(newly active)` / `(silenced)` annotations flag activation/deactivation transitions. Markdown block suitable for CHANGELOG header pre-release. |
|
|
115
116
|
| `/claudemd-clean-residue [--apply]` | Dry-run-by-default cleanup of stale `claudemd-sync-*` sentinels and historical `claudemd-(mockgh\|work).*` test sandboxes. |
|
|
116
117
|
| `/claudemd-design-adopt [check\|remove]` | v0.24.0 — for a UI project, generate a thin, fact-based `DESIGN.md` from its real design-token sources (deterministic detector `scripts/design-detect.js`; evidence-gated rules menu; never invents values) and wire a sentinel block into project CLAUDE.md. `check` verifies pointers resolve; `remove` unwires. Always shows the diff and asks before writing. Manual/opt-in — no SessionStart hook, nothing auto-fires. |
|
|
118
|
+
| `/claudemd-statusline [check\|remove] [--force]` | v0.25.0 — register claudemd's PS1-style statusLine into `~/.claude/settings.json`. Default adopts into an empty slot; `check` reports the current owner with no writes; `remove` restores the prior statusline (or clears the slot) and deletes `~/.claude/claudemd-statusline.sh`; `--force` takes over another provider's slot, saving its command so `remove` can restore it. Always shows the diff and asks before writing. Install-time auto-adopt is empty-slot-only (opt-out: `CLAUDEMD_NO_STATUSLINE=1`). |
|
|
117
119
|
| `/claudemd-uninstall` | Pre-uninstall cleanup: clears manifest + state + log + legacy `settings.json` hook entries. Run BEFORE `/plugin uninstall claudemd@claudemd` (see [Uninstall](#uninstall)). |
|
|
118
120
|
|
|
119
121
|
---
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudemd-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "Standalone CLI for §10-V banned-vocab + transcript scanning. Companion to the claudemd Claude Code plugin (github.com/sdsrss/claudemd) for use in git pre-commit hooks, GitHub Actions, and other agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|