typescript-coding

typescript-coding is a skill for Claude Code from Dynokostya/just-works. It costs 63 tokens per session (3,502 once invoked), scanned A, original, Apache-2.0.

A set of rules for writing and editing TypeScript, a programming language that adds type checks to JavaScript. It covers type safety, error handling, asynchronous code, modules, and security defaults.

In plain words
What is it for?
Use it when creating or changing TypeScript or TSX files, while following the project's existing conventions.
Why use it?
It prevents common TypeScript mistakes, such as hiding type errors or trusting unchecked data from outside the program.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/dynokostya/just-works/typescript-coding
Any agent
npx skills add Dynokostya/just-works --skill typescript-coding
Clone the repo
git clone --depth 1 https://github.com/Dynokostya/just-works

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for typescript-coding

README.md
[![agentmods](https://agentmods.dev/badge/skills/dynokostya/just-works/typescript-coding.svg)](https://agentmods.dev/skills/dynokostya/just-works/typescript-coding)
Your own site
<a href="https://agentmods.dev/skills/dynokostya/just-works/typescript-coding"><img src="https://agentmods.dev/badge/skills/dynokostya/just-works/typescript-coding.svg" alt="Measured on agentmods" height="20"></a>
Per session 63 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,502 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00063 $0.03502
Opus 5 $0.00032 $0.01751
Sonnet 5 $0.00013 $0.00700
Haiku 4.5 $0.00006 $0.00350

Measured yesterday against content hash 9f7b7540e23e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

typescript-coding scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

return fetch(url, { signal: signal ? AbortSignal.any([signal, timeout]) : timeout });
.claude/skills/typescript-coding/SKILL.md · 413 lines

How it starts

The opening of the file, as written. The whole thing — 413 lines — stays where its author put it; the contents beside it link to each section on GitHub.

TypeScript Coding

Match the project's existing conventions. When uncertain, read 2-3 existing files to infer the local style. Check tsconfig.json for strict mode, target, module, and moduleResolution settings. Check package.json for runtime (Node.js, Deno, Bun) and dependency versions. These defaults apply only when the project has no established convention.

Never rules

These are unconditional. They prevent bugs and vulnerabilities regardless of project style.

  • Never use any — contagious type erasure that disables all downstream checking. Use unknown and narrow with type guards, or use generics with constraints.
  • Never use @ts-ignore — permanently suppresses errors with no feedback when conditions change. Use @ts-expect-error with a justification comment; it fails the build when the suppressed error disappears.
  • Never use as type assertions on external data — zero runtime validation; the program continues with corrupted state until it crashes far from the source. Validate at system boundaries with Zod safeParse or equivalent runtime validators.
  • Never use ! non-null assertion without proof — tells TypeScript a value is not null without any runtime check. Use nullish coalescing (??), optional chaining (?.), or explicit if checks.
  • Never leave a Promise floating — unhandled rejections cause silent failures or process termination. Always await, chain .catch(), or prefix with void and add an error handler.
  • Never mutate function parameters — objects and arrays are passed by reference; mutation silently corrupts the caller's data. Spread or structuredClone() before mutating. Mark parameters readonly.
  • Never use delete on typed objects — violates the type contract, creating objects that no longer match their type. Destructure to omit properties (const { removed, ...rest } = obj). For arrays, use splice() or filter().
  • Never use export * in barrel files — re-exported names collide silently across modules, and IDE navigation and refactoring degrade (go-to-definition lands on the barrel, renames miss consumers). Use explicit named re-exports.
  • Never omit type on type-only imports — retains unnecessary import statements in compiled output, bloats bundles, and breaks isolated transpilers. Use import type { } or inline type qualifiers. Enable verbatimModuleSyntax.
  • Never use enum — emits runtime IIFE code, introduces nominal typing friction, and numeric enums silently accept any number. Use as const objects with derived union types.
  • Never trust array index access without noUncheckedIndexedAccess — TypeScript types items[0] as T even when the array could be empty. Enable noUncheckedIndexedAccess: true in tsconfig.
  • Never skip exhaustiveness checks in switch/union handling — adding a new union member silently falls through without a compile error. Add a default case that assigns to never: const _exhaustive: never = value.
  • Never use JSON.parse() without runtime validation at system boundaries — returns any, and assigning to a typed variable provides zero runtime guarantees. Validate with Zod safeParse or equivalent.

Read the full file on GitHub · 413 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 413 lines · 63 tokens per session scan A 9f7b7540e23e

Subscribe to this mod's changes

typescript-coding is a skill published in the GitHub repository Dynokostya/just-works (14 stars, last pushed yesterday), licensed Apache-2.0. It adds 63 tokens to every session and 3,502 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.

Related

Other skills, from other repositories