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 | $0.00057 | $0.00619 |
| Sonnet 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 10d 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.
- 10d 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 (5 stars, last pushed 5d ago), licensed MIT. It adds 115 tokens to every session and 1,237 once invoked, about $0.0006 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
javascript-sandbox
Best practices for using the clodex built-in JavaScript sandbox for browser debugging, fetched-data processing, attachments, and mini-app orchestration within its bundled capability boundary.
openmanus
Use OpenManus as an external autonomous Python agent for long-running research, browser-style exploration, data analysis, or multi-step execution tasks from inside a mounted workspace.
date-threshold-arithmetic
Date comparisons at thresholds fail due to fractional days.
ts-debug
TypeScript/Node debugging expert. Use when the user needs to debug, profile, or trace TypeScript or Node.js code — e.g. "how do I debug this", "find the memory leak", "why is this slow", "add a breakpoint", "profile this function", "why won't the process exit".
fix-typescript-build
How to fix a failing tsc/npm run build (type-check) run in a project, batching fixes into sprints to preserve context.
migrate
Code migration assistant — upgrade frameworks, convert languages, modernize patterns.