feat(issue-filing): harden final report proofs for handoff and mutations (closes #191) #241

Merged
sysadmin merged 2 commits from feat/issue-191-issue-filing-reports into master 2026-07-06 13:37:41 -05:00
Showing only changes of commit 24d8891424 - Show all commits
+18 -13
View File
@@ -2282,18 +2282,22 @@ def assess_issue_filing_mutation_scope(
"comment_issue", "create_issue", "comment_issue", "create_issue",
): ):
continue continue
if absent in text and f"no {absent}" not in text: if absent not in text:
if any( continue
phrase in text denial_phrases = (
for phrase in ( f"no {absent}",
f"no {absent}", f"no {absent}s",
f"no {absent}s", f"without {absent}",
f"without {absent}", "none performed",
"none performed", "none.",
"none.", "confirm no",
) )
): if any(phrase in text for phrase in denial_phrases):
continue continue
reasons.append(
f"single-mutation run mentions '{absent}' without "
f"confirming it was not performed"
)
if performed == ["create_issue"]: if performed == ["create_issue"]:
for check in ("label", "comment", "pr", "review", "merge"): for check in ("label", "comment", "pr", "review", "merge"):
if check in text and f"no {check}" not in text: if check in text and f"no {check}" not in text:
@@ -2424,7 +2428,8 @@ def assess_issue_filing_final_report(
reasons = [] reasons = []
downgraded = False downgraded = False
for name, result in checks.items(): for name, result in checks.items():
if result.get("verdict") == "missing": verdict = result.get("verdict")
if verdict in ("missing", "incomplete"):
downgraded = True downgraded = True
reasons.extend(result.get("reasons") or []) reasons.extend(result.get("reasons") or [])
elif result.get("downgraded") or not result.get("complete", True): elif result.get("downgraded") or not result.get("complete", True):