mirror of
https://github.com/duthaho/claudekit.git
synced 2026-09-03 16:50:51 +03:00
2.7 KiB
2.7 KiB
name, description
| name | description |
|---|---|
| languages | Use when working with Python, TypeScript, or JavaScript language-specific patterns — including type hints, generics, async/await, dataclasses, Pydantic, PEP 8, strict mode, tsconfig.json, Zod schemas, ESM/CJS, destructuring, optional chaining, or language idioms. |
Languages
When to Use
- Python files (.py) — type hints, async/await, dataclasses, Pydantic, context managers, PEP 8
- TypeScript files (.ts, .tsx) — strict mode, generics, utility types, Zod, discriminated unions
- JavaScript files (.js, .mjs, .cjs) — ES6+ patterns, ESM/CJS, ESLint, modern syntax
- Language-specific idioms, package management (pip, pnpm), or migration between languages
When NOT to Use
- Framework-specific patterns — use
backend-frameworksorfrontend - Testing — use
testing - Database queries — use
databases
Quick Reference
| Language | Reference | Key features |
|---|---|---|
| Python | references/python.md |
Type hints, dataclasses, Pydantic, asyncio, context managers, PEP 8 |
| TypeScript | references/typescript.md |
Strict mode, generics, utility types, Zod, discriminated unions, satisfies |
| JavaScript | references/javascript.md |
ES6+, async/await, ESM/CJS, destructuring, private fields, structuredClone |
Best Practices
- Use type hints on all public functions (Python) / enable strict mode (TypeScript).
- Prefer dataclasses or Pydantic for structured data (Python) / interfaces for object shapes (TypeScript).
- Use context managers for resource management (Python).
- Never use
any— useunknowninstead (TypeScript). - Use
constby default,letwhen needed, nevervar(JavaScript). - Validate external data at boundaries — Zod (TypeScript) or Pydantic (Python).
- Handle all promise rejections (JavaScript/TypeScript).
- Follow PEP 8 / ESLint + Prettier consistently.
Common Pitfalls
- Mutable default arguments (Python) — use
Nonewith default in function body. - Blocking calls inside async functions (Python) — use
asyncio-compatible libraries. - Overusing type assertions
as(TypeScript) — use type guards instead. - Implicit type coercion (JavaScript) — always use
===and!==. - Forgetting
await(all three languages). - Circular imports (Python) / circular dependencies (TypeScript).
thisbinding in callbacks (JavaScript) — use arrow functions.- Using enums instead of const objects (TypeScript).
Related Skills
backend-frameworks— Framework-specific patternstesting— Language-specific test frameworkserror-handling— Exception handling patterns