aboutsummaryrefslogtreecommitdiffstats
path: root/bin
Commit message (Collapse)AuthorAgeFilesLines
* refactor(hooks): split wrappers from implementationsThomas Vanbesien7 days3-102/+1
| | | | | | | | | | | | | 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.
* feat: add installerThomas Vanbesien7 days1-0/+30
| | | | | | | | 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.
* feat: remove auto-memory wiringThomas Vanbesien7 days3-114/+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: point per-project automemory at the repo's own .claude/Thomas Vanbesien11 days2-4/+58
| | | | | | | | | | 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 Vanbesien11 days2-0/+124
| | | | | | | | | | 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.
* refactor: track .claude with each repo, drop the external storeThomas Vanbesien11 days1-5/+5
| | | | | | | | | | | | | | | | | | | | | The per-project store kept each project's `.claude/` under `projects/<encoded-cwd>/.claude/` with `$PWD/.claude` a symlink into it, wired by a `Setup` hook. The indirection bought nothing — a project's `.claude/` belongs in that project's own repo. Discard it. - remove `hooks/setup-init.sh` (the symlink-wiring `Setup` hook) and its registration - remove `hooks/worktree-create.sh`: with `.claude/` tracked, a worktree checks out its own, so `claude --worktree` reverts to the built-in - rework `session-start.sh`: drop the `Setup`→`SessionStart` `.last-setup-result.json` channel, report each memory file as a whole-KB size, and warn only when the always-loaded MEMORY.md index exceeds 25 KB - `.gitignore` now tracks the top-level `.claude/` and, under `projects/`, only `memory/` (the harness auto-memory) tested: `session-start.sh` renders the KB stats table with no `Setup` section and valid JSON; no tracked `projects/*/.claude/*` remain.
* feat: add managed-files audit util and Setup hookThomas Vanbesien11 days2-0/+225
| | | | | | | | | | | | | bin/managed-files.sh classifies every file under the config dir as git-tracked, Syncthing-synced, local, or both, to check that the .gitignore and .stignore splits agree (the "both" bucket should stay empty). bin/managed-files.hook.sh wraps it as a Setup hook, writing the report and a JSON record of the four counts to machine-local dotfiles at the project root. Whitelist just these two files under bin/ in .gitignore. The per-machine hook registration in projects/*/.claude/settings.json and the report outputs stay untracked.
* feat: fold the memory store in and wire projects via hooksThomas Vanbesien11 days1-426/+0
| | | | | | | | | | | Collapse the double-submodule setup (claude-config + claude-memory) into this single repo and replace the `claude-wrapper` launcher with hooks, so `claude` runs directly — no alias, no installer. Verified: `claude --init-only` wires/repairs the link and the no-store path points at `dotfiles claude-adopt-project`; `git check-ignore` confirms `*.jsonl`, session dirs, `settings.local.json`, and `worktrees/` stay out while the stores and auto-memory are tracked.
* feat: add claude memory interface for the store repoThomas Vanbesien12 days1-5/+55
| | | | | | | | | | | | The memory store is now a standalone git repo beside this config dir, a sibling rather than nested (nesting would make it a submodule of a submodule). - `claude-wrapper` gains `claude memory [status | git … | commit]` to drive the store repo, and its default store root moves to `~/.config/claude-memory` (still overridable via `CLAUDE_MEMORY_DIRS`). - Add a bash completion for `claude memory`, installed by `install.sh`. - Track `completions/`; refresh the README and the `.gitignore` note.
* Initial commit: track authored Claude Code configThomas Vanbesien12 days1-0/+376
Track only the hand-authored configuration of the ~/.config/claude config dir. Runtime state, caches, and secrets stay untracked via a whitelist .gitignore. - .gitignore: whitelist ignore — everything excluded except the paths below - README.md: map of tracked vs. untracked (runtime/secret) entries - install.sh: bootstrap/installer for the config dir - bin/claude-wrapper: the `claude` launcher (wires memory.d/, --add-dir) - hooks/: harness hooks registered in settings.json - format-on-edit: bash-format.sh, lua-format.sh, clang-format.sh, cmake-format.sh, qml-format.sh, black-format.sh, markdown-format.sh, php-cs-fixer.sh - bash-log.sh: Bash-tool logger - status-line.sh: custom status line - worktree-create.sh: WorktreeCreate hook - skills/common-commit/: shared commit-message skill (SKILL.md + examples/emphasis.txt, examples/lists.txt) - agents/.gitkeep: keep the empty agents/ dir