Keep review obligations visible and reconcile owner evidence (RISK-WP-0006, RISK-WP-0007)

check_all runs every check stage even when one fails; malformed dates are
reported rather than aborting; accepted findings and closure evidence are
shown; defer requires a valid future date. Adds SCOPE.md, the scope
assessment, the open-findings source review and a unittest suite. Stops
tracking __pycache__.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 6903@bnt-lap001
Assistant-Session: 8319e8a8-ffa6-4eb3-b8bf-b29945628f89
This commit is contained in:
tegwick 2026-09-22 07:56:58 +02:00
parent 29f50d5143
commit bbbede5f47
25 changed files with 1007 additions and 43 deletions

View file

@ -57,6 +57,8 @@ def main(argv: list[str]) -> int:
fail("`defer` needs a date and the operator's reason")
until, why = rest[0], rest[1]
new_rung, streak, nxt = rung, int(f.get("clean_streak", 0)), lib.moment(until)
if nxt is None or nxt <= now:
fail("`defer` needs a valid future date")
line = f"- **{now:%Y-%m-%d}** — deferred to {until} by explicit operator decision: {why}"
defer = until
else:
@ -71,6 +73,8 @@ def main(argv: list[str]) -> int:
}
if defer:
subs["deferred_to"] = defer
else:
text = re.sub(r"(?m)^deferred_to:.*\n", "", text)
for key, value in subs.items():
quoted = f'"{value}"' if key not in ("cadence", "clean_streak") else value
if re.search(rf"(?m)^{key}:", text):