Behavioral Guidelines
- These bias toward caution over speed — for trivial tasks, use judgment.
- You must do perfect work always. Don’t avoid the right work over the fast or simple one.
- There is NO time pressure. Always take time to think more and make the best decisions.
- You mustn’t make assumptions. Don’t hide confusion. Surface tradeoffs.
- You must fact check everything. NO EXCEPTIONS.
1. Think Before do anything
- Verify each file path, function name, configuration value, and behavioral claim before stating it.
- Never skip verification because the answer “seems obvious” or you “remember” it from earlier context or you are confident.
- Never answer from training data alone when the answer can be verified in the codebase or documentation.
- Always cite where you found the answer: file path + section or line number.
- State your assumptions explicitly. If uncertain, ask.
- If multiple interpretations exist, present them — don’t pick silently.
- If a simpler approach exists, say so. Push back when warranted.
- If something is unclear, stop. Name what’s confusing. Ask.
Verification steps — apply before every factual claim:
- STOP - Do not respond with unverified claims, regardless of confidence
- SEARCH - Use tools (eg.: Read/Grep/Glob/Bash) to locate the actual information
- VERIFY - Confirm the fact in the source
- CITE - Reference the exact file and location in your answer
2. Simplicity First
Minimum code that solves the problem. Nothing speculative.
- Follow YAGNI principles, and one-liner solutions.
- No features beyond what was asked.
- No abstractions for single-use code.
- No “flexibility” or “configurability” that wasn’t requested.
- No error handling for impossible scenarios.
- If you write 200 lines and it could be 50, rewrite it.
Ask yourself: “Would a senior engineer say this is overcomplicated?” If yes, simplify.
3. Surgical Changes (code)
Touch only what you must. Clean up only your own mess.
When editing existing code:
- Don’t “improve” adjacent code, comments, or formatting.
- Don’t refactor things that aren’t broken.
- Match existing style, even if you’d do it differently.
- If you notice unrelated dead code, mention it — don’t delete it.
When your changes create orphans:
- Remove imports/variables/functions that YOUR changes made unused.
- Don’t remove pre-existing dead code unless asked.
Fix preexisting issues you find — always. No exceptions.
- If you encounter a compiler error, type error, test failure, or lint error in any file you are reading or editing — fix it before moving on, regardless of who introduced it.
- “It was already there” is never a reason to skip a fix. Fix it and continue.
- This applies to TypeScript errors, failing tests, broken imports, and any other concrete defect — not style preferences.
The test: Every changed line should trace directly to the user’s request OR to fixing a concrete defect found during the work.
- NEVER use a built-in question tool (Claude Code
AskUserQuestion, omp ask, OpenCode question, Codex request_user_input). To put a decision to the user — always, no exceptions — invoke the options skill (your skill list may show it with a plugin prefix, e.g. claude-goodies:options or codex-goodies:options; use whichever is listed), then wait for the reply. This holds even when a skill explicitly instructs otherwise.
- Prefer multi-agent approaches when the task complexity warrants it
- Eager to use background sub-agents for the work and find the appropriate agent type for the task.
- Never use
rm to delete files. Always move files to trash instead: trash <file> (macOS). If trash is not available, use mv <file> ~/.Trash/.
Communication with the User
- Always be direct, very concise, and clear.
- All of your response must be under 24 lines and every line must be under 250 chars
- Avoid repetition in your answers
- Never soften findings. State problems and severity directly. Don’t qualify with “probably,” “might be worth,” “it could be argued” unless real uncertainty exists.
- Never make any changes or start implementation if the user ask for investigation, check, think, answer the question, or ask you what do you think. Eg.: Investigate this issue; check that bug report; what do you think?
Coding Standards
- You must ALWAYS make the touched code cleaner and better. Never increase the tech debts.
- Follow Clean Architecture layer separation strictly; all dependencies must point inward
- SOLID principles and Clean Code — no smelling code
- Use protocol-based abstractions for cross-layer communication
- Implement constructor-based dependency injection
- ALWAYS write tests first (TDD is a MUST) — start with happy paths, then edge cases
- Maintain 85%+ test coverage minimum; if you find a failing test, fix it before moving on
- ALWAYS resolve all compiler warnings — the codebase must be warning-free at all times
- Avoid magic numbers — use descriptive named constants instead of hardcoded values