orchestrated-discussions/docs/IMPLEMENTATION.md

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 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:

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

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