Guide
How to Assign Tickets to Claude Code and Codex as Teammates
The step-by-step workflow for turning a coding agent on your laptop into a team member that takes tickets, publishes a plan and opens a PR — plus what belongs in the ticket.
Prompting a coding agent in a terminal is a solo activity. Assigning it a ticket is a team activity: the work is visible on a board, the plan is posted where colleagues can read it, and the result is a pull request someone reviews. This guide walks through that workflow in OpenVisio Team with Claude Code or Codex (the same steps apply to OpenCode, Gemini CLI and Qwen Code), then covers what a good ticket contains and the mistakes teams make in their first week.
Why assignment beats prompting
When you prompt an agent directly, the context is whatever you typed plus whatever it can find. When you assign a ticket, the context is the ticket, the project it sits in, the linked codebase, the surrounding channel discussion and the agent's own recorded history. The agent's output also lands somewhere durable — the ticket, a thread, a PR — instead of scrolling away in a terminal. The second model is what makes agents reviewable, and reviewable is what makes them safe to trust with more.
The workflow
1. Register the agent
In OpenVisio, open Agents, choose the connection flow and select the runtime (Claude Code, Codex, OpenCode, Gemini CLI or Qwen Code). Give the agent a name and a role description such as "Backend fixes and tests". Copy the credentials: the API key is shown once, so store it before leaving the screen. The agent now exists as a member of the team with a team role, the same Owner / Editor / Commenter / Viewer scale humans use. Editor is the right starting point for an agent that will take tickets.
2. Connect it on your machine
You need Node.js 22.13 or newer and a signed-in coding runtime. Then:
npm install -g openvisio-agent@latest
openvisio-agent studio
In Agent Studio choose Connect agent, paste the credentials JSON, and Verify and connect. Studio saves the connection privately on your machine and offers Start watcher. You can also run the watcher from a terminal:
openvisio-agent watch --name ada # foreground
openvisio-agent watch --name ada --install # background service, starts at login
The watcher is cheap when idle: it listens for mentions and assignments and only
starts a runtime session when something arrives. Coding mode is on by default, with a
workspace at ~/openvisio-workspace; pass --chat-only during setup if you want
an agent that answers questions but never touches a repository.
3. Link the codebase to a project
In the project's Codebase tool, connect the GitHub repository by URL. This is what turns a ticket into repository work: the agent clones into its workspace, works on a ticket-specific branch and worktree, and the project's commits and PRs show up in the workspace. Without a linked codebase, an assigned ticket is treated as chat and coordination work only.
4. Assign the ticket
Create the ticket on the project board, write it well (see below), and set the agent as assignee. Assignment is the trigger. The watcher verifies with the backend that the ticket is open and owned by that agent before any model starts, so a stray board edit cannot launch work by accident.
5. Read the plan
For accepted coding work the agent publishes a short plan first: one acknowledgement with up to three steps, posted to the ticket's source thread or the agent's dedicated channel. This is your earliest and cheapest review point. If the plan is heading the wrong way, reply in that thread with a concrete correction. If it looks right, do nothing — the agent continues.
6. Wait for the PR
The agent works on an agent/* branch and pushes through a constrained helper
that can only push that branch to the verified origin. It cannot merge, cannot push
to protected branches and cannot force-push. It then opens a PR for human review and
posts the result. A watcher can run up to three assigned tickets concurrently, each in
its own worktree, so parallel assignments are fine as long as they do not touch the
same files.
7. Review and close
Review the PR as you would any contributor's. Comment on the ticket or the thread with follow-ups ("the new test fails on an empty email address; fix that case") and the agent picks them up in the same thread. Note that "Completed" in Agent Studio means the agent ended its turn, not that the ticket is done; the agent updates the board when it judges the work finished, and the human decides when the PR merges.
What a good ticket contains
Agents fail on vague tickets for the same reason new hires do. Include:
| Field | Why it matters |
|---|---|
| The problem, with the observed behaviour | Lets the agent find the right code instead of guessing at a symptom. |
| Expected behaviour | Defines done. "Make search faster" is not a ticket; "search returns within 300 ms for 10k rows" is. |
| How to verify | The test command, the page to load, the fixture to use. The agent runs it before opening the PR. |
| Scope boundaries | "Do not change the public API" or "frontend only" prevents well-meaning overreach. |
| Links | The design doc, the earlier thread, the related ticket. Agents read linked context; they cannot read your memory. |
Keep tickets to one outcome each. If a ticket needs the word "and" between two unrelated changes, split it; two small PRs are easier to review than one mixed one. For a deeper look at what context an agent needs before it edits, see how coding agents understand a codebase.
@mentions versus assignments
The two are different instructions and it helps to use them deliberately.
| @mention in a channel | Ticket assignment | |
|---|---|---|
| Intent | Ask a question, request an opinion, coordinate | Deliver a change |
| Context | Thread plus a window of recent channel history | Ticket, project, linked codebase, thread |
| Output | A reply in the thread | Plan, branch, PR, ticket update |
| Needs a linked codebase | No | Yes, for repository work |
| Role needed | Commenter or above | Editor or above |
A conversation can turn into coding work: when a thread reaches "ok, go build it",
the agent includes its acknowledgement and next steps in the thread before it starts.
But if you already know you want a PR, write the ticket. It gives the agent a slug
like OVS-57 to reference in the branch, the PR description and its messages, and
it gives your team a board card to track.
Pitfalls in the first week
- Assigning before linking the repo. The agent will plan and coordinate, but no branch appears. Link the codebase first.
- Treating a progress message as the result. Wait for the final message or blocker; check the ticket and the linked PR.
- Expecting edits and reactions to trigger work. They do not. Mention the agent in a new message when you want something new done.
- Running two watchers for one identity. Use one watcher per agent name; stop the
old one with
openvisio-agent stop --name adabefore starting a new one. - Forgetting the human stays accountable. The agent opens the PR; a person merges it. Keep it that way until the agent has earned more.
- Vague follow-ups. "Looks off" gives the agent nothing. Name the file, the case and the expected result.
Where to go next
- Runtime-specific setup notes: Claude Code, Codex, OpenCode, Gemini CLI, Qwen Code.
- How to keep review light as agents take more tickets: human-in-the-loop for AI coding agents.
- The full user guide and command reference live in /docs.
- Plans and pricing — BYO agents are included with every seat — on /pricing.
- Claude Code
- Codex
- ticket assignment
- agent workflow
- pull requests
See it on your repo
Paste a GitHub URL or open a folder — the map builds in your browser in seconds. No install, no account, nothing uploaded.
Try it freeor npm install -g openvisio for the MCP server