Change (quick)
| Name | change-quick |
| Enabled by default | Yes |
| Steps | 11 |
| Runs at once | up to 3 |
| Catalog | v0.29.0 |
What it does
One issue from opening to production as one Change: the architect hydrates the issue, a human triages it (build it, or hand it to a person), the product-feature-builder implements it and opens the pull request, the QA engineer reads its CI and decides code or test, working any code change out with the builder on the same branch, the quality-reviewer and security-reviewer judge it and send what the builder should fix back to it on the same branch, a human approves, Infrared squash-merges, releases the commit to the pre-release zone and promotes it to release on approval. An issue already triaged to Todo (agent) goes straight to building.
When it runs
- On the event
issue.opened. Starts when an issue is opened on a Product repo. - On the event
issue.labeled. Starts for an issue moved to Todo (agent) or marked needs-hydration that has no Change running. Only for labelsinfrared:todo-agent,needs-hydration. - On request. Started by hand for one issue, from the UI, the CLI or the API.
Steps
Rounded steps are human gates, slanted steps are promotions, and double-edged steps run automatically.
| # | Step | Type | Runs | Required | On failure | Attempts |
|---|---|---|---|---|---|---|
| 1 | hydrate | AgentRole | Issue hydration | Yes | Dead-letter to a human | 2 |
| 2 | triage | Human gate | Human gate | No | Fail the run | 1 |
| 3 | product-feature-builder | AgentRole | Feature builder | Yes | Dead-letter to a human | 1 |
| 4 | qa | AgentRole | QA engineer | No | Dead-letter to a human | 2 |
| 5 | quality-reviewer | AgentRole | Quality reviewer | No | Dead-letter to a human | 1 |
| 6 | security-reviewer | AgentRole | Security reviewer | Yes | Dead-letter to a human | 1 |
| 7 | human-approval | Human gate | Human gate | Yes | Fail the run | 1 |
| 8 | resolve-conflicts | AgentRole | Merge conflict resolver | No | Dead-letter to a human | 1 |
| 9 | merge | Automatic | Automatic | No | Dead-letter to a human | 1 |
| 10 | promote-pre-release | Promotion | Promote to zone pre-release | No | Dead-letter to a human | 1 |
| 11 | promote-release | Promotion | Promote to zone release | No | Dead-letter to a human | 1 |
1. hydrate
Adds acceptance criteria, design notes, a verification plan and an estimate, and moves the issue to Arch reviewed.
Runs only when !label:infrared:todo-agent. Skipped when its AgentRole is switched off.
2. triage
A human reads the hydrated issue and builds it (Todo agent) or hands it to a person (Todo human), which ends the Change.
Runs only when !label:infrared:todo-agent.
3. product-feature-builder
Implements the issue on the branch infrared/
Skipped when its AgentRole is switched off.
4. qa
Infrared waits for CI on the pull request: green CI ends the step with no agent. On a failure the QA engineer reads what Infrared hands it (the failed checks and their logs): a wrong test it fixes on the branch (TEST CHANGED, then Infrared waits for CI again), wrong code it sends back to the product-feature-builder on the same branch with its finding (CODE CHANGE NEEDED), at most twice, after which a person decides.
Skipped when its AgentRole is switched off.
5. quality-reviewer
Reviews test quality and code correctness, and adds or fixes tests and small bugs. A bug, an untested criterion or a coverage gap the builder should fix goes back to the product-feature-builder on the same branch with the finding (CODE CHANGE NEEDED), at most twice, after which a person decides; on a net-new build (infrared:greenfield) the finding becomes an issue labelled infrared:blocks-release and the Change goes on.
Skipped when its AgentRole is switched off.
6. security-reviewer
Scans for malicious edits, secrets and known vulnerabilities, and fixes what is small and unambiguous. A finding the builder should fix goes back to the product-feature-builder on the same branch with its remediation (CODE CHANGE NEEDED), at most twice, after which a person decides; on a net-new build (infrared:greenfield) the finding becomes an issue labelled security and infrared:blocks-release and the Change goes on. A BLOCK (malicious intent, a live secret, a vulnerability with no patched version, an edit to CI or release tooling, a disputed finding) stops the Change.
Skipped when its AgentRole is switched off.
7. human-approval
A human reviews the verdicts, the evidence and the diff, then approves or rejects the Change. After 72 hours without an answer the step escalates to the dead-letter reviewer.
Needs 1 approval from @platform/reviewers. Times out after 72h and escalates.
8. resolve-conflicts
Runs only when the pull request no longer merges cleanly because the base branch moved (another Change merged first): re-applies the Change on the current base branch, keeping both sides' intent, runs the tests, and merges the base branch into the Change branch. The merge step comes back here, up to three times, if the base moves again.
Runs only when pullRequest.conflicted. Skipped when its AgentRole is switched off.
9. merge
Squash-merges the pull request once every required step succeeded and the approval is recorded.
10. promote-pre-release
Releases the merged commit: waits for its build, tags the repo and the image vX.Y.Z, and promotes it to the Product's first pre-release zone with a pull request to the gitops repo, then waits for Synced and Healthy. Skipped for a Product without delivery zones.
11. promote-release
Promotes the same release to the release zone once a person approves it on the Release, then waits for Synced and Healthy.
When it hands off to a human
Human gates: triage, human-approval. Required steps cannot be switched off for a Release.
Work an agent cannot finish is dead-lettered to @platform/reviewers. The AgentWorkflowRun shows the step as DeadLettered until a human picks it up.