* test(#4665): add failing-first contract coverage for the --fix empty-scope recovery * fix(#4665): route --fix past the empty-scope exit check_empty_scope exited the entire workflow whenever REVIEW_FILES was empty — before dispatch-fix — so with #3661's incremental scoping, a phase whose only post-review changes were planning artifacts could never run --fix against its standing REVIEW.md findings, and the skip output did not even mention the flag. The skip is now a self-contained guarded fence (explicit REVIEW_FILES emptiness check): it fires only when --fix is absent OR the phase's REVIEW.md does not exist. Otherwise the workflow proceeds directly to dispatch-fix, which delegates to code-review-fix.md — the canonical fix implementation that already documents handling an existing REVIEW.md — while the fresh-review steps (structural pre-pass, reviewer lanes, spawn_reviewer, commit_review) are skipped: nothing new to review, nothing to commit. dispatch-fix.md's route docstring is synced. Emitted-Drift-Ack-Growth: code-review.md — check_empty_scope gains the --fix recovery branch (#4665) * docs(#4665): backfill changeset PR number --------- Co-authored-by: sim <sim@local>
This commit is contained in:
@@ -533,11 +533,21 @@ This `if`/`else`/`fi` is the entire guard: when `DEPTH_OK` is not the literal st
|
||||
</step>
|
||||
|
||||
<step name="check_empty_scope">
|
||||
If REVIEW_FILES is empty:
|
||||
An empty `REVIEW_FILES` (#3661) means nothing new to re-review — NOT a phase with no standing findings. #4665: with `--fix` + an existing REVIEW.md, route to `dispatch-fix` (the flag covers "if REVIEW.md already exists"):
|
||||
|
||||
```bash
|
||||
REVIEW_PATH="${PHASE_DIR}/${PADDED_PHASE}-REVIEW.md"
|
||||
if [ "${#REVIEW_FILES[@]}" -ne 0 ]; then
|
||||
# non-empty scope: no-op
|
||||
true
|
||||
elif [ "$FIX_FLAG" != "true" ] || [ ! -f "${REVIEW_PATH}" ]; then
|
||||
echo "No source files changed in phase ${PHASE_ARG}. Skipping review."
|
||||
# Exit workflow. Do NOT spawn agent or create REVIEW.md.
|
||||
exit 0
|
||||
fi
|
||||
```
|
||||
No source files changed in phase ${PHASE_ARG}. Skipping review.
|
||||
```
|
||||
Exit workflow. Do NOT spawn agent or create REVIEW.md.
|
||||
|
||||
**`--fix` recovery:** proceed DIRECTLY to `dispatch-fix`, skipping `structural_pre_pass`, `dispatch_reviewer_lanes`, `spawn_reviewer`, `commit_review` — no fresh review, nothing to commit; `code-review-fix.md` resolves the existing REVIEW.md and owns the fix logic. The reviewer agent is not dispatched here.
|
||||
</step>
|
||||
|
||||
<step name="structural_pre_pass">
|
||||
|
||||
Reference in New Issue
Block a user