原始内容
claude-config
My personal Claude Code configuration — agents, skills, commands, rules, and settings.
Built on top of everything-claude-code.
What's inside
claude/
├── CLAUDE.md # Global identity, working style, code principles
├── settings.template.json # Hooks/env template (CC_ROOT is filled in by install.sh)
├── agents/ # Subagents (architect, planner, code-reviewer, security...)
├── commands/ # Slash commands (/plan, /tdd, /code-review, /checkpoint...)
├── rules/ # Always-follow guidelines (security, testing, git, style...)
└── skills/ # Workflow definitions and domain knowledge
claude/settings.jsonis generated locally fromsettings.template.jsonon every./install.shrun and is gitignored — your absolute paths never end up in the repo.
Install
Clone the repo anywhere you like, then run the installer:
git clone https://github.com/aleonsa/claude-config.git
cd claude-config
chmod +x install.sh
./install.sh
What install.sh does:
- Generates
claude/settings.jsonfromclaude/settings.template.json, substituting the__CC_ROOT__placeholder with the absolute path of wherever you cloned the repo. - Symlinks
~/.claude/CLAUDE.md,~/.claude/settings.json, and theagents/,commands/,rules/,skills/directories into the repo, sogit pullupdates everything in-place.
Update
cd <your-clone-path>
git pull
./install.sh # regenerates settings.json in case the template changed
The directory and CLAUDE.md symlinks pick up changes automatically; re-running
install.sh only matters when the hooks template changes.
Why a template instead of a committed settings.json?
The hook commands need an absolute path to the repo (CC_ROOT) so Claude Code can
locate the hook scripts. Committing one user's absolute path would force every other
contributor to hand-edit it. The template + generated-and-gitignored settings.json
pattern keeps each clone working with zero per-user edits — and keeps personal paths
out of the repo history.
CC_ROOTis used instead ofCLAUDE_PLUGIN_ROOTbecause the latter is a name Claude Code reserves for plugin-stylehooks/hooks.jsonfiles; using it inside user-levelsettings.jsonraises a "hook is not associated with a plugin" error.
Customizing per project
Add a CLAUDE.md at the root of any project for project-specific instructions.
Claude Code merges it with the global one automatically.
touch my-project/CLAUDE.md
Structure philosophy
CLAUDE.md— who you are, how you work, what requires approvalsettings.json— technical config (model, hooks, env)rules/— non-negotiable guidelines Claude always followsagents/— specialized subagents for delegated taskscommands/— slash commands for common workflowsskills/— deep domain knowledge loaded on demand
AI tooling ecosystem (Graphify + Engram + Caveman)
Three complementary tools extend the setup across Claude Code, Kimi Code, OpenCode, and Cursor. See docs/AI-TOOLS-PLAYBOOK.md for the full installation and usage guide.
| Tool | What it does | Runtime |
|---|---|---|
| Graphify | Turns codebases into queryable knowledge graphs (tree-sitter AST, local) | Python (uv) |
| Engram | Persistent memory across sessions (SQLite + FTS5 + MCP) | Go binary |
| Caveman | Compresses output tokens ~65% by dropping filler | Prompt-only |
Quick install (all three, all platforms)
# 1. Graphify — one CLI, registers skill per platform
uv tool install graphifyy
graphify install # Claude Code
graphify install --platform kimi # Kimi Code
graphify install --platform opencode # OpenCode
graphify cursor install # Cursor (writes .cursor/rules/graphify.mdc)
# 2. Engram — Go binary + MCP
brew install gentleman-programming/tap/engram
engram setup claude-code
engram setup opencode
engram setup cursor # Cursor (writes ~/.cursor/mcp.json)
# Kimi: creates ~/.kimi-code/mcp.json (see playbook for details)
# 3. Caveman — auto-detects installed agents
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/main/install.sh | bash
# Kimi is not auto-detected — copy skills manually (see playbook)
# Cursor: create .cursor/rules/caveman.mdc manually (see playbook)