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 xobotyi/cc-foundry --skill typescriptgit clone --depth 1 https://github.com/xobotyi/cc-foundryWrote 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/xobotyi/cc-foundry/typescript)<a href="https://agentmods.dev/skills/xobotyi/cc-foundry/typescript"><img src="https://agentmods.dev/badge/skills/xobotyi/cc-foundry/typescript/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/xobotyi/cc-foundry/typescript"><img src="https://agentmods.dev/badge/skills/xobotyi/cc-foundry/typescript.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.00043 | $0.06199 |
| Opus 5.5 | $0.00017 | $0.02480 |
| Sonnet 5.5 | $0.00009 | $0.01240 |
| Haiku 4.5 | $0.00004 | $0.00620 |
Grade B, and why
typescript scanned grade B 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 7d 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.
Strips warnings and disclaimersmediumAnti-refusal
Omitting safety caveats hides risk from the user and is a common jailbreak preamble.
When **reviewing** TypeScript, cite the violation and show the fix inline. Do not lecture. How it starts
The opening of the file, as written. The whole thing — 356 lines — stays where its author put it; the contents beside it link to each section on GitHub.
A type earns its place by making a wrong program fail to compile. Three biases decide most calls:
- Make the invalid state unrepresentable, then let inference carry the rest. An annotation that restates what the compiler already infers is noise; a type that admits a state the domain forbids is a defect that will be found at runtime.
- Every escape hatch is a defect report against a type.
any,as,!, and@ts-ignoreeach move a failure from the compiler to production. Reaching for one means the declaration is wrong, and that is where the fix belongs. - The
tsconfig.jsondecides what the compiler catches; the pinned release decides what may be written. Read both before writing code.
Compiler Release
The typescript entry in the project's package.json sets the release. Read it before writing code and never reach for
a feature or an option above it. Releases below 5.5 are not indexed here; a rule naming a feature older than 5.5 carries
its version where it is named.
- 5.5 — inferred type predicates;
isolatedDeclarations;${configDir}; regex literal syntax checking - 5.6 —
noUncheckedSideEffectImports;noCheck;strictBuiltinIteratorReturn; always-truthy and always-nullish checks become errors;package.json"type"insidenode_modulesis respected in everymodulemode - 5.7 —
rewriteRelativeImportExtensions; never-initialized variable checks; a JSON import into an ES module undernodenextrequireswith { type: "json" }; every TypedArray takes a buffer type parameter - 5.8 —
erasableSyntaxOnly;module node18;libReplacement;require()of ESM undernodenext; each branch of a conditional in areturnchecked separately - 5.9 —
import defer;module node20; the prescriptivetsc --inittemplate;ArrayBufferstops being a supertype of the TypedArray types - 6.0 —
strict,module: esnext,target: es2025,noUncheckedSideEffectImports: true,libReplacement: false,rootDir: ".", andtypes: []become the defaults;outFile,moduleResolution: classic/node10,target: es5,downlevelIteration,module: amd/umd/systemjs/none,baseUrl,esModuleInterop: false, andalwaysStrict: falseare deprecated, each silenceable for one release with"ignoreDeprecations": "6.0"; themodulekeyword for a namespace and theassertimport attribute are hard errorsignoreDeprecationsdoes not reach;stableTypeOrdering; subpath imports starting#/ - 7.0 — the compiler is a native Go binary; every 6.0 deprecation becomes a removal; the 6.0 programmatic API is
gone;
stableTypeOrderingis fixed on;--checkers,--builders,--singleThreaded; template-literal inference consumes whole Unicode code points
Read [${CLAUDE_SKILL_DIR}/references/versions/ts-N.N.md] — one file per release, ts-5.5.md through ts-7.0.md —
when writing against a feature near the pinned release, and whenever raising it. Each carries what its release added,
which existing behavior it changed, and the traps it introduced.
A 6.0 or 7.0 upgrade is a configuration change before it is a code change. Set rootDir and types explicitly
before anything else. A rootDir left to the new default moves output into dist/src/ when the config sits above the
sources, and reports TS5011 naming the directory it wants. types is the one that fails silently: its [] default
drops every global declaration until the packages are listed, and the symptom is a burst of Cannot find name errors
that say nothing about the option that caused them.
What ships with it
14 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .dev/reference-inventory.json 2.4 KB
- references/conventions/declarations.md 5.1 KB
- references/conventions/generics.md 5.4 KB
- references/conventions/modules.md 7.7 KB
- references/conventions/narrowing.md 5.4 KB
- references/conventions/strictness.md 6.3 KB
- references/conventions/type-level.md 5.9 KB
- references/versions/ts-5.5.md 2.9 KB
- references/versions/ts-5.6.md 2.8 KB
- references/versions/ts-5.7.md 2.6 KB
- references/versions/ts-5.8.md 3.0 KB
- references/versions/ts-5.9.md 2.0 KB
- references/versions/ts-6.0.md 5.1 KB
- references/versions/ts-7.0.md 5.1 KB
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.
- 7d ago Changed · +34 lines ce483e5fa637
- 1mo ago Changed · +77 lines · -17 tokens per session cc475196741f
- 1mo ago First seen · 245 lines · 60 tokens per session scan B d5f69f181266
typescript is a skill published in the GitHub repository xobotyi/cc-foundry (22 stars, last pushed 7d ago), licensed MIT. It adds 43 tokens to every session and 6,199 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it B with 1 finding (strips warnings and disclaimers). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
no-bare-casts
Writing as in TypeScript or TSX production code, modifying a file that contains a bare as cast, silencing a type error with a cast, encountering as unknown as, or reviewing a cast site.
aws-sst-development
SST v4 (Ion) expert for managing AWS resources as code with the Pulumi-backed framework.
league-akari-shard-development
Use when creating, extending, refactoring, splitting, or reviewing League Akari main or renderer shards, including shard file organization, controller/loader/executor/handler boundaries, naming conventions, renderer TSX usage, platform guards, and public contract compatibility.
dd-code-generation
Use pup CLI for immediate Datadog operations or generate code for integration into applications.
typescript-magician
Designs complex generic types, refactors any types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing any types, strict typing, type errors, infer, extends…
fast-typescript-check
Keep www-sacred's TypeScript fast to type-check and fast to run. Use when touching the ASCII/canvas animation components (the only real per-frame code here), tightening type-check wall-clock, or auditing a change for runtime or compiler regressions. Scoped to this repo — a React 19 / Next.js 16 component library plus…