From 7ce32d5e709d4d18cff6e61b2172b0712fba445d Mon Sep 17 00:00:00 2001 From: marcusquinn <6428977+marcusquinn@users.noreply.github.com> Date: Fri, 13 Feb 2026 19:07:05 +0000 Subject: [PATCH] fix: align verify ShellCheck with CI severity and fix Phase 7b reconciliation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two systemic issues causing all 8 verify_failed tasks: 1. Post-merge ShellCheck verification used bare 'shellcheck' (all severities) while CI uses '-S error'. This caused false failures on pre-existing SC2016 (info) and SC1091 (info) violations. Fix: use '-S warning -x' which catches real issues but skips info/style noise, and follows source directives. 2. Phase 7b reconciliation tried to transition verify_failed tasks to 'complete' when TODO.md showed [x], but the state machine doesn't allow that transition. Fix: exclude verify_failed from Gap 2 reconciliation — it's a meaningful terminal state (PR merged+deployed, verification failed), not a stale inconsistency. --- .agents/scripts/supervisor/deploy.sh | 6 +++++- .agents/scripts/supervisor/todo-sync.sh | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.agents/scripts/supervisor/deploy.sh b/.agents/scripts/supervisor/deploy.sh index 69550d7b14..09ff6d8027 100755 --- a/.agents/scripts/supervisor/deploy.sh +++ b/.agents/scripts/supervisor/deploy.sh @@ -2644,7 +2644,11 @@ run_verify_checks() { ;; shellcheck) if command -v shellcheck &>/dev/null; then - if shellcheck "$repo/$check_arg" 2>>"$SUPERVISOR_LOG"; then + # t1041: Use -S warning -x to match CI severity threshold. + # CI uses -S error; verify uses -S warning (catches warnings+errors + # but not info/style like SC2016/SC1091 which are pre-existing noise). + # -x follows source directives so sourced files don't cause SC1091. + if shellcheck -S warning -x "$repo/$check_arg" 2>>"$SUPERVISOR_LOG"; then log_success " PASS: shellcheck $check_arg" else log_error " FAIL: shellcheck $check_arg" diff --git a/.agents/scripts/supervisor/todo-sync.sh b/.agents/scripts/supervisor/todo-sync.sh index 8ce6ccc80e..4575ed8503 100755 --- a/.agents/scripts/supervisor/todo-sync.sh +++ b/.agents/scripts/supervisor/todo-sync.sh @@ -1038,13 +1038,15 @@ cmd_reconcile_db_todo() { fi # --- Gap 2: TODO.md [x] but DB still in non-terminal state --- - # Terminal states: complete, deployed, verified, failed, blocked, cancelled + # Terminal states: complete, deployed, verified, failed, blocked, cancelled, verify_failed # Non-terminal: queued, dispatched, running, evaluating, retrying, - # pr_review, review_triage, merging, merged, deploying, verifying, verify_failed + # pr_review, review_triage, merging, merged, deploying, verifying + # t1041: verify_failed is excluded — it's a meaningful state (PR merged+deployed + # but post-merge checks failed). Re-verification handles these, not reconciliation. local all_db_tasks all_db_tasks=$(db -separator '|' "$SUPERVISOR_DB" " SELECT t.id, t.status FROM tasks t - WHERE t.status NOT IN ('complete', 'deployed', 'verified', 'failed', 'blocked', 'cancelled') + WHERE t.status NOT IN ('complete', 'deployed', 'verified', 'verify_failed', 'failed', 'blocked', 'cancelled') $batch_filter ORDER BY t.id; ")