Expand description
Fallow Impact: local, opt-in value reporting.
Structs§
- Attribution
Input - Audit
RunRecord - Record an audit run into the rolling store.
- Clone
Input - Containment
Event - Cross
Repo Impact Report - The cross-repo aggregate report (
fallow impact --all --format json). - Cross
Repo Project Entry - One project’s row in the cross-repo roll-up.
- Cross
Repo Totals - Grand totals across every tracked project (including repos whose directory no longer exists on disk: their past wins still count toward lifetime impact).
- File
Frontier - Finding
Input - Frontier
Finding - Impact
Counts - Per-category issue counts captured at a recorded run.
- Impact
Digest - A due periodic value digest: the headline counters for “what has fallow
done for you here”. Returned by
take_due_digestat most once perDIGEST_INTERVAL_SECSper project. - Impact
Record - Impact
Report - The rendered impact report, derived purely from the store (no analysis run).
- Impact
Store - Pending
Containment - Resolution
Event - Trend
Summary - A computed trend between the two most recent records.
Enums§
- Cross
Repo Impact Schema Version - Independent wire-version for the cross-repo report, on its own cadence (it
versions separately from the per-project
ImpactReportSchemaVersionand the on-diskSTORE_SCHEMA_VERSION). - Cross
Repo Sort - Ranking for the cross-repo rows.
- Enabled
Source - Why Impact tracking is (or is not) active for a project.
Project= an explicit per-repoenable;User= the user-global default with no per-repo decision;Default= off (no per-repo decision and no global default). - Impact
Report Schema Version - Wire-version discriminator for
ImpactReport. Independent from the globalSchemaVersion(the impact report versions on its own cadence) and from the on-diskSTORE_SCHEMA_VERSION(the persisted store shape versions separately). Serializes as a stringconstso JSON consumers can switch on it, matching the other independently-versioned envelopes (e.g.CoverageAnalyzeSchemaVersion). - Impact
Trend Direction - Direction of a count trend between two recorded runs.
- Scope
Functions§
- aggregate
- Build the cross-repo report by enumerating the config dir.
- build_
aggregate_ report - Build the cross-repo aggregate from enumerated stores. Excludes
enabled-but-empty projects from the rows (counted in
project_count), sums totals over every tracked project, and sorts the rows bysort. - build_
report - collect_
clone_ findings - Collect clone-group identities
(fingerprint, instance paths)from a duplication report. The fingerprint is content-derived (dup:<hash>), so it is stable across pure relocation. - collect_
complexity_ findings - Collect line-independent complexity finding identities
(path, function name)from a health report. The function name is line-independent, so a function moving within its file keeps the same identity. - collect_
dead_ code_ findings - decline_
onboarding - Persist that the local user declined the agent onboarding prompt. Writes only to the user store; nothing is written into the repo.
- disable
- Disable Impact tracking. Retains existing history. Returns whether it was
newly disabled (false if already off). Also records the explicit decision,
so declining the impact opt-in on a never-enabled project (
impact disable) persists “asked and said no” for the agent skill. - enable
- Enable Impact tracking for THIS project (an explicit per-repo decision that overrides the user-global default). Writes nothing into the repo: the store lives in the user config dir.
- load
- Load the store. Missing or unreadable files fall back to defaults; unreadable files are warned about rather than silently disabling tracking.
- load_
all - Enumerate every per-project store in
<config-dir>/fallow/impact/, returning(project_key, store)pairs plus the count of files that failed to parse. Read-only; never writes. The globalimpact.jsontoggle is a sibling FILE of this dir (one level up), so it is naturally excluded. Corrupt/newer-schema files are skipped and counted, never substituted with a default store. - record_
audit_ run - record_
combined_ run - Record a whole-project combined run into the project track.
- render_
cross_ repo_ human - Render the cross-repo roll-up as human-readable text.
limitcaps the printed rows (grand totals always reflect every tracked project). Path-free: the CLI adds the single store-dir discoverability line, gated on!quiet. - render_
cross_ repo_ json - Render the cross-repo report as JSON via the typed
ImpactCrossRepoenvelope. - render_
cross_ repo_ markdown - Render the cross-repo roll-up as Markdown (paste-ready, path-free).
- render_
human - Render the report as human-readable text.
- render_
json - Render the report as JSON.
- render_
markdown - Render the report as Markdown (paste-ready for a PR description or standup).
- reset
- Delete THIS project’s store file. Returns whether a file was removed.
- reset_
all - Delete the whole per-project impact dir (
<config-dir>/fallow/impact/). Does NOT touch the global default toggle (impact.json): a data wipe should not silently re-disable an opt-in the user made. Returns whether the dir was present and removed. - resolved_
project_ key - The resolved (worktree-collapsed) project key for
root, for display. - resolved_
store_ path - The resolved per-project store-file path for
root, forstatusdisplay (so a wrong key is debuggable).Nonewhen no config dir is resolvable. - set_
global_ default - Set the user-global default. Returns whether the value changed.
- store_
dir - The per-project store directory (
<config-dir>/fallow/impact/), for theimpact --allhuman discoverability footer.Nonewhen no config dir. - take_
due_ digest - Return the periodic value digest when it is due, stamping the store so the
next one is at least
DIGEST_INTERVAL_SECSaway. Due means: tracking is enabled, there is non-zero value to report (anti-nag: a zero digest never surfaces), and the previous digest is older than the interval (or never happened). Best-effort like the rest of the store: a clean run that drops the emitted step simply defers the digest to the next interval.