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 CassetteTapeCrackle/claude-starters --skill clean-code-tsgit clone --depth 1 https://github.com/CassetteTapeCrackle/claude-startersWrote 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/cassettetapecrackle/claude-starters/clean-code-ts)<a href="https://agentmods.dev/skills/cassettetapecrackle/claude-starters/clean-code-ts"><img src="https://agentmods.dev/badge/skills/cassettetapecrackle/claude-starters/clean-code-ts/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/cassettetapecrackle/claude-starters/clean-code-ts"><img src="https://agentmods.dev/badge/skills/cassettetapecrackle/claude-starters/clean-code-ts.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.00036 | $0.00342 |
| Opus 5 | $0.00018 | $0.00171 |
| Sonnet 5 | $0.00007 | $0.00068 |
| Haiku 4.5 | $0.00004 | $0.00034 |
Grade A, and why
clean-code-ts 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.
What it actually says
Clean-code TypeScript (depth)
On top of the base rules (strict tsconfig, ESLint+Prettier, Vitest).
Types
- No
any. Useunknownat boundaries and narrow. Prefertypealiases + discriminated unions for state over booleans/optionals. - Model impossible states out of existence (a union, not many independent flags). Exhaustiveness-check unions with a
neverdefault inswitch. - Derive types from runtime schemas (zod/TypeBox) at IO boundaries — one source of truth, not parallel
interface+ validator.
Correctness
strictNullCheckson; handlenull/undefinedexplicitly, no!non-null assertions outside tests.awaitevery promise or handle it; no floating promises.Promise.allfor independent async, not sequential awaits.- Readonly by default (
readonly,as const); immutable data flow.
Style
- Named exports over default (grep + refactor friendliness). Small modules; pure functions; early returns.
- Narrow function signatures — take exactly what's used, not the whole object.
Smells
anyoras SomeTypecasts → narrow or fix the type at the source.- Booleans multiplying into impossible combinations → discriminated union.
- A validator and an
interfacethat can drift → derive the type from the schema.
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 · 28 lines · 36 tokens per session scan A 90d7d9b8736f
clean-code-ts is a skill published in the GitHub repository CassetteTapeCrackle/claude-starters (1 stars, last pushed 20d ago), licensed MIT. It adds 36 tokens to every session and 342 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
scan-reward-hacking
Scan TypeScript code for reward hacking patterns — shortcuts that make linters pass without actually fixing type safety. This skill has a comprehensive checklist of 8 forbidden patterns with severity tuning (libraries vs apps) that you cannot reliably check on your own. ALWAYS consult this skill when the user says…
react-frontend
React, TypeScript, and Next.js patterns for frontend development. Use when building React components, managing state, fetching data, optimizing performance, or working with Next.js App Router. Covers React 18-19, hooks, Server Components, and type-safe patterns.
shared-tooling-eslint-prettier
ESLint 9/10 flat config with defineConfig(), Prettier v3.0+ shared config, eslint-config-prettier integration, typescript-eslint v8+ projectService.
spec-implement
Continue an approved Spec-backed workflow when the user says "implement", "go", "start", or "do it". After Codex Plan Mode, persist the next missing design.md or plan.json artifact and stop. When both artifacts exist, execute plan.json with TDD and report between batches.
typescript-coder
Implements TypeScript/JavaScript code following established architecture and coding guidelines. Use when implementing features designed by typescript-architect.
typescript-testing
TypeScript testing patterns with Jest/Vitest including unit tests, integration tests, mocking strategies, and coverage. Use when writing TypeScript tests.