CLAUDE.md · diff
git:20261006.3498157 to git:20261008.8eb3385
1 added, 1 removed. Audit A to A.
AUTONOMY_LEVEL: aggressive
- Solo OSS maintainer running with `bypassPermissions`. Atomic-ship convention applies (commit + push + tag + push tag + `gh release create` in one turn, except that the turn yields while the pre-tag reviewer runs, per §EXT §12 and runbook step 7) — see `feedback_claudemd_ship_from_main_atomic.md`. §5.1 Never-downgrade set binds as written in core §5.1 (single source; the verbatim list was deduped here 2026-07-25 — it drifts).
+ Solo OSS maintainer running with `bypassPermissions`. Atomic-ship convention applies (commit + push + tag + push tag + `gh release create` in one turn, except that the turn yields while the pre-tag reviewer runs, per §EXT §12 and runbook step 7) — see `feedback_claudemd_ship_from_main_atomic.md`. `main` is what users install (marketplace auto-update follows it on a version bump; `/claudemd-refresh` installs its HEAD), so a release is built and reviewed on `release/vX.Y.Z` with a draft PR and reaches `main` only together with its tag, and commits that change shipped files (`hooks/`, `spec/`, `commands/`, `scripts/`, `bin/`, `.claude-plugin/`) wait on the `next-release` branch, not on `main`. §5.1 Never-downgrade set binds as written in core §5.1 (single source; the verbatim list was deduped here 2026-07-25 — it drifts).
<!-- claude-mem-lite:begin v1 -->
## claude-mem-lite — persistent memory
PreToolUse hooks already run `mem_recall` for past lessons before Read/Edit/Write. The calls worth making proactively:
| When | Call |
|------|------|
| Before Edit/Write | hook already recalled; if an injected `#NN` lesson changed what you did, add the bare tag `(#NN)` once at the end of the sentence describing that change (citing = adopting; uncited lessons decay; skip ones that did not apply). No other mention of memory ids, saves or the memory store in replies to the user |
| A recalled memory drives an answer or a design choice | check its claim in the code or `git log` first: `#NN` and `E#NN` rows are notes from past sessions, many written automatically, so they can be wrong, and they describe the code as it was. If the code disagrees, trust the code and replace the note: `mem_save(..., supersedes=[NN])`, or `supersedes=["E#NN"]` for an event |
| After fixing a non-trivial bug | `mem_save(type="bugfix", lesson_learned="<root cause + fix, only what this change's diff shows>", importance=2)` |
| After a non-obvious architecture decision | `mem_save(type="decision", lesson_learned="<constraint + tradeoff>")` |
| Deferring to a future session | `mem_defer({title, priority:1|2|3, detail})`; when fixed, add `closes_deferred=[N]` to `mem_save` |
| Looking up past work / history | `mem_search "keywords"` · `mem_recent` · `mem_timeline` |
Path cost is round-trips, not milliseconds: the PreToolUse hook above already recalls (0 calls) — prefer it. For an explicit query, if these `mem_*` tools are deferred behind ToolSearch this session, the Bash CLI `claude-mem-lite` is one call vs two (ToolSearch + call); the MCP server instructions carry the absolute path to use when it is not on PATH.
Full tool + CLI tables, citation/decay rules, and save discipline → `.claude/plugin_claude_mem_lite.md`
<!-- claude-mem-lite:end -->
<!-- code-graph-mcp:begin v2 -->
## Code Graph (repo-wide AST index)
AST + FTS + vector index of the whole repo — prefer over multi-round Grep/Read for
structural queries (LSP only sees open files; this sees everything). Fastest path = Bash CLI:
| Intent | Command |
|--------|---------|
| Who calls X / what X calls | `code-graph-mcp callgraph X` |
| Impact before editing a fn | `code-graph-mcp impact X` |
| Unfamiliar dir / module | `code-graph-mcp overview <dir>` |
| Symbol source / signature | `code-graph-mcp show X` |
| Concept search (no exact name) | `code-graph-mcp search "…"` (vector: MCP `semantic_code_search`) |
| grep + AST context | `code-graph-mcp grep "pat" [paths] [-t lang] [-g glob] [-c]` |
Not on PATH? A plugin-only install keeps its own copy — same commands, run
`~/.cache/code-graph/bin/code-graph-mcp` (or `npm i -g @sdsrs/code-graph` once).
Still use Grep for literal strings/regex in non-code files; still Read files you'll edit.
Full command + MCP-tool table: `.claude/plugin_code_graph_mcp.md`
<!-- code-graph-mcp:end -->