claudemd-cli 0.31.0 → 0.32.1
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 +15 -0
- package/README.md +4 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,21 @@ 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.32.1] - 2026-07-10
|
|
12
|
+
|
|
13
|
+
**Patch — statusline: ctx segment no longer disappears right after `/clear`.** Reported live: immediately after `/clear` the meter rendered `[5h:0% · 7d:52%]` with no ctx segment. Root cause (verified against the CC 2.1.206 binary's payload constructor): before the first API response of a fresh session, CC sends `context_window` with an **explicit `used_percentage: null`** ("no usage yet"), which the renderer treated as "no data" and omitted. The `5h:0%` in the report was real data (new 5-hour window, fractional utilization floored), not part of the bug.
|
|
14
|
+
|
|
15
|
+
- **Fix** (`scripts/statusline.sh`): ctx extraction now distinguishes explicit-null from absent — `context_window` object present with a `used_percentage` key → null renders as `ctx:0%`; missing key / missing object / non-object still hides the segment (no fabricated 0% on foreign or pre-2.1.206 payloads). Side hardening: a non-object `context_window` (e.g. a string) no longer errors the jq program mid-stream.
|
|
16
|
+
- **Tests**: `tests/scripts/statusline.test.js` 20 → 23 cases (byte-shape post-/clear fixture with explicit nulls, object-without-key hidden, non-object garbage keeps later fields aligned).
|
|
17
|
+
- **Action on upgrade**: re-run `/claudemd-statusline` or any install/update to refresh `~/.claude/claudemd-statusline.sh`.
|
|
18
|
+
|
|
19
|
+
## [0.32.0] - 2026-07-10
|
|
20
|
+
|
|
21
|
+
**Minor — spec v6.15.0: §2.1 Model tiering (spawned-agent model selection).** Core §2.1 gains a SHOULD-level block after Tool escalation: spawned agents default to inheriting the session model (omit `model` when unsure); whitelist downgrade — sonnet for mechanical fan-out (search / fetch / extract / classify / enumerate) + lint-or-test-gated bulk edits, opus for test-gated plan-step code; decision-shaped stages (orchestrate / synthesize / verify / judge / root-cause debug / L3 / §5-hard / §8) NEVER downgrade. Invariants: verifier tier ≥ generator; anomalous downgraded output → one re-run at inherited tier; evidence bar tier-independent. Paired net-delete: §7 metric-coupled row's 6 project-specific examples removed (Candidate 1 of `tasks/core-net-delete-candidates-v6.14.md`, −169B measured vs −280~340 estimated). Core lands at 24978/25000 (22B headroom — next core addition must fully net-delete). Design doc: `tasks/specs/model-tiering.md`.
|
|
22
|
+
|
|
23
|
+
- **No hook / script changes** — spec text + version cascade only. `hard-rules.json` rules array unchanged (spec_version field bump only; rule is SHOULD, not HARD, per §13.2 budget gates).
|
|
24
|
+
- Version cascade: spec headers ×2, `spec/hard-rules.json` spec_version, `tests/scripts/spec-structure.test.js` (2 asserts), `tests/integration/upgrade-lifecycle.test.sh` NEW_SPEC_VER, manifest descriptions v6.14 → v6.15 per v0.2.1 policy.
|
|
25
|
+
|
|
11
26
|
## [0.31.0] - 2026-07-10
|
|
12
27
|
|
|
13
28
|
**Minor — statusline 5h/7d quota segments (user-visible default change).** The shipped statusline renderer's meter bracket grows from `[ctx:N%]` to `[ctx:N% · 5h:N% · 7d:N%]` — context window plus the 5-hour and weekly rate-limit windows, all **used %** with uniform thresholds (<50 green, 50-79 yellow, >=80 red), rendered faint (SGR 2) so the meter doesn't pull attention. **Action on upgrade**: none — re-run `/claudemd-statusline` (or any install/update, which refreshes `~/.claude/claudemd-statusline.sh`) to pick up the new renderer. **Opt-out**: `DISABLE_STATUSLINE_QUOTA=1` hides the quota segments (exact-match `1`, matching the repo's toggle convention); full revert = pin v0.30.0 or `/claudemd-statusline remove`.
|
package/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# claudemd
|
|
2
2
|
|
|
3
|
-
> A **personal AI-coding discipline harness**: one developer's opinionated **AI-CODING-SPEC v6.
|
|
3
|
+
> A **personal AI-coding discipline harness**: one developer's opinionated **AI-CODING-SPEC v6.15**, encoded as Claude Code shell hooks and shipped with the plugin. Built and dogfooded on my own repos — fork and adapt, don't adopt wholesale.
|
|
4
4
|
|
|
5
5
|
[](https://github.com/sdsrss/claudemd/actions/workflows/ci.yml)
|
|
6
6
|
[](https://www.npmjs.com/package/claudemd-cli)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
|
|
9
|
-
claudemd plugs into the Claude Code hook system to **block commits, pushes, and bash commands** that violate AI-CODING-SPEC v6.
|
|
9
|
+
claudemd plugs into the Claude Code hook system to **block commits, pushes, and bash commands** that violate AI-CODING-SPEC v6.15 — banned vocabulary in commit messages, `rm -rf $VAR` without variable validation, ship-on-red-CI, unread `MEMORY.md` entries during release flows, and more. The spec itself (`CLAUDE.md` + `CLAUDE-extended.md` + `CLAUDE-changelog.md` + `OPERATOR.md`) ships with the plugin and installs into `~/.claude/`, so the rules Claude Code reads at session start match the rules the hooks enforce. (`OPERATOR.md` is the human-only spec-maintenance handbook — Agent-loaded files are the CLAUDE trio.)
|
|
10
10
|
|
|
11
11
|
A standalone CLI (`npx claudemd-cli`) reuses the same `banned-vocab.patterns` source for git pre-commit hooks, GitHub Actions, and other agents that don't run inside Claude Code.
|
|
12
12
|
|
|
@@ -60,7 +60,7 @@ Verify in one command (Linux): `node --version && jq --version && gh --version &
|
|
|
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
|
-
| Spec v6.
|
|
63
|
+
| Spec v6.15 | `~/.claude/CLAUDE.md` · `CLAUDE-extended.md` · `CLAUDE-changelog.md` · `OPERATOR.md` (backup-before-overwrite) |
|
|
64
64
|
| StatusLine (opt-out) | PS1-style line — `user@host:/path (branch) Model [ctx:N% · 5h:N% · 7d:N%]` (context / 5-hour quota / weekly quota, all **used %**, read from Claude Code's `rate_limits` payload; quota segments auto-hide when the data is absent, or force-hide with `DISABLE_STATUSLINE_QUOTA=1`) — 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`. |
|
|
65
65
|
|
|
66
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.
|
|
@@ -338,7 +338,7 @@ claudemd/
|
|
|
338
338
|
├── commands/ # 12 slash-command markdown files
|
|
339
339
|
├── bin/ # standalone CLI entrypoint (claudemd-lint.js → `npx claudemd-cli` on npmjs.org)
|
|
340
340
|
├── scripts/ # 16 Node.js management scripts + scripts/lib/ (single-source registry, lint, etc.)
|
|
341
|
-
├── spec/ # shipped v6.
|
|
341
|
+
├── spec/ # shipped v6.15.0 CLAUDE*.md trio + OPERATOR.md + hard-rules.json manifest
|
|
342
342
|
├── tests/ # hook shell tests + Node.js tests + integration + fixtures
|
|
343
343
|
├── docs/ # ADDING-NEW-HOOK.md + RULE-HITS-SCHEMA.md + superpowers/
|
|
344
344
|
└── .github/workflows/ # ci.yml (ubuntu+macOS × node 20) + npm-publish.yml (tag-triggered)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudemd-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.1",
|
|
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": {
|