fallow 3.31.0 → 3.33.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 +17 -10
- package/capabilities.json +420 -172
- package/issue-registry.json +190 -154
- package/package.json +12 -12
- package/schema.json +36 -1
- package/scripts/lazy-verify.js +14 -2
- package/scripts/lazy-verify.test.js +6 -4
- package/scripts/run-binary.js +7 -1
- package/scripts/run-binary.test.js +71 -12
- package/skills/fallow/SKILL.md +35 -11
- package/skills/fallow/references/cli-reference.md +155 -44
- package/skills/fallow/references/gotchas.md +22 -14
- package/skills/fallow/references/issue-types.md +3 -2
- package/skills/fallow/references/mcp.md +19 -6
- package/skills/fallow/references/node-bindings.md +9 -3
- package/skills/fallow/references/patterns.md +43 -15
- 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 +1528 -211
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Tooling detection
|
|
2
|
+
|
|
3
|
+
Inspect the repository before you change it. Record what you find, because the later steps use it.
|
|
4
|
+
|
|
5
|
+
## Files to inspect
|
|
6
|
+
|
|
7
|
+
| Tool area | Signals |
|
|
8
|
+
|---|---|
|
|
9
|
+
| Package manager | `packageManager` in `package.json`; the lockfile: `pnpm-lock.yaml`, `yarn.lock`, `bun.lock` or `bun.lockb`, `package-lock.json` |
|
|
10
|
+
| Formatter | `.oxfmtrc.json`, `.prettierrc*`, `prettier.config.*`, `biome.json`, `biome.jsonc`, a `format` script in `package.json` |
|
|
11
|
+
| Linter | `.oxlintrc.json`, `eslint.config.*`, `.eslintrc*`, `biome.json`, a `lint` script in `package.json` |
|
|
12
|
+
| TypeScript | `tsconfig.json`, `tsconfig.*.json`, a `typecheck` script, `typescript` in `devDependencies` |
|
|
13
|
+
| CI | `.github/workflows/*.yml`, `.gitlab-ci.yml`, other CI config files |
|
|
14
|
+
| Existing analysis | `knip.json`, `knip.jsonc`, `.knip.json`, `.knip.jsonc`, a `knip` field in `package.json`; `.jscpd.json`; `.dependency-cruiser.*` |
|
|
15
|
+
| Existing Fallow | `fallow config --path` prints the config path, or exits 3 when there is no config |
|
|
16
|
+
| Agent harnesses | `CLAUDE.md`, `.claude/`, `.codex/`, `.cursor/` (`AGENTS.md` alone does not name a harness) |
|
|
17
|
+
|
|
18
|
+
`fallow doctor --format json --quiet` checks the project root, the config, the workspaces, and the installed dependencies. It changes nothing. Run it when the project layout is not clear.
|
|
19
|
+
|
|
20
|
+
## Responsibility split
|
|
21
|
+
|
|
22
|
+
Give each tool one job. Do not configure two tools for the same job.
|
|
23
|
+
|
|
24
|
+
| Job | Tool | Command |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| Formatting | Oxfmt | `oxfmt` |
|
|
27
|
+
| Local lint rules | Oxlint | `oxlint` |
|
|
28
|
+
| Type correctness | TypeScript | `tsc --noEmit` |
|
|
29
|
+
| Repository and system analysis | Fallow | `fallow`, `fallow audit` |
|
|
30
|
+
|
|
31
|
+
Repository and system analysis covers unused files, exports, types, and dependencies, duplication, complexity, circular dependencies, architecture boundaries, and changed-code risk.
|
|
32
|
+
|
|
33
|
+
For a new project, use the tools in this table. For an existing project, keep the current formatter, linter, and type check. Add Fallow for the system analysis.
|
|
34
|
+
|
|
35
|
+
## Parity check
|
|
36
|
+
|
|
37
|
+
Do this check before you remove a tool whose job overlaps with Fallow, for example Knip, jscpd, or dependency-cruiser. When a step fails, keep the tool and tell the user why.
|
|
38
|
+
|
|
39
|
+
1. Ask the user for approval to replace the tool.
|
|
40
|
+
2. Migrate the config when Fallow can read it: `fallow migrate --dry-run` for Knip, jscpd, and stylelint. When the project has no Fallow config, review the preview, then run `fallow migrate`. When a Fallow config exists, `fallow migrate` refuses to write. Merge the settings from the preview into that config by hand. Fallow cannot migrate a dependency-cruiser config. Write the rules again as `boundaries` in the Fallow config (`fallow config-schema` gives the format).
|
|
41
|
+
3. Run the old tool and Fallow on the same commit. Compare the findings by category.
|
|
42
|
+
4. Explain each finding that only one tool reports. A finding that Fallow does not report must have a reason, for example a framework entry point that Fallow detects.
|
|
43
|
+
5. Move each CI step and each `package.json` script of the old tool to Fallow.
|
|
44
|
+
6. Remove the old tool and its config in a separate commit, so that the user can revert it.
|