Repository navigation
Rank the places under a remedial action by how widely used and how busy they are - #45
Merged
Merged
Conversation
…sy they are Complex functions and untested files were listed in scanner order, so the start of each list was arbitrary. The boundaries scan now also writes hotspots.json: for each source file, how many non-test files import it (from the code graph it already builds) and how many commits touched it in the 90-day window it already reads. Files that define nothing, such as barrels of re-exports, get no credit for being imported. The findings lists are sorted by (used by + 1) x (changes + 1), and the complexity and test-breadth actions end with the top three files. Where C1 does not trust the graph (Elixir), only change counts are used, and the action says so. The test-coverage scan now keeps every untested file rather than the first 20, so ranking happens before anything is cut. No score reads the ranking. Replayed on two real systems, every score, colour and finding is unchanged apart from order and the new sentence, and boundaries.json is byte-identical. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Contributor
Author
|
@maciej-szlosarczyk quite honestly I don't understand completely what's been done on the code level in this one. There a LOT of scripting and I just directed it based on what was required which as you can see in the description was actually simple in concept. |
Contributor
maciej-szlosarczyk
approved these changes
Oct 16, 2026
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.
Complex functions and untested files were listed in scanner order, so the top of each list was arbitrary — often abandoned code or boilerplate.
What changes
hotspots.json: for each source file, how many non-test files import it (from the code graph it already builds) and how many commits touched it in its existing 90-day window. Files that define nothing, such as barrels of re-exports, get no credit for being imported.(used by + 1) × (changes + 1).Start with the most used and most changed: a, b, c.the most changed.What does not change
No score reads the ranking. Replayed on one TypeScript and one Elixir system: every score, colour and finding is identical apart from order and the new sentence, and
boundaries.jsonis byte-identical tomain. Withouthotspots.json(older reports), output is unchanged.Tests: 601 pass. Planted violations confirmed the ranking, the start-with line and the Elixir fallback are each guarded.
Known limit: generated source files (e.g. an API client generated from a spec) can rank high because they change often; the graph cannot tell them apart.
🤖 Generated with Claude Code