validate-973 sweep: absorb rule cannot witness an unconverted verdict grep on a partially-converted line #985
Closed
opened 2026-07-31 07:45:49 +00:00 by mos-dt-0
·
0 comments
No Branch/Tag Specified
main
remediation/state
feat/rm-02-gate-registry
fix/rm-01-reproducible-checkout
remediation/mission-setup
fix/hygiene-inert-format-gate
fix/1019-queue-guard-stdin
feat/mos-ste-writing-standard
fix/1007-suite-hermeticity
fix/991-comment-url-scheme-normalise
feat/push-guard-null-case-verification
mos-comms-live
docs/heartbeat-framework-layering-ms-lead
feat/869-c4-version-coupling
feat/869-c2-install-ordering-guard
feat/869-c5-doctor-activation-check
feat/per-agent-gitea-identity
fix/875-belongs-case-insensitive-slug
fix/ci-queue-wait-404-branch-absent
feat/869-c1-activation-probe
feat/869-c3-broker-supervisor
fix/865-tea-cli-comment-invocation
feat/glpi-skills
fix/860-deflake-mutator-lease-gate
fix/850-detect-platform-port-normalization
fix/856-worktree-deps-preflight
fix/835-pr-review-approve-reject-comment-flag
fix/848-truthful-evidence
fix/812-pr-review-comment
fix/849-recovery-runtime-fixture-race
docs/758-ledger-m5-001-sync
feat/834-tc-server-side-doc
feat/833-constrained-recovery-command
feat/827-gate0-probe
governance/gate0-probe3-amendment
fix/795-codex-pr-diff
fix/795-ci-base-jq
fix/795-ci-base-git
feat/791-pr3-fleet-regen
feat/791-pr2-snapshot-restore
fix/807-glpi-206
fix/808-agent-send-false-sender
feat/791-upgrade-config-protection
feat/790-mosaic-yolo-claudex-pr2
feat/790-mosaic-yolo-claudex
feat/758-v1-v2-migrator
fix/766-exact-fleet-comms
test/758-reconciler-lifecycle-gates
docs/771-kbn101-db-role-split
test/758-example-profile-dispositions
feat/758-shared-role-resolution
feat/mos-logical-identity-fencing
feat/769-kbn100-unified-schema
docs/753-kbn010-threat-gate
feat/758-roster-v2-compiler
feat/756-official-discord-plugin
docs/758-fleet-config-management
fix/mos-option2-qualification-format
docs/issue-758-m0
docs/mos-option2-qualification
mos-comms
feat/tess-interaction-agent
fix/tess-docs-format
next
draft/mosaic-platform-prd
fix/installer-provider-gate-and-local-gateway-redis
release/mosaic-cli-0.0.37
feat/framework-constitution-alpha
fix/git-wrapper-repo-detection
fix/woodpecker-wrapper-legacy-mosaic
fix/t-a292e96f-gitea-pr-metadata
fix/gitea-pr-metadata-login-t-a292e96f
fix/t_a292e96f-pr-metadata-gitea
fix/t_3a368a52-gitea-usc-login
fix/bootstrap-hotfix
fix/populate-known-packages-list
fix/idempotent-init
v0.0.39-alpha
mosaic-v0.0.31
fed-v0.2.0-m2
fed-v0.1.0-m1
mosaic-v0.0.29
mosaic-v0.0.28
mosaic-v0.0.27
mosaic-v0.0.26
mosaic-v0.0.25
mosaic-v0.0.24
v0.2.0
v0.1.0
v0.0.8
v0.0.7
v0.0.6
v0.0.5
v0.0.4
No labels
Milestone
No items
No Milestone
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: mosaicstack/stack#985
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found during the #973 review (branch
feat/973-has-match, head5e98419d). Non-gating —the sweep is clean on the real tree and the finding is about what the sweep could not have
seen, not about a live residual.
The defect
validate-973/check-973.pylines 222–226, incmd_sweep:The absorb rule fires on the mere presence of a helper token anywhere on the line. It never
checks whether an unconverted verdict grep also remains on that same line. A partially
converted line is therefore reported as a NOTE and not counted as a residual.
Measured, with two plants of my own
grep -q pw "$F" && failSWEEP-RESIDUALhas_match -q a "$F" && grep -q SECRET "$F" && failSWEEP-NOTEP2 is a real instance of the #973 defect — an AND-polarity raw
grepwhose rc=2 reads as "absent"— and the sweep classifies it as benign.
Why I went looking
The absorb branch emitted zero SWEEP-NOTEs across the entire green run on the real tree, and
the six built-in plants contain no partially-converted specimen. So the branch's discrimination
had never been exercised — an absorb rule that has never fired is an unproven branch inside the
instrument that reports zero. Its correctness was assumed by everyone reading the green,
including me, until the plant.
Fix
After matching the helper, re-scan the remainder of the line for a bare
greptoken outside thehelper invocation carrying fail polarity; emit
SWEEP-RESIDUALif one is found. A NOTE shouldmean "helper present and nothing else on this line searches," which is a stronger statement than
the code currently makes.
Adding a partially-converted specimen to the plant set would also close the gap in coverage that
let the branch go unexercised — a suite that only needles the deny list's hits cannot witness its
misses.
-- mos-dt (sb-it-1-dt). Signed in body; shared account on this host, so the signature is a
labelled claim, never provenance.