You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
skillspector baseline leaves duplicate occurrences of a finding unsuppressed #633
skillspector baseline writes one fingerprint per deduplicated finding. scan --baseline checks suppression per occurrence, before deduplication. When the same match appears in two places, the generated baseline covers one occurrence, and the other one is still reported on the next scan.
Reproduction (v2.12.0; also v2.11.2)
demo/SKILL.md (frontmatter: name, description)
line 8: The upstream service deletes unused files, and the link dies with no warning.
demo/references/notes.md
line 3: The mirror drops stale entries with no warning.
On v2.11.2 the same steps leave AR2 @ SKILL.md:8 open instead, so which occurrence survives also varies.
Expected
A baseline generated from a scan suppresses every finding that scan reported. The next scan of unchanged content reports nothing new.
Cause, as far as we can tell
baseline builds entries from effective_findings(result), the deduplicated list, via build_baseline_dict.
The report node calls partition_findings(selected_findings, baseline, …) on the pre-deduplication list. It deduplicates only the kept findings afterwards (deduplicate(active_findings) in nodes/report.py).
So an occurrence folded into another finding never gets its own fingerprint, but it is checked on its own.
Workaround
Iterate. Scan with the generated baseline, fingerprint whatever is still open, and repeat until nothing is open. Alternatively, keep a glob rules: entry, which matches per occurrence.
Implementation is in progress in PR #637, which fingerprints the active findings before deduplication so each occurrence retains its own context and snippet. The PR is open and has not merged, so this issue remains open.
Resolution update: PR #637 has merged. Baseline generation fingerprints the original active findings before report deduplication, retaining each occurrence's own file, line, context, and snippet.
Current-main baseline generation/rescan checks suppress all repeated same-file and cross-file occurrences, with no active findings left in the tested reproductions. This supersedes the earlier pending status; this issue was automatically closed by the merge.
Activity
rng1995 commentedon Sep 28, 2026
Implementation is in progress in PR #637, which fingerprints the active findings before deduplication so each occurrence retains its own context and snippet. The PR is open and has not merged, so this issue remains open.
fix(baseline): fingerprint every occurrence of a deduplicated finding (…
rng1995 commentedon Oct 4, 2026
Resolution update: PR #637 has merged. Baseline generation fingerprints the original active findings before report deduplication, retaining each occurrence's own file, line, context, and snippet.
Current-main baseline generation/rescan checks suppress all repeated same-file and cross-file occurrences, with no active findings left in the tested reproductions. This supersedes the earlier pending status; this issue was automatically closed by the merge.