Skip to content

canon-quality.yml: enforcement gate uses STATUS != "OK" which would block on PARTIAL_INDEX in hard mode #153

@klappy

Description

@klappy

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions