Skip to content

shep-kit: enforce dependency ordering when features depend on other in-progress features #320

@arielshad

Description

@arielshad

Problem

When creating a new feature that depends on another in-progress feature (e.g., feature B depends on feature A), the current workflow allows starting implementation of the dependent feature (B) before the prerequisite feature (A) has finished implementation and been merged.

This can lead to:

  • Merge conflicts when both features touch overlapping code
  • Building on top of unstable/incomplete APIs from the prerequisite feature
  • Wasted effort if the prerequisite feature's implementation changes significantly

Expected Behavior

Before starting implementation of a dependent feature, the workflow should:

  1. Detect feature dependencies — recognize when a feature spec declares a dependency on another feature
  2. Block implementation start — prevent /shep-kit:implement on the dependent feature until the prerequisite feature has completed implementation
  3. Auto-rebase — once the prerequisite feature is merged, automatically rebase the dependent feature's branch on top of it before proceeding with implementation

Proposed Solution

  • Add a depends_on field to the feature spec YAML (e.g., depends_on: [042-feature-a])
  • During /shep-kit:implement, check if all dependencies have been merged to main
  • If not, warn the user and suggest waiting or explicitly opting to proceed
  • When dependencies are merged, prompt to rebase the dependent feature branch before continuing

Acceptance Criteria

  • Feature specs support a depends_on field referencing other spec IDs
  • /shep-kit:implement checks dependency status before proceeding
  • Clear messaging when a dependency is not yet merged
  • Rebase guidance/automation when dependencies become available

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions