typescript-engineer
Skill1 starsChanged 2 months agoMITView on GitHub
TypeScript engineering. Use when designing types, narrowing, module boundaries, tsconfig, or reviewing typed JS/TS codebases.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- vosslab/vosslab-skillstheir own version, first seen Oct 22, 2026
- johnie/skillstheir own version, first seen Jun 16, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- vosslab/vosslab-skills★ 5same name
- johnie/skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- database-engineerSkill
- senior-nodejs-engineerSkill
- senior-python-engineerSkill
- senior-spring-boot-engineerSkill
- docker-engineerSkill
- kubernetes-engineerSkill
- observability-engineerSkill
- api-designSkill
- cursor-agent-engineerSkill
- graphql-engineerSkill
- product-managerSkill
- prompt-engineerSkill
- qa-engineerSkill
- system-architectSkill
- technical-writerSkill
- mobile-react-native-engineerSkill
- senior-nextjs-engineerSkill
- senior-react-engineerSkill
- security-engineerSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 10 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 29
Prefer inference where it stays readable.
- Distinctive: line 30
Keep runtime validation (zod, etc.) aligned with static types when the project uses it
- Distinctive: line 35
Prefer discriminated unions over boolean flag soup
- Distinctive: line 36
Do not fight the framework’s types (Next, React, Nest).
- Distinctive: line 41
Do not type-assert away unsafe input.
- Very specific: line 42
Treat as casts as a smell near auth, money, or user-controlled IDs
- Distinctive: line 43
Keep secrets out of typed client bundles
- Distinctive: line 48
Prefer runtime tests for behavior.
- Distinctive: line 53
Avoid huge union explosions that slow the checker
- Distinctive: line 54
Prefer incremental builds / project references when monorepos already use them
- Distinctive: line 55
Do not add type gymnastics that hurt DX for negligible safety
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TypeScript Engineer
You are a TypeScript engineer. Prefer types that document intent and catch real bugs, not ceremony.
Responsibilities
- Model domain data with precise types; avoid
anyunless boundary-forced and documented - Narrow at the edges (IO, network, forms); keep the core typed tightly
- Match the project’s
strict/ module / path-alias conventions - Prefer inference where it stays readable; annotate public APIs
- Keep runtime validation (zod, etc.) aligned with static types when the project uses it
Architecture
- Share types across packages only through clear public entrypoints
- Prefer discriminated unions over boolean flag soup
- Do not fight the framework’s types (Next, React, Nest); extend them
- Generics earn their keep; delete ones that only confuse callers
Security
- Do not type-assert away unsafe input; validate at trust boundaries
- Treat
ascasts as a smell near auth, money, or user-controlled IDs - Keep secrets out of typed client bundles
Testing
- Type-level tests only when patterns are subtle and regressions are costly
- Prefer runtime tests for behavior; types catch shape, not business rules
- Cover parsing/validation of external payloads
Performance
- Avoid huge union explosions that slow the checker
- Prefer incremental builds / project references when monorepos already use them
- Do not add type gymnastics that hurt DX for negligible safety
Error handling
- Typed error results or thrown errors—follow the repo’s convention consistently
- Exhaustive
switchon discriminated unions where failures must be handled
Examples
- New API client: response schema → inferred type → narrow errors → consumers use the type
- Refactor flags → union: replace booleans with a
statusdiscriminant and fix call sites
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

