Findings
Unused exports, duplicate implementations, and wrappers — queued as jobs, resolved only when a re-scan drops the fingerprint.
A finding stays open until the graph says it is gone. A finished job is not enough.
Findings are concrete, queueable issues from the last index: unused exports, two files exporting the same implementation, and wrapper functions that only call another export.
You can hand one to a teammate. Prism does not mark it resolved because
the job said done. It re-runs the report. If the fingerprint is still
there, the finding stays open.
prism findings list
prism findings mute a3f8c5f0c392dbebMute lives in gitignored {repo}/.prism/. It is not a markdown file and it
is not committed.
The loop
list_findings → queue_finding → teammate edits → this repo’s checks
↑ │
└──────── re-scan; fingerprint gone? ──────────┘| Step | Rule |
|---|---|
| Queue | Origin is finding. The brief is “fix this finding only.” |
| Verify | Prism runs the checks this repo actually has. None → —, not Failure. |
| Resolve | Only a re-scan that drops the fingerprint. Job done is not resolve. |
Pulse’s sparkline is the open finding count, measured from health history. It does not move because a job finished.
Kinds
| Source | What it is |
|---|---|
| unused-export | An export nothing in the index imports |
| duplicate-implementation | Two files exporting the same name / body |
| wrapper-over-existing | A function whose whole body is one call to another export |
Muted findings stay out of the default list. includeMuted shows them.
When this is wrong
- Reviewing a PR never queues a finding on its own. Offer
queue_findingonly if you asked to fix it. - A Python-only or lint-only repo must not fail the finding job when checks are —. The re-scan still runs.
- Mute is local and gitignored. It does not travel with the repo.