8.2 KiB
8.2 KiB
Orchestrated Discussions - Implementation Status
This document tracks the implementation progress of Orchestrated Discussions.
Overall Status: Core Complete
The core functionality is fully implemented and working. The project is usable for its primary purpose of orchestrating multi-agent AI discussions.
Implementation Phases
Phase 0: SmartTool Configs - COMPLETE
All SmartTool configs have been created and tested.
| Tool | Status | Notes |
|---|---|---|
discussion-parser |
Complete | Extracts structured JSON from markdown |
discussion-validator |
Complete | Validates format, finds issues |
discussion-summarizer |
Complete | AI-powered summary generation |
discussion-vote-counter |
Complete | Counts votes, determines consensus |
discussion-mention-router |
Complete | Routes @mentions to participants |
discussion-status-promoter |
Complete | Determines status transitions |
discussion-turn-appender |
Complete | Appends responses to markdown |
discussion-config |
Complete | Modifies discussion metadata |
discussion-architect |
Complete | Systems thinking persona |
discussion-security |
Complete | Security specialist persona |
discussion-pragmatist |
Complete | Shipping-focused persona |
discussion-moderator |
Complete | Facilitation persona |
discussion-diagram-editor |
Complete | PlantUML diagram creation |
puml-validator |
Complete | PlantUML syntax validation |
Manual Testing:
cat examples/brainstorm_notification_system.md | discussion-parser | jq .
cat examples/voted_discussion.md | discussion-parser | discussion-vote-counter
./scripts/run-turn.sh examples/feature_discussion.md
Phase 1: Core Library - COMPLETE
Python library wrapping SmartTools with clean API.
| Module | Status | Notes |
|---|---|---|
discussion.py |
Complete | Discussion model, load/save, add_comment |
markers.py |
Complete | Marker parsing (VOTE, Q, TODO, etc.) |
voting.py |
Complete | Consensus calculation, VotingConfig |
participant.py |
Complete | Participant discovery from ~/.smarttools/ |
runner.py |
Complete | Pipeline-based turn execution |
Key Features:
Discussion.load()/Discussion.create()/Discussion.save()Discussion.add_comment()with vote supportDiscussion.check_consensus()with configurable thresholdsrun_pipeline_turn()for SmartTools-based turn execution- Participant discovery via
ParticipantRegistry
Phase 2: CLI Interface - COMPLETE
All CLI commands implemented and working.
| Command | Status | Notes |
|---|---|---|
discussions new |
Complete | Create new discussion file |
discussions status |
Complete | Show status, votes, consensus |
discussions turn |
Complete | Run turn with SmartTools |
discussions comment |
Complete | Add human comment with vote |
discussions participants |
Complete | List discovered participants |
discussions advance |
Complete | Advance to specific phase |
discussions ui |
Complete | Launch GUI or TUI |
Usage Examples:
discussions new "My Feature" --template feature
discussions turn my-feature.md @architect @security
discussions status my-feature.md
discussions comment my-feature.md "Approved" --vote ready
discussions ui
Phase 3: Templates & Phases - COMPLETE
Template system implemented with phase-aware behavior.
| Template | Status | Phases |
|---|---|---|
feature.yaml |
Complete | initial_feedback, detailed_review, consensus_vote |
brainstorm.yaml |
Complete | seed, diverge, cluster, sketch, reality_check, decide |
Features:
- Phase-specific instructions for participants
- Voting phases with configurable thresholds
- Status transitions on consensus
- Turn pipeline configuration in templates
Phase 4: User Interfaces - COMPLETE
Both GUI and TUI implemented and working.
| Interface | Status | Framework | Notes |
|---|---|---|---|
| GUI | Complete | Dear PyGui | Native image viewing, tabs |
| TUI | Complete | urwid | ASCII diagrams, SSH-friendly |
GUI Features:
- Native PlantUML diagram rendering
- Split-pane diagram viewer (source + preview)
- Tabbed interface for discussions, diagrams, output
- Keyboard shortcuts (Q, R, T, C, D)
TUI Features:
- ASCII diagram preview via
plantuml -tutxt - Discussion browser and viewer
- Run turns with progress display
- Keyboard navigation (q, r, d, arrows)
Phase 5: Polish & Documentation - IN PROGRESS
| Item | Status | Notes |
|---|---|---|
| README.md | Complete | Updated with accurate info |
| DESIGN.md | Complete | Updated with actual implementation |
| IMPLEMENTATION.md | Complete | This document |
| CLAUDE.md | Complete | Agent instructions |
| AGENTS.md | Complete | Repository guidelines |
| Unit tests | Partial | test_markers.py, test_voting.py |
| Integration tests | Partial | run-turn.sh script |
| PyPI publishing | Not Started | Package not yet published |
Current File Structure
orchestrated-discussions/
├── src/discussions/
│ ├── __init__.py # v0.1.0
│ ├── cli.py # 7 commands
│ ├── discussion.py # Discussion model
│ ├── markers.py # 7 marker types
│ ├── participant.py # Registry + discovery
│ ├── runner.py # Pipeline execution
│ ├── voting.py # Consensus logic
│ └── ui/
│ ├── __init__.py
│ ├── __main__.py
│ ├── gui.py # Dear PyGui
│ ├── tui.py # urwid
│ └── widgets.py # Shared components
│
├── smarttools/ # 14 tool configs
├── templates/ # 2 templates
├── examples/ # 5 example discussions
├── scripts/ # run-turn.sh
├── tests/ # test_markers.py, test_voting.py
└── docs/ # DESIGN.md, IMPLEMENTATION.md
What's Working
- Creating and loading discussion files
- Parsing markers (VOTE, Q, TODO, DECISION, CONCERN, DIAGRAM)
- Running turns with multiple AI participants
- Parallel participant execution
- Voting and consensus calculation
- Phase-aware participant behavior
- Status promotion on consensus
- Human comment addition with votes
- Participant discovery from ~/.smarttools/
- Both GUI and TUI interfaces
- PlantUML diagram viewing
Known Limitations
- Automatic phase advancement - Phase must be advanced manually with
--phaseflag - PyPI package - Not yet published, install from source
- Streaming responses - Responses collected after completion, not streamed
- Provider locking - No rate limiting for concurrent AI calls
Future Enhancements
Additional Participants
discussion-perfectionist- Code quality focusdiscussion-designer- UX perspectivediscussion-researcher- Web research (non-voting)discussion-visualizer- Advanced diagram generation
Additional Templates
code-review.yaml- Code review workflowadr.yaml- Architecture Decision Record workflow
Features
- Automatic phase transitions based on conditions
- Summary file generation (.sum.md)
- Project-level configuration (discussions.yaml)
- Provider rate limiting and fallbacks
- Response streaming in TUI
Testing
Run Unit Tests
pytest tests/
pytest tests/test_markers.py -v
pytest tests/test_voting.py -v
Run Integration Tests
# Test SmartTools directly
cat examples/brainstorm_notification_system.md | discussion-parser | jq .
# Test full pipeline
./scripts/run-turn.sh examples/feature_discussion.md
Manual Testing
# Create and run a discussion
discussions new "Test Feature" --template feature
discussions turn test-feature.md @architect @pragmatist
discussions status test-feature.md
discussions comment test-feature.md "Looks good" --vote ready
discussions ui
Dependencies
Required
- Python 3.10+
- PyYAML >= 6.0
- smarttools >= 0.1.0
Optional
- urwid >= 2.1.0 (TUI)
- dearpygui (GUI)
Development
- pytest >= 7.0
- pytest-cov >= 4.0
Last updated: 2025-12-16