Skill: Decompose Ticket

skill-decompose-ticket Skill

active skill

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 notemcp__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 architecturemcp__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-boardmcp__pal-e-docs__create_board using template-board conventions:
  • 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 itemsmcp__pal-e-docs__create_board_item for each child ticket on the sub-board. All start in backlog column.
  • 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 decomposed label to the parent board item via mcp__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 todo or next_up — always backlog (per feedback_backlog_first_enforcement)
  • Each child ticket must go through skill-review-ticket before advancing to todo
  • 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
  • skill-review-ticket — upstream reviewer that triggers decomposition
  • template-board — sub-board template conventions
  • template-issue — issue template for child tickets
  • sop-board-workflow — column semantics and flow rules
  • convention-agent-design — agents are workflows, not domains