Skip to content

Conversation

@ryanmac
Copy link
Owner

@ryanmac ryanmac commented Jul 23, 2025

Summary

This PR implements a complete migration from local JSON-based state management to GitHub-native integration using Issues, Projects, and Actions as specified in the Product Requirements Document.

BREAKING CHANGE: workflow-state.json is replaced by GitHub Issues API

Key Changes

🚀 GitHub-Native State Management

  • Tasks are now GitHub Issues with conductor:task label
  • Agent assignments use GitHub's native issue assignment
  • Heartbeats tracked via issue comments
  • System status in dedicated conductor:status issue

📝 Updated Core Scripts (10 files)

  • task-claim.py - Claims tasks by assigning issues
  • health-check.py - Monitors agent activity via issue comments
  • cleanup-stale.py - Unassigns stale issues
  • update-status.py - Uses dedicated status issue for metrics
  • generate-summary.py - Queries issues for system reports
  • archive-completed.py - Archives closed issues with labels
  • bootstrap.sh - Uses GitHub CLI for all operations
  • issue-to-task.py - Formats issues with proper labels
  • validate-config.py - Validates GitHub CLI and labels
  • setup.py - Creates GitHub issue templates

🔄 Migration Support

  • New migrate-to-github.py script for existing users
  • Preserves all task metadata and history
  • Supports dry-run mode for safety
  • Archives old JSON files after migration

📚 Documentation Updates

  • Updated README.md, CLAUDE.md, USAGE.md
  • Added comprehensive v2.0.0 changelog
  • Migration guide included

🛠️ Enhanced Developer Experience

  • New CLI helpers: gti, gtn, gtst
  • GitHub Actions respond to issue events
  • Makefile updated with GitHub CLI checks

Benefits

Eliminates race conditions - GitHub's API ensures atomic operations
Real-time synchronization - No more file locking or conflicts
Better auditability - Full history in GitHub's activity log
Remote collaboration - Work from anywhere with GitHub access
Clean git history - No more JSON file commits

Migration Guide

For existing users:

# 1. Ensure GitHub CLI is authenticated
gh auth login

# 2. Run migration script
python .conductor/scripts/migrate-to-github.py

# 3. Verify tasks appear as GitHub Issues
gh issue list -l 'conductor:task'

Test Plan

  • Core script functionality tested with mock data
  • Migration script tested with various JSON scenarios
  • Edge cases handled (missing fields, minimal data)
  • GitHub Actions workflow updated and validated
  • Integration testing in live repository
  • User acceptance testing

Breaking Changes

  • workflow-state.json no longer used
  • All scripts require GitHub CLI (gh)
  • Custom scripts reading JSON must be updated

🤖 Generated with Claude Code

ryanmac and others added 3 commits July 23, 2025 17:57
BREAKING CHANGE: Migrated from local JSON files to GitHub Issues API

This major update transforms Code Conductor from using local workflow-state.json
files to leveraging GitHub's native Issues, Labels, and Actions for all state
management and coordination.

Key Changes:
- All tasks are now GitHub Issues with conductor:task label
- Agent assignments use GitHub's native issue assignment
- Heartbeats tracked via issue comments
- System status in dedicated conductor:status issue
- Real-time synchronization without file locking

Migration:
- Added migrate-to-github.py script for existing users
- Preserves all task metadata during migration
- Archives old JSON files after successful migration

Benefits:
- Eliminates race conditions and merge conflicts
- Enables real-time distributed collaboration
- Full audit trail in GitHub's activity log
- Works seamlessly with GitHub notifications
- Clean git history (no more JSON file changes)

Updated Components:
- 10 core Python scripts to use GitHub CLI
- All documentation to reflect new approach
- GitHub Actions to respond to issue events
- Setup process to create issue templates
- Added new CLI helpers for GitHub operations

See CHANGELOG.md for detailed migration guide.

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

Co-Authored-By: Claude <[email protected]>
- Applied black formatting to all Python files in .conductor/scripts/ and setup.py
- Updated CI workflow to use macos-14 instead of macos-latest to avoid deprecation warnings
- Merged latest changes from main branch including dependency-check.py improvements

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

Co-Authored-By: Claude <[email protected]>
@ryanmac ryanmac merged commit 988dad1 into main Jul 23, 2025
9 checks passed
@ryanmac ryanmac deleted the migrate-github-native-state branch July 23, 2025 23:16
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