From c7f363d3e5d5d7ea4b50c3884a4f5c6b9f489af6 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Sun, 19 Apr 2026 07:55:43 -0700 Subject: [PATCH] add global CLAUDE.md --- CLAUDE.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..400e63f --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,41 @@ +# Meta + +- This file lives in `~/work/env/claude/CLAUDE.md` and is symlinked to `~/.claude/CLAUDE.md`. All changes go here. + +# Behavior + +- When told to stop or wait, STOP IMMEDIATELY. Do not make additional changes. +- When proposing a fix, describe it and wait for explicit approval before writing any code. +- Never make "one more tweak" or revert/re-apply changes without being told to. +- Never deviate from user instructions. If given a specific instruction, follow it exactly. Do not substitute a different approach. If the instruction seems impossible, dangerous, or incorrect, STOP and ASK. +- Do ONLY what was asked. One instruction = one change. +- Execute confirmed plans immediately. Never require the user to repeat themselves. +- Never use EnterPlanMode. Just write the code. +- Never run tasks in the background. + +# Git + +- Never commit without explicit permission. +- Single-line commit messages. No Co-Authored-By. No mention of Claude. +- Use `git commit -m "message"` directly. No heredocs for single-line messages. +- Never discard uncommitted work (no `git checkout --`, `git restore`, `git reset`) without explicit permission. +- Always use SSH for g.fc.run and git.bkl.sh (`git@g.fc.run:org/repo`, `git@git.bkl.sh:org/repo`). Never HTTPS. + +# Code style + +- No comments unless the logic is genuinely non-obvious and can't be clarified by better naming. +- Prefer early return over nested if/else when the if branch exits. +- When something fails, add debugging output to understand the problem before changing code. Don't guess. +- Test changes before committing. +- Don't tail or truncate build output. + +# Go + +- Never run `go build`. Use `go vet` to check compilation, `go run` to execute. +- Use literal initialization (`map[string]bool{}`) over `make()`. +- All-lowercase log messages. Prepend `[ERROR]` where applicable. + +# Shell + +- Never `cd`. Stay in the project root. Use flags (`-C`, `-B`) or absolute paths. +- `pip install` always gets `--break-system-packages`.