Skip to content

[IMPROVEMENT] Mandatory small-slice decomposition before implementation selection #579

Description

@acipat

Feature Description

Problem Statement

Large issues consistently fail to merge because they are discovered mid-implementation to be bigger than estimated. The analysis stage already identifies decomposition candidates ("needs decomposition", "effort underestimated"), but this identification is advisory — implementation can still select an oversized issue and produce a half-finished PR that gets stuck.

Proposed Solution

Make the decomposition rule mandatory and blocking rather than advisory:

  1. Any issue with estimated effort above a threshold (e.g., 0.4) MUST be split into independently mergeable child issues before the implementation stage can select it.
  2. The analysis skill already flags decomposition candidates; this change makes the implementation skill refuse to select any issue flagged needs-split unless child issues exist.
  3. The implementation skill checks for child issues before selection; if none exist, it skips the issue and logs "blocked: needs decomposition."

This is a policy change in the analysis/implementation skills, not new core code.

Value Proposition

  • Impact: 0.8
  • Effort: 0.3
  • Priority Score: 1.41

Research Evidence

  • Direct pipeline observation — multiple open issues flagged "needs decomposition" or "effort underestimated" in recent analysis cycles
  • Half-finished PRs stuck in the merge queue

Implementation Plan

  1. Add a blocking gate in the implementation skill: if the selected issue has label needs-split and no child issues exist, skip it.
  2. Update the analysis skill to enforce that needs-split issues must have child issues created before they can be marked ready for implementation.
  3. Add a validation check: the implementation skill queries gh issue list for child issues of the parent before selection.

Success Criteria

  • No issue with effort >= 0.4 is selected for implementation without decomposition.
  • Fewer half-finished PRs in the merge queue.
  • Faster merge velocity for decomposed child issues.

Metadata

Metadata

Assignees

No one assigned

    Labels

    acceptedAccepted by evolution — sent to a PR / implementedneeds-workBlocked by code-review (dead code / not integrated)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions