42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
# 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`.
|