feat: implement issue #2169 — pr-review reaches approve but cannot post it (approval marker missing), and the same head gets approve/LOW in one run and escalate/HIGH in the next

Merged
DO
21d ago
+102-1

Problem

pr-review reaches approve but cannot post it (approval marker missing), and the same head gets approve/LOW in one run and escalate/HIGH in the next

From the issue: A pr-review cascade can reach an approve verdict and then fail to post it, because the synthesized approval body does not contain a complete approval marker. The #1754 guard correctly refuses to submit, but the run then exits 1 with nothing written to the PR. A re-run redoes the whole cascade and can reach a different verdict, so the outcome for the same head SHA depends on which run happens to post.

Risk

Low — changes automation shell logic under scripts/, covered by shellcheck (--severity=warning) and the bats suite.

Test plan

Tests added/updated: tests/test_post_pr_review_escalation.bats. Verification: bash scripts/dev-lead-lint.sh (shellcheck --severity=warning) ran pre-commit; the bats suite runs in CI.

Rollback

Revert this PR. No non-revertible side effects (no tags, migrations, or external state).

Monitoring

This PR's Lint (shellcheck) and bats checks show pass/fail; watch subsequent dev-lead / pr-review runs for behavioral regressions.

Closes #2169