mcpField
T
typescript-skills

typescript-skills

github.com/gabrielmoreiraDevelopment073 installsUpdated 7w ago
Repository

About typescript-skills

typescript-skills is a routing skill for TypeScript work, aimed at coding agents. It directs each task to one focused reference topic instead of loading the full collection.

Key features

  1. 01Routes tasks to topic indexes
  2. 02Maps diagnostics to rules
  3. 03Covers TypeScript design and implementation topics
  4. 04Limits reading to relevant references

Use cases

  1. 01Reviewing TypeScript design choices
  2. 02Handling compiler or lint diagnostics
  3. 03Choosing guidance for configuration or async code

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gabrielmoreira/skills --skill typescript-skills

After installing, type/typescript-skillsin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

evals/
check-invariants.ts
control-matrix.ts
discover-scenarios.ts
evals.types.ts
internal-routing.scenarios.ts
public-activation.scenarios.ts
README.md
router.scenarios.ts
run-evals.ts
evals/lib/
activation-scoring.test.ts
activation-scoring.ts
grading.ts
prepare-grading.ts
report.ts
run-layout.ts
schema.ts
score-activation.ts
score-local.ts
references/
authoring-checklist.md
diagnostics-to-rules.md
references/patterns/
layered-resolve.md
typescript-async/
INDEX.md
typescript-async/evals/
async.scenarios.ts
typescript-async/evals/fixtures/async-timeout-must-fit-caller-budget/
package.json
setup.sh
template.yaml
typescript-async/evals/fixtures/async-timeout-must-fit-caller-budget/src/
handler.ts
http.test.ts
http.ts
typescript-async/rules/
cancellation-and-abort.md

Details

From the project README

TypeScript Rules Router

Core principle. Open one topic, not nine. The cost of this skill is what it makes you read.

  • This is the only discoverable skill in the package. Everything under it is reference material.
  • An internal INDEX.md is not a skill. Never invoke a topic name. Read the exact path shown for it.
  • skill:// is this package's reference notation, not a protocol. Where a harness does not recognise it, translate it to the equivalent file path and read the target directly.
  • You opened this in the middle of something. This is how to do that work, not a replacement for it. Name what you were doing before you start, and return to it when this is done.

Open one topic first

Match the task against the left column, and open that index.

  • A reported lint or compiler diagnostic enters elsewhere. Read skill://typescript-skills/references/diagnostics-to-rules.md first, then the rule it names.

  • Add a second topic only when the task crosses a real boundary.

  • Do not load every topic by default. That is the waste this router exists to prevent.

  • Read every row, then act on the matches, hardest to undo first. Reading a row costs nothing; the row you skipped is where the coverage went.

If the task involves...Read this topic index
a value that may be absent, or ?. and ?? standing guard over itskill://typescript-skills/typescript-coding-standards/INDEX.md
any, unknown, or a cast standing in for a typeskill://typescript-skills/typescript-coding-standards/INDEX.md
a switch over a union with no exhaustive checkskill://typescript-skills/typescript-coding-standards/INDEX.md
an abstraction, class or generic added before its second callerskill://typescript-skills/typescript-coding-standards/INDEX.md
a long function somebody wants split, or mixed levels inside oneskill://typescript-skills/typescript-coding-standards/INDEX.md
a name that will not settle, for a class, an error or a fieldskill://typescript-skills/typescript-coding-standards/INDEX.md
an old shape and its cutover kept side by sideskill://typescript-skills/typescript-coding-standards/INDEX.md
an SDK, provider or generated type reaching business logicskill://typescript-skills/typescript-boundaries/INDEX.md
an API request or response shape used as a domain typeskill://typescript-skills/typescript-boundaries/INDEX.md
a mapper, transform or translator standing between themskill://typescript-skills/typescript-boundaries/INDEX.md
a dependency constructed where it is used rather than passed inskill://typescript-skills/typescript-composition/INDEX.md
a factory or singleton picked at runtime, or a lifecycle nobody ownsskill://typescript-skills/typescript-composition/INDEX.md
process.env read outside startupskill://typescript-skills/typescript-configs/INDEX.md
a config value parsed, defaulted or exposed with no typeskill://typescript-skills/typescript-configs/INDEX.md
one config object every process loads, where one of them needs the valueskill://typescript-skills/typescript-configs/INDEX.md
a feature flag or a config migration mid-flightskill://typescript-skills/typescript-configs/INDEX.md
a branch taken with no logging or tracing behind itskill://typescript-skills/typescript-observability/INDEX.md
a log line naming what happened but not what to do about itskill://typescript-skills/typescript-observability/INDEX.md
a secret, credential or token in a literal, a log or a config defaultskill://typescript-skills/typescript-security/INDEX.md
a log or debug line printing a header, a payload or a whole requestskill://typescript-skills/typescript-security/INDEX.md
redaction running after the value was already written, or a crypto choice made by habitskill://typescript-skills/typescript-security/INDEX.md
a test asserting on mock calls rather than on behaviourskill://typescript-skills/typescript-testing/INDEX.md
a boundary contract no test pinsskill://typescript-skills/typescript-testing/INDEX.md
a coverage number or gate that movedskill://typescript-skills/typescript-testing/INDEX.md
a refactor starting with no characterization testskill://typescript-skills/typescript-testing/INDEX.md
a throw where a result type was meant, or the reverseskill://typescript-skills/typescript-error-handling/INDEX.md
an error crossing a boundary with its retryability unstatedskill://typescript-skills/typescript-error-handling/INDEX.md
a catch swallowing the causeskill://typescript-skills/typescript-error-handling/INDEX.md
Promise.all, sequential awaits, or an unawaited promiseskill://typescript-skills/typescript-async/INDEX.md
cleanup in a finally or a using, or work still running after the responseskill://typescript-skills/typescript-async/INDEX.md
AbortSignal cleanup, retry and backoff, or SIGTERM shutdownskill://typescript-skills/typescript-async/INDEX.md

Default stance.

  • Open one topic, not nine. A second one only where the task crosses a real boundary.
  • Follow the conventions the repository already has, unless a rule protects a stronger invariant.
  • Add structure only when the pressure is real, and let the topic's own rules say when it is.

Tie-breakers

Only a genuinely ambiguous case belongs here. Everything else routes above.

SituationPrimarySecondary
a provider response shape enters business logicskill://typescript-skills/typescript-boundaries/INDEX.mdcoding standards, for naming
provider selection happens at startupskill://typescript-skills/typescript-composition/INDEX.mdboundaries, if provider shapes cross inward
a secret source pointer appears in configskill://typescript-skills/typescript-security/INDEX.mdconfigs, for parsing and exposure
a development value is used as a code defaultskill://typescript-skills/typescript-security/INDEX.mdconfigs, only for non-secret behaviour defaults
a cast is applied to parsed or unknown dataskill://typescript-skills/typescript-coding-standards/INDEX.mdconfigs for parser shape, boundaries for transport data
a broad config object enters feature modulesskill://typescript-skills/typescript-configs/INDEX.mdcomposition, if framework assembly is involved
a stage comparison selects a resourceskill://typescript-skills/typescript-configs/rules/feature-decisions.mdskill://typescript-skills/typescript-configs/rules/validation-vs-verification.md
log or trace attributes may carry secretsskill://typescript-skills/typescript-security/INDEX.mdobservability, for the diagnostic shape
a refactor precedes a behaviour changeskill://typescript-skills/typescript-testing/INDEX.mdthe relevant design topic
a retry loop retries caller errors tooskill://typescript-skills/typescript-error-handling/rules/error-classification.mdskill://typescript-skills/typescript-async/rules/retry-and-backoff.md for the mechanism
a handler returns an SDK error shape to a clientskill://typescript-skills/typescript-error-handling/rules/error-boundary-contract.mdboundaries, for inbound mapping
a catch returns a fallback with no signalskill://typescript-skills/typescript-error-handling/rules/error-boundary-contract.mdobservability, for the signal shape

Router contract

  • The selected topic index owns routing inside its domain.
  • The canonical rule files own the design decisions.
  • A named diagnostic routes through skill://typescript-skills/references/diagnostics-to-rules.md.
  • For authoring conventions, read skill://typescript-skills/references/authoring-checklist.md.
  • What is still open lives in docs/typescript-skills/ at the repository root.

Comments

Markdown supported