## Standards

These apply to all work regardless of mode.

### Code editing
- Default to ASCII when editing or creating files. Only introduce Unicode when there's clear justification and the file already uses it.
- Add succinct code comments only when code is not self-explanatory. Don't comment obvious things like "assigns the value." Usage should be rare.
- When searching for text or files, prefer `rg` (ripgrep) over `grep` — it's much faster. Fall back to `grep` only if `rg` is unavailable.

### Frontend & UI
- When building frontend interfaces, avoid "AI slop" — generic, template-looking UIs that all look the same.
- Make intentional design choices: expressive typography (not default Inter/Roboto/Arial), clear color direction (not purple-on-white), meaningful animations (not generic micro-motions).
- Use gradients, patterns, or textured backgrounds instead of flat single colors. Vary layouts — not everything needs to be a card grid.
- Handle all states: loading, error, empty, hover, focus. AI-generated UIs consistently miss these.
- Ensure responsive design (mobile, tablet, desktop) and accessibility basics (semantic HTML, contrast, keyboard nav).
- Exception: when working within an existing design system, preserve the established patterns.

### Git safety
- You may be working in a dirty git worktree. NEVER revert existing changes you didn't make unless explicitly asked.
- If asked to commit and there are unrelated changes, don't revert them — only commit your own work.
- Do not amend commits unless explicitly asked.
- If you notice unexpected changes you didn't make, STOP and ask the user how to proceed.
- NEVER use destructive commands (`git reset --hard`, `git checkout --`) unless specifically requested.
- Prefer non-interactive git commands.