fallow 3.30.0 → 3.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Codebase intelligence for TypeScript and JavaScript.**
4
4
 
5
- One binary finds unused code, circular dependencies, duplication, complexity hotspots, boundary violations, and design-system styling drift. An optional paid layer, Fallow Runtime, adds production execution evidence. No AI inside the analyzer, and no TypeScript compiler or Node.js runtime needed for static analysis: runs are deterministic, with typed output contracts and traceable explanations.
5
+ One binary finds unused code, circular dependencies, duplication, complexity hotspots, boundary violations, and design-system styling drift. Fallow Cloud optionally adds production coverage: which functions run in production. Default static analysis is deterministic and uses no AI. It needs no TypeScript compiler or Node.js runtime. Reports have typed output contracts and traceable explanations.
6
6
 
7
7
  [![CI](https://github.com/fallow-rs/fallow/actions/workflows/ci.yml/badge.svg)](https://github.com/fallow-rs/fallow/actions/workflows/ci.yml)
8
8
  [![npm](https://img.shields.io/npm/v/fallow.svg)](https://www.npmjs.com/package/fallow)
@@ -14,7 +14,7 @@ One binary finds unused code, circular dependencies, duplication, complexity hot
14
14
  npm install --save-dev fallow # or: pnpm add -D fallow / yarn add -D fallow
15
15
  ```
16
16
 
17
- This installs the `fallow` CLI plus the `fallow-lsp` and `fallow-mcp` launchers, so editor and agent integrations resolve the project-local binary instead of whatever happens to be on `PATH`. For one-off use, run `npx fallow` without installing. Other channels (cargo, Docker, prebuilt binaries) are covered in the [installation guide](https://docs.fallow.tools/installation).
17
+ This installs the `fallow` CLI plus the `fallow-lsp` and `fallow-mcp` launchers, so editor and agent integrations resolve the project-local binary instead of whatever happens to be on `PATH`. For one-off use, run `npx fallow` without installing. Other channels (cargo, Docker, prebuilt binaries) are covered in the [installation guide](https://fallow.tools/docs/installation/).
18
18
 
19
19
  ## Quick start
20
20
 
@@ -36,7 +36,7 @@ Parsing the output in TypeScript? Import the typed shapes, version-pinned to the
36
36
  import type { CheckOutput, FallowJsonOutput } from "fallow/types";
37
37
  ```
38
38
 
39
- Every issue carries an `actions[]` array with an `auto_fixable` flag, so scripts and agents know which findings they can hand to `fallow fix`. The full contract lives at [docs.fallow.tools](https://docs.fallow.tools).
39
+ Every issue carries an `actions[]` array with an `auto_fixable` flag, so scripts and agents know which findings they can hand to `fallow fix`. The full contract lives at [fallow.tools/docs](https://fallow.tools/docs/).
40
40
 
41
41
  ## What fallow reports
42
42
 
@@ -48,9 +48,7 @@ Every issue carries an `actions[]` array with an `auto_fixable` flag, so scripts
48
48
  - Design-system styling drift for CSS and CSS-in-JS (Sass/Less, CSS Modules, Tailwind, styled-components, Emotion, and more)
49
49
  - A changed-file PR gate with per-finding attribution (`fallow audit`)
50
50
  - Optional TypeScript checker evidence for exact symbol use, affected files, targeted tests, cross-file private type leaks, and public-signature coupling (`--type-aware`)
51
- - Optional runtime intelligence: hot paths, cold code, runtime-weighted health (licensed Fallow Runtime; a single local coverage capture is free)
52
-
53
- For head-to-head timings against [knip](https://knip.dev) and [jscpd](https://github.com/kucherenko/jscpd), see [BENCHMARKS.md](https://github.com/fallow-rs/fallow/blob/main/BENCHMARKS.md): fallow is faster than knip on smaller projects, knip is faster on several larger repos, and jscpd's Rust rewrite is faster at raw duplication scanning.
51
+ - Optional production coverage with Fallow Cloud: hot paths, cold code, runtime-weighted health (licensed; a single local coverage capture is free)
54
52
 
55
53
  ### Optional TypeScript semantic evidence
56
54
 
@@ -74,7 +72,7 @@ closed-world evidence and a matching declaration guard.
74
72
 
75
73
  ## Built for agents
76
74
 
77
- Agents get structured repo truth instead of inferring everything from grep: who imports a symbol, why an export counts as used, what a PR changed, which cleanup action is safest.
75
+ Agents can query symbol importers, usage evidence, PR changes, and available cleanup actions.
78
76
 
79
77
  The bundled `fallow-mcp` server lives in `node_modules/.bin/` when installed as a devDependency, so launch it through your package manager's runner:
80
78
 
@@ -83,19 +81,22 @@ The bundled `fallow-mcp` server lives in `node_modules/.bin/` when installed as
83
81
  "mcpServers": {
84
82
  "fallow": {
85
83
  "command": "npx",
86
- "args": ["fallow-mcp"]
84
+ "args": ["--yes", "--package", "fallow", "fallow-mcp"]
87
85
  }
88
86
  }
89
87
  }
90
88
  ```
91
89
 
92
- Swap `npx` for `pnpm exec` or `yarn` to match your package manager; a globally installed `fallow-mcp` works as `"command": "fallow-mcp"` directly. See the [MCP integration guide](https://docs.fallow.tools/integrations/mcp). `npx fallow agent install` writes this registration for you, together with the skill, an `AGENTS.md` task map, and the commit/push gate, for every harness it detects (Claude Code, Codex, Cursor); `--dry-run` shows the plan first.
90
+ `--package fallow` selects the npm package that provides the `fallow-mcp` launcher. For a project-local install, use `"command": "pnpm"` with `"args": ["exec", "fallow-mcp"]`, or `"command": "yarn"` with `"args": ["fallow-mcp"]`. A globally installed `fallow-mcp` works as `"command": "fallow-mcp"` directly. See the [MCP integration guide](https://fallow.tools/docs/integrations/mcp/).
91
+
92
+ For a verified project-local install, `npx fallow agent install` registers the MCP server with `npx --no fallow-mcp`. It also writes the skill, an `AGENTS.md` task map, and the commit/push gate for every harness it detects (Claude Code, Codex, Cursor); `--dry-run` shows the plan first.
93
93
 
94
- The package also ships a version-matched agent skill under `skills/fallow`, and `fallow/capabilities.json` mirrors `fallow schema` for tools that need CLI and issue-surface metadata without spawning the binary. TanStack Intent discovers both from `node_modules`:
94
+ The package also ships two version-matched agent skills: `skills/fallow` for analysis and `skills/fallow-setup` for setting up code-quality tooling. `fallow/capabilities.json` mirrors `fallow schema` for tools that need CLI and issue-surface metadata without spawning the binary. TanStack Intent discovers the skills and the metadata from `node_modules`:
95
95
 
96
96
  ```bash
97
97
  npx @tanstack/intent list
98
98
  npx @tanstack/intent load fallow#fallow
99
+ npx @tanstack/intent load fallow#fallow-setup
99
100
  ```
100
101
 
101
102
  ## Framework support
@@ -104,7 +105,11 @@ Over 100 built-in framework plugins covering Next.js, Nuxt, Remix, Qwik, SvelteK
104
105
 
105
106
  ## Configuration
106
107
 
107
- Works out of the box. To customize, let [`fallow recommend`](https://docs.fallow.tools/cli/recommend) propose a config from the detected stack (read-only; `--format json` returns the full decision set for agents and points TypeScript projects to the optional `--type-aware` pass without enabling it), run `fallow init`, or create a config file in your project root:
108
+ Fallow starts without a config file. To customize the analysis, let [`fallow recommend`](https://fallow.tools/docs/cli/recommend/) propose a config from the detected stack, run `fallow init`, or create a config file in your project root.
109
+
110
+ `fallow recommend` is read-only. With `--format json`, it returns the full decision set for agents. It points TypeScript projects to the optional `--type-aware` pass without enabling it.
111
+
112
+ To create a config manually, use a file like this in your project root:
108
113
 
109
114
  ```jsonc
110
115
  // .fallowrc.json
@@ -120,11 +125,11 @@ Works out of the box. To customize, let [`fallow recommend`](https://docs.fallow
120
125
  }
121
126
  ```
122
127
 
123
- `$schema` gives editors autocomplete and validation and has no effect on analysis. The npm package ships a version-aligned schema at `./node_modules/fallow/schema.json`, so validation works offline with no editor trust prompt. TOML works too: `fallow init --toml` creates `fallow.toml`. Full reference: [configuration overview](https://docs.fallow.tools/configuration/overview).
128
+ `$schema` gives editors autocomplete and validation and has no effect on analysis. The npm package ships a version-aligned schema at `./node_modules/fallow/schema.json`, so validation works offline with no editor trust prompt. TOML works too: `fallow init --toml` creates `fallow.toml`. Full reference: [configuration overview](https://fallow.tools/docs/configuration/overview/).
124
129
 
125
130
  ## Documentation
126
131
 
127
- - [docs.fallow.tools](https://docs.fallow.tools)
132
+ - [fallow.tools/docs](https://fallow.tools/docs/)
128
133
  - [GitHub repository](https://github.com/fallow-rs/fallow)
129
134
  - [Plugin authoring guide](https://github.com/fallow-rs/fallow/blob/main/docs/plugin-authoring.md)
130
135