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 skills add dayfinggg/openai-codex-agent-skills --skill typescript-changegit clone --depth 1 https://github.com/dayfinggg/openai-codex-agent-skillsWrote 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.
[](https://agentmods.dev/skills/dayfinggg/openai-codex-agent-skills/typescript-change)<a href="https://agentmods.dev/skills/dayfinggg/openai-codex-agent-skills/typescript-change"><img src="https://agentmods.dev/badge/skills/dayfinggg/openai-codex-agent-skills/typescript-change/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dayfinggg/openai-codex-agent-skills/typescript-change"><img src="https://agentmods.dev/badge/skills/dayfinggg/openai-codex-agent-skills/typescript-change.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.00344 |
| Opus 5.5 | $0.00014 | $0.00138 |
| Sonnet 5.5 | $0.00007 | $0.00069 |
| Haiku 4.5 | $0.00003 | $0.00034 |
Grade A, and why
typescript-change 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 today.
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.
What it actually says
Preserve TypeScript contracts both during type checking and at runtime.
- Establish the compiler version, package manager, lockfile, applicable tsconfig files, project references, runtime, and check commands. Determine whether the build checks types or only transforms syntax.
- Read consumers of changed types and the relevant data boundary. Distinguish untrusted external values from validated domain data. An annotation or an as-cast does not validate JSON or a network response.
- Check missing values, error cases, discriminated results, and public exports. Preserve existing strictness. Do not introduce any, suppressions, or non-null assertions instead of fixing the cause.
- When changing imports, inspect package type, exports, browser and Node conditions, module resolution, and published files. A local import error does not justify a repository-wide ESM/CommonJS migration.
- Implement the smallest compatible contract. For shared types, inspect affected projects and emitted declarations. Do not upgrade the compiler merely to simplify the edit.
- Run the installed type checker, relevant tests, and the actual build. For a package boundary, verify the published artifact shape when consumers use that shape.
Checks must independently detect interface incompatibility and behavioral regressions. Use node-backend-change for HTTP-process behavior and a relevant installed framework specialist for framework work.
Check version-specific rules in TypeScript TSConfig and Node.js Packages.
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.
- today First seen · 19 lines · 34 tokens per session scan A 9f3520072065
typescript-change is a skill published in the GitHub repository dayfinggg/openai-codex-agent-skills (8 stars, last pushed today), licensed MIT. It adds 34 tokens to every session and 344 once invoked, about $0.0001 per session on Opus 5.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-10-30.
Other skills, from other repositories
testing-typescript
Use when writing tests for TypeScript or JavaScript code in frameworks such as Jest, Vitest, Bun, etc.
bun-development
Modern JavaScript/TypeScript development with Bun runtime. Covers package management, bundling, testing, and migration from Node.js. Use when working with Bun, optimizing JS/TS development speed, or migrating from Node.js to Bun.
V3 Core Implementation
Core module implementation for claude-flow v3. Implements DDD domains, clean architecture patterns, dependency injection, and modular TypeScript codebase with comprehensive testing.
migrate-to-shoehorn
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
typescript-test-writing
Use this skill when writing or modifying tests in the llxprt-code repository. Covers mandatory TDD, behavioral testing, bun:test conventions and file naming, mock hygiene (no mock theater), and what never to test. Distilled from dev-docs/RULES.md, which remains the source of truth.
nestjs
Use when building or structuring a NestJS backend — feature modules, providers and DI wiring, provider scopes and request-lifecycle order, where to bind guards/pipes/interceptors/filters, and testing with Test.createTestingModule. NOT a bare Express/Fastify service with no DI (that is nodejs), NOT framework-agnostic…