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.
In an existing project, keep the current formatter and linter. Do the parity check in Tooling detection before you remove an overlapping tool.
References
- Tooling detection: the files to inspect, the responsibility split, and the parity check.
- Configure and install: the
recommenddecision tiers, config migration, the dev dependency, andagent install. - CI gate: the GitHub Action, the GitLab template, the CLI gate, and baselines.