Issue Workflow & ATL-E Coordination
How work flows from idea to shipped code across the agent fleet.
Issue Lifecycle
flowchart TD
A[User or Codi-E creates issue] --> B[Label: backlog]
B --> C{User reviews}
C -->|Not ready| B
C -->|Approved| D[Label: agent-ready]
D --> E{ATL-E checks capabilities}
E -->|requires-macos| F[Assign to iBuild-E or Claude-4/5/6]
E -->|workflow-change| G[Assign to Codi-E only]
E -->|infra-change| H[Assign to Codi-E only]
E -->|any agent| I[Assign to best available agent]
F --> J[Label: in-progress + claimed-AGENT]
G --> J
H --> J
I --> J
J --> K[Agent creates branch + PR]
K --> L{Review-E reviews}
L -->|Changes requested| M[Agent fixes]
M --> K
L -->|Approved| N[Auto-merge]
N --> O[Issue closed]
O --> P[ATL-E assigns next from queue]
Labels
Status Labels (mutually exclusive)
| Label |
Color |
Meaning |
Set by |
backlog |
gray |
Not ready for work. Default on creation. |
Auto or Codi-E |
agent-ready |
green |
Approved by PO. ATL-E can assign. |
User (Stig-Johnny) |
in-progress |
yellow |
Agent is actively working. |
ATL-E or agent |
blocked |
red |
Waiting on external dependency. |
Agent or ATL-E |
needs-review |
purple |
PR exists, awaiting review. |
Agent |
Capability Labels (who can work on it)
| Label |
Eligible agents |
Why |
requires-macos |
iBuild-E, iClaw-E, Claude-4/5/6 |
Needs Xcode, simulators, signing |
workflow-change |
Codi-E only |
Security: workflows can execute arbitrary code with secrets |
infra-change |
Codi-E only |
Infrastructure changes need orchestrator oversight |
requires-tablez |
Pi-E (with token), Volt-E, Claude-4/5/6 |
tablez-dev org access needed |
docs-only |
Any agent |
Documentation tasks, no code risk |
| (no capability label) |
Any agent |
General work |
Priority Labels
| Label |
Meaning |
high-priority |
Do first within agent-ready queue |
bug |
Fix before features |
enhancement |
Feature work |
copilot-suggestion |
Low priority improvements |
Claim Labels
| Label |
Meaning |
claimed-codi-e |
Codi-E (Claude-3) is working on this |
claimed-ibuild-e |
iBuild-E is working on this |
claimed-iclaw-e |
iClaw-E is working on this |
claimed-pie |
Pi-E is working on this |
claimed-volt-e |
Volt-E is working on this |
Agent Capabilities
| Agent |
macOS |
Workflows |
Infra |
tablez-dev |
Docs |
Code review |
| Codi-E |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
| Claude-4/5/6 |
Yes |
No |
No |
Yes |
Yes |
No |
| iBuild-E |
Yes |
No |
No |
No |
Yes |
No |
| iClaw-E |
Yes |
No |
No |
No |
Yes |
No |
| Pi-E |
No |
No |
No |
Yes* |
Yes |
No |
| Volt-E |
No |
No |
No |
Yes |
Yes |
No |
| Review-E |
No |
No |
No |
No |
No |
Yes |
*Pi-E needs tablez-dev installation ID 115702392 for token generation.
ATL-E Queue Management
Priority Order
high-priority + bug + agent-ready (critical bugs)
high-priority + agent-ready (priority features)
bug + agent-ready (bugs)
agent-ready (features, oldest first)
Assignment Rules
- One task per agent at a time. Never assign a second task until the first PR is merged.
- Check capability labels before assigning. Don't send macOS work to Pi-E.
- Check repo access. Don't send tablez-dev work to agents without the token.
- Prefer the best performer. Pi-E (10/10) > iBuild-E (9/10) > iClaw-E (8/10) > Volt-E (5/10) for docs/code tasks.
- Don't assign if repo has open PR on same files. Wait for merge first.
- workflow-change and infra-change go to Codi-E only. No exceptions.
ATL-E posts to the agent's private channel:
@Agent Task: {repo}#{issue_number} — {title}
Priority: {high/normal}
Issue: {url}
Instructions: {one-line summary}
Stall Detection
| Condition |
Timeout |
Action |
| Assigned, no branch |
30 min |
Ping agent |
| Pinged, no response |
+15 min |
Escalate to #admin |
| PR open, no review |
30 min |
Ping Review-E |
| CI failed, no fix |
30 min |
Ping agent |
| PR approved, not merged |
15 min |
Flag auto-merge issue |
Completion Flow
- PR merged → ATL-E detects via GitHub webhook or polling
- ATL-E removes
in-progress + claimed-* labels
- ATL-E checks queue for next
agent-ready issue
- ATL-E assigns next task to the now-free agent
- If no
agent-ready issues: agent goes idle, ATL-E posts nothing
What Codi-E (Orchestrator) Does vs ATL-E
| Responsibility |
Codi-E |
ATL-E |
| Create issues |
Yes |
No |
| Set priorities |
Yes |
No |
Approve for work (agent-ready) |
No — User does this |
No |
| Assign to agents |
Can, but ATL-E preferred |
Yes |
| Monitor progress |
Can, but ATL-E preferred |
Yes |
| Detect stalls |
Manual |
Automated |
| Escalate |
Manual |
Automated |
| Execute workflow changes |
Yes (only) |
No |
| Execute infra changes |
Yes (only) |
No |
| Merge PRs |
Yes |
No |
| Make architecture decisions |
Yes |
No |
How the User Interacts
- Review backlog — look at open issues, read descriptions
- Approve work — add
agent-ready label to issues you want done now
- Set priority — add
high-priority if urgent
- Monitor — ATL-E posts to #admin when things need attention
- Unblock — when ATL-E escalates (token expired, merge conflict, etc.)
You never need to assign agents or monitor progress directly. ATL-E handles it. You just decide WHAT gets done and WHEN.
Example Flow
- Codi-E creates: "feat: add C4 diagrams to all apps" →
backlog, enhancement
- User adds
agent-ready + high-priority
- ATL-E sees it, checks: no capability label → any agent
- ATL-E assigns Pi-E (best performer, available): posts to #pi-e
- ATL-E adds
in-progress + claimed-pie
- Pi-E creates branch, PR
- Review-E reviews, approves
- Auto-merge merges
- ATL-E detects merge, removes labels, closes issue
- ATL-E checks queue, assigns next
agent-ready to Pi-E