report: count obfuscator.io corpus in readability metrics#61
Merged
Conversation
The synthetic javascript-obfuscator (obfuscator.io) fixtures in samples/generated/ gated correctness via manifest.json but were excluded from the readability metrics: both the live report binary and the committed SCOREBOARD.md read samples/ non-recursively. Add a per-profile rollup of the generated corpus (aggregated over all seeds, one row per obfuscation technique) to both surfaces, so the obfuscator.io samples count toward readability the same way they count toward correctness. kept% is byte-weighted, opaque% is the mean per-file ratio, rounds is the worst case, and converged flags any non-fixpoint.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The synthetic javascript-obfuscator (obfuscator.io) fixtures in
samples/generated/— 140 files = 20 seeds × 7 obfuscation profiles — gated correctness viamanifest.json, but were excluded from the readability metrics. Both the livereportbinary and the committedSCOREBOARD.mdreadsamples/non-recursively, so the obfuscator.io samples never showed up in the dashboard.This adds a per-profile rollup of the generated corpus (aggregated over all seeds, one row per obfuscation technique) to both surfaces, so the obfuscator.io samples count toward readability the same way they count toward correctness.
Metrics shape
kept%— byte-weighted Σout/Σin (lower = more dead weight removed)opaque%— mean of per-file opaque-name ratiosrounds— worst case across the profile's filesconverged—yesonly if every file reached a fixpointChanges
src/bin/report.rs— append an "obfuscator.io corpus, aggregated by profile" section to the live dashboard.tests/golden.rs— matching per-profile rollup inrender_scoreboard(), so the committed table and live dashboard stay in agreement.tests/snapshots/SCOREBOARD.md— re-blessed with the new section.Verification
reportruns and prints the new section.scoreboard_is_currentpasses, and re-runs deterministically without blessing.cargo clippyclean.https://claude.ai/code/session_01EjhNTCU89wa5zaeRHMnfEc
Generated by Claude Code