Cursor Bugbot finding on PR #149 (cbc41c38), Medium severity:
The enforcement gate fails the job whenever STATUS != "OK" in hard mode, which includes PARTIAL_INDEX. The audit spec at docs/oddkit/specs/oddkit-audit.md explicitly states that the CI workflow handles PARTIAL_INDEX as non-blocking with a retry on next push. Since PR-3.2 is documented as a single repo-variable flip with no further workflow edit, this contract drift will silently activate and start blocking PRs whenever the index is warming.
Verified at HEAD: .github/workflows/canon-quality.yml:312 has if [ "$ENFORCEMENT_MODE" = "hard" ] && [ "$STATUS" != "OK" ]; then.
Disposition on PR #149: waived for this merge — PARTIAL_INDEX is deferred per audit spec v2.2 (klappy/klappy.dev docs/oddkit/specs/oddkit-audit.md Origin section, v2.2 amendment). The worker does NOT emit PARTIAL_INDEX currently; the gate is dormant code that cannot trigger in practice. Cursor Bugbot is correct in principle but the failure mode is unreachable until PARTIAL_INDEX is un-deferred.
Suggested fix: when this issue is acted on, change the gate to [ "$STATUS" = "FINDINGS" ] (matching spec text), and add a PARTIAL_INDEX branch to the comment-rendering Python that explains the non-blocking semantics. ~5-line diff.
Revisit trigger: any spec amendment that un-defers PARTIAL_INDEX from the audit Output schema. At that point this issue must be resolved before merging the spec change.
Source: PR #149 review comment #149 (comment) (PARTIAL_INDEX wrongly blocks in hard mode)
Cursor Bugbot finding on PR #149 (
cbc41c38), Medium severity:Verified at HEAD:
.github/workflows/canon-quality.yml:312hasif [ "$ENFORCEMENT_MODE" = "hard" ] && [ "$STATUS" != "OK" ]; then.Disposition on PR #149: waived for this merge —
PARTIAL_INDEXis deferred per audit spec v2.2 (klappy/klappy.devdocs/oddkit/specs/oddkit-audit.mdOrigin section, v2.2 amendment). The worker does NOT emitPARTIAL_INDEXcurrently; the gate is dormant code that cannot trigger in practice. Cursor Bugbot is correct in principle but the failure mode is unreachable until PARTIAL_INDEX is un-deferred.Suggested fix: when this issue is acted on, change the gate to
[ "$STATUS" = "FINDINGS" ](matching spec text), and add aPARTIAL_INDEXbranch to the comment-rendering Python that explains the non-blocking semantics. ~5-line diff.Revisit trigger: any spec amendment that un-defers
PARTIAL_INDEXfrom the audit Output schema. At that point this issue must be resolved before merging the spec change.Source: PR #149 review comment #149 (comment) (PARTIAL_INDEX wrongly blocks in hard mode)