diff --git a/.jules/palette.md b/.jules/palette.md index 8d018db..2095621 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -1,3 +1,7 @@ ## 2024-05-19 - Init Command UX Improvement **Learning:** CLI outputs with inline repetitive warnings (e.g. `already contains rules — skipping`) can clutter terminal visibility and diminish developer experience. **Action:** Group skipped/unchanged files separately from modified ones (e.g., in a single `Skipped (already configured):` section) to create clean, scannable terminal output. + +## 2024-05-19 - Separating Deploy Blockers from Informational Warnings +**Learning:** Grouping non-blocking severity levels (WARNING, INFO) under a "Deploy blockers:" prefix creates user confusion, implying these low-priority items will fail CI pipelines or deployments. +**Action:** When summarizing severity counts, always separate critical/high issues from warnings/infos with clear labels (e.g. `| Other:` or `| Warnings & Info:`) to reinforce their non-blocking nature. diff --git a/scanner/cli/appguardrail.py b/scanner/cli/appguardrail.py index 9314ee4..3fccd9e 100644 --- a/scanner/cli/appguardrail.py +++ b/scanner/cli/appguardrail.py @@ -2621,11 +2621,9 @@ def _print_scan_results(findings, files_scanned): info_word = "info issue" if counts["INFO"] == 1 else "info issues" print( - f"Scanned {files_scanned} {files_word} | Deploy blockers: " - f"🔴 {counts['CRITICAL']} {critical_word} " - f"🟠 {counts['HIGH']} {high_word} " - f"🟡 {counts['WARNING']} {warnings_word} " - f"🔵 {counts['INFO']} {info_word}" + f"Scanned {files_scanned} {files_word} | " + f"Deploy blockers: 🔴 {counts['CRITICAL']} {critical_word} 🟠 {counts['HIGH']} {high_word} | " + f"Other: 🟡 {counts['WARNING']} {warnings_word} 🔵 {counts['INFO']} {info_word}" ) if non_blocking: finding_word = "finding" if non_blocking == 1 else "findings"