···18181919- new files should be in kebab-case
2020- use tabs for indentation, spaces allowed for diagrams in comments
2121-- use single quotes and add trailing commas
2121+- use single quotes for strings; use template literals for localization strings (user-facing
2222+ strings, error messages)
2323+- add trailing commas
2224- prefer arrow functions, but use regular methods in classes unless arrow functions are necessary
2325 (e.g., when passing the method as a callback that needs `this` binding)
2426- use braces for control statements, even single-line bodies
2527- use bare blocks `{ }` to group related code and limit variable scope
2626-- use template literals for user-facing strings and error messages
2728- avoid barrel exports (index files that re-export from other modules); import directly from source
2829- use `// #region <name>` and `// #endregion` to denote regions when a file needs to contain a lot
2930 of code
3030-- prefer required parameters over optional ones; optional parameters are acceptable when:
3131- - the default is obvious and used by the vast majority of callers (e.g., `encoding = 'utf-8'`)
3232- - it's a configuration value with a sensible default (e.g., `timeout = 5000`)
3131+- a parameter should be optional only when callers genuinely split between passing a value and
3232+ relying on the default; if every caller passes a value, make it required; if no caller would ever
3333+ change it, it should not be a parameter at all
3334- avoid optional parameters that change behavioral modes or make the function do different things
3434- based on presence/absence; prefer separate functions instead
3535-- when adding optional parameters for backwards compatibility, consider whether a new function with
3636- a clearer name would be better
3535+ based on presence/absence; prefer a separate function with a clearer name instead
37363837### documentation
3938···65646665### Claude Code-specific
67666868-- Explore tool (subagents for exploration, planning, etc.) may not always be accurate; verify
6969- subagent findings when needed
6767+- Explore subagent may not be accurate; verify findings as needed
6868+- never spawn subagents to read and return file contents; read files directly in the main context.
6969+ subagents should perform searches or answer specific questions, not act as file I/O proxies