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 +18 -13
- package/capabilities.json +402 -177
- package/issue-registry.json +241 -166
- package/package.json +14 -13
- package/schema.json +89 -6
- package/skills/fallow/SKILL.md +30 -9
- package/skills/fallow/references/cli-reference.md +103 -44
- package/skills/fallow/references/gotchas.md +45 -13
- package/skills/fallow/references/issue-types.md +4 -2
- package/skills/fallow/references/mcp.md +48 -6
- package/skills/fallow/references/node-bindings.md +9 -3
- package/skills/fallow/references/patterns.md +37 -12
- package/skills/fallow-setup/SKILL.md +50 -0
- package/skills/fallow-setup/agents/openai.yaml +4 -0
- package/skills/fallow-setup/references/ci-gate.md +61 -0
- package/skills/fallow-setup/references/configure-and-install.md +56 -0
- package/skills/fallow-setup/references/tooling-detection.md +44 -0
- package/types/output-contract.d.ts +1044 -35
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.
|
|
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
|
[](https://github.com/fallow-rs/fallow/actions/workflows/ci.yml)
|
|
8
8
|
[](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://
|
|
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 [
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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://
|
|
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
|
-
- [
|
|
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
|
|