Skip to content

feat(orchestration): DAG wave scheduler#56

Merged
github-actions[bot] merged 1 commit into
mainfrom
feat/dag-scheduler
Jun 15, 2026
Merged

feat(orchestration): DAG wave scheduler#56
github-actions[bot] merged 1 commit into
mainfrom
feat/dag-scheduler

Conversation

@subkoks

@subkoks subkoks commented Jun 15, 2026

Copy link
Copy Markdown
Owner

Summary

Implements the deterministic core of the Multi-agent orchestration roadmap item: scripts/dag-schedule.sh parses a task DAG and computes execution waves (topological levels) so an orchestrator can run independent tasks concurrently, then recompute.

$ make dag
wave 0: schema-audit ui-theme
wave 1: auth-routes
wave 2: ui-login docs
wave 3: e2e-tests
  • Manifest: tab-separated taskId<TAB>deps (comma-separated or -); ships orchestration/tasks.example.tsv.
  • --format json{"waves": [[...], ...]}.
  • Exit codes: 3 dangling/missing dependency, 4 cycle detected.
  • Extends docs/orchestration-dag-spec.md (rollout steps 1–2 done).

Scope

Ships the parser + wave scheduler (the deterministic, testable core). Locking, budget/time guardrails, the quality-gate phase, and event replay remain runtime concerns for an orchestrator consuming these waves — tracked as Remaining on the roadmap.

Tests

10 bats tests (tests/dag-schedule.bats): linear / parallel / fan-in scheduling, the example manifest, cycle (exit 4), dangling dep (exit 3), JSON validity, comment/blank handling, and usage errors. Suite total: 81.

Verification

  • bats tests/ → 81 pass; make check / make dag / security-scan / link check → green
  • shellcheck / markdownlint-cli2 → clean

🤖 Generated with Claude Code

scripts/dag-schedule.sh implements the deterministic core of the orchestration
spec: parse a task DAG manifest (taskId + comma-separated deps), then compute
execution waves via topological levelling so independent tasks share a wave.
Detects dangling dependencies (exit 3) and cycles (exit 4); emits text or JSON.

Ships orchestration/tasks.example.tsv, a `make dag` target, and extends
docs/orchestration-dag-spec.md (rollout steps 1-2 done). Locking, budget
guardrails, quality gate, and replay remain runtime concerns. 10 bats tests
cover linear/parallel/fan-in scheduling, cycle + dangling detection, JSON
output, comment handling, and usage errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions github-actions Bot enabled auto-merge (squash) June 15, 2026 22:26
@github-actions github-actions Bot merged commit dbbf819 into main Jun 15, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant