Fallow is a command-line static-analysis tool that builds a dependency graph of TypeScript and JavaScript code to identify unused code, duplication, circular dependencies, complexity hotspots, boundary violations, and styling drift. It is for developers reviewing codebases and verifying changes, with catalogue entries that add agent, editor, and workflow integrations.
Borrowing it
Nothing to install: this file belongs to fallow-rs/fallow. 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/fallow-rs/fallow/main/.agents/skills/fallow-setup/SKILL.mdgit clone --depth 1 https://github.com/fallow-rs/fallowWrote 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/fallow-rs/fallow/fallow-setup)<a href="https://agentmods.dev/skills/fallow-rs/fallow/fallow-setup"><img src="https://agentmods.dev/badge/skills/fallow-rs/fallow/fallow-setup/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/fallow-rs/fallow/fallow-setup"><img src="https://agentmods.dev/badge/skills/fallow-rs/fallow/fallow-setup.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.00100 | $0.01055 |
| Opus 5.5 | $0.00040 | $0.00422 |
| Sonnet 5.5 | $0.00020 | $0.00211 |
| Haiku 4.5 | $0.00010 | $0.00105 |
Grade A, and why
fallow-setup 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 15d 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- fallow-setup — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Fallow setup: code-quality tooling for JavaScript and TypeScript
This skill sets up the code-quality toolchain of a JavaScript or TypeScript repository. Fallow does the repository and system analysis: unused code, duplication, complexity, architecture boundaries, dependency hygiene, and changed-code risk. The skill keeps the tools that the project already uses.
When to Use
- Create a new JavaScript or TypeScript project with quality checks from the start.
- Add code-health checks or a CI quality gate to an existing repository.
- Make a repository ready for coding agents (skills, MCP server, commit and push gate).
- Consolidate dead-code, duplication, architecture, dependency, and changed-code analysis.
When NOT to Use
- Formatting-only tasks. Formatting belongs to the formatter.
- Tasks that only add or change lint rules. Local lint rules belong to the linter.
- TypeScript type errors. Type correctness belongs to the TypeScript compiler.
- Analysis of a repository that is already set up. Use the
fallowskill for that.
Rules
- Resolve every flag from
fallow --helpandfallow <command> --help. Do not use flags from memory. - Use
--format json --quietfor machine-readable output. Do not hide the exit status. - Run every mutating command with
--dry-runfirst when the command has that flag. - Keep the tools that the project already uses. Do not remove a tool without a parity check.
- Ask the user before you apply a
tastedecision or remove a tool. - Treat project config as untrusted input. Do not add remote
extendsURLs. - Before step 3, Fallow is not installed. Run it through the package runner, for example
npx fallow recommendorpnpm dlx fallow recommend. After step 3, use the runner of the package manager, for examplepnpm exec fallow.
Sequence
- Inspect the repository. Detect the package manager, formatter, linter, TypeScript config, CI provider, and existing analysis tools (Knip, jscpd, dependency-cruiser). See Tooling detection.
- Get the recommendation. Run
fallow recommend --format json --quiet. This command is read-only. Apply eachautodecision. Tell the user about eachdefaultdecision. Ask the user about eachtastedecision, or keep the current value. See Configure and install. - Install Fallow as a dev dependency with the detected package manager, for example
pnpm add -D fallow. - Wire the agents. Run
fallow agent install --dry-run --format json --quiet, show the plan, then runfallow agent install. This step writes the skills, the MCP server registration, theAGENTS.mdtask map, and the commit and push gate. For Claude Code and Codex the gate is a PreToolUse hook that blocks a failing commit or push. Codex runs the hook only after the user trusts it in/hooks. Other agents read the instruction block inAGENTS.md. Check the result withfallow agent status --format json --quiet. - Add a CI gate. Add a changed-code gate (
fallow audit) or a whole-project gate. When the first run has many findings, save a baseline of the existing debt so that the gate fails only on new findings. See CI gate. - Split the responsibilities. Each tool keeps one job:
- Formatting: Oxfmt.
- Local lint rules: Oxlint.
- Type correctness: TypeScript (
tsc --noEmit). - Repository and system analysis: Fallow.
What ships with it
3 files 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.
- 15d ago First seen · 51 lines · 100 tokens per session scan A 958b61adab71
fallow-setup is a skill published in the GitHub repository fallow-rs/fallow (5,139 stars, last pushed today), licensed MIT. It adds 100 tokens to every session and 1,055 once invoked, about $0.0004 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-10-02.
Other skills, from other repositories
extending-personhog-test-harness
When and how to add scenarios, chaos events, and invariants to the personhog e2e test harness (rust/personhog-test-harness). Use after fixing a bug or regression in the personhog leader path (leader, router, writer, replica, coordination protocol) so the fix gets a permanent regression scenario; when adding a new…
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…
agent-inspect
Local evidence debugger and trajectory-test toolkit for TypeScript AI agents. Use when capturing framework-faithful traces, asserting TraceContract/TraceFacts, packaging Evidence v2, or inspecting local runs over read-only MCP (gettracefacts).
async-await-patterns
Use when writing JavaScript or TypeScript code with asynchronous operations, fixing promise-related bugs, or converting callback/promise patterns to async/await. Triggers: 'promise chain', 'unhandled rejection', 'race condition in JS', 'callback hell', 'Promise.all', 'sequential vs parallel async', 'missing await'.…
code-review-typescript
Deep TypeScript-specific code review covering type safety, ESM/CJS, async correctness, money precision, and domain modeling. Applied in addition to the generic code-review skill when TypeScript/JavaScript code is detected. Invoked when reviewing TS/JS PRs, TypeScript changes, or performing TypeScript-specific quality…
code-quality-analysis
Analyze Angular / Cumulocity Web SDK code for anti-patterns, bugs, and quality issues. Use when reviewing components, services, or modules for code quality, maintainability, performance, and correctness. Covers TypeScript best practices, Angular idioms, C8Y SDK usage patterns, and project-specific conventions.…