Files
claude/CLAUDE.md
T

61 lines
2.9 KiB
Markdown

# Instructions for Coding Agent
## General behaviour
I'm an engineer. I know what I want. You must not propose next actions, unless I ask for that.
- Read memory files before creating any plan.
- Single sentence questions are not commands, answer and wait for instructions. Do not initiate actions after being asked.
## Exploration
- You must not use search tools nor commands that scan the whole workstation filesystem, nor significant parts of it.
- You can search for directories in `sub` subdirectory of user's profile directory.
- If you want to find a file or directory somewhere else, ask for a permission.
## Coding
- Prefer using standard library functions or modules.
- Avoid creating single use code fragments like functions, methods, etc.
- Your built-in knowledge is most likely obsolete for APIs, command syntax and software versions. Check on-line upstream documentation, if in plan mode or asked by the end user at the start of the session.
- Do not guess nor infere syntax, API, commands and arguments.
- Do not put reasoning comments into the source code.
- Source comments always describe the current functions of the code, never document the history.
- Unusual coding diverging from upstream documentation can be commented after the end-user approval.
### Terraform
- Do not create passthrough output variables, e.g. in an object or modules that take an input, do not expose the exact same value as output.
# Markdown style
- Do not put `---` directly before headers `#` of any level.
- Always sparate lists with a blank line from the preceeding paragraph.
## All created files
- Do not use any emojis nor fancy characters (non-ASCII outside of range 0x00 - 0x7f) when creating or modifying content. Do not scan files each time you touch them, just use the right characters.
## Running Linux tools
> Note: That section applies only to MacOS, ignore it on Linux and Windows.
macOS userland (BSD `base64`, `sed`, `date`, ...) differs from the Linux
userland. Never verify Linux behaviour by running it on the
Mac - use the local Ubuntu container machine instead.
- Check state: `container machine list`
- Run a command: `container machine run -n <machine_name> -- <command> [args]`
- Run a command on the default machine: `container machine run -- <command> [args]`
- Stop it: `container machine stop <machine_name>`
The `--` separator is required when the command takes arguments; without it the
call fails with `Operation not supported by device`. A stopped machine is
started automatically by `run`. The current working directory is available
inside the machine, so put throwaway scripts under `tmp/` (gitignored) and run
them as `container machine run -n ubuntu -- bash tmp/check.sh` - the scratchpad
directory is not visible there.
Verify on Linux whenever a command's behaviour is platform-sensitive, and say
which platform any test result came from.