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/larsbaunwall/unlinked/typescript-pronpx skills add larsbaunwall/Unlinked --skill typescript-progit clone --depth 1 https://github.com/larsbaunwall/UnlinkedWrote 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/larsbaunwall/unlinked/typescript-pro)<a href="https://agentmods.dev/skills/larsbaunwall/unlinked/typescript-pro"><img src="https://agentmods.dev/badge/skills/larsbaunwall/unlinked/typescript-pro.svg" alt="Measured on agentmods" 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 | $0.00069 | $0.01284 |
| Opus 5 | $0.00034 | $0.00642 |
| Sonnet 5 | $0.00014 | $0.00257 |
| Haiku 4.5 | $0.00007 | $0.00128 |
Grade A, and why
typescript-pro 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.
This is a copy
92% identical to typescript-pro — 2 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 — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TypeScript Pro
Core Workflow
- Analyze type architecture - Review tsconfig, type coverage, build performance
- Design type-first APIs - Create branded types, generics, utility types
- Implement with type safety - Write type guards, discriminated unions, conditional types; run
tsc --noEmitto catch type errors before proceeding - Optimize build - Configure project references, incremental compilation, tree shaking; re-run
tsc --noEmitto confirm zero errors after changes - Test types - Confirm type coverage with a tool like
type-coverage; validate that all public APIs have explicit return types; iterate on steps 3–4 until all checks pass
Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|---|---|---|
| Advanced Types | references/advanced-types.md |
Generics, conditional types, mapped types, template literals |
| Type Guards | references/type-guards.md |
Type narrowing, discriminated unions, assertion functions |
| Utility Types | references/utility-types.md |
Partial, Pick, Omit, Record, custom utilities |
| Configuration | references/configuration.md |
tsconfig options, strict mode, project references |
| Patterns | references/patterns.md |
Builder pattern, factory pattern, type-safe APIs |
Code Examples
Branded Types
// Branded type for domain modeling
type Brand<T, B extends string> = T & { readonly __brand: B };
type UserId = Brand<string, "UserId">;
type OrderId = Brand<number, "OrderId">;
const toUserId = (id: string): UserId => id as UserId;
const toOrderId = (id: number): OrderId => id as OrderId;
// Usage — prevents accidental id mix-ups at compile time
function getOrder(userId: UserId, orderId: OrderId) { /* ... */ }
Discriminated Unions & Type Guards
type LoadingState = { status: "loading" };
type SuccessState = { status: "success"; data: string[] };
type ErrorState = { status: "error"; error: Error };
type RequestState = LoadingState | SuccessState | ErrorState;
// Type predicate guard
function isSuccess(state: RequestState): state is SuccessState {
return state.status === "success";
}
// Exhaustive switch with discriminated union
function renderState(state: RequestState): string {
switch (state.status) {
case "loading": return "Loading…";
case "success": return state.data.join(", ");
case "error": return state.error.message;
default: {
const _exhaustive: never = state;
throw new Error(`Unhandled state: ${_exhaustive}`);
}
}
}
What ships with it
5 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.
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 · 148 lines · 69 tokens per session scan A 5f5bc47c167f
typescript-pro is a skill published in the GitHub repository larsbaunwall/Unlinked (3 stars, last pushed 3mo ago), licensed MIT. It adds 69 tokens to every session and 1,284 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. It is 92% identical to typescript-pro, differing in 2 lines, and is treated as a copy.
Other skills, from other repositories
performance-optimization
Node.js/TypeScript API performance, MCP protocol optimization, European Parliament API caching, async operations, and memory efficiency.
typescript-strict-patterns
TypeScript strict mode patterns, branded types, discriminated unions, and type-safe architecture for MCP servers.
code-quality-excellence
Enforce code quality with ESLint, TypeScript strict mode, Knip unused detection, and quality gates for MCP servers.
typescript-lsp
Search TypeScript SYMBOLS (functions, types, classes) - NOT text. Use Glob to find files, Grep for text search, LSP for symbol search. Provides type-aware results that understand imports, exports, and relationships.
chapplin-mcp-app-builder
Build and debug MCP App-enabled tools in existing projects scaffolded by create-chapplin. Use when extending tools/.tsx with defineTool and defineApp , wiring structuredContent and meta for UI data flow, handling runtime differences across react/preact/solid/hono targets, or troubleshooting chapplin preview and…
zod
Zod schema validation best practices for type safety, parsing, and error handling. This skill should be used when defining z.object schemas, using z.string validations, safeParse, or z.infer. This skill does NOT cover React Hook Form integration patterns (use react-hook-form skill) or OpenAPI client generation (use…