docs: add REVIEW.md#147
Conversation
Mutation testing - PASSNothing to test: no viable mutants were generated. |
Performance Benchmark ComparisonCompared Detailed Comparison
|
|
|
||
| ## Tooling and scope | ||
|
|
||
| - **Documented local flows must run on stock macOS bash 3.2.** The `just`/shell entry points people actually run can't assume bash ≥ 4: no `mapfile`, and always quote empty-array expansions (an unguarded `"${arr[@]}"` throws `unbound variable` under `set -u`). |
There was a problem hiding this comment.
1. The bash rule prescribes the wrong fix — and the review bot will apply it literally (REVIEW.md:12)
"always quote empty-array expansions (an unguarded
"${arr[@]}"throwsunbound variableunderset -u)"
- Quoting is not the remedy. On bash 3.2–4.3, an empty
"${arr[@]}"tripsset -uwhether or not it's quoted (bash 4.4 fixed this). The rule is internally inconsistent: the failing example it shows is already quoted. - The correct fix is the guard idiom, which this repo already uses and names correctly —
scripts/mutation_test.sh:92says "the nounset-safe${arr[@]+...}idiom" and line 110 uses${exclude_args[@]+"${exclude_args[@]}"}. - This is worse than a normal doc nit because the file is machine-consumed guidance: a reviewer bot told "always quote" would approve
"${arr[@]}"— exactly the pattern that breaks on stock macOS — and could flag the correct guard as redundant.
Suggested replacement: "…no mapfile, and guard possibly-empty array expansions with the nounset-safe ${arr[@]+"${arr[@]}"} idiom — under set -u, bash ≤ 4.3 treats an empty "${arr[@]}" as unbound even when quoted (see scripts/mutation_test.sh)."
There was a problem hiding this comment.
2. Minor: "just/shell entry points" (REVIEW.md:12) — there is no justfile anywhere in this repo; local flows are plain scripts (scripts/mutation_test.sh, scripts/mutation_gate.py). Fine as future-proofing, but if it's a leftover from another repo's REVIEW.md, drop "just/" so reviewers don't hunt for recipes that don't exist.
Adds a
REVIEW.mdwith salt-specific review checks, supplementing the centralized baseline rubric:mapfile; quote empty-array expansions).The centralized
pr-reviewaction reads this file automatically.