Skip to main content
Version: 0.2 (next)

Change (quick)

Namechange-quick
Enabled by defaultYes
Steps11
Runs at onceup to 3
Catalogv0.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 labels infrared: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.

#StepTypeRunsRequiredOn failureAttempts
1hydrateAgentRoleIssue hydrationYesDead-letter to a human2
2triageHuman gateHuman gateNoFail the run1
3product-feature-builderAgentRoleFeature builderYesDead-letter to a human1
4qaAgentRoleQA engineerNoDead-letter to a human2
5quality-reviewerAgentRoleQuality reviewerNoDead-letter to a human1
6security-reviewerAgentRoleSecurity reviewerYesDead-letter to a human1
7human-approvalHuman gateHuman gateYesFail the run1
8resolve-conflictsAgentRoleMerge conflict resolverNoDead-letter to a human1
9mergeAutomaticAutomaticNoDead-letter to a human1
10promote-pre-releasePromotionPromote to zone pre-releaseNoDead-letter to a human1
11promote-releasePromotionPromote to zone releaseNoDead-letter to a human1

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/, adds tests, and opens the pull request linked to the issue.

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.