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 All-The-Vibes/ATV-Phoenix --skill phoenix-typescriptgit clone --depth 1 https://github.com/All-The-Vibes/ATV-PhoenixWrote 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/all-the-vibes/atv-phoenix/phoenix-typescript)<a href="https://agentmods.dev/skills/all-the-vibes/atv-phoenix/phoenix-typescript"><img src="https://agentmods.dev/badge/skills/all-the-vibes/atv-phoenix/phoenix-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/all-the-vibes/atv-phoenix/phoenix-typescript"><img src="https://agentmods.dev/badge/skills/all-the-vibes/atv-phoenix/phoenix-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.00115 | $0.01237 |
| Opus 5.5 | $0.00046 | $0.00495 |
| Sonnet 5.5 | $0.00023 | $0.00247 |
| Haiku 4.5 | $0.00012 | $0.00124 |
Grade A, and why
phoenix-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.
How it starts
The opening of the file, as written. The whole thing — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
phoenix-typescript — the type-checker is a phoenix_sense gate
Encodes Mat Pocock's / Total TypeScript philosophy: TypeScript wasn't built to make JS "strongly typed" — it was built to give JS a fast, powerful feedback loop. Phoenix treats that loop as a first-class objective check.
Overview
The TypeScript language server and tsc form exactly the kind of objective signal Phoenix runs on: you
write code, the checker gives instant pass/fail, you adjust — all before runtime. So in Phoenix,
tsc --noEmit is a phoenix_sense check, on equal footing with tests. A change isn't done because
it "looks typed"; it's done when the type check is green.
The gate
{"check":{"kind":"command_exit","target":["npx","tsc","--noEmit"],"expect":0}}
Run it as the inner-loop check for any TS edit (alongside the test gate). Red tsc = not done.
The feedback loop
edit .ts ──► tsc --noEmit (phoenix_sense) ──► ok? ──yes──► run tests ──► done
│ no
▼
read the type error (DATA, not a nuisance)
│
▼
fix the TYPE, not @ts-ignore the symptom ──► re-sense
Craft rules (each keeps the gate meaningful)
- Work strict.
"strict": true(andnoUncheckedIndexedAccess) intsconfig.json. Strictness is what makes the green check mean something; a loose config is a gate that can't fail. - Kill
anyand unsafe casts.anydisables the checker locally — it's a hole in the gate. Preferunknown+ narrowing. Anascast asserts a truth the compiler can't verify; treat every cast as a place a real bug can hide, and justify it. - Derive, don't duplicate. One source of truth for a shape; derive the rest with
typeof, indexed access (T["field"]),Parameters,ReturnType,Pick/Omit,as const. Duplicated types drift out of sync silently — exactly the failure types exist to prevent. - Type the boundaries. Validate external/untrusted data (API responses, params) at the edge (a schema validator), so the typed core can trust its inputs. Inside, let inference do the work — don't annotate what TS already knows.
- No
@ts-ignore/@ts-expect-errorto pass the gate. Silencing the checker to get green is the TS equivalent of editing the test to match broken code. Fix the type. If a suppression is truly necessary, it needs a comment explaining why and aphoenix_sensetest of the runtime behavior.
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 · 78 lines · 115 tokens per session scan A 36b126546883
phoenix-typescript is a skill published in the GitHub repository All-The-Vibes/ATV-Phoenix (6 stars, last pushed 6d ago), licensed MIT. It adds 115 tokens to every session and 1,237 once invoked, about $0.0005 per session on Opus 5.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
date-threshold-arithmetic
Date comparisons at thresholds fail due to fractional days.
javascript-typescript-jest
Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.
typescript-best-practices
TypeScript best practices. Use when reading or editing any .ts or .tsx file.
node-modern
Use this skill when writing, reviewing, or refactoring Node.js code — modules, async flow, cancellation, file and process I/O, HTTP — on a current Node.js release. Triggers: user mentions "Node", "Node.js", "ESM", "CommonJS", "require", "import", "fetch", "AbortSignal", "AbortController", "stream", "childprocess"…
typescript-strict
Use this skill when writing, reviewing, or fixing TypeScript where type safety matters — type errors, narrowing, unsafe casts, or tightening compiler strictness. Triggers: user mentions "TypeScript", "type error", "tsc", "strict", "type safety", "narrowing", "any", "unknown", "discriminated union", "branded type"…
angular
Use when building, refactoring, or debugging Angular (v20/21+): standalone components, signals, zoneless change detection, @if/@for/@defer control flow, inject() DI, resource()/httpResource(), RxJS interop, NgRx SignalStore, ng CLI. NOT React (that is react), NOT Next.js (that is nextjs), NOT a TypeScript language…