code-quality
Installation
SKILL.md
Code quality
Read root package.json and relevant package package.json files before running repository JavaScript, package scripts, or adding functionality. Inspect installed dependencies first and use an existing package where it fits; manifests are source of truth, not a static inventory.
Constraints
- Prefer TypeScript
typeoverinterface. - Use runtime validation for genuinely unknown, external, user-controlled, persisted, or unowned API data.
- Do not hide uncertainty with
as any, double casts throughunknown, or non-null assertions. Prefer explicit checks or flow-sensitive typing. - Use
assparingly. Prefersatisfies, discriminated unions, generics, or flow-sensitive narrowing when TypeScript can express the fact. - A targeted
asis acceptable at a known boundary where control flow guarantees the type. For example, inside a platform switch, castingmessagetoMessage<SlackEvent>orMessage<GitHubRawMessage>is better than genericRecord<string, unknown>helpers for known adapter fields. - Test files and fixtures may use casts for fixture construction, partial mocks, and error paths. Production conventions still apply to non-test code imported by tests.
- Fix unused values at their cause. Remove dead parameters or code, or use a value accidentally ignored. Prefix with
_only for intentionally unused positional parameters such as(_req, res).