Pull requests are one trigger. The same suite can run after a push, on a
schedule, or through a manual workflow dispatch.
What a reviewer receives
A completed pull-request suite publishes:- a Firedrill check on the exact candidate commit;
- a pull-request summary with passed, failed, and inconclusive drills;
- a base-versus-head comparison when both revisions were evaluated;
- a private link to assertions, Tool calls, changed state, logs, and admitted captures; and
- a terminal success, failure, cancellation, or infrastructure outcome.
Configure the workflow
1
Connect the repository
Install the Firedrill GitHub App for the repository and connect it to the
current project. The installation grants repository identity and permission
to publish the final check and marker-owned pull-request summary.
2
Choose the environment and suite
Select the hosted environment and the focused suite that should run for code
review. Keep longer or higher-trial simulations on push, schedule, or manual
triggers when they would slow normal review.
3
Declare the agent command
Use the same non-interactive command that runs the agent locally. JavaScript,
TypeScript, and Python runners use the same process boundary.
4
Commit the generated workflow
Add the generated workflow under
.github/workflows/. It checks out the exact
revision and exchanges GitHub OIDC identity for short-lived Firedrill access.
No long-lived Firedrill API key is stored in the repository.5
Decide whether it blocks merging
GitHub branch protection decides whether the check is required. Firedrill can
be informational while the suite is being introduced.
Agent command contract
The Action sends one invocation JSON value to the configured command on standard input. The command writes one result JSON value to standard output and sends human-readable logs to standard error.Base and head comparison
For a pull request, Firedrill binds each run to an immutable Git revision. The base and candidate results are compared only after both are sealed. The comparison shows factual changes in assertions, evidence, and world state; it does not infer that every difference is an improvement or regression. Examples of useful merge-gating assertions include:- no duplicate external action after a lost response;
- no write outside the active actor’s permissions;
- protected state remains unchanged after a failed operation; and
- required follow-up work occurs before the agent reports completion.
Evidence and captures
Logs, screenshots, recordings, and files follow the suite’s capture policy:off, always, or retain-on-failure. The runner must provide those artifacts
or register a capture driver; Firedrill does not silently record the developer’s
machine.
Evidence links remain private. A signed-in project member can inspect the result,
and an unauthorized recipient can request access to that exact suite without
gaining project access.
Run drills in any CI provider
Generate a local GitHub workflow or use the same exit-code and report contract
in another CI system.