reqs = [("R1", "Must", "pass"), ("R2", "Must", "pass"), ("R3", "Must", "pass"),
("R4", "Must", "pass"), ("R5", "Must", "pass"), ("N1", "Must", "pass"),
("N2", "Must", "pass"), ("N4", "Must", "pass"),
("R6", "Should", "pass"), ("R7", "Should", "pass"), ("N3", "Should", "pass"),
("R8", "Could", "deferred"), ("N5", "Could", "deferred")]
for level in ["Must", "Should", "Could"]:
group = [r for r in reqs if r[1] == level]
passed = [r for r in group if r[2] == "pass"]
others = [rid for rid, _, status in group if status != "pass"]
note = f" (not passed: {', '.join(others)})" if others else ""
print(f"{level}: {len(passed)}/{len(group)} passed{note}")
ready = all(status == "pass" for _, level, status in reqs if level == "Must")
print("Ready for sign-off:", ready)