From 4d4ac97ffb35be03d91b26ce7cb2915e1c960792 Mon Sep 17 00:00:00 2001 From: Trevin Chow Date: Sat, 16 May 2026 19:32:49 -0700 Subject: [PATCH] refactor: hoist comparison-html gate into a single condition (Greptile DRY) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Greptile flagged that `entity_reports and args.emit == "html"` appeared in two places — once when computing the footer display path, again when calling save_output. The else-branches differ between the two callsites (the display needs `report.topic` as fallback; the save call needs `None` so save_output falls back to the report's own topic), so collapsing into one shared expression would be wrong, but hoisting just the condition into a single `is_comparison_html` bool eliminates the risk of drift while keeping the two callsites' fallback semantics distinct. --- skills/last30days/scripts/last30days.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/skills/last30days/scripts/last30days.py b/skills/last30days/scripts/last30days.py index 9a9b1c7..554c7c4 100644 --- a/skills/last30days/scripts/last30days.py +++ b/skills/last30days/scripts/last30days.py @@ -881,15 +881,15 @@ def main() -> int: pass fun_level = config.get("FUN_LEVEL", "medium").lower() + # Comparison HTML is the one case where the saved file's title and content + # have to be overridden away from the leading entity's report. Compute the + # gate once so the footer-display and save-output paths can't disagree. + is_comparison_html = bool(entity_reports) and args.emit == "html" footer_save_path = None if args.save_dir: - save_topic = ( - comparison_topic(entity_reports) - if entity_reports and args.emit == "html" - else report.topic - ) + save_topic_for_display = comparison_topic(entity_reports) if is_comparison_html else report.topic footer_save_path = compute_save_path_display( - args.save_dir, save_topic, args.save_suffix or "", args.emit + args.save_dir, save_topic_for_display, args.save_suffix or "", args.emit ) # Signal to render_compact whether pre-research flags were supplied. @@ -924,19 +924,14 @@ def main() -> int: ) if args.save_dir: # Save the main topic's raw file (single-entity or comparison main). - save_topic = ( - comparison_topic(entity_reports) - if entity_reports and args.emit == "html" - else None - ) save_path = save_output( report, args.emit, args.save_dir, suffix=args.save_suffix or "", synthesis_md=synthesis_md, - topic_override=save_topic, - rendered_content=rendered if entity_reports and args.emit == "html" else None, + topic_override=comparison_topic(entity_reports) if is_comparison_html else None, + rendered_content=rendered if is_comparison_html else None, ) sys.stderr.write(f"[last30days] Saved output to {save_path}\n") # Competitor / vs-mode: also save a per-entity raw file for each peer.