From ba2b1622387cb0f481d4883b8e08d5ef81bebdab Mon Sep 17 00:00:00 2001 From: Timothy Date: Fri, 14 Aug 2026 18:56:37 +0200 Subject: [PATCH] docs(776): restore two inventory sections the rebase resolution dropped MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rebasing onto #798 conflicted in docs/guard-inventory.md at every commit that touched it, and resolving those by taking the accumulated side silently dropped two prose sections: the WITHDRAWN note for the generalised redirect-order guard, and the paragraph recording that test_hook_fire_log.py asserts two clauses with a separate executed mutation for each. Counts, rows and the inventory test were all green without them — which is the point worth recording. A conflict resolution that satisfies every mechanical check can still lose the reasoning, because the checks count rows and the prose carries the WHY. Caught by grepping the merged file for the content the branch was supposed to add, rather than trusting green. Refs: #776 Decisions-Edit: yes Co-Authored-By: Claude Opus 5 (1M context) --- docs/guard-inventory.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/guard-inventory.md b/docs/guard-inventory.md index 3a3bd57a9..81aa04cce 100644 --- a/docs/guard-inventory.md +++ b/docs/guard-inventory.md @@ -173,6 +173,17 @@ dangerous direction — a token that a reviewer means as `BLOCKED` silently read approval, which writes a green `review-verdict/h10`. A token added to one script and not the other is untested by either, which is the whole of #788. +**A guard was WITHDRAWN from `test_hook_fire_log.py` after four iterations**, recorded here because +this is where a future session will look for it. A `test_no_redirection_in_the_sink_PRECEDES_its_stderr_redirect` +generalised the `exec … 2>/dev/null` rule to any command by pattern-matching shell source. Each +iteration fixed a false positive or false negative the previous one introduced — `>/dev/null 2>&1` +flagged wrongly, then operators preceded by a digit (`exec 0<`) missed entirely, then multi-command +lines flagged wrongly — and cold review then constructed more of both (`[[ "$x" < "$y" ]] 2>/dev/null`, +a backslash continuation, a `>` inside a quoted string). Deleted rather than patched a fifth time, +on the same reasoning as the vocabulary-parity withdrawal above. + +**`test_hook_fire_log.py` asserts TWO clauses + **That unproven set carries no number here on purpose.** It restated the count, drifted the moment the BOM guard was regraded, and `test_the_summary_counts_match_the_table` cannot see it — the parser checks the formatted summary sentence and nothing else. A second hand-maintained copy of a number is