aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* feat: reword semantic line break sectionHEADmasterdevThomas Vanbesien5 days1-9/+7
|
* feat: set default model to opusThomas Vanbesien5 days1-1/+1
|
* feat: consider empty answers as timeoutsThomas Vanbesien5 days1-0/+1
|
* feat: add instructions about dev branches being rewritableThomas Vanbesien5 days1-0/+1
|
* feat: change default model to fableThomas Vanbesien5 days1-1/+1
|
* docs: regroup shell and todo notes under HarnessThomas Vanbesien5 days1-8/+9
| | | | | | | Rename the Memory section to Harness and nest the Shell notes under it, alongside a new todo-list preference. Reword the long-form-flags note and fix a grammar slip in the agent-spawning rule.
* feat(hooks): colour the SessionStart memory messageThomas Vanbesien5 days1-3/+25
| | | | | | | | | | | ANSI-colour the systemMessage so it stands out at a glance: memory rows cyan, a "(missing)" row red with an ❌, the $HOME warning yellow with a ⚠️ per line. Colours wrap each line around its already-computed padding, so the util's column alignment is unaffected -- ANSI bytes never count toward printf's width. jq encodes the ESC byte as an escape in the JSON and the harness restores a real ESC when it prints.
* docs: instruct forcing colour for the Bash monitor; add Shell sectionThomas Vanbesien5 days1-1/+6
|
* docs(hooks): describe the unified dump hook and SessionEndThomas Vanbesien5 days1-4/+3
|
* feat(hooks): unify payload dumps into one generic hookThomas Vanbesien5 days6-80/+61
| | | | | | | | | | | Replace the three near-identical dump scripts with a single dump.hook.sh that derives both target dir and filename from the payload: dir from hook_event_name (trailing `failure` stripped so the two post events share posttooluse), id from tool_use_id else session_id-source/reason. This adds SessionEnd for free, so register the hook (and the notifier) on SessionEnd too, and extend the notifier's id fallback to reason.
* docs(hooks): document the Neovim notifier hookThomas Vanbesien5 days1-1/+3
| | | | | | Add nvim-notify.hook.sh to the hook roster and give it its own bullet describing the User Claude<Event> autocmd and how the pattern and data are derived from the payload.
* feat(hooks): notify $NVIM of state dumpsThomas Vanbesien5 days2-0/+54
| | | | | | | | | | | | | | | | Add nvim-notify.hook.sh, a generic hook that tells the Neovim instance owning the terminal ($NVIM) that a state dump is available, by firing a `User Claude<Event>` autocmd whose `data` is the dump's basename. The signal is derived from the payload, so the one script serves every event it is registered against: `hook_event_name` becomes the pattern, and `tool_use_id` (else `session_id-source`) becomes the `data`, matching how the dump hooks name their files. It is a no-op outside a Neovim terminal or without an identifier, and the remote call is backgrounded with a timeout so a slow or absent editor never blocks a tool call. Register it after each dump hook on SessionStart, PreToolUse (Bash), PostToolUse (Bash), and PostToolUseFailure (Bash).
* docs: describe the SessionStart payload dump hookThomas Vanbesien5 days1-0/+1
|
* feat(hooks): dump the SessionStart payload to a state fileThomas Vanbesien5 days2-0/+28
| | | | | | | | | | Add sessionstart-dump.hook.sh, mirroring the Bash payload dumps: it writes the full SessionStart JSON to $XDG_STATE_HOME/claude/sessionstart/<session_id>-<source>.json. Register it as a second SessionStart hook, alongside the memory-status report. session_id is stable across a session's fires, so source (startup/resume/clear/compact) is appended to keep them distinct.
* feat: emphasize the importance of semantic line breaksThomas Vanbesien5 days1-0/+1
|
* feat: add instruction to not spawn agents unpromptedThomas Vanbesien5 days1-0/+2
|
* feat(hooks): warn when SessionStart runs from $HOMEThomas Vanbesien5 days1-0/+11
| | | | | | $HOME is not treated as a project, so home skills (~/.claude/skills) only load with --add-dir $HOME. No payload exposes whether that flag was passed, so append the warning whenever cwd is $HOME.
* docs: describe the Bash payload dump hooksThomas Vanbesien5 days1-1/+2
| | | | | | Update the Hooks bullet and add a Bash dumps bullet covering the pre/post split, the PostToolUseFailure registration, and the tool_use_id pairing.
* feat(hooks): dump Bash payloads as JSON, replacing the loggerThomas Vanbesien5 days4-73/+42
| | | | | | | | | | | | Capture each Bash call's full pre/post JSON payload to $XDG_STATE_HOME/claude/{pretooluse,posttooluse}/<tool_use_id>.json. The pre dump is the command (input), the post dump is command plus result (output); the post hook registers on PostToolUse and PostToolUseFailure so failed commands are captured. Naming files by the shared tool_use_id lets a consumer pair a call's input and output dumps by matching basename across the two folders. Retire the per-session bash-log hook, which the dumps supersede.
* feat: add pretooluse hookThomas Vanbesien5 days2-0/+33
|
* docs: reflect the hooks/bin splitThomas Vanbesien7 days1-1/+2
| | | | | | Describe the hooks as thin .hook.sh wrappers in hooks/ backed by their by-hand implementations in bin/, and repoint the managed-files audit reference at bin/.
* refactor(hooks): split wrappers from implementationsThomas Vanbesien7 days17-83/+41
| | | | | | | | | | | | | Move the hook wrappers out of bin/ into hooks/, and name every registered hook with a .hook.sh suffix. bin/ keeps only the standalone installer and the by-hand utilities (memory-status.sh, managed-files.sh) that those wrappers now resolve as their implementations. Coalesce the eight per-language formatter hooks into a single format.hook.sh that dispatches on file type with a case, so no file is ever run through more than one formatter. Update settings.json, .claude/settings.json, and .gitignore to match.
* feat: warn when session env is inactiveThomas Vanbesien7 days1-1/+21
| | | | | | | Have bin/install.sh warn to log back in when the drop-in's vars are not yet active in the session, since environment.d is read only at login. Before falling back to a default $XDG_CONFIG_HOME, warn and, when interactive, pause so the user can set it first.
* docs: document bin/install.shThomas Vanbesien7 days2-0/+4
| | | | | | Note the new installer in the README and the project CLAUDE.md: it installs the binary and writes the session-env drop-in that sets CLAUDE_CONFIG_DIR and CLAUDE_CODE_DISABLE_AUTO_MEMORY.
* feat: add installerThomas Vanbesien7 days2-0/+31
| | | | | | | | Add bin/install.sh, the standalone Claude Code installer. It installs or updates the binary, then writes the systemd user drop-in $XDG_CONFIG_HOME/environment.d/50-claude.conf, pointing CLAUDE_CONFIG_DIR at this repo and setting CLAUDE_CODE_DISABLE_AUTO_MEMORY=1. Whitelist it in .gitignore alongside the other bin/ scripts.
* docs: drop auto-memory references; revise conventionsThomas Vanbesien7 days3-11/+5
| | | | | | | Remove the auto-memory mentions from README, CLAUDE.md, and the project CLAUDE.md now that the feature is gone. Also drop the "Never git push" rule, add the README/CLAUDE.md update reminder and the separate-docs- commit convention, and trim the writing guidance.
* feat: remove auto-memory wiringThomas Vanbesien7 days13-399/+15
| | | | | | | | | Drop the user-level Setup hook that pointed each project's automemory at its own .claude/memory/, the tracked memory entries, and the autoMemoryDirectory settings. Strip the automemory stats, counts, and warnings from the SessionStart memory-status report, leaving the CLAUDE.md rows. Auto-memory is now disabled via CLAUDE_CODE_DISABLE_AUTO_MEMORY in the environment.
* feat: add non-code writing instructionsThomas Vanbesien7 days1-6/+15
|
* feat: default theme → light; reformatThomas Vanbesien7 days1-4/+4
|
* feat: add instructions -> semantic line break, code max line widthThomas Vanbesien7 days1-4/+15
|
* docs: reference "the user" rather than "me"Thomas Vanbesien7 days1-3/+1
|
* feat: dark theme by defaultThomas Vanbesien7 days1-1/+1
|
* feat: remove rules/markdown.mdThomas Vanbesien8 days1-16/+0
|
* feat: simplify git permissionsThomas Vanbesien8 days1-20/+7
| | | | | Collapse the granular git/dotfiles-git allow entries into a single Bash(git *) rule, ask before commits, and deny push.
* feat(settings): allow git checkout in the Bash allowlistThomas Vanbesien10 days1-0/+2
|
* docs: add comment-behavior and line-length rules to Code sectionThomas Vanbesien10 days1-0/+2
|
* feat(settings): allow `dotfiles git` passthrough commandsThomas Vanbesien10 days1-0/+9
| | | | | | Mirror the plain-`git` allowlist for the `dotfiles git …` helper, now that Claude's Bash reaches the dotfiles repo through the passthrough rather than a forced GIT_DIR env.
* chore(settings): normalize and extend the Bash allowlistThomas Vanbesien10 days1-8/+12
| | | | | Migrate the allow entries from `:*` to ` *` syntax, sort them alphabetically, and add `git add`/`grep`/`restore`/`rm`.
* docs: add Conventional Commits guidelinesThomas Vanbesien10 days1-6/+17
|
* misc: allow the WebSearch tool and switch to the light themeThomas Vanbesien10 days1-1/+3
|
* docs: rework memory entriesThomas Vanbesien10 days12-202/+231
|
* feat: allow the WebFetch tool without promptingThomas Vanbesien10 days1-1/+2
|
* docs: update auto-memory location and hook layoutThomas Vanbesien10 days2-10/+19
| | | | | | Reflect the per-repo .claude/memory/ relocation and the SessionStart hook split (bin/session-start.hook.sh + bin/memory-status.sh) in README.md and the project CLAUDE.md.
* misc: move this repo's automemory into its own .claude/Thomas Vanbesien10 days7-0/+1
| | | | | | | Relocate the tracked automemory store from projects/<encoded-cwd>/memory/ to .claude/memory/, and set autoMemoryDirectory in this repo's .claude/settings.json so the harness writes new automemory there. Matches the relocation the new Setup hook applies to every project.
* feat: point per-project automemory at the repo's own .claude/Thomas Vanbesien10 days4-4/+69
| | | | | | | | | | Add a user-level Setup hook (bin/auto-memory-dir.hook.sh) that sets autoMemoryDirectory to "$CLAUDE_PROJECT_DIR/.claude/memory/" in each project's .claude/settings.json, so automemory lives with the repo instead of under the shared projects/<encoded-cwd>/ default. Extend memory-status.sh to resolve the automemory dir from that setting (when present) and to warn when a project has not opted in.
* refactor: split SessionStart hook into memory-status util + wrapperThomas Vanbesien10 days4-20/+45
| | | | | | | | | | Mirror the managed-files.{sh,hook.sh} convention: move the stats logic out of hooks/session-start.sh into a standalone bin/memory-status.sh (runnable by hand, takes cwd as $1), and add a thin bin/session-start.hook.sh wrapper that does the stdin/JSON plumbing. Behavior change: omit the 'Automemory entries' row when MEMORY.md is missing, rather than showing a 0 count.
* docs: trim user CLAUDE.md to essentialsThomas Vanbesien10 days1-18/+8
|
* misc: register claude-plugins-official marketplaceThomas Vanbesien10 days1-3/+10
|
* misc: remove the common-commit skillThomas Vanbesien10 days3-75/+0
|
* feat: show automemory entry count in session-start hookThomas Vanbesien10 days3-0/+48
| | | | | Add an "Automemory entries" row to the SessionStart stats — the count of *.md under the automemory dir minus the always-loaded MEMORY.md index.