Agent workflow & loops
How the delivery pipeline runs a Jira story from plan to merged PR — the linear stages, the review ⇄ rework loop that repeats until the reviewer approves, and the knowledgebase feedback loop where every run writes learnings that ground the next one. Each stage names the model it runs on by default.
Pipeline flow
Review ⇄ rework loop
Knowledge feedback loop
Manual guidance (patch an existing PR)
Entry points — how a run starts
End to end
pipelineentry pointper stage
The whole thing from one Jira ticket. Adds the story to the active sprint, assigns it to you and moves it to In Progress, then runs code-planner → code-creator → code-analyser → code-reviewer → pr-reworker (with a reviewer re-check) → implementation-summary-writer → test-notes-writer in a single run. The planner, regression-analysis, summary, and testing-notes stages can each be turned off; Start from = rework with a PR number and guidance skips straight to the patch stage.
review-pipelineentry pointper stage
The back half of the pipeline, run on a PR that already exists — analysis, review, rework, then the summary and testing notes — keyed on a PR number instead of a Jira story, with no planning or code generation. The entry point for a human-authored PR, or an agent PR whose review was skipped. It finds the story from the PR's branch, title, or body so the review is still graded against the acceptance criteria, and moves that story to In Progress before the first stage.
analyse-review-pipelineentry pointper stage
Analysis and review only, on a PR that already exists — code-analyser and code-reviewer post their comments and the run stops there, touching nothing but the story's status (moved to In Progress, as in every pipeline). A quick second pair of eyes on a human-authored PR, or a re-review after manual changes; if changes are requested, follow up yourself or hand the PR to review-pipeline.
bug-fixer-pipelineentry pointper stage
bug-fixer followed by the full review pipeline on the PR it opens — analysis, review, rework, then the summary and testing notes, all landing back on the parent story, which is moved to In Progress before the first stage. Point it at a story whose QA round raised bug sub-tasks and it clears the lot in one run.
The agents behind each stage
Plan & ground
epic-decomposerSonnet 5
Splits oversized epics into agent-sized stories and produces a parallel-safe dispatch plan with dependency order.
systems-architectOpus 5
Reads an epic + linked stories, posts a detailed development plan, and attaches a PDF design doc for architectural decisions.
tech-story-writerSonnet 5
Turns a functional story into engineer-ready technical sub-tasks — screens, APIs, data model, edge cases, non-goals.
code-plannerpipelineOpus 5
Mines past work from the RAG, grounds in the repo, and posts a self-contained plan the code-creator implements without re-exploring. Reads linked Figma designs where the story references them.
checklist-answererOpus 5
Clears the open questions parked in Jira checklists. Walks a story or epic and everything under it, and for each question hunts the answer in the story tree, the comments, the repo, and Confluence. Answers it can evidence get ticked with the answer in green and the source it came from; the rest stay unticked with a red note saying what's missing, what was checked, and what would unblock it — tagging the follow-up owner and commenting on the issue so the request is actually seen. It never ticks a box it inferred rather than found, and leaves plain to-dos and business decisions alone.
jira-estimatorSonnet 5
Reads the story (and any code-planner plan), calibrates against past work, and posts a planning-poker estimate — points, day range, risks; per-sub-story on parents.
estimation-sweepSonnet 5
Runs jira-estimator on every open story under an epic — one run and one estimate comment per story; already-estimated stories are skipped, so a re-run only fills the gaps.
context-builderSonnet 5
Explores a client repo and generates context.md / tooling.md so agents start with full project context.
Build & loop
code-creatorpipelineOpus 5
Adopts the plan, implements the changes across the repo, and opens a PR ready for review.
bug-fixerOpus 5
Reads a story's bug sub-tasks — issue type Bug, or "bug" in the title — and fixes every one of them on a single shared branch, one commit per bug, then opens one PR covering the whole set. Each commit carries its own bug's Jira key, so the history reads as one fix per ticket.
code-analyserpipelineOpus 5
The regression-risk pass between creator and reviewer, answering one question: will this diff break or silently change behaviour existing code depends on? Checks out the PR branch, traces callers and dependents of every changed signature, return shape, export, default, or schema contract, and optionally runs a type-check or test to prove a break. Posts a 🔎 CODE ANALYZER comment with a machine-readable risk level that the reviewer then factors into its verdict.
code-reviewerpipelineOpus 5
Checks the diff against the story's acceptance criteria, reads the code-analyser comment, and posts a structured approve / request-changes decision.
pr-reworkerloopOpus 5
Reads the requested changes, checks out the branch, applies fixes, pushes, and resolves the review threads — then it goes back for re-review. Also accepts free-text guidance (e.g. an acceptance criterion the plan missed) and treats it as must-fix work, even with no open review — the way to patch a PR after the pipeline has already run.
add-feature-to-prOpus 5
Extends an already-open, in-review PR with a new feature described in free text — grounds itself in the repo and the PR's branch, writes a short plan, implements it, and pushes to that same branch with a summary comment. For new functionality; use pr-reworker for review feedback.
Verify & ship
implementation-summary-writerpipelineSonnet 5
Posts the handover comment on the story once the PR exists — what changed and why, the technical decisions and their reasoning, the modules and components affected, API and database changes, the limitations and technical debt deliberately taken on, and links to the PR and any documentation, Figma, or ADR the story or repo actually references. Runs after any rework — so it describes the PR as it ends up — and before the testing notes, in both pipelines.
test-notes-writerpipelineSonnet 5
Posts a machine-executable plan for an automated tester and a manual QA checklist for a human tester — the pipeline's last stage, run after any rework and regardless of the review verdict.
pull-request-playwright-testerSonnet 5
Generates frontend end-to-end tests for the changes in a PR, stands the app up, and actually runs them with @playwright/test in a dedicated ECS task with Chromium. Specs are generated and run ephemerally — never committed — and the result comes back as a pass/fail comment on the PR. Standalone for now, not wired into the main pipeline by default.
env-testerHaiku 4.5
Runs smoke tests against a deployed environment — health, auth, core journeys, integrations — and reports pass/fail.
release-analyserOpus 5
Regression review of a whole release branch against main before it ships — conflicts between stories on the same release, contracts broken across story boundaries, work the release is missing from main, and undocumented deploy steps. Raises one Jira story, titled with the release name, listing the changes required before ship; creates nothing when the release is clean.
release-managerHaiku 4.5
Fixes versions, assigns merged PRs to issues, transitions them to ready-for-release, and drafts grouped release notes.
docs-writerSonnet 5
Generates or updates Confluence docs from a PR, story, or full codebase scan.
Default model:
Opus 5
reasoning across a codebase
Sonnet 5
structured writeups & planning
Haiku 4.5
short mechanical tasks
per stage
orchestrator — each stage uses its own
Every agent runs on the model shown by default; the runner's Model dropdown overrides it
for a single run (Sonnet 5, Fable 5, Opus 5, or Haiku 4.5). Reasoning effort is set per agent too —
xhigh for code-creator, bug-fixer and code-reviewer, down to low for the writers.
How the loops close
Review ⇄ rework
The reviewer's verdict decides the branch. Approved → merge, release & docs.
Changes requested → pr-reworker applies the fixes and hands the PR back to the reviewer.
The cycle repeats until the PR is approved. A pending verdict pauses the run for a human decision.
Knowledge feedback
Every stage can emit learnings and client-context updates
that are written back to
agent-brain and the client's context file.
The next run's planner and creator retrieve that history through the context RAG — so the platform gets sharper with each story it ships.Manual guidance patch
For when a PR is already open (or merged) and something was missed — e.g. the code-planner plan skipped an acceptance criterion —
re-invoke pr-reworker directly against the PR with free-text guidance. It treats the guidance as must-fix work
on its own, no CHANGES_REQUESTED review required. From the CLI:
run-pipeline.py --start-from rework --pr-number N --guidance "…" skips straight to this stage.Requests to the platform team
Ask for a new agent, feature, or change — visible to the whole internal team.