267 lines
8.2 KiB
Markdown
267 lines
8.2 KiB
Markdown
# 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:**
|
|
```bash
|
|
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 support
|
|
- `Discussion.check_consensus()` with configurable thresholds
|
|
- `run_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:**
|
|
```bash
|
|
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
|
|
|
|
1. **Automatic phase advancement** - Phase must be advanced manually with `--phase` flag
|
|
2. **PyPI package** - Not yet published, install from source
|
|
3. **Streaming responses** - Responses collected after completion, not streamed
|
|
4. **Provider locking** - No rate limiting for concurrent AI calls
|
|
|
|
---
|
|
|
|
## Future Enhancements
|
|
|
|
### Additional Participants
|
|
- `discussion-perfectionist` - Code quality focus
|
|
- `discussion-designer` - UX perspective
|
|
- `discussion-researcher` - Web research (non-voting)
|
|
- `discussion-visualizer` - Advanced diagram generation
|
|
|
|
### Additional Templates
|
|
- `code-review.yaml` - Code review workflow
|
|
- `adr.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
|
|
```bash
|
|
pytest tests/
|
|
pytest tests/test_markers.py -v
|
|
pytest tests/test_voting.py -v
|
|
```
|
|
|
|
### Run Integration Tests
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# 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*
|