Quick answer
- The universal pattern
- Issue → context → agent → branch → PR → review, in every tool
- Assignment today
- Linear delegates to directory agents; GitHub assigns issues to Copilot's coding agent
- Agent-ready checklist
- Bounded scope, acceptance criteria, named files, exclusions, a verification command
- How AIDEN does it
- Drag a story onto the board; the spec gate makes it agent-ready by construction
The Universal Pattern
Every tool that lets you hand work to a coding agent, Linear, GitHub, a raw terminal session, an orchestration board, implements the same six-stage pipeline, whether or not it names the stages. Knowing the pattern makes the tools legible:
1 · Issue
2 · Context
3 · Agent
4 · Branch
5 · PR
6 · Review
The stages that determine the outcome are the first two. Everything after the agent starts is mechanical; everything before it is judgment. That is the recurring theme of project management for AI agents: the human work concentrates at the edges of the pipeline.
How Assignment Works Today
The pattern is universal; the ergonomics differ. Three representative ways teams assign work to agents right now:
Linear: delegate an issue
GitHub: assign to Copilot
CLI: prompt plus context file
The Agent-Ready Checklist
An assignment is agent-ready when the agent can complete it without guessing about intent. In practice that means five properties, and a task missing any of them will cost you at review time:
Bounded scope
Written acceptance criteria
Named files or areas
Explicit exclusions
A verification command
The checklist is deliberately tool-agnostic: it applies to a Linear issue, a GitHub issue, a terminal prompt, or a story card. If writing all five by hand feels heavy, that is what templates and generators are for, see our free agent spec builder and story & spec templates.
Ship your first agent today
Download AIDEN free and point it at your existing Claude Code or Codex setup. No credit card, running in minutes.
Download AIDEN freeFree to start · macOS 12+ · No credit card required
Worked Example: Vague Ticket to Agent-Ready Story
Here is the kind of ticket every backlog contains, perfectly serviceable for a human who can ask questions, and a trap for an agent:
Title: Logout is broken sometimes
Body: Users report they still look logged in after logging out.
Probably a session thing. Please fix.Converting it is a mechanical pass over the checklist:
- 1
Bound the scope
Investigate first if you must, but assign a fix, not a mystery. Suppose a quick look shows the logout endpoint clears the server session but not the client cookie. The story becomes one change: make logout clear the session cookie. The “sometimes” report about stale caches? A separate story. - 2
Write the acceptance criteria
Translate “fixed” into checkable statements: after POST /api/auth/logout, the session cookie is expired in the response; a subsequent request to a protected route returns 401; existing auth tests still pass; a new test covers the cookie expiry. - 3
Name the files
Point at the territory: the logout handler in src/server/auth/logout.ts, the cookie helpers in src/server/auth/cookies.ts, and tests in src/server/auth/__tests__/. The agent should not need to survey the repo to find the work. - 4
State the exclusions
Fence the change: do not modify the login flow, do not change session storage or the cookie library, no refactors outside the named files. Without this line, “fix logout” has a real chance of coming back as “rewrote the auth module.” - 5
Give a verification command
One command that must pass before the agent reports done, here, the auth test suite plus the typecheck.npm test -- auth && npx tsc --noEmit
The same ticket, agent-ready:
Title: Logout leaves session cookie set — expire it on logout
Scope: POST /api/auth/logout clears the server session but never
expires the "sid" cookie, so the client still appears logged in.
Acceptance criteria:
- Logout response expires the "sid" cookie (Max-Age=0, matching attrs)
- After logout, GET /api/me returns 401
- New test covers cookie expiry; existing auth tests pass
Files: src/server/auth/logout.ts, src/server/auth/cookies.ts,
src/server/auth/__tests__/
Exclusions: no changes to login, session storage, or cookie library;
no refactors outside the files above.
Verify: npm test -- auth && npx tsc --noEmitThis is a spec in all but name, and writing them before code exists is the core practice of spec-driven AI development. The ticket that goes in determines the diff that comes out.
Common Failure Modes
When an assignment goes wrong, it usually goes wrong in one of four recognizable ways, and each traces back to a missing checklist item:
The confident misread
The sprawling diff
The false “done”
The unreviewable epic
None of these are model failures, re-running a vague assignment on a bigger model reproduces the failure with better prose. They are assignment failures, and the tracker that holds your assignments is where they get fixed structurally: see issue tracking for AI agents.
How AIDEN Does It: Assignment Is a Drag
AIDEN's design premise is that the checklist should be enforced by the tool, not by discipline. On the board, assignment is literally a drag: drop a story card into place, pick the CLI, Claude Code or Codex, and the model for that story class, and start it. Two mechanisms do the checklist's work: