← ClaudeAtlas

antfulisted

Anthony Fu's opinionated tooling and conventions for JavaScript/TypeScript projects. Use when setting up new projects, configuring ESLint/Prettier alternatives, monorepos, library publishing, or when the user mentions Anthony Fu's preferences.
anantkanok/skills · ★ 2 · AI & Automation · score 78
Install: claude install-skill anantkanok/skills
## Coding Practices ### Code Organization - **Single responsibility**: Each source file should have a clear, focused scope/purpose - **Split large files**: Break files when they become large or handle too many concerns - **Type separation**: Always separate types and interfaces into `types.ts` or `types/*.ts` - **Constants extraction**: Move constants to a dedicated `constants.ts` file ### Runtime Environment - **Prefer isomorphic code**: Write runtime-agnostic code that works in Node, browser, and workers whenever possible - **Clear runtime indicators**: When code is environment-specific, add a comment at the top of the file: ```ts // @env node // @env browser ``` ### TypeScript - **Explicit return types**: Declare return types explicitly when possible - **Avoid complex inline types**: Extract complex types into dedicated `type` or `interface` declarations ### Comments - **Avoid unnecessary comments**: Code should be self-explanatory - **Explain "why" not "how"**: Comments should describe the reasoning or intent, not what the code does ### Testing (Vitest) - Test files: `foo.ts` → `foo.test.ts` (same directory) - Use `describe`/`it` API (not `test`) - Use `toMatchSnapshot` for complex outputs - Use `toMatchFileSnapshot` with explicit path for language-specific snapshots --- ## Tooling Choices ### @antfu/ni Commands | Command | Description | |---------|-------------| | `ni` | Install dependencies | | `ni <pkg>` / `ni -D <pkg>` | Add dependency / dev dependency