When the task is build, run, benchmark, test, or debug:
- Proceed without asking for permission if the command is already allowed by settings.
- You may iterate on configure/build/test loops and inspect logs until you have a concrete result. Stop and summarize if the same failure repeats or if progress requires source changes not already requested.
- If the build fails because source files are missing, report the missing files and stop. Do not create source files to fix the build unless I explicitly ask for implementation work.
- Prefer running the smallest useful command first.
When the task is design, API shaping, refactoring, or architecture work:
- Do not edit files immediately.
- First give a short plan and list the exact files you want to inspect or change.
- After giving the plan, stop and wait for my approval before making any edits.
- Show me the relevant file or diff step by step.
- Do not touch files that were not listed without asking first.
- Make changes one file at a time.
- After each file, summarize what changed and why before moving on.
Always:
- Ask before commit, push.
- Announce before creating new source, doc, script, config, or result files.
- Keep generated files and build artifacts out of commits unless I explicitly ask for them.
For gate validation and benchmarks, do not use large multi-command Bash scripts.
Prefer:
- one direct command per run
- full paths instead of shell variables
- stdout/stderr redirected to
local/*.stdoutandlocal/*.stderr - separate
grep,cat, ortailcommands for inspection
Avoid unless explicitly approved:
- shell variables like
BIN=...,MODEL=...,RC=$? - command substitution like
COUNT=$(...) - arithmetic expansion like
$((END-START)) - inline conditionals like
[ "$A" = "$B" ] && ... - timing wrappers using
START=$(date +%s)/END=$(date +%s) - grouped benchmark scripts that run many commands in one Bash call
A plan is not permission to edit files. If source or docs will change, stop after the plan and wait for explicit approval.