Example: a software project model
A concrete layout you can copy for a software team. It uses only shipped primitives — projects, typed tickets, relations, cycles, groups — and shows where AI agents plug in.
Project & workflow
Create one project per product or service, with a short key like ENG. Start from
the default workflow and add a blocked state:
open→ in_progress→ in_review→ done +blocked
Work hierarchy
Model work top-down with ticket types and parent relations:
- Epic
- A shippable outcome spanning weeks (e.g. "OAuth & SSO"). Carries start/end dates.
- Story
- A user-facing slice under an epic (e.g. "SAML login"). The unit you put into a cycle.
- Task / Bug
- Concrete implementation work or a defect under a story.
Labels, cycles, and dependencies
- Labels for the cross-cutting axes types don't cover:
area:frontend,area:backend,area:infra;kind:feature,kind:bug,kind:debt. - Cycles as two-week sprints. Track velocity and completion with
get_cycle_metricsandget_velocity_trend. - Relations to make the critical path explicit:
blocks/blocked_bybetween stories and tasks. - Releases & milestones to tie a set of stories to a shipped version or a target date.
Groups & access
Create groups — engineering, qa, product — and use them for
both assignment and access. Group membership gates who can read and edit the project's
tickets and documents, so an agent operating under a given identity is bounded by the same rules.
Where agents plug in
- Scaffold an epic and its stories, dependencies, labels, and owners in one flow.
- Report sprint status from cycle metrics and the audit log — grounded, not guessed.
- Triage inbound bugs — label, assign, and
bulk_update_ticketsto keep the board clean.
// Scaffold an epic with a story that blocks another — one agent, a few calls create_ticket: { "project_id": "...", "type": "epic", "title": "OAuth & SSO",
"start_date": "2026-08-01", "end_date": "2026-08-29" } // → ENG-10 create_ticket: { "project_id": "...", "type": "story", "title": "Token refresh",
"labels": ["area:backend"], "assignee": "dev@acme.eu" } // → ENG-11 create_ticket: { "project_id": "...", "type": "story", "title": "SAML login",
"labels": ["area:backend"], "relations": [{ "type": "blocked_by", "target_ticket_id": "ENG-11" }] }
Next
- Ways of working: humans + agents — the collaboration model behind this layout
- MCP tool reference — every tool an agent can call