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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions