Skip to content

feat: work-bead-to-work-bead cross-plan dependency mapping #89

@pofallon

Description

@pofallon

Summary

Enable fine-grained work-bead-to-work-bead dependency wiring across flight plans, allowing more parallelism than epic-level blocking.

Background

Currently, cross-plan dependencies are epic-to-epic only (Phase 1-2). This means if plan B depends on plan A, ALL of plan B's beads are blocked until ALL of plan A's beads complete. In practice, only specific beads in plan B may depend on specific beads in plan A.

Requirements

Dependency Declaration

  • Extend depends_on in WorkUnit model to support cross-plan references using <plan-name>/<work-unit-id> syntax (e.g., add-auth/setup-jwt-middleware)
  • Validate that referenced plans exist and referenced work unit IDs are valid
  • Support both intra-plan (existing depends_on) and cross-plan references

Resolution & Wiring

  • During refuel, resolve cross-plan work unit references to bd_ids by:
    1. Finding the epic by flight_plan_name state metadata
    2. Finding the child bead matching the work unit ID
  • Wire work-bead-to-work-bead dependencies via bd dep add

Auto-Detection (Stretch)

  • Use Phase 3 file-scope overlap data to suggest work-bead-level dependencies
  • The Recon agent could suggest depends_on entries for the decomposition agent

Key Files

  • src/maverick/flight/models.py — extend WorkUnit.depends_on validator for cross-plan syntax
  • src/maverick/library/actions/cross_plan_deps.py — add work-bead resolution
  • src/maverick/workflows/refuel_maverick/workflow.py — wire work-bead deps after create_beads

Acceptance Criteria

  • WorkUnit depends_on accepts <plan>/<unit-id> cross-plan references
  • Cross-plan work unit references resolve to bd_ids during refuel
  • Work-bead-to-work-bead dependencies are wired via bd dep add
  • Validation rejects invalid cross-plan references (unknown plan, unknown unit)
  • Tests cover cross-plan resolution, wiring, and error cases
  • Backward compatible — existing intra-plan depends_on still works

Depends On

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    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