agentleFS
vosslabvosslab/vosslab-skills/skills/experts/typescript-engineer/SKILL.md

typescript-engineer

Skill5 starsChanged 21 days agoMITView on GitHub

Use when strict TypeScript type design or compiler diagnosis is central, including inference, generics, mapped or conditional types, branded types, overloads, declarations, or module-boundary contracts.

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run the target repository's owned type-check or test front door and compare it with the baseline.

    line 26
  2. Distinctive:

    Keep one responsibility per file and co-locate private helper types with their implementation.

    line 30
  3. Very specific:

    Use a narrow export type boundary and avoid deep barrel chains.

    line 35
  4. Distinctive:

    Prefer clear generics and utility types before conditional, mapped, recursive, or template-literal machinery.

    line 36
  5. Very specific:

    Remove any or narrow unknown: references/type-narrowing.md

    line 50
  6. Very specific:

    Use references/testing_and_oracles.md for proof strategy.

    line 77

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

TypeScript engineer

Overview

Apply TypeScript-specific judgment to compiler diagnosis, type-level design, public contracts, and strict-safety refactoring. Use the target repository's rules, configuration, dependencies, and front-door commands as authority.

Workflow

  1. Classify the project as greenfield or improve-existing and follow references/project_workflow.md.
  2. Reproduce the current diagnostic or capture the repository's focused type-check baseline. Record the exact diagnostic text when compilation is failing.
  3. Classify the task with references/task_selection.md, then use references/topic_index.md to load only the matching rule guides.
  4. Identify the owner of each runtime value, validator, schema, DTO, domain model, storage shape, and exported type before changing a boundary.
  5. Implement the smallest type design that proves the intended contract while preserving runtime behavior unless the user requested behavior changes.
  6. Run the target repository's owned type-check or test front door and compare it with the baseline.

Design defaults

  • Keep one responsibility per file and co-locate private helper types with their implementation.
  • Promote a type to shared ownership only when multiple modules need the same stable contract.
  • Separate runtime behavior, runtime validation, and type-level helpers when they change for different reasons.
  • Derive types from schemas, clients, or constants when a source of truth exists.
  • Use a narrow export type boundary and avoid deep barrel chains.
  • Prefer clear generics and utility types before conditional, mapped, recursive, or template-literal machinery.
  • Contain unavoidable assertions inside brand constructors, proven type guards, or documented boundary adapters.
  • Cap recursive type complexity where the compiler's work would become unstable.

For shared or exported contracts, read references/modular-type-design.md. For strictness policy, read references/strict-mode-flags.md.

Task routes

  • Audit or sweep: references/checklist.md
  • Compiler diagnostic: references/error-diagnosis.md
  • Remove any or narrow unknown: references/type-narrowing.md
  • Generic design: references/generics-basics.md
  • Conditional or mapped design: references/conditional-types.md and references/mapped-types.md
  • Branding or nominal identity: references/opaque-types.md
  • Overloads: references/function-overloads.md
  • Type-level regression examples: references/smell-test-examples.md

The topic index routes to the remaining focused guides for array access, as const, assertion functions, builders, deep inference, infer, template literals, and utility types.

Browser-game boundary

For browser games, simulations, save files, entity identities, coordinates, events, replay, seeds, or migrations, read references/game-type-patterns.md. During a parallel game build, answer one bounded shared-type or boundary question and return a typed stub the caller can import. Use references/divergence-map.md to discover consumer-owned command and configuration differences rather than embedding a fixed command catalog.

Review output

Organize a requested review under Type Safety, Module Boundaries, Compile-Time Errors, and Type-Level Tests. Keep runtime, framework, performance, and general security findings with their owning workflows unless they directly explain a type contract failure.

Verification and return

Use references/testing_and_oracles.md for proof strategy. Add positive type assertions and intentional negative cases when the repository supports them. Return:

  • the proposed contract or implemented change;
  • the exact repository-owned verification command and its result;
  • files changed, each tied to the requirement it satisfies;
  • failures, warnings, or skipped checks with their scope.

Report completion only when the relevant compiler or test evidence is available, or state clearly why the check could not run.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.