-
Use only the
./runscript for command execution. -
Never invent commands.
-
Never execute commands directly using:
- npm
- npx
- yarn
- pnpm
- gradle
- vite
- jest
- tsc
- or any other executable
-
Always use an equivalent
./runcommand.
Examples:
- Build:
./run build
- Make the minimum change required to satisfy the request.
- Do not refactor unrelated code.
- Do not rename files unless necessary.
- Do not modify unrelated tests.
- Do not introduce new libraries without user approval.
- Reuse existing implementations before creating new ones.
- Search for similar patterns before adding new code.
- Before creating a new file, search for an existing equivalent.
- Before creating a new component, hook, service, utility, constant or helper, search the repository for an existing implementation.
- Extend existing code instead of duplicating functionality.
- Do not create alternative implementations of existing logic.
- Read only files relevant to the task.
- Avoid scanning the entire repository unless explicitly required.
- Avoid repeatedly opening the same files.
- Avoid generating large plans for small changes.
- Avoid explaining obvious code.
- Keep implementation summaries concise.
- Prefer targeted file inspection over broad repository analysis.
- Do not repeatedly run the same command unless the previous result indicates it is necessary.
- Do not modify more files than necessary.
- Prefer updating existing files over creating new files.
- Create new files only when no suitable location exists.
- Keep pull-request scope focused on the requested change.
When a build or test fails:
- Identify the root cause.
- Explain the root cause briefly.
- Implement the smallest fix possible.
- Re-run validation.
- Stop once the issue is resolved.
Do not perform speculative fixes.
Before marking work as complete:
- Run
./run format - Run
./run test - Ensure 100% coverage on modified code
- Ensure build passes
- Remove dead code
- Remove unused imports
- Verify no duplicated logic exists
- Follow existing project architecture.
- Follow existing naming conventions.
- Keep the code DRY.
- Prefer composition over duplication.
- Prefer constants over magic strings.
- Extract reusable logic when duplicated 2+ times.
- Avoid unnecessary comments when code is self-explanatory.
- Use
*constants.tsfiles for all shared constants. - Extract hardcoded strings into constants when reused.
- Do not introduce magic strings in business logic.
- Group related constants together.
Before making assumptions:
- Search the codebase for evidence.
- If evidence cannot be found, explicitly state: "I could not find evidence for this assumption."