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 pproenca/dot-skills --skill typescriptgit clone --depth 1 https://github.com/pproenca/dot-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/pproenca/dot-skills/typescript)<a href="https://agentmods.dev/skills/pproenca/dot-skills/typescript"><img src="https://agentmods.dev/badge/skills/pproenca/dot-skills/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/pproenca/dot-skills/typescript"><img src="https://agentmods.dev/badge/skills/pproenca/dot-skills/typescript.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector pass
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.00111 | $0.02394 |
| Opus 5.5 | $0.00044 | $0.00958 |
| Sonnet 5.5 | $0.00022 | $0.00479 |
| Haiku 4.5 | $0.00011 | $0.00239 |
Grade A, and why
typescript 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 1mo 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.
This is a copy
88% identical to author-webpage-content — 338 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TypeScript Best Practices
Comprehensive performance optimization guide for TypeScript applications. Contains 45 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Configuring tsconfig.json for a new or existing project
- Writing complex type definitions or generics
- Optimizing async/await patterns and data fetching
- Organizing modules and managing imports
- Reviewing code for compilation or runtime performance
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Type System Performance | CRITICAL | type- |
| 2 | Compiler Configuration | CRITICAL | tscfg- |
| 3 | Async Patterns | HIGH | async- |
| 4 | Module Organization | HIGH | module- |
| 5 | Type Safety Patterns | MEDIUM-HIGH | safety- |
| 6 | Memory Management | MEDIUM | mem- |
| 7 | Runtime Optimization | LOW-MEDIUM | runtime- |
| 8 | Advanced Patterns | LOW | advanced- |
Table of Contents
- Type System Performance — CRITICAL
- 1.1 Add Explicit Return Types to Exported Functions — CRITICAL (30-50% faster declaration emit)
- 1.2 Avoid Deeply Nested Generic Types — CRITICAL (prevents exponential instantiation cost)
- 1.3 Avoid Large Union Types — CRITICAL (quadratic O(n²) comparison cost)
- 1.4 Extract Conditional Types to Named Aliases — CRITICAL (enables compiler caching, prevents re-evaluation)
- 1.5 Limit Type Recursion Depth — HIGH (prevents exponential type expansion when applicable)
- 1.6 Prefer Interfaces Over Type Intersections — CRITICAL (2-5× faster type resolution)
- 1.7 Simplify Complex Mapped Types — HIGH (reduces type computation by 50-80% when applicable)
- Compiler Configuration — CRITICAL
- 2.1 Configure Include and Exclude Properly — CRITICAL (prevents scanning thousands of unnecessary files)
- 2.2 Enable Incremental Compilation — CRITICAL (50-90% faster rebuilds)
- 2.3 Enable isolatedDeclarations for Parallel Declaration Emit — CRITICAL (enables parallel .d.ts generation without type-checker)
- 2.4 Enable skipLibCheck for Faster Builds — CRITICAL (20-40% faster compilation)
- 2.5 Enable strictFunctionTypes for Faster Variance Checks — CRITICAL (enables optimized variance checking)
- 2.6 Use erasableSyntaxOnly for Node.js Native TypeScript — HIGH (prevents 100% of Node.js type-stripping runtime errors)
- 2.7 Use isolatedModules for Single-File Transpilation — CRITICAL (80-90% faster transpilation with bundlers)
- 2.8 Use Project References for Large Codebases — CRITICAL (60-80% faster incremental builds)
- Async Patterns — HIGH
- 3.1 Annotate Async Function Return Types — HIGH (prevents runtime errors, improves inference)
- 3.2 Avoid await Inside Loops — HIGH (N× faster for N iterations, 10 users = 10× improvement)
- 3.3 Avoid Unnecessary async/await — HIGH (eliminates trivial Promise wrappers and improves stack traces)
- 3.4 Defer await Until Value Is Needed — HIGH (enables implicit parallelization)
- 3.5 Use Promise.all for Independent Operations — HIGH (2-10× improvement in I/O-bound code)
- Module Organization — HIGH
- 4.1 Avoid Barrel File Imports — HIGH (200-800ms import cost, 30-50% larger bundles)
- 4.2 Avoid Circular Dependencies — HIGH (prevents runtime undefined errors and slow compilation)
- 4.3 Control @types Package Inclusion — HIGH (prevents type conflicts and reduces memory usage)
- 4.4 Use Dynamic Imports for Large Modules — HIGH (reduces initial bundle by 30-70%)
- 4.5 Use Type-Only Imports for Types — HIGH (eliminates runtime imports for type information)
- Type Safety Patterns — MEDIUM-HIGH
- 5.1 Enable noUncheckedIndexedAccess — MEDIUM-HIGH (prevents 100% of unchecked index access errors at compile time)
- 5.2 Enable strictNullChecks — MEDIUM-HIGH (prevents null/undefined runtime errors)
- 5.3 Prefer unknown Over any — MEDIUM-HIGH (forces type narrowing, prevents runtime errors)
- 5.4 Use Assertion Functions for Validation — MEDIUM-HIGH (reduces validation boilerplate by 50-70%)
- 5.5 Use const Assertions for Literal Types — MEDIUM-HIGH (preserves literal types, enables better inference)
- 5.6 Use Exhaustive Checks for Union Types — MEDIUM-HIGH (prevents 100% of missing case errors at compile time)
- 5.7 Use Type Guards for Runtime Type Checking — MEDIUM-HIGH (eliminates type assertions, catches errors at boundaries)
- Memory Management — MEDIUM
- 6.1 Avoid Closure Memory Leaks — MEDIUM (prevents retained references in long-lived callbacks)
- 6.2 Avoid Global State Accumulation — MEDIUM (prevents unbounded memory growth)
- 6.3 Clean Up Event Listeners — MEDIUM (prevents unbounded memory growth)
- 6.4 Clear Timers and Intervals — MEDIUM (prevents callback retention and repeated execution)
- 6.5 Use WeakMap for Object Metadata — MEDIUM (prevents memory leaks, enables automatic cleanup)
- Runtime Optimization — LOW-MEDIUM
- 7.1 Avoid Object Spread in Hot Loops — LOW-MEDIUM (reduces object allocations by N×)
- 7.2 Cache Property Access in Loops — LOW-MEDIUM (reduces property lookups by N× in hot paths)
- 7.3 Prefer Native Array Methods Over Lodash — LOW-MEDIUM (eliminates library overhead, enables tree-shaking)
- 7.4 Use for-of for Simple Iteration — LOW-MEDIUM (reduces iteration boilerplate by 30-50%)
- 7.5 Use Modern String Methods — LOW-MEDIUM (2-5× faster than regex for simple patterns)
- 7.6 Use Set/Map for O(1) Lookups — LOW-MEDIUM (O(n) to O(1) per lookup)
- Advanced Patterns — LOW
- 8.1 Use Branded Types for Type-Safe IDs — LOW (prevents mixing incompatible ID types)
- 8.2 Use satisfies for Type Validation with Inference — LOW (prevents property access errors, enables 100% autocomplete accuracy)
- 8.3 Use Template Literal Types for String Patterns — LOW (prevents 100% of string format errors at compile time)
What ships with it
50 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.
- AGENTS.md 203 B
- assets/templates/_template.md 612 B
- metadata.json 930 B
- references/_sections.md 1.7 KB
- references/advanced-branded-types.md 2.4 KB
- references/advanced-satisfies-operator.md 2.6 KB
- references/advanced-template-literal-types.md 2.6 KB
- references/async-avoid-loop-await.md 2.1 KB
- references/async-avoid-unnecessary-async.md 2.1 KB
- references/async-defer-await.md 2.1 KB
- references/async-explicit-return-types.md 2.1 KB
- references/async-parallel-promises.md 2.1 KB
- references/mem-avoid-closure-leaks.md 2.9 KB
- references/mem-avoid-global-state.md 2.4 KB
- references/mem-cleanup-event-listeners.md 2.9 KB
- references/mem-clear-timers.md 2.5 KB
- references/mem-use-weakmap-for-metadata.md 2.2 KB
- references/module-avoid-barrel-imports.md 1.7 KB
- references/module-avoid-circular-dependencies.md 1.8 KB
- references/module-control-types-inclusion.md 1.8 KB
- references/module-dynamic-imports.md 2.1 KB
- references/module-use-type-imports.md 1.9 KB
- references/runtime-avoid-object-spread-in-loops.md 2.1 KB
- references/runtime-cache-property-access.md 2.0 KB
- references/runtime-prefer-array-methods.md 2.3 KB
- references/runtime-use-for-of-for-iteration.md 2.0 KB
- references/runtime-use-set-for-lookups.md 1.8 KB
- references/runtime-use-string-methods.md 2.2 KB
- references/safety-assertion-functions.md 2.5 KB
- references/safety-const-assertions.md 2.2 KB
- references/safety-exhaustive-checks.md 2.4 KB
- references/safety-no-unchecked-indexed-access.md 2.5 KB
- references/safety-prefer-unknown-over-any.md 2.0 KB
- references/safety-strict-null-checks.md 1.9 KB
- references/safety-use-type-guards.md 2.1 KB
- references/tscfg-enable-incremental.md 1.4 KB
- references/tscfg-erasable-syntax-only.md 2.3 KB
- references/tscfg-exclude-properly.md 1.8 KB
- references/tscfg-isolate-modules.md 2.0 KB
- references/tscfg-isolated-declarations.md 2.0 KB
- references/tscfg-project-references.md 2.1 KB
- references/tscfg-skip-lib-check.md 1.5 KB
- references/tscfg-strict-function-types.md 1.8 KB
- references/type-avoid-deep-generics.md 1.8 KB
- references/type-avoid-large-unions.md 2.0 KB
- references/type-explicit-return-types.md 2.0 KB
- references/type-extract-conditional-types.md 1.6 KB
- references/type-interfaces-over-intersections.md 1.3 KB
- references/type-limit-recursion-depth.md 1.7 KB
- references/type-simplify-mapped-types.md 1.8 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.
- 1mo ago First seen · 94 lines · 111 tokens per session scan A bfd479f56e95
typescript is a skill published in the GitHub repository pproenca/dot-skills (218 stars, last pushed 2mo ago), licensed MIT. It adds 111 tokens to every session and 2,394 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 88% identical to author-webpage-content, differing in 338 lines, and is treated as a copy.
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…