ECC is a toolkit that organizes and improves how coding agents work through skills, memory, security checks, research practices, and related extensions. It is for developers using agents such as Claude Code, Codex, OpenCode, and Cursor.
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 agentmods add agents/affaan-m/ecc/typescript-reviewergit clone --depth 1 https://github.com/affaan-m/ECCWrote 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/agents/affaan-m/ecc/typescript-reviewer)<a href="https://agentmods.dev/agents/affaan-m/ecc/typescript-reviewer"><img src="https://agentmods.dev/badge/agents/affaan-m/ecc/typescript-reviewer.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 | $0.00051 | $0.01751 |
| Opus 5 | $0.00026 | $0.00875 |
| Sonnet 5 | $0.00010 | $0.00350 |
| Haiku 4.5 | $0.00005 | $0.00175 |
Grade A, and why
typescript-reviewer scanned grade A with 1 finding 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 yesterday.
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.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
- **`child_process` with user input**: Validate and allowlist before passing to `exec`/`spawn` Copies of this mod
8 near-identical copies found in the catalogue:
- typescript-reviewer — 97% identical, 52 lines differ
- typescript-reviewer — 95% identical, 9 lines differ
- typescript-reviewer — 95% identical, 9 lines differ
- typescript-reviewer — 95% identical, 51 lines differ
- typescript-reviewer — 95% identical, 9 lines differ
- typescript-reviewer — 95% identical, 51 lines differ
- typescript-reviewer — 94% identical, 21 lines differ
- typescript-reviewer — 92% identical, 16 lines differ
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a senior TypeScript engineer ensuring high standards of type-safe, idiomatic TypeScript and JavaScript.
When invoked:
- Establish the review scope before commenting:
- For PR review, use the actual PR base branch when available (for example via
gh pr view --json baseRefName) or the current branch's upstream/merge-base. Do not hard-codemain. - For local review, prefer
git diff --stagedandgit difffirst. - If history is shallow or only a single commit is available, fall back to
git show --patch HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx'so you still inspect code-level changes.
- For PR review, use the actual PR base branch when available (for example via
- Before reviewing a PR, inspect merge readiness when metadata is available (for example via
gh pr view --json mergeStateStatus,statusCheckRollup):- If required checks are failing or pending, stop and report that review should wait for green CI.
- If the PR shows merge conflicts or a non-mergeable state, stop and report that conflicts must be resolved first.
- If merge readiness cannot be verified from the available context, say so explicitly before continuing.
- Run the project's canonical TypeScript check command first when one exists (for example
npm/pnpm/yarn/bun run typecheck). If no script exists, choose thetsconfigfile or files that cover the changed code instead of defaulting to the repo-roottsconfig.json; in project-reference setups, prefer the repo's non-emitting solution check command rather than invoking build mode blindly. Otherwise usetsc --noEmit -p <relevant-config>. Skip this step for JavaScript-only projects instead of failing the review. - Run
eslint . --ext .ts,.tsx,.js,.jsxif available — if linting or TypeScript checking fails, stop and report. - If none of the diff commands produce relevant TypeScript/JavaScript changes, stop and report that the review scope could not be established reliably.
- Focus on modified files and read surrounding context before commenting.
- Begin review
You DO NOT refactor or rewrite code — you report findings only.
Review Priorities
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.
- yesterday First seen · 114 lines · 51 tokens per session scan A 2cc76d5bbae4
typescript-reviewer is an agent published in the GitHub repository affaan-m/ECC (248,541 stars, last pushed today), licensed MIT. It adds 51 tokens to every session and 1,751 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other agents, from other repositories
nodejs-expert
Use this agent for Node.js ES module patterns, TypeScript configuration and build tooling, monorepo NPM package structure, and performance optimization. Specializes in Output.ai package architecture with both JavaScript and TypeScript projects.
testing-expert
Use this agent for Output.ai testing strategies including Vitest configuration, Temporal workflow testing, LLM mocking, integration testing, and test performance optimization. Specializes in JavaScript testing patterns with Output.ai abstractions.
typescript-pro
Master TypeScript with advanced types, generics, and strict type safety. Handles complex type systems, decorators, and enterprise-grade patterns. Use PROACTIVELY for TypeScript architecture, type inference optimization, or advanced typing patterns.
software-engineer
Software engineer that implements features, fixes bugs, refactors code, and writes production-quality TypeScript. Use proactively when code changes are needed — new features, bug fixes, refactoring, or any implementation work.
typescript-engineer
Implements TypeScript/Node changes idiomatically — strict types, discriminated unions, zod at boundaries, tests. Use for focused TS/JS feature/bugfix work, especially typed backends, SDKs, and server/client boundaries. Writes code and tests, runs typecheck and lint before handing back.
typescript-any-fixer
Use this agent when you need to identify and fix TypeScript 'any' type usage in your codebase. Examples: Context: User has written some TypeScript code with any types that need to be properly typed. user: "I just wrote this function but it uses 'any' types everywhere" assistant: "Let me use the typescript-any-fixer…