# Verdicts kept by hand, read by large-subset-yardsticks.pl (and large-subset-features.pl -n): they override the
# detector's verdict of a feature ("feature:ID", ID as in large-subset-features.pl), a whole corpus sample
# ("sample:SOURCE:ID", for large-subset-yardsticks.pl) or a whole parser test ("test:ID", its snippet ID, for the
# record t/parser/large-subset-shells.tsv), without a rescan.  Format: KEY, a tab, then either a short verdict -- B (blatant), S (subtle),
# X (we run a program, which beats the shells' difference) or - (no difference), optionally followed by its basis --
# or free-form text: a postponed decision, counted as open (outside the lower yardstick, inside the upper one) until
# someone rewrites it in short form.  A free-form verdict may continue on lines that start with a tab.
# Who decides: the user; Claude may write short verdicts only where a probe (P:ID) or the manual (M:N) settles them.
feature:scope	`local` outside a function: both shells print an error; dash then stops, bash goes on with the rest.
	`return` outside a function: dash ends quietly (status 0), bash errors (status 2) and also stops (M:24).
	Claude's reading: blatant (the rest of the string runs in one shell only), but whether "both shells error"
	should instead mean "we refuse it too" (the user's rule of 2026-11-02 for both shells refusing) is for the user.
feature:dashflags	`$-`: empty in dash -c, "hBc" in bash; a test for *i* (interactive) gives the same answer in both.
	Claude's reading: blatant for printing it, no difference for the usual test; the detector cannot tell the two.
feature:lineno	`$LINENO`: empty in dash -c, 1 in bash. Whether dash's manual promises it in -c strings: not checked
	(dash's manual page is not installed here).
feature:assignredir	`x=$(cmd) 2>/dev/null`: dash redirects before it expands, bash after; only differs when the
	expansion writes to the redirected descriptor. Claude's reading: subtle; not probed in this exact form.
