PR Flight Director · v1.1.1 · read-only

Why is this pull request blocked?

Maniflight reads every place GitHub hides a merge blocker, separates what it observed from what it could not see, and tells each person what to do next. It never writes to GitHub.

Departures · acme/payments-apiObserved 16:00 UTC · base main

Select a departure to open its flight log. Samples are fictional pull requests classified by Maniflight 1.1.1.

Flight log · sample

acme/payments-api#231

Document the refund webhook payload

A first-time contributor's fork: CI is parked until a maintainer approves it, and a review is still required.

Status
BLOCKED
Next actors
reviewer, maintainer, automation
Head
e19a7c3f40b2
Steps
3
$ maniflight pr acme/payments-api#231

Maniflight PR Flight Director
acme/payments-api#231
Document the refund webhook payload

STATUS       BLOCKED
NEXT ACTORS  reviewer, maintainer, automation
HEAD         e19a7c3f40b2

BLOCKED      1 approving review is required [merge blocker]
SOURCE       https://github.com/acme/payments-api/pull/231
ACTION       CI requires manual action
DETAIL       GitHub reports manual action required for this fork workflow, and the run has no jobs. A maintainer with write access is the likely next actor.
SOURCE       https://github.com/acme/payments-api/actions/runs/9177
WAITING      build is required but has not reported a result [merge blocker]
SOURCE       https://github.com/acme/payments-api/pull/231

Next steps
REVIEWER     Review and approve the pull request if it meets the project requirements.
             https://github.com/acme/payments-api/pull/231
MAINTAINER   Approve the pending fork workflow run so CI can start.
             https://github.com/acme/payments-api/actions/runs/9177
AUTOMATION   Wait for pending automation to report a result, then inspect again.
             https://github.com/acme/payments-api/pull/231

Pre-flight check

Paste a pull request, get the command

Paste a GitHub pull request link or an owner/repository#number reference. It is checked with the same rules the CLI uses, right here in your browser.

Try:
# Paste a pull request on the left

Nothing is sent anywhere. The command runs on your machine with your own token, and Maniflight only reads from GitHub.

How it works

Seven sources, one flight plan

No single GitHub response explains a stuck pull request. Maniflight collects each source with read-only requests, records its coverage, and classifies every condition with deterministic rules.

Seven read-only GitHub sources feed deterministic rules, which split into observed conditions, evidence gaps, and next steps
  • Evidence identifies a current merge blocker.
  • A person must act before progress can continue.
  • Automation or another pending condition is not complete.
  • The available evidence cannot support a stronger conclusion.
  • The observed condition completed successfully.
  • Relevant, but not known to block the merge.

Install

Ready for boarding

Node.js 22.12+ or 24 on Windows, macOS, or Linux. Published to npm and attached to every GitHub release with checksums.

npm install --global maniflight
maniflight --version

Also on board

Repository scan & Action

Grade a repository's architecture, automation, security hygiene, and community health without running its code. Gate CI on score, severity, or regressions.

name: Repository diagnostics

on:
  pull_request:

permissions:
  contents: read

jobs:
  maniflight:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - uses: agrovr/maniflight@v1
        with:
          github-token: ${{ github.token }}
          fail-on-high: true
See the self-scan

Trust

Read-only by design

  • Read-onlyGET requests and GraphQL queries only. No comments, approvals, reruns, labels, merges, or dispatches.
  • No executionNo checkout, code execution, or log and artifact downloads from the inspected repository.
  • Evidence-linkedEvery report records the observation time and exact head SHA, and conclusions link to their source.
  • Honest gapsMissing evidence is reported as unknown, never as a guessed pass.
  • Token-safeTokens are read from the environment only and are never written to a report.

FAQ

Before you take off

Does it need a GitHub token?

No, public pull requests work without one. GitHub's GraphQL API requires authentication, though, so without a token the review decision and review threads are reported under Evidence gaps. Set GH_TOKEN or GITHUB_TOKEN with read access for the complete picture.

Can it change anything on GitHub?

No. Maniflight sends GET requests and GraphQL queries only. It never comments, approves, reruns, labels, merges, or dispatches workflows, and it never checks out or runs code from the repository.

Why does it say UNKNOWN instead of a verdict?

Because the evidence it could see does not support one. Missing or inaccessible sources are reported as unknown on purpose, so a hidden blocker is never presented as a pass.

What exit code does a blocked pull request return?

Zero. A blocked PR is a successful diagnosis. The command exits with 1 only for invalid input or when the pull request itself cannot be fetched.

Does it support GitHub Enterprise Server?

Not in 1.x. Maniflight targets GitHub.com's REST and GraphQL APIs.

How do I know the npm package came from this repository?

Releases after 1.1.0 are published by the repository's own release workflow with npm trusted publishing, so each one carries a provenance attestation that links it to the exact commit and workflow run. Run npm audit signatures after installing to verify it. Every version is also attached to its GitHub release with a SHA256SUMS file.