Skip to main content
Version: 0.2 (next)

Change

Namechange
Enabled by defaultYes
Steps19
Runs at onceup to 3
Catalogv0.29.0

What it does​

The steps every Change moves through, from an issue that is ready for an agent to a Release of its merge. The product-feature-builder opens the pull request, the change-review AgentRoles each fix or judge one concern on the Change branch, and the QA engineer and the quality and security reviewers send what the builder should fix back to it on the same branch. The e2e-verifier captures the proofs, and a human approves from those proofs before the merge. The merged commit is then released: it takes the Product's pre-release zone on its own, and the release zone once a person approves it on the Release. Work an agent cannot finish is dead-lettered to a human instead of failing silently. Human approval cannot be removed.

When it runs​

  • On every Change. Runs for every Change opened against a Product repo.

Steps​

Rounded steps are human gates, slanted steps are promotions, and double-edged steps run automatically.

#StepTypeRunsRequiredOn failureAttempts
1buildAgentRoleFeature builderYesDead-letter to a human2
2policy-reviewAgentRolePolicy reviewerNoDead-letter to a human1
3lintAgentRoleLint fixerNoDead-letter to a human2
4dependency-currencyAgentRoleDependency currencyNoContinue1
5merge-conflictsAgentRoleMerge conflict resolverNoDead-letter to a human3
6ciAgentRoleQA engineerNoDead-letter to a human3
7unit-testsAgentRoleUnit test fixerNoDead-letter to a human2
8quality-reviewAgentRoleQuality reviewerNoDead-letter to a human1
9security-reviewAgentRoleSecurity reviewerYesDead-letter to a human1
10performance-reviewAgentRolePerformance reviewerNoDead-letter to a human1
11sre-reviewAgentRoleSRE reviewerNoContinue1
12versioningAgentRoleVersion managerNoDead-letter to a human1
13architecture-reviewAgentRoleArchitecture and doc reviewerNoContinue1
14docsAgentRoleDocs writerNoContinue1
15e2e-verifyAgentRoleEnd-to-end verifierYesDead-letter to a human2
16human-approvalHuman gateHuman gateYesFail the run1
17mergeAutomaticAutomaticYesDead-letter to a human1
18promote-pre-releasePromotionPromote to zone pre-releaseNoDead-letter to a human1
19promote-releasePromotionPromote to zone releaseNoDead-letter to a human1

1. build​

Implements the issue in small verified increments on its own branch, adds tests, and opens the pull request linked to the issue. Skipped when a human opened the Change.

Runs only when change.author in [agent]. Skipped when its AgentRole is switched off.

2. policy-review​

Checks licenses, banned libraries, secrets and forbidden paths against the org's denylists.

Skipped when its AgentRole is switched off.

3. lint​

Runs the repo's linters and formatters and commits the fixes. A Change whose files no configured tool covers passes as NO CHANGE NEEDED.

Skipped when its AgentRole is switched off.

4. dependency-currency​

Flags or bumps outdated dependencies the Change touches, following the org's library preferences.

Skipped when its AgentRole is switched off.

5. merge-conflicts​

Rebases onto the base branch and resolves conflicts while keeping both sides' intent.

Times out after 30m. Skipped when its AgentRole is switched off.

6. ci​

Infrared waits for CI on the Change branch: green CI ends the step with no agent. On a failure the QA engineer reads the failed checks Infrared hands it: a wrong test it fixes (Infrared then waits for CI again), wrong code it sends back to build on the same branch (at most twice; a Change a person opened goes to them).

Skipped when its AgentRole is switched off.

7. unit-tests​

Fixes broken unit tests and adds missing ones for the changed code.

Skipped when its AgentRole is switched off.

8. quality-review​

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 build on the same branch with the finding (at most twice; a Change a person opened goes to them), 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.

9. security-review​

Scans for malicious edits, secrets and known vulnerabilities, and fixes what is small and unambiguous. A finding the builder should fix goes back to build on the same branch with its remediation (at most twice; a Change a person opened goes to them), 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.

10. performance-review​

Benchmarks the changed paths and blocks alarming regressions.

Skipped when its AgentRole is switched off.

11. sre-review​

Adds metrics, logs, traces and alerts, and updates internal runbooks.

Skipped when its AgentRole is switched off.

12. versioning​

Classifies the Change for semver, and records breaking changes and upgrade notes.

Skipped when its AgentRole is switched off.

13. architecture-review​

Reviews the Change against the architecture docs and decision records and updates internal docs.

Skipped when its AgentRole is switched off.

14. docs​

Updates internal and external product docs for the Change and runs the humanifier pass.

Skipped when its AgentRole is switched off.

15. e2e-verify​

Runs end-to-end tests in the rc zone and captures screenshots, video and a coverage report as the reviewable proofs.

Skipped when its AgentRole is switched off.

16. human-approval​

A human reviews the proofs, the verdicts of every step and the diff, then approves or sends the Change back. One approval from @platform/reviewers is needed; after 72 hours without one the step escalates to the dead-letter reviewer. This step cannot be removed.

Needs 1 approval from @platform/reviewers. Times out after 72h and escalates.

17. merge​

Merges to main once every required check is green and the approval is recorded.

18. 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.

19. 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: 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.