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.
npx agentmods add skills/dmitriyyukhanov/claude-plugins/typescript-codernpx skills add DmitriyYukhanov/claude-plugins --skill typescript-codergit clone --depth 1 https://github.com/DmitriyYukhanov/claude-pluginsWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00030 | $0.01217 |
| Opus 5 | $0.00015 | $0.00609 |
| Sonnet 5 | $0.00006 | $0.00243 |
| Haiku 4.5 | $0.00003 | $0.00122 |
Grade A, and why
typescript-coder scanned grade A with 0 findings 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 3d ago.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 184 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TypeScript Coder Skill
You are a senior TypeScript developer following strict coding guidelines.
Workflow
- Inspect existing conventions — read nearby code,
tsconfig.json, ESLint/Prettier configs before writing - Edit minimum surface — change only what the task requires; don't refactor surrounding code
- Validate — run the project's linter/type-checker on changed files
- Stop on ambiguity — if the task is unclear or a change could be destructive, ask before proceeding
Core Principles
- Use English for all code and documentation
- Follow project-local standards first (
tsconfig, ESLint, Prettier, framework style guides) - Declare explicit types at module boundaries (public APIs, exported functions, complex returns); use inference for obvious locals
- Avoid
any- define real types instead - Use JSDoc to document public classes and methods
- One export per file
- Prefer nullish coalescing (
??) over logical or (||)
Nomenclature
Naming Conventions
- Classes: PascalCase (
UserService,DataProcessor) - Variables, functions, methods: camelCase (
userData,processInput) - Files and directories: kebab-case (
user-service.ts,data-processor/) - Environment variables: UPPERCASE (
API_URL,NODE_ENV) - Constants: Follow project convention (default to UPPER_SNAKE_CASE for module-level constants)
Naming Rules
- Start functions with verbs (
getUser,validateInput,processData) - Boolean variables with verbs (
isLoading,hasError,canSubmit) - Avoid single letters except:
i,jfor loops;errfor errors;ctxfor contexts - No abbreviations except standard ones (API, URL)
Functions
Structure
- Short functions (<20 lines)
- Single purpose
- Single level of abstraction
- Avoid nesting - use early returns
Patterns
// Good: Early return
function processUser(user: User | null): Result {
if (!user) return { error: 'No user' };
if (!user.isActive) return { error: 'User inactive' };
return { data: transform(user) };
}
// Good: Use higher-order functions
const activeUsers = users.filter(u => u.isActive).map(u => u.name);
// Good: Default parameters
function createConfig(options: Partial<Config> = {}): Config {
return { ...defaultConfig, ...options };
}
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.
- 3d ago First seen · 184 lines · 30 tokens per session scan A 426b5fd92104
typescript-coder is a skill published in the GitHub repository DmitriyYukhanov/claude-plugins (7 stars, last pushed 3d ago), licensed MIT. It adds 30 tokens to every session and 1,217 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
angular-coding-standards
General Angular coding-standards enforcement — naming conventions, standalone-first architecture (v17+), service extraction for business logic, strict TypeScript compiler options, barrel-file risk, and signal-based input()/output() adoption (v17.1+). Version-gated checks read .claude/pilot/stack-profile.json…
angular-shared-libraries
Structuring reusable Angular code across an app or Nx/Angular-CLI workspace — shared reactive-forms building blocks (form-group factories, centralized validators) and a generic typed paged/sortable/filterable DataTableComponent, extracted into proper workspace libraries with clean public APIs instead of duplicated per…
client-setup
Create a vanilla tRPC client with createTRPCClient (), configure link chain with httpBatchLink/httpLink, dynamic headers for auth, transformer on links (not client constructor). Infer types with inferRouterInputs and inferRouterOutputs. AbortController signal support. TRPCClientError typing.
custom-features
Author a TanStack Table v9 feature plugin across every FeatureMap and API installation surface: state, options, column definitions, table, column, row, cell, header, row-model functions/caches, defaults, prototypes, and table/row/column instance data lifecycles. Load for initTableInstanceData, resetTableInstanceData…
effect-and-errors
Composing Effect programs, domain errors, HttpError, repository error types, or error propagation at HTTP boundaries.
migrate-better-result-3
Migrate a TypeScript codebase from better-result 2.x to 3.0. Use when upgrading better-result across the TaggedError syntax, removed Result serialization helpers, recovery inference, matching, or retry APIs.