Skill: Decompose Ticket
Skill: Decompose Ticket
Decomposes an oversized ticket into a sub-board with scoped child tickets. Invoked when
skill-review-ticket returns a NEEDS_REFINEMENT verdict with a [DECOMPOSE] recommendation.Trigger
Called by
skill-review-ticket (or manually by Ava) when a ticket fails the 5-minute rule:- >3 file targets across >2 repos
- >5 acceptance criteria
- Estimated agent work >5 minutes
Inputs
- Board item ID — the oversized ticket to decompose
- Review note slug — the review note containing the
[DECOMPOSE]recommendation and analysis - Project slug — the project context for creating the sub-board
Steps
- Read the review note —
mcp__pal-e-docs__get_section(slug="{review_slug}", anchor_id="decomposition")to extract the decomposition analysis (file count, AC count, recommended split). - Read the parent ticket — Read the Forgejo issue body and board item metadata to understand the full scope.
- Read the project architecture —
mcp__pal-e-docs__get_section(slug="project-{project}", anchor_id="architecture")to understand component boundaries for splitting. - Design the split — Decompose the parent ticket into child tickets following these rules:
- Create the sub-board —
mcp__pal-e-docs__create_boardusingtemplate-boardconventions: - Create child Forgejo issues — For each child ticket, create a Forgejo issue using the appropriate template (
template-issue-feature,template-issue-bug, etc.). Each issue references the parent issue. - Create child board items —
mcp__pal-e-docs__create_board_itemfor each child ticket on the sub-board. All start inbacklogcolumn. - Update the parent ticket — Add a comment on the parent Forgejo issue via
mcp__forgejo__comment_on_issue:## Decomposed Sub-board: `board-{parent_board_item_id}-decomp` Child tickets: - #{child_1_number} — {title} - #{child_2_number} — {title} - ... Original ticket is now a tracking parent. Close when all children are done. - Update parent board item — Add a
decomposedlabel to the parent board item viamcp__pal-e-docs__update_board_item. The parent stays in its current column as a tracking item. - Report results — Return the sub-board slug, child ticket list, and any dependency ordering to the caller.
Constraints
- Never create child tickets directly in
todoornext_up— alwaysbacklog(perfeedback_backlog_first_enforcement) - Each child ticket must go through
skill-review-ticketbefore advancing totodo - The parent ticket is NOT closed — it becomes a tracking item that is closed when all children complete
- Maximum 5 child tickets per decomposition — if more are needed, decompose recursively
MCP Tools
| Step | Tool | Purpose |
|---|---|---|
| 1 | <code>mcp__pal-e-docs__get_section</code> | Read decomposition analysis from review note |
| 3 | <code>mcp__pal-e-docs__get_section</code> | Read project architecture for split boundaries |
| 5 | <code>mcp__pal-e-docs__create_board</code> | Create sub-board for child tickets |
| 6 | <code>mcp__forgejo__create_issue</code> | Create child Forgejo issues |
| 7 | <code>mcp__pal-e-docs__create_board_item</code> | Add children to sub-board |
| 8 | <code>mcp__forgejo__comment_on_issue</code> | Document decomposition on parent issue |
| 9 | <code>mcp__pal-e-docs__update_board_item</code> | Label parent as decomposed |
Related
skill-review-ticket— upstream reviewer that triggers decompositiontemplate-board— sub-board template conventionstemplate-issue— issue template for child ticketssop-board-workflow— column semantics and flow rulesconvention-agent-design— agents are workflows, not domains