fallow 2.103.0 → 3.0.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
@@ -1,18 +1,18 @@
1
1
  # fallow
2
2
 
3
- **Deterministic codebase intelligence for TypeScript and JavaScript.**
3
+ **Deterministic codebase intelligence for TypeScript, JavaScript, and styling.**
4
4
 
5
- Quality, risk, architecture, dependencies, duplication, and safe cleanup evidence for humans, CI, and agents.
5
+ Quality, risk, architecture, dependencies, duplication, design-system drift, and safe cleanup evidence for humans, CI, and agents.
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)
9
9
  [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/fallow-rs/fallow/blob/main/LICENSE)
10
10
 
11
- Fallow turns a JS/TS repository into a trusted quality report: health score, changed-code risk, hotspots, duplication, architecture issues, dependency hygiene, and cleanup opportunities.
11
+ Fallow turns a frontend repository into a trusted quality report: health score, changed-code risk, hotspots, duplication, architecture issues, dependency hygiene, styling consistency, and cleanup opportunities.
12
12
 
13
13
  It helps you answer: what changed, what got riskier, what should be reviewed, what should be refactored, and what can be safely removed. No AI inside the analyzer. Fallow produces deterministic findings, typed output contracts, and traceable explanations that downstream tools can trust.
14
14
 
15
- Static analysis is free and open source. An optional paid runtime layer (Fallow Runtime) adds production execution evidence. Rust-native, sub-second, 122 framework plugins, no Node.js runtime dependency for analysis. fallow's edge is doing more in one pass: dead code, duplication, dependencies, complexity, architecture, and security in a single tool. For head-to-head timings against [knip](https://knip.dev) and [jscpd](https://github.com/kucherenko/jscpd), see the [benchmarks](https://github.com/fallow-rs/fallow/tree/main/benchmarks): fallow is faster than knip on smaller projects, knip is faster on several larger repos, and jscpd's Rust rewrite is faster for raw duplication scanning.
15
+ Static analysis is open source. An optional runtime layer adds production execution evidence. Rust-native, sub-second, 123 framework plugins, no Node.js runtime dependency for analysis. fallow's edge is doing more in one pass: dead code, duplication, dependencies, complexity, architecture, styling consistency, and security candidates in a single tool. For head-to-head timings against [knip](https://knip.dev) and [jscpd](https://github.com/kucherenko/jscpd), see the [benchmarks](https://github.com/fallow-rs/fallow/tree/main/benchmarks): fallow is faster than knip on smaller projects, knip is faster on several larger repos, and jscpd's Rust rewrite is faster for raw duplication scanning.
16
16
 
17
17
  ## Installation
18
18
 
@@ -23,6 +23,8 @@ npm install --save-dev fallow # or: pnpm add -D fallow / yarn add -D fallow /
23
23
  Installs the `fallow` CLI plus the companion `fallow-lsp` and `fallow-mcp` binaries in your project.
24
24
 
25
25
  The package also ships a version-matched Agent Skill under `skills/fallow`.
26
+ For tools that need CLI and issue-surface metadata without spawning the binary,
27
+ `fallow/capabilities.json` mirrors `fallow schema` for the installed version.
26
28
  TanStack Intent discovers it from `node_modules` automatically:
27
29
 
28
30
  ```bash
@@ -57,10 +59,11 @@ npx fallow fix --dry-run # Preview automatic cleanup
57
59
  - **PR risk** -- changed-code analysis with pass / warn / fail verdict and per-finding attribution
58
60
  - **Hotspots** -- functions, files, and packages combining complexity, churn, size, and coupling
59
61
  - **Duplication** -- clone families across four detection modes (strict, mild, weak, semantic)
62
+ - **Design-system styling** -- CSS, Sass/Less, CSS Modules, Tailwind/shadcn/CVA, StyleX/PandaCSS, vanilla-extract, styled-components, and Emotion consistency signals
60
63
  - **Architecture** -- circular dependencies, boundary violations, re-export chains
61
64
  - **Dependency hygiene** -- unused, unlisted, unresolved, duplicate, and type-only deps; pnpm catalog and overrides
62
65
  - **Cleanup opportunities** -- unused files, exports, types, enum members, class members, stale suppressions
63
- - **Runtime intelligence (optional, paid)** -- hot paths, cold code, runtime-weighted health, stale flags
66
+ - **Runtime intelligence (optional)** -- hot paths, cold code, runtime-weighted health, stale flags
64
67
 
65
68
  Cleanup opportunities are findings that look safe to review for removal because no graph evidence supports keeping them. Dead code is one category of cleanup, not the product identity.
66
69
 
@@ -107,7 +110,7 @@ Swap `npx` for `pnpm exec` / `yarn` / `bunx` to match your package manager. If `
107
110
 
108
111
  ## Framework support
109
112
 
110
- 122 built-in plugins covering Next.js, Nuxt, Remix, Qwik, SvelteKit, Gatsby, Astro, Angular, NestJS, AdonisJS, Ember, Expo Router, Vite, Webpack, Vitest, Jest, Playwright, Cypress, Storybook, ESLint, TypeScript, Tailwind, UnoCSS, Prisma, Drizzle, Convex, Turborepo, Hardhat, and many more. Auto-detected from your `package.json`.
113
+ 123 built-in plugins covering Next.js, Nuxt, Remix, Qwik, SvelteKit, Gatsby, Astro, Angular, NestJS, AdonisJS, Ember, Expo Router, Vite, Webpack, Vitest, Jest, Playwright, Cypress, Storybook, ESLint, TypeScript, Tailwind, UnoCSS, Prisma, Drizzle, Convex, Turborepo, Hardhat, and many more. Auto-detected from your `package.json`.
111
114
 
112
115
  ## Configuration
113
116