Skip to content

feat: hybrid (first-wins) ceremony scheduling strategy #970

@Aureliolo

Description

@Aureliolo

Summary

Implement the HybridStrategy for the pluggable ceremony scheduling system.

Both calendar and task-driven triggers exist on each ceremony. Whichever fires first wins and resets the cadence. Calendar provides a heartbeat floor; task counts provide a throughput ceiling.

Design Reference

See Ceremony Scheduling design page -- "Hybrid (First Wins)" strategy section.

Key Behaviors

  • should_fire_ceremony: checks BOTH calendar elapsed time AND task completion count -- returns true if either condition is met, then resets both counters
  • should_transition_sprint: returns IN_REVIEW on task completion threshold OR calendar duration boundary -- whichever comes first
  • Lifecycle hooks: no-op (stateless, combines calendar + task-driven logic)
  • Default velocity calculator: MultiDimensionalVelocityCalculator (pts/sprint primary + secondary dimensions)

Implementation

Also implement: MultiDimensionalVelocityCalculator

  • New: src/synthorg/engine/workflow/velocity_calculators/multi_dimensional.py
  • New: tests/unit/engine/workflow/velocity_calculators/test_multi_dimensional.py
  • Primary: pts/sprint, secondary: pts/task, pts/day, completion_ratio

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    prio:mediumShould do, but not blockingscope:smallLess than 1 day of workspec:task-workflowDESIGN_SPEC Section 6 - Task & Workflow Enginetype:featureNew feature implementationv0.5Minor version v0.5v0.5.7Patch release v0.5.7

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions