Check Runs
A Check Run is the surface where Roboticks meets the PR author. It’s the single line on the PR that says “50 of 51 requirements still confirmed; 1 regression in REQ-014” and links into the platform for the full story.Lifecycle
Each transition is a separatePOST /repos/{owner}/{repo}/check-runs (or PATCH) and shows up on the PR almost immediately. Typical timing on a hosted runner: queued → in_progress in ~10 s, in_progress → completed for a small repo in 30–90 s.
Statuses and conclusions
GitHub’s Check Run API splitsstatus (the lifecycle) from conclusion (the outcome). Roboticks uses them as follows:
success and failure are the load-bearing ones; the others exist to communicate edge cases honestly instead of forcing them into a green check.
Summary markdown
The body of the Check Run is rendered markdown. The shape is consistent across all PRs so reviewers learn to scan it quickly.- Coverage delta is reported against the base SHA, not against the latest commit on
main— so a long-lived branch isn’t penalised for drift it didn’t cause. - Regressions are called out separately from new failures. A regression means “this requirement used to be confirmed and now isn’t”, which is a stronger signal than “a test failed somewhere”.
- Every cell is a deep link, not a free-text reference. Reviewers click straight into the matrix.
Annotations
For each failing test we attach a GitHub annotation to the file and line that triggered the failure. The annotation contains:- The failure message (truncated to 64 KB per GitHub’s limit).
- The requirement(s) the test confirms, so the reviewer sees the blast radius without leaving the diff view.
- A link back to the platform run page.
Conclusion ↔ branch protection
To make a Roboticks run required for merge:- In GitHub: Repository → Settings → Branches → Branch protection rules → Edit
main. - Under Require status checks to pass before merging, add
Roboticks. - Tick Require branches to be up to date before merging if you want stale-branch protection.
Roboticks is stable across runs — no version suffix, no per-job qualifier — so a single branch protection rule covers all future PRs.
Re-running
Two re-run paths, both supported:- GitHub Re-run — the user clicks Re-run all jobs on the Check Suite. GitHub sends a
check_suite.rerequestedevent; we dispatch the same job spec to the same SHA. - Roboticks Re-run — from the run page in the dashboard. Useful when a previous run was poisoned by a transient runner issue rather than a code problem; this path can also pin a specific runner pool.
What the PR comment adds
The Check Run is the canonical surface; the optional PR comment is a courtesy. It’s identical to the Check Run summary, but pinned at the bottom of the PR so reviewers can read it without leaving the Conversation tab. Disable it project-wide under Settings → Project → Check Run policy → Post PR comment: off.Next
Webhooks
The events that drive Check Run creation.
Traceability matrix
The platform UI the Check Run links into.
Change-impact analysis
How we compute “affected requirements” for the summary.
Troubleshooting
Check Run never posts? Start here.