Skip to main content
Show what fallow has done for you in this project: how many issues it is surfacing, the trend since the last recorded run, how many commits the pre-commit or agent gate contained (blocked, then cleared after a fix), and how many findings were genuinely resolved over time. Impact is opt-in and local-only. History is stored in your private user config dir (~/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 enable        # track this project (overrides the global default)
fallow impact               # render the value report (also prints the store path)
fallow impact status        # tracking state and history size
fallow impact disable       # stop tracking this project (history is retained)
fallow impact default on    # track every project by default (one global opt-in)
fallow impact reset         # delete this project's history (--all wipes every project)
fallow impact --all         # roll up every project: impact across all your repos
Enable Impact once for every project with 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.
fallow impact --all                  # ranked table + grand totals (sorted by most recent)
fallow impact --all --sort resolved  # rank by lifetime findings resolved
fallow impact --all --limit 10       # cap printed rows (totals still cover every project)
Sort with --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

SignalMeaning
SurfacingIssue counts from the most recent recorded run
TrendDelta versus the previous recorded run
ContainmentA gate-marked fallow audit that failed, followed by a later run that cleared it: an issue stopped before it landed
ResolvedFindings that disappeared because code was removed or refactored. Findings silenced with a fallow-ignore comment are counted separately as suppressed, never as wins
History accrues from 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 an impact-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:
{
  "kind": "impact",
  "enabled": true,
  "enabled_source": "project",
  "record_count": 14,
  "containment_count": 3,
  "recent_containment": ["..."],
  "resolved_total": 12,
  "suppressed_total": 2,
  "recent_resolved": ["..."],
  "attribution_active": true,
  "onboarding_declined": false,
  "explicit_decision": true
}
Three fields exist for agents that manage opt-ins conversationally:
  • enabled_source: why tracking is on or off: project (an explicit per-repo enable/disable), user (the global default), or default (off).
  • explicit_decision: set only by an explicit impact enable or impact 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 by fallow init --decline; suppresses fallow’s first-contact setup pointer for this project.