Skip to content

Add Cyrus Orchestration for multi-issue workflow management #186

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 10 commits into from

Conversation

ceedarcyrus
Copy link
Contributor

Summary

  • Introduces a new "orchestrator" role that breaks down complex tasks into manageable sub-issues
  • Automatically monitors sub-issue completion and triggers parent issue re-evaluation
  • Enables hierarchical issue management with proper role delegation

Implementation Details

New Orchestrator Role

  • Created comprehensive system prompt (orchestrator.md) for task decomposition and coordination
  • Orchestrator analyzes complex requirements and creates atomic sub-issues
  • Assigns appropriate roles (debugger, builder, scoper) to sub-issues via labels
  • Uses Linear MCP tools for direct issue management

Sub-Issue Completion Detection

  • Added LinearIssueStateChangeWebhook type for tracking issue state transitions
  • Implemented webhook handler that detects when sub-issues complete
  • Automatically triggers parent issue re-evaluation by posting a comment
  • Only processes sub-issues where parent has orchestrator labels and is assigned to agent

Configuration

  • Add "Epic" or "Orchestrate" labels to issues to trigger orchestrator mode
  • Orchestrator has full tool access by default for managing workflows
  • Works seamlessly with existing role system

Test Plan

  • Created comprehensive test suite for orchestrator functionality
  • Tests cover role selection, sub-issue detection, and error handling
  • TypeScript compilation passes
  • Manual testing with real Linear issues
  • Verify webhook delivery from Linear
  • Test sub-issue creation and completion flow

Changes

  • Added new orchestrator prompt template
  • Extended EdgeWorker to handle issue state change webhooks
  • Added orchestrator to all role configuration types
  • Updated documentation and changelog
  • Created test suite for orchestrator features

Closes PACK-259

🤖 Generated with Claude Code

…flows

This commit introduces a new "orchestrator" role that enables Cyrus to break down
complex tasks into manageable sub-issues and coordinate their execution.

Features:
- New orchestrator system prompt for task decomposition and coordination
- Automatic sub-issue creation with appropriate role labels (debugger, builder, scoper)
- Sub-issue completion detection via Linear state change webhooks
- Parent issue re-evaluation when sub-issues complete
- Full Linear MCP integration for issue management

Configuration:
- Add "Epic" or "Orchestrate" labels to issues to trigger orchestrator mode
- Orchestrator has full tool access by default for managing sub-issues
- Works seamlessly with existing debugger, builder, and scoper roles

Technical changes:
- Added LinearIssueStateChangeWebhook type and handler
- Extended EdgeWorker to process issue state changes
- Added orchestrator to all role configuration types
- Comprehensive test coverage for orchestrator functionality
- Updated documentation and changelog

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
Copy link

linear bot commented Aug 15, 2025

PaytonWebber and others added 9 commits August 15, 2025 15:50
- Changed from issueStateChange to issueStatusChanged to match Linear API
- Updated LinearIssueStatusChangedWebhook and related types
- Fixed EdgeWorker webhook handler and imports
- Updated tests to use new webhook types
- Corrected webhook handler to check for issueStatusChanged action
- Added fallback to fetch issue state from Linear API when toState not provided in webhook
- Ensures orchestrator parent issue re-evaluation works when sub-issues complete
- The previous error 'Issue status changed for PACK-266 but no state information available' is now resolved

🤖 Generated with Claude Code (https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
…orchestration' into pack-259-add-cyrus-orchestration
…orchestration' into pack-259-add-cyrus-orchestration
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.

2 participants