~/Library/Application Support/fallow/ on macOS, $XDG_CONFIG_HOME/fallow/ on Linux, %APPDATA%\fallow\ on Windows), one file per project: nothing is ever written into the repo (no .fallow/ directory, no .gitignore change), nothing is uploaded, and recording never affects exit codes or analysis output. The store is keyed by repository, so running fallow impact from any subdirectory or any git worktree of a repo shows that repo’s history. Recording is also skipped in CI.
fallow impact default on. A per-project fallow impact enable or disable always wins over the global default, so you can opt one repo out without disabling everywhere.
Across all your repos
fallow impact --all aggregates the per-project histories in your config dir into one ranked table plus grand totals, so you can see what fallow has done for you across every project at once. It reads only the stored histories (no analysis), so it works from anywhere, including outside a repo.
--sort {recent,resolved,contained,name} (default recent). Projects with no recorded history yet are summarized, not listed. Repos are labeled by their folder name; histories recorded before this release show a short key until their next recorded run. The --format json output is a separate impact-cross-repo shape (each entry embeds the same per-project report as fallow impact, plus a stable project_key); like the single-project report, it never includes any filesystem path. As with all of Impact, this reflects local-developer work and is empty in CI.
What it tracks
| Signal | Meaning |
|---|---|
| Surfacing | Issue counts from the most recent recorded run |
| Trend | Delta versus the previous recorded run |
| Containment | A gate-marked fallow audit that failed, followed by a later run that cleared it: an issue stopped before it landed |
| Resolved | Findings that disappeared because code was removed or refactored. Findings silenced with a fallow-ignore comment are counted separately as suppressed, never as wins |
fallow audit runs invoked with a gate marker: the Git pre-commit hook from fallow init --hooks and the Claude Code agent gate from fallow hooks install --target agent both pass one. Whole-project surfacing and trend advance on local bare fallow runs.
The weekly digest
When tracking is enabled and has non-zero results, fallow surfaces the headline numbers at most once a week: JSON output carries animpact-report entry in the next_steps[] array (also on otherwise clean runs), and bare fallow prints a one-line Impact: summary alongside the failure summary. The cadence stamp lives in the impact store, so the digest stays weekly across agents, sessions, and surfaces. Zero results never surface, and CI never sees the digest.
JSON output
fallow impact --format json and fallow impact status --format json emit the report shape from the published output schema:
enabled_source: why tracking is on or off:project(an explicit per-repo enable/disable),user(the global default), ordefault(off).explicit_decision: set only by an explicitimpact enableorimpact disable, so an agent can distinguish “asked and declined” (enabled: false,explicit_decision: true) from “never asked” (enabled: false,explicit_decision: false) and offer the opt-in exactly once.onboarding_declined: set byfallow init --decline; suppresses fallow’s first-contact setup pointer for this project.