elixir/WORKFLOW.md
You are working on a Linear ticket {{ issue.identifier }}
{% if attempt %} Continuation context:
Issue context: Identifier: {{ issue.identifier }} Title: {{ issue.title }} Current status: {{ issue.state }} Labels: {{ issue.labels }} URL: {{ issue.url }}
Description: {% if issue.description %} {{ issue.description }} {% else %} No description provided. {% endif %}
Instructions:
Work only in the provided repository copy. Do not touch any other path.
linear_graphql tool is availableThe agent should be able to talk to Linear, either via a configured Linear MCP server or injected linear_graphql tool. If none are present, stop and ask the user to configure Linear.
Validation, Test Plan, or Testing section as non-negotiable acceptance input: mirror it in the workpad and execute it before considering the work complete.Backlog, be assigned to the same project as the current issue, link the
current issue as related, and use blockedBy when the follow-up depends on
the current issue.linear: interact with Linear.commit: produce clean, logical commits during implementation.push: keep remote branch current and publish updates.pull: keep branch updated with latest origin/main before handoff.land: when ticket reaches Merging, explicitly open and follow .codex/skills/land/SKILL.md, which includes the land loop.Backlog -> out of scope for this workflow; do not modify.Todo -> queued; immediately transition to In Progress before active work.
Human Review).In Progress -> implementation actively underway.Human Review -> PR is attached and validated; waiting on human approval.Merging -> approved by human; execute the land skill flow (do not call gh pr merge directly).Rework -> reviewer requested changes; planning + implementation required.Done -> terminal state; no further action required.Backlog -> do not modify issue content/state; stop and wait for human to move it to Todo.Todo -> immediately move to In Progress, then ensure bootstrap workpad comment exists (create if missing), then start execution flow.
In Progress -> continue execution flow from current scratchpad comment.Human Review -> wait and poll for decision/review updates.Merging -> on entry, open and follow .codex/skills/land/SKILL.md; do not call gh pr merge directly.Rework -> run rework flow.Done -> do nothing and shut down.CLOSED or MERGED, treat prior branch work as non-reusable for this run.origin/main and restart execution flow as a new attempt.Todo tickets, do startup sequencing in this exact order:
update_issue(..., state: "In Progress")## Codex Workpad bootstrap comment## Codex Workpad.Todo, do not delay on additional status transitions: the issue should already be In Progress before this step begins.Acceptance Criteria and Validation are current and still make sense for the task.<host>:<abs-workdir>@<short-sha>devbox-01:/home/dev-user/code/symphony-workspaces/MT-32@7bdde33bcissue ID, status, branch, PR link).Acceptance Criteria in the workpad (for example: launch path, changed interaction path, and expected result path).Validation, Test Plan, or Testing sections, copy those requirements into the workpad Acceptance Criteria and Validation sections as required checkboxes (no optional downgrade).Notes section (command/output, screenshot, or deterministic UI behavior).pull skill to sync with latest origin/main before any code edits, then record the pull/sync result in the workpad Notes.
pull skill evidence note with:
clean or conflicts resolved),HEAD short SHA.When a ticket has an attached PR, run this protocol before moving to Human Review:
gh pr view --comments).gh api repos/<owner>/<repo>/pulls/<pr>/comments).gh pr view --json reviews).Use this only when completion is blocked by missing required tools or missing auth/permissions that cannot be resolved in-session.
Human Review for GitHub access/auth until all fallback strategies have been attempted and documented in the workpad.Human Review with a short blocker brief in the workpad that includes:
branch, git status, HEAD) and verify the kickoff pull sync result is already recorded in the workpad before implementation continues.Todo, move it to In Progress; otherwise leave the current state unchanged.Todo with an attached PR, run the full PR feedback sweep protocol immediately after kickoff and before new feature work.Validation/Test Plan/ Testing requirements when present; treat unmet items as incomplete work.make, or hardcode a UI account / response path) when this increases confidence.Validation/Notes sections so reviewers can follow the evidence.launch-app validation and capture/upload media via github-pr-media before handoff.git push attempt, run the required validation for your scope and confirm it passes; if it fails, address issues and rerun until green, then commit and push changes.symphony (add it if missing).origin/main into branch, resolve conflicts, and rerun checks.### Confusions section at the bottom when any part of task execution was unclear/confusing, with concise bullets.Human Review, poll PR feedback and checks:
Manual QA Plan comment (when present) and use it to sharpen UI/runtime test coverage for the current change.Plan, Acceptance Criteria, and Validation exactly match completed work.Human Review.
Human Review with the blocker brief and explicit unblock actions.Todo tickets that already had a PR attached at kickoff:
Human Review.Human Review, do not code or change ticket content.Rework and follow the rework flow.Merging.Merging, open and follow .codex/skills/land/SKILL.md, then run the land skill in a loop until the PR is merged. Do not call gh pr merge directly.Done.Rework as a full approach reset, not incremental patching.## Codex Workpad comment from the issue.origin/main.Todo, move it to In Progress; otherwise keep the current state.## Codex Workpad comment.symphony label).App runtime validation (required) are complete.origin/main and restart from reproduction/planning as if starting fresh.Backlog, do not modify it; wait for human to move to Todo.## Codex Workpad) per issue.related
link to the current issue, and blockedBy when the follow-up depends on the
current issue.Human Review unless the Completion bar before Human Review is satisfied.Human Review, do not make changes; wait and poll.Done), do nothing and shut down.Use this exact structure for the persistent workpad comment and keep it updated in place throughout execution:
## Codex Workpad
```text
<hostname>:<abs-path>@<short-sha>
```
### Plan
- [ ] 1\. Parent task
- [ ] 1.1 Child task
- [ ] 1.2 Child task
- [ ] 2\. Parent task
### Acceptance Criteria
- [ ] Criterion 1
- [ ] Criterion 2
### Validation
- [ ] targeted tests: `<command>`
### Notes
- <short progress note with timestamp>
### Confusions
- <only include when something was confusing during execution>