Back to Agentic AI

Agentic AI / Reusable artifact

Run Fallow Skill

A Claude Code Skill that drives the fallow static analyzer correctly: JSON output only, this repo real complexity bar instead of the tool default, and instructions for fixing .fallowrc.json itself when a finding is noise instead of a real problem.

Skills

What fallow is

Fallow is a static analyzer for TypeScript and JavaScript codebases: dead code, duplication, complexity hotspots, architecture-boundary drift, design-token drift, feature-flag branches, all built off the real module graph rather than regex matching. Point it at a repo and it tells you what's unused, what's copy-pasted, and what's getting too tangled to touch safely. An optional runtime layer adds actual production evidence (hot paths, cold paths) on top of the static picture. It's read-only by default; nothing gets deleted or rewritten unless you explicitly run fallow fix.

This portfolio has it installed and configured (.fallowrc.json at the repo root), which is exactly the situation this skill is built for. It's a real tool with real output, and Claude needs a set of habits to follow every time it reaches for it.

What the skill enforces

Left alone, an agent running fallow tends to do three things wrong: read the human-formatted terminal output instead of JSON, apply fallow's default complexity threshold instead of the repo's actual one, and treat every finding as gospel instead of checking whether the config itself is stale. The skill exists to close those gaps.

  1. JSON or nothing. Every invocation goes through --format json, piped to a file first, then parsed with jq/Python. Fallow's payloads run tens of thousands of lines on a repo this size; skimming raw terminal output for anything beyond a spot check wastes the one resource an agent can't get back, its own context window.
  2. This repo's bar, not fallow's. Fallow defaults to --max-cyclomatic 20. This project's own standard (in CLAUDE.md) is 10. The skill hardcodes --max-cyclomatic 10 into every complexity command so findings actually reflect what this codebase enforces, not what the tool ships with.
  3. Config drift is a real failure mode. A finding that looks wrong is sometimes wrong, and sometimes it's .fallowrc.json describing a codebase that no longer exists (a file renamed .js to .ts, an entry glob from before a framework upgrade). The skill lists the concrete signs that distinguish "the code is fine, the config is stale" from "the finding is real," and walks through fallow config, fallow config-schema, and fallow recommend before any hand-edit.
<!-- diagram: flow-run-fallow -->
graph TD
    A[fallow guard on files about to change] --> B[fallow health --max-cyclomatic 10 --targets]
    B --> C[Make the change]
    C --> D[fallow audit --format json]
    D --> E{Finding looks wrong?}
    E -- Real issue --> F[Fix the code]
    E -- Stale config --> G[fallow config + recommend, then edit .fallowrc.json]
    G --> D

How to get it

This skill is maintained publicly in Agentry Labs, a framework-agnostic collection of reusable AI-agent components. Install it into any project with one command:

curl -sSL https://raw.githubusercontent.com/ersanyamarya/agentry-labs/main/scripts/install.sh | bash -s -- skills/run-fallow

Then invoke it inside Claude Code:

claude -p "/skill run-fallow"

It assumes fallow is already installed and configured for the target repo; the skill is a single SKILL.md, no bundled scripts, that steers how Claude calls a CLI that's already there.