From 76019dc9165b51fa5ffad990ddbd3de418833998 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Fri, 3 Jul 2026 18:55:24 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20[UX=20improvement]=20?= =?UTF-8?q?=ED=84=B0=EB=AF=B8=EB=84=90=20=EC=B6=9C=EB=A0=A5=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EB=B0=B0=ED=8F=AC=20=EC=B0=A8=EB=8B=A8=20=ED=95=AD?= =?UTF-8?q?=EB=AA=A9=EA=B3=BC=20=EB=B9=84=EC=B0=A8=EB=8B=A8=20=ED=95=AD?= =?UTF-8?q?=EB=AA=A9(Warning/Info)=20=EB=B6=84=EB=A6=AC=ED=95=98=EC=97=AC?= =?UTF-8?q?=20=EB=AA=85=ED=99=95=EC=84=B1=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .jules/palette.md | 4 ++++ scanner/cli/appguardrail.py | 8 +++----- 2 files changed, 7 insertions(+), 5 deletions(-) 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"