scripts/quality_gates.py uses SQLite-style ? parameter placeholders in all db.execute() calls (log_gate_result, init_quality_gates_table, gate_duplicate_task_check). PostgreSQL via psycopg2 requires %s placeholders. Any invocation will raise psycopg2 ProgrammingError.
Fix: replace all ? with %s in scripts/quality_gates.py db.execute() calls. Also update any comment referencing 'SQLite limitation' (e.g., line ~196).
Acceptance criteria:
- python3 scripts/quality_gates.py pre-merge runs without psycopg2 placeholder errors
- All ? placeholders in db.execute() calls replaced with %s
Triage source: task:7828a688-1494-4465-a9b3-c128f94879a0
Git Commits (1)
[Senate] Fix SQLite placeholders in quality_gates.py for PostgreSQL [task:2bbe7197-3b67-4e02-b328-310c1aadb9c3]2026-04-21