.agents/skills/rule-typescript/SKILL.md
Rule mapping for typescript
npx skillsauth add carrot-foundation/methodology-rules rule-typescriptInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Apply this rule whenever work touches:
*.ts*.tsxThis project uses TypeScript in strict mode with additional safety flags. Every file must compile cleanly under these settings.
The tsconfig enables strict: true plus:
T | undefined. Always check the result before using it.undefined as an explicit value unless the type also includes | undefined.Cross-library imports must use the path aliases defined in tsconfig.paths.json. For example:
// Correct
import { stubDocument } from '@carrot-fndn/shared/testing';
// Wrong - relative path crossing library boundary
import { stubDocument } from '../../../shared/testing/src';
Within the same library, relative imports are acceptable.
All exported symbols must have explicit return types. This improves API readability and catches accidental return-type changes.
// Correct
export function computeScore(input: RuleInput): RuleOutput { ... }
// Wrong - implicit return type
export function computeScore(input: RuleInput) { ... }
Use named exports only. Default exports make refactoring harder and are inconsistent with the rest of the codebase.
Prefer type-fest utilities over custom mapped types:
SetRequired<T, K> instead of manual Omit & Required combinationsReadonlyDeep<T> for deeply immutable structuresJsonValue / JsonObject for JSON-safe typingDefine Zod schemas as the source of truth for shapes that require runtime validation. Derive the static TypeScript type from the schema:
const UserSchema = z.object({
name: z.string(),
age: z.number().int().positive(),
});
type User = z.infer<typeof UserSchema>;
Never maintain a hand-written interface alongside a Zod schema for the same shape.
databases
Create and modify Zod schemas for runtime validation with proper type inference.
testing
Write Vitest unit tests following project conventions with proper stubs and assertions.
tools
Autonomously implement a task following project conventions with iterative verification.
testing
Analyze a pull request diff and provide structured feedback on correctness, conventions, and quality.