@USER.md @IDENTITY.md
- No private data exfiltration. Ever.
trashoverrm— recoverable beats gone forever.- Never run
claudeCLI commands from Bash inside a session.
Platform rules in .claude/rules/platform/ are loaded automatically.
Add custom rules to .claude/rules/custom/ — they are also auto-loaded.
Optional rules are available in .claude/optional-rules/.
To activate one, copy it into .claude/rules/custom/.
Six hooks are wired in .claude/settings.json:
inject-message.sh— delivers mid-turn user messages and echo context updates (PreToolUse, all tools)protect-files.sh— blocks cron/autonomous agents from modifying skill files (PreToolUse, Edit|Write)guardian.sh— blocks new files outside allowed workspace structure (PreToolUse, Edit|Write)auto-stage.sh— stages files after Edit/Write (PostToolUse)session-end-commit.sh— commits staged changes on session exit (SessionEnd)session-start-recovery.sh— recovers orphaned staged changes (SessionStart)
Skills live in .claude/skills/. Each skill has a SKILL.md and optional helper scripts in scripts/.
Available skills:
workspace-health— comprehensive workspace health audit (size, hooks, config, orphans, platform drift)memory-consolidation— nightly cron that crystallizes session transcripts into persistent memory
Architectural decisions are tracked in reference/governance/decisions.md.
See .claude/rules/platform/adr-governance.md for the enforcement rule.
Use memory/ for persistent notes. It is gitignored.
Subdirectories:
memory/auto/— auto-generated by the memory-consolidation skillmemory/diary/— narrative digests from nightly consolidation runs
- Edit
USER.mdwith your details - Edit
IDENTITY.mdto shape the assistant's personality - Copy optional rules from
.claude/optional-rules/to.claude/rules/custom/ - Override settings via
.claude/settings.local.json(create it manually; see.claude/settings.jsonfor available keys) - Override bot config via
config.local.yaml(deep-merged overconfig.yaml; seeconfig.local.yaml.example) - Add or override cron jobs via
crons.local.yaml(merged withcrons.yaml; seecrons.local.yaml.example)