Borrowing it
Nothing to install: this file belongs to lootlog/monorepo. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/lootlog/monorepo/main/.agents/skills/typescript-best-practices/SKILL.mdgit clone --depth 1 https://github.com/lootlog/monorepoWrote 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/lootlog/monorepo/typescript-best-practices)<a href="https://agentmods.dev/skills/lootlog/monorepo/typescript-best-practices"><img src="https://agentmods.dev/badge/skills/lootlog/monorepo/typescript-best-practices.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.1 | $0.00048 | $0.00389 |
| Opus 5 | $0.00024 | $0.00195 |
| Sonnet 5 | $0.00010 | $0.00078 |
| Haiku 4.5 | $0.00005 | $0.00039 |
Grade A, and why
typescript-best-practices 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 8d 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.
What it actually says
TypeScript best practices
Follow AGENTS.md and the repository lint configuration first.
Model the data
- Use discriminated unions when code has real variants. Avoid bags of optional fields that permit invalid combinations.
- Keep the simplest total type. Introduce branded primitives or non-empty tuples only when they prevent a demonstrated class of mistakes.
- Derive types from authoritative schemas and existing values with
typeof,Pick,Omit,Parameters,ReturnType, or generated contracts. - Parse external data at HTTP, queue, storage, configuration, and browser boundaries. Keep it
unknownuntil validation succeeds. - Prefer exhaustive switches. Make unhandled variants fail type checking.
Write honest TypeScript
- Avoid
any, non-null assertions, and unchecked casts. When a library boundary requires a cast, keep it local and prove the invariant in code structure or a test. - Prefer
satisfieswhen validating an object without widening its literals. - Use
===,??, and optional chaining as specified by the project. - Use one import per module and inline
typespecifiers for type-only names. - Avoid nested ternaries. Use early returns or explicit branches.
- Use descriptive names and prefix genuinely unused variables with
_.
React
- Let React Compiler handle memoization. Do not add
memo,useMemo, oruseCallback. - Keep one component per file.
- Route all static user-facing text through i18n.
Verify
Test behavior through public seams. Prefer real framework primitives over mocks, and run the narrowest relevant typecheck, lint, and test tasks.
What ships with it
1 file 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.
- 8d ago First seen · 36 lines · 48 tokens per session scan A 3c283abc390d
typescript-best-practices is a skill published in the GitHub repository lootlog/monorepo (10 stars, last pushed today), licensed MIT. It adds 48 tokens to every session and 389 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-08-31.
Other skills, from other repositories
client-setup
Create a vanilla tRPC client with createTRPCClient (), configure link chain with httpBatchLink/httpLink, dynamic headers for auth, transformer on links (not client constructor). Infer types with inferRouterInputs and inferRouterOutputs. AbortController signal support. TRPCClientError typing.
adapter-express
Mount tRPC as Express middleware with createExpressMiddleware() from @trpc/server/adapters/express. Access Express req/res in createContext via CreateExpressContextOptions. Mount at a path prefix like app.use('/trpc', ...). Avoid global express.json() conflicting with tRPC body parsing for FormData.
trpc-router
Entry point for all tRPC skills. Decision tree routing by task: initTRPC.create(), t.router(), t.procedure, createTRPCClient, adapters, subscriptions, React Query, Next.js, links, middleware, validators, error handling, caching, FormData.
frontend-conventions
Coding conventions, architecture patterns, and testing rules for the SkillHub React frontend. Ensures agents follow Feature-Sliced Design and use the generated OpenAPI types.
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…
port-sacred-terminal-ui-to-typescript-cli
Take a React Window.tsx (or any sacred component) and produce a terminal CLI screen written in TypeScript that uses Simulacrum — the sacred CLI framework in scripts/cli/lib/.