Skip to content

Wave 2: data-hygiene severity_counts foots to total_issues - #14

Open
MsShawnP wants to merge 4 commits into
mainfrom
client-mode-2026-08
Open

Wave 2: data-hygiene severity_counts foots to total_issues#14
MsShawnP wants to merge 4 commits into
mainfrom
client-mode-2026-08

Conversation

@MsShawnP

@MsShawnP MsShawnP commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Wave 2 — data-hygiene-auditor severity footing

Fix: the severity breakdown (high_issues/medium_issues/low_issues) is findings-only, but duplicates, fuzzy duplicates, and schema violations carry a severity too — so H+M+L did not foot to total_issues. Reproduced on the messy sample: H+M+L = 52 vs total_issues = 59 (the 7 severity-tagged duplicates were excluded).

Adds AuditResult.severity_counts — counts every issue type by severity, reconciling exactly ({High:23, Medium:20, Low:16} = 59). The Finding-typed high/medium/low_issues are unchanged (non-breaking for the published API); severity_counts is the reconciling view. Regression-locked (test_severity_counts_foot_to_total_issues).

Version 1.2.1 → 1.3.0 (staged, not published).

Deferred (needs Shawn): stale showcase artifacts ("42" with no scale) + README pattern-count drift — cosmetic regen, not the correctness fix.

Verification

  • Full suite 267 passed, 1 xfailed. PyPI package — no deploy/drift surface. Not merged, not on main, not published.

🤖 Generated with Claude Code

MsShawnP and others added 4 commits August 3, 2026 13:17
The severity breakdown drawn from high_issues/medium_issues/low_issues
undercounts: those are findings-only, but duplicates, fuzzy duplicates, and
schema violations carry a severity too, so H+M+L did not reconcile to the
headline total_issues (52 vs 59 on the messy sample — the 7 duplicates were
missing). Adds AuditResult.severity_counts, which counts every issue type by
severity and foots exactly (23+20+16 == 59). Regression-locked. The Finding-typed
high/medium/low properties are unchanged (non-breaking for the published API).
Version 1.2.1 -> 1.3.0 (staged, not published). Full suite 267 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…te-pattern count

Prompt 6 step 0.f. The committed samples/output/ reports were last regenerated
at 1.2.0; regenerate them from current source so the shipped showcase reflects
the 1.3.0 tool (visible counts unchanged — 59 issues 23H/20M/16L, health 42/100
— since they already footed). README "What It Detects" said 6 date patterns;
DATE_PATTERNS actually has 9 (phone 7 / currency 6 were correct).

Verified with engagement-template/scripts/scan_binaries_for_drift.py: 0 retired
tokens across all 6 tracked binaries (char counts confirm real extraction), the
scenario the 2026-08-04 binary scan named as most likely to reintroduce a figure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Prompt 6 step 0.e. core.hooksPath (the local pre-push guard) is inert on a
fresh clone, so a force-added active engagement.yml could otherwise reach a
deploy. Add an 'Engagement guard' step (python3 scripts/engagement_guard.py —
python3 is preinstalled on ubuntu-latest) right after checkout in the deploy
path, so the guard runs server-side regardless of local git config. No-op for
demo/clean checkouts (engagement.yml is gitignored).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant