how do i fix Graphite's CI optimization? i have th...
# how-do-i
s
how do i fix Graphite's CI optimization? i have the following output on a merge queue job:
here is the workflow:
Copy code
name: Optimize CI (Graphite)
    runs-on: ubuntu-latest
    continue-on-error: true
    outputs:
      skip: ${{ steps.check_skip.outputs.skip }}
    steps:
    - name: Optimize CI
      id: check_skip
      # Pinned to a SHA, not @main: a moving third-party ref is both a supply-chain
      # risk and a source of CI behaviour that changes under you.
      uses: withgraphite/graphite-ci-action@402a89bc8aa6db18ae1f9c61953d001d5f9d828f  # main @ 2026-08-12
      with:
        graphite_token: ${{ secrets.GRAPHITE_TOKEN }}
i guess the job doesn't say "skip the test", but clicking the subsequent workflow it shows it gets skipped
ah, i think i figured out what's going wrong: the CI workflow says "if not draft" but whole-PR-stack MQ policy creates a draft PR. i am wondering how i can distinguish between a draft posted by a human and a draft posted by the merge queue
b
These PRs’ titles are always prefixed with
[Graphite MQ] Draft PR
to make them easy to identify. Docs ref
s
i found the branch name is always starting with gtmq_, so filtered on that
is that a contract i can rely upon? i'd like to...
or perhaps the CI Optimizer can output "is_graphite_merge_queue_pr" or something
b
yes you can rely on the gtmq as well.