Skip to content

Add deterministic CI state classifier for GitHub MCP server PR triage #2064

@davidahmann

Description

@davidahmann

PR triage can misclassify missing or policy-gated checks, which delays correct action and creates unnecessary code churn.

Current behavior is insufficient because CI outcomes are manually interpreted and not emitted as a deterministic contract.

Why now: this server participates in cross-repo maintenance workflows that depend on normalized state semantics.

Claim-to-codepath map:

  • CI workflow/status ingestion in .github/workflows and script tooling.
  • Classification output consumed by e2e and maintenance paths.

Requested behavior: add deterministic state classification output and tests for failed, pending, no-checks, and policy-blocked scenarios.

Evidence Packet

  • Commit under test: 16ff74a
  • Runtime environment:
    • OS: Darwin 25.3.0 arm64
    • Python 3.14.0
    • go version go1.25.7 darwin/arm64
    • Node: v22.19.0
  • Minimal repro:
    1. Follow the repo's current local validation/CI-triage path.
    2. Observe the behavior described above for this issue.
  • Expected behavior: deterministic, documented behavior matching acceptance criteria below.
  • Actual behavior: behavior can be inconsistent for the scenario described above.

Acceptance Criteria

  • Implement the smallest code change that addresses the proven pain point.
  • Add focused regression test coverage for the changed behavior.
  • Ensure backward compatibility expectations are explicit in tests/docs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions