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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions