qa: verdict lands as NEEDS_VERIFICATION with 'CI pending' as the only gap because /qa runs before the PR's checks finish
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 22/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- git, github-actions, typescript
- Domain
- devtools
Research direction
The behaviour lives in the qa phase of the orchestrator, which decides the verdict from the gap JSON and the PR check state; start by finding where the verdict is emitted and where gh pr checks output is read. Either make that phase wait for checks (bounded by --auto-wait or phases.qa.waitForChecks) or add a CI_PENDING status, then confirm with a run where checks are still IN_PROGRESS. Done when the verdict no longer reads NEEDS_VERIFICATION for pending-only CI. Design choice needed first, so ask the maintainers which option they want.
Written by the indexing model from the issue text.
Description
What happens
/qa runs as soon as exec finishes, while the PR's CI checks are still queued or in progress. When every acceptance criterion is met locally, the verdict still lands as NEEDS_VERIFICATION with "CI pending" as the only gap, and the issue gets the needs-verification label. The coordinator then has to read the verdict to learn there is no code gap, wait for CI by hand, and either re-run /qa (another phase, about $1 to $2 and 2 to 3 minutes) or merge on the earlier review.
Where it was seen (sequant 2.20.0, admarble/matcha-maps, concurrency 1, --phases exec,qa)
| Issue | PR | QA finished | Verdict | Only AC gap |
|---|---|---|---|---|
| #943 | #1186 | 2026-10-16 | NEEDS_VERIFICATION | browser check + CI |
| #929 | #1220 | 2026-11-02, 3 m 9 s after exec | NEEDS_VERIFICATION | "Run Tests and Lint & Type Check ... still pending" |
| #1101 | #1221 | 2026-11-02, 70 s after exec | NEEDS_VERIFICATION | "Run Tests and Lint & Type Check were still running" |
| #928 | #1222 | 2026-11-02, 2 m after exec | NEEDS_VERIFICATION | "Lint & Type Check and Run Tests IN_PROGRESS" |
In the last three the QA gap JSON carried {"category":"execution_gap","evidence":"gh pr checks ...: ... IN_PROGRESS","recommendedAction":"pause_for_human"}. All three PRs went CLEAN within 15 to 30 minutes and merged without a code change.
Ask
One of:
- The qa phase waits for the PR's checks before emitting the verdict, bounded by
--auto-waitor aphases.qa.waitForCheckssetting, so the verdict reflects CI. - Or the verdict distinguishes "CI pending, no code gap" from "needs a human", for example a
CI_PENDINGstatus or anexecution_gapthat the orchestrator resolves itself by pollingmergeStateStatusand then upgrading the verdict without a second QA run.
Either saves a QA re-run per issue and keeps needs-verification for cases that need a person.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 1
- Avg merge
- 11h 3m
- Merged PRs (30d)
- 84
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sequant-io/sequant
-
graph-2026-11-simplify
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
sequant-io/sequant#1650 ·
Maintainers usually reply within 1 day
-
run: --phases does not suppress the UI-label test phase (determinePhasesForIssue adds it to an explicit list)Possibly taken @admarble claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
sequant-io/sequant#1631 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
sequant-io/sequant#1601 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
sequant-io/sequant#1582 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 76/100
sequant-io/sequant#1381 ·
Maintainers usually reply within 1 day
All issues in sequant-io/sequant
Similar issues
-
content triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
tensorflow/tfjs#8754 ·
-
tool-submission
Difficulty 1/5 Under an hour Newbie friendliness 83/100
BraveOPotato/NoSignups#2348 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
code-yeongyu/oh-my-openagent#12784 ·
Maintainers usually reply within 1 day
-
external-issue to-triage
Difficulty 2/5 1-3 hours Newbie friendliness 71/100
Maintainers usually reply within 1 day