coding-best-practices
SKILL.md
Coding Best Practices
Core Principles
Fix Root Causes
- Fix from first principles; find the source instead of applying bandaids
- If a fix feels like a workaround, it probably is—dig deeper
Simplicity
- Write idiomatic, simple, maintainable code
- Prefer the most straightforward solution to the problem
- Prefer small helpers or state-driven flow to keep cyclomatic complexity low
Quality Bar
- Update tests (or add coverage) when behavior changes
- Handle errors intentionally; avoid silent failures
- Remove unintended debug logs; keep logs actionable and low-noise
Clean Up Ruthlessly
- Leave each repo better than you found it
- Delete unused code immediately—don't let junk linger (but keep cleanup local to what you touched unless the user asks for a wider refactor)
- If a function no longer needs a parameter, remove it and update callers
- If a helper is dead, delete it
No Breadcrumbs
- When deleting or moving code, do not leave comments in the old location
- No
// moved to X, no// relocated—just remove it - Describe changes in your response, not in the code
Scope Control
- Prefer small, reviewable changes over sweeping refactors
- Avoid “drive-by” rewrites in unrelated areas
- If a larger refactor is warranted, propose it explicitly and ask before proceeding
Code Organization
File Length
- Use judgment based on complexity rather than strict line limits
- Split files when they become difficult to navigate or understand
- If a file has multiple distinct concerns, split it
- Aim for files that can be read and understood in a single sitting
UI Component Files
- For React: keep one primary component per file
- Small helper components (variants, icon sets, button sizes) can coexist if they're tightly coupled
- Group related components into folder structures (e.g.,
components/for primary,components/Button/with sub-components)
Separation Principles
- Separate concerns when they can be used independently or tested in isolation
- Types/interfaces that are shared across multiple files →
types/or@types - Utility functions used in multiple places →
utils/organized by domain - Custom hooks used by multiple components →
hooks/ - Constants and config →
config/orconstants/ - Keep things together that change together
Directory Structure
- Organize by feature/domain, not by file type (e.g.,
auth/notcomponents/auth/,hooks/auth/) - Flatten directories when possible—avoid deep nesting
- Use index/barrel files only when the repo already uses them and they don’t introduce dependency cycles or tooling issues
Dependencies
Before adding a new dependency:
- Quick health check: recent releases/commits?
- Reasonable adoption/community?
- Actively maintained?
- Does it solve a problem we can't easily solve ourselves?
When Unsure
- Read more code, documents, or files
- If still stuck, ask with short options
- If there are conflicts or ambiguity, call them out and take the safer path
Context Awareness
- If project or repo-specific guidance conflicts with these rules, follow project guidance first
- Assume other agents or the user might land commits mid-run; refresh context before summarizing or editing
- If changes look unrecognized and continuing is problematic, stop and ask
Weekly Installs
6
Repository
heykvnzhao/dotfilesFirst Seen
Jan 29, 2026
Security Audits
Installed on
gemini-cli4
claude-code4
codex4
opencode4
antigravity3
kiro-cli3