
Fallow
Run dead-code, duplication, complexity, audit, and security-oriented checks via the fallow CLI from your agent before merge or release.
Overview
Fallow is an agent skill most often used in Ship (also Operate, Build) that documents the fallow CLI for dead code, duplication, audits, complexity, flags, and security candidate analysis.
Install
npx skills add https://github.com/fallow-rs/fallow-skills --skill fallowWhat is this skill?
- 15+ documented CLI command areas including dead-code, dupes, fix, health, audit, flags, and security
- Changed-file quality gate via audit command for PR-focused checks
- Auto-remove unused code path through fix aligned with dead-code analysis
- Resolved config, JSON schemas, plugin schema, and explain for rule transparency
- Global flags, env vars, JSON output structure, and inline suppression comments for CI integration
- 15+ CLI command categories in the reference TOC
- Multiple output formats including structured JSON
Adoption & trust: 3k installs on skills.sh; 85 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your agent keeps shipping PRs with unused code, dupes, and unchecked complexity because there is no single documented quality CLI to run.
Who is it for?
Indie devs maintaining Rust or polyglot repos who want one CLI for audit gates and technical-debt sweeps.
Skip if: Teams with no local install path for fallow or who only need a hosted SaaS scanner with no terminal workflow.
When should I use this skill?
You need documented fallow subcommands for analysis, audit gates, config, or automated fix workflows in the repo.
What do I get? / Deliverables
You get repeatable fallow command invocations, JSON-shaped findings, and config or suppression workflows wired into review and CI.
- CLI invocation recipes per command
- Parsed JSON issue reports
- Generated or migrated fallow config
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Ship is where quality gates and changed-file audits belong; fallow is shelved here as a pre-merge reviewer even though it also supports ongoing hygiene. Review subphase matches audit, explain, and security candidate workflows on diffs and code health.
Where it fits
Run fallow audit on the PR diff and attach JSON findings to the review thread.
Invoke fallow security to surface candidate issues alongside normal review.
Schedule dead-code and dupes passes after a major refactor to prevent drift.
Use fallow init and config-schema so the agent generates a valid project config on day one.
How it compares
Agent-facing CLI reference and quality gate commands, not a generic linter cheat sheet or an MCP server catalog entry.
Common Questions / FAQ
Who is fallow for?
Solo and indie builders using coding agents who install the fallow binary and want accurate command specs for dead code, audits, and security checks.
When should I use fallow?
In Ship on changed files before merge; in Operate during debt reduction sprints; in Build when generating init config and understanding project layout.
Is fallow safe to install?
The fix command can modify code—review the Security Audits panel on this page, pin versions, and run dry analysis commands in a branch before auto-removals.
SKILL.md
READMESKILL.md - Fallow
# Fallow CLI Reference Complete command and flag specifications for all fallow CLI commands. --- ## Table of Contents - [`dead-code`: Dead Code Analysis](#dead-code-dead-code-analysis) - [`dupes`: Duplication Detection](#dupes-duplication-detection) - [`fix`: Auto-Remove Unused Code](#fix-auto-remove-unused-code) - [`list`: Project Introspection](#list-project-introspection) - [`init`: Config Generation](#init-config-generation) - [`migrate`: Config Migration](#migrate-config-migration) - [`health`: Function Complexity Analysis](#health-function-complexity-analysis) - [`audit`: Changed-File Quality Gate](#audit-changed-file-quality-gate) - [`flags`: Feature Flag Detection](#flags-feature-flag-detection) - [`security`: Security Candidate Detection](#security-security-candidate-detection) - [`explain`: Rule Explanation](#explain-rule-explanation) - [`schema`: CLI Introspection](#schema-cli-introspection) - [`config-schema`: Config JSON Schema](#config-schema-config-json-schema) - [`plugin-schema`: Plugin JSON Schema](#plugin-schema-plugin-json-schema) - [`config`: Show Resolved Config](#config-show-resolved-config) - [Global Flags](#global-flags) - [Environment Variables](#environment-variables) - [Output Formats](#output-formats) - [JSON Output Structure](#json-output-structure) - [Configuration File Format](#configuration-file-format) - [Inline Suppression Comments](#inline-suppression-comments) --- ## `dead-code`: Dead Code Analysis Analyzes the project for unused files, exports, dependencies, types, members, and more. Running `fallow` with no subcommand runs all analyses (dead code + duplication + complexity). Use `fallow dead-code` for dead code only. ### Flags | Flag | Type | Default | Description | |------|------|---------|-------------| | `--format` | `human\|json\|sarif\|compact\|markdown\|codeclimate\|gitlab-codequality\|pr-comment-github\|pr-comment-gitlab\|review-github\|review-gitlab` | `human` | Output format | | `--quiet` | bool | `false` | Suppress progress bars and timing on stderr | | `--legacy-envelope` | bool | `false` | Remove the top-level `kind` field from typed JSON roots for one migration cycle | | `--changed-since` | string | — | Only analyze files changed since a git ref (e.g., `main`, `HEAD~3`) | | `--production` | bool | `false` | Exclude test/dev files, only start/build scripts (applies to every analysis) | | `--production-dead-code` | bool | `false` | Per-analysis production mode for dead-code. Bare combined runs and `fallow audit` only. | | `--production-health` | bool | `false` | Per-analysis production mode for health. Bare combined runs and `fallow audit` only. | | `--production-dupes` | bool | `false` | Per-analysis production mode for duplication. Bare combined runs and `fallow audit` only. | | `--baseline` | path | — | Compare against a saved baseline | | `--save-baseline` | path | — | Save current results as a baseline | | `--workspace` | string | — | Scope to one or more workspaces. Comma-separated values, globs (`apps/*`, `@scope/*`), and `!`-prefixed negation (`!apps/legacy`) supported. Matched against package name AND workspace path relative to repo root. | | `--changed-workspaces` | string (git ref) | — | Git-derived monorepo CI scoping: scope to workspaces containing any file changed since `REF` (e.g. `origin/main`). Auto-derives the workspace set from `git diff`. Mutually exclusive with `--workspace`. Missing ref is a hard error (exit 2), not silent full-scope fallback. | | `--include-dupes` | bool | `false` | Cross-reference with duplication findings | | `--dupes-mode` | enum | `config` | Override duplicate detection mode in combined mode. Falls back to the config value when unset. Mirrors the standalone `dupes --mode`. | | `--dupes-threshold` | number | `config` | Override the duplication percentage failure threshold in combined mode. Falls back to the config value when unset. Mirrors the standalone `dupes --threshold`. | | `--dupes-min-tokens` | number | `config` | Overri