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 medy-gribkov/arcana --skill typescriptgit clone --depth 1 https://github.com/medy-gribkov/arcanaWrote 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/medy-gribkov/arcana/typescript)<a href="https://agentmods.dev/skills/medy-gribkov/arcana/typescript"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/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/medy-gribkov/arcana/typescript"><img src="https://agentmods.dev/badge/skills/medy-gribkov/arcana/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.00041 | $0.01054 |
| Opus 5 | $0.00020 | $0.00527 |
| Sonnet 5 | $0.00008 | $0.00211 |
| Haiku 4.5 | $0.00004 | $0.00105 |
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 9d 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 — 192 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Types and Type Safety
BAD: Using any defeats the type system.
function processData(data: any) {
return data.value.toUpperCase();
}
GOOD: Define explicit types or use generics.
interface DataWithValue {
value: string;
}
function processData(data: DataWithValue): string {
return data.value.toUpperCase();
}
When TypeScript Can Infer
BAD: Redundant type annotations.
const count: number = 42;
const name: string = 'Alice';
GOOD: Let TypeScript infer.
const count = 42; // inferred as number
const name = 'Alice'; // inferred as string
Record vs Object
BAD: Using object or {}. These allow any object.
GOOD: Use Record<PropertyKey, unknown> for arbitrary objects.
function logData(data: Record<PropertyKey, unknown>) {
console.log(data);
}
Interfaces vs Types
GOOD: Use interface for object shapes. Use type for unions, intersections, and primitives.
// Object shapes: interface
interface User {
id: number;
name: string;
}
// Unions: type
type Status = 'pending' | 'approved' | 'rejected';
// Intersections: type
type AdminUser = User & { role: 'admin' };
Generics Constraints
BAD: Unconstrained generics allow any type.
function getProperty<T>(obj: T, key: string) {
return obj[key]; // Error: key is not guaranteed to exist on T
}
GOOD: Constrain generics with extends.
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { id: 1, name: 'Alice' };
const name = getProperty(user, 'name'); // Type: string
Multiple Constraints
function findById<T extends Identifiable & Named>(
items: T[],
id: number
): T | undefined {
return items.find(item => item.id === id);
}
Default Generic Types
function createArray<T = string>(length: number, value: T): T[] {
return Array(length).fill(value);
}
What ships with it
3 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.
- 9d ago First seen · 192 lines · 41 tokens per session scan A 265b57249691
typescript is a skill published in the GitHub repository medy-gribkov/arcana (1 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 41 tokens to every session and 1,054 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-09-03.
Other skills, from other repositories
typescript-patterns
TypeScript types: generics, discriminated unions, Zod, satisfies, branded types. Triggers: TypeScript, TS, generics, Zod, satisfies, strict mode.
typescript-rules
TypeScript/JavaScript coding rules: style, patterns, security, testing. Triggers: .ts, .tsx, .js, .jsx, package.json, tsconfig.json, React, Next.js, Vue, Vite, Vitest, Jest, ESLint.
ai-provider-anthropic-sdk
Official Anthropic SDK patterns for TypeScript/Node.js — client setup, Messages API, streaming, tool use, vision, extended thinking, structured outputs, prompt caching, batch API, and production best practices.
ai-infrastructure-ollama
Local LLM inference with the Ollama JavaScript client -- chat, streaming, tool calling, vision, embeddings, structured output, model management, and OpenAI-compatible endpoint.
ai-infrastructure-replicate
Replicate SDK patterns for TypeScript/Node.js -- client setup, predictions, streaming, webhooks, file handling, model versioning, deployments, and training.
ai-infrastructure-together-ai
Together AI SDK patterns for TypeScript — client setup, chat completions, streaming, structured output, function calling, embeddings, image generation, fine-tuning, and OpenAI-compatible endpoints.