# Issue #59 GAMEPLAN - Issue Management CLI Tool with Plugin Architecture ## ๐ŸŽฏ Mission Statement Create a unified CLI wrapper/facade for issue management that provides a consistent interface across multiple backends (Gitea, local files, future Jira) to improve Claude's efficiency and eliminate API call failures. --- ## ๐Ÿ“‹ Issue Analysis ### Problem Statement - **Current Pain Point**: Claude sometimes misses existing issue functions and tries direct API calls that fail - **Root Cause**: Fragmented issue management tools scattered across Makefile targets and tddai_cli.py - **Impact**: Workflow inefficiencies, failed operations, inconsistent issue interactions ### Success Criteria 1. โœ… Unified CLI interface for all issue operations 2. โœ… Plugin architecture supporting multiple backends 3. โœ… Gitea plugin integrating existing functionality 4. โœ… Local file-based plugin for offline/repo-only workflows 5. โœ… Improved Claude workflow efficiency 6. โœ… Extensible foundation for future backends (Jira, GitHub, etc.) --- ## ๐Ÿ—๏ธ Architecture Design ### Core Components #### 1. Issue Management CLI (`markitect issues`) ```bash markitect issues list # List all issues markitect issues list --state open # List open issues markitect issues show 59 # Show specific issue markitect issues create "Title" "Body" # Create new issue markitect issues comment 59 "Comment" # Add comment markitect issues close 59 # Close issue markitect issues config # Show/configure backend ``` #### 2. Plugin Architecture ``` markitect/ โ”œโ”€โ”€ issues/ โ”‚ โ”œโ”€โ”€ __init__.py # Core CLI interface โ”‚ โ”œโ”€โ”€ manager.py # Issue manager with plugin loading โ”‚ โ”œโ”€โ”€ base.py # Abstract base plugin interface โ”‚ โ”œโ”€โ”€ plugins/ โ”‚ โ”‚ โ”œโ”€โ”€ __init__.py โ”‚ โ”‚ โ”œโ”€โ”€ gitea.py # Gitea backend plugin โ”‚ โ”‚ โ”œโ”€โ”€ local.py # Local file backend plugin โ”‚ โ”‚ โ””โ”€โ”€ jira.py # Future Jira plugin โ”‚ โ””โ”€โ”€ models.py # Issue data models ``` #### 3. Plugin Interface ```python class IssueBackend(ABC): @abstractmethod def list_issues(self, state: Optional[str] = None) -> List[Issue] @abstractmethod def get_issue(self, issue_id: str) -> Issue @abstractmethod def create_issue(self, title: str, body: str) -> Issue @abstractmethod def add_comment(self, issue_id: str, comment: str) -> None @abstractmethod def close_issue(self, issue_id: str) -> None ``` --- ## ๐ŸŽฏ TDD8 Implementation Phases ### Phase 1: ISSUE Analysis **Scope**: Understand existing infrastructure and design plugin architecture **Tasks**: 1. โœ… Analyze current tddai_cli.py issue management functions 2. โœ… Review Makefile issue targets and integration points 3. โœ… Design plugin architecture and interfaces 4. โœ… Define CLI command structure and user experience 5. โœ… Identify integration points with existing MarkiTect CLI **Deliverable**: Architecture design and interface definitions ### Phase 2: TEST - Core Infrastructure Tests **Scope**: Write failing tests for plugin architecture and CLI interface **Test Categories**: 1. **Plugin Manager Tests** - Plugin discovery and loading - Backend switching and configuration - Error handling for missing/invalid plugins 2. **CLI Interface Tests** - Command parsing and routing - Output formatting consistency - Error message standardization 3. **Mock Plugin Tests** - Abstract interface compliance - Plugin lifecycle management **Deliverable**: Comprehensive test suite (initially failing) ### Phase 3: RED - Verify Test Failures **Scope**: Confirm all tests fail before implementation **Validation**: - Plugin loading fails (no plugins exist) - CLI commands fail (no implementation) - Interface violations detected properly - Error handling works as expected ### Phase 4: GREEN - Minimal Implementation **Scope**: Implement core infrastructure to pass tests **Implementation Priority**: 1. **Core Models**: Issue, Comment data classes 2. **Plugin Manager**: Discovery, loading, configuration 3. **Base CLI**: Command structure and routing 4. **Mock Plugin**: For testing and validation **Deliverable**: Basic plugin architecture with mock backend ### Phase 5: GREEN+ - Gitea Plugin Implementation **Scope**: Implement Gitea plugin integrating existing functionality **Integration Tasks**: 1. **Migrate tddai_cli.py Functions**: Extract and adapt existing Gitea code 2. **API Integration**: Reuse existing Gitea API connections 3. **Configuration**: Inherit existing URL and authentication settings 4. **Testing**: Verify compatibility with current workflows **Deliverable**: Fully functional Gitea plugin ### Phase 6: GREEN++ - Local File Plugin **Scope**: Implement file-based local issue management **Features**: 1. **Directory Structure**: `.markitect/issues/` with markdown files 2. **Issue Format**: YAML frontmatter + markdown body 3. **State Management**: File naming and organization 4. **Git Integration**: Version control friendly format **File Structure**: ``` .markitect/issues/ โ”œโ”€โ”€ open/ โ”‚ โ”œโ”€โ”€ 059-issue-management-cli.md โ”‚ โ””โ”€โ”€ 060-next-feature.md โ”œโ”€โ”€ closed/ โ”‚ โ””โ”€โ”€ 058-completed-issue.md โ””โ”€โ”€ config.yml ``` **Deliverable**: Offline-capable local issue management ### Phase 7: REFACTOR - Code Quality & Performance **Scope**: Clean up architecture and optimize performance **Improvements**: 1. **Code Quality**: Remove duplication, improve naming 2. **Performance**: Caching, lazy loading of plugins 3. **Error Handling**: Comprehensive error messages 4. **Documentation**: Inline documentation and help text ### Phase 8: DOCUMENT - CLI Help & Documentation **Scope**: Update CLI help and create user documentation **Documentation Tasks**: 1. **CLI Help**: Comprehensive help for all commands 2. **Plugin Development**: Guide for creating new backend plugins 3. **Configuration**: Backend setup and switching instructions 4. **Migration**: Guide from existing tddai_cli.py usage ### Phase 9: REFINE - Integration & Polish **Scope**: Polish integration with existing MarkiTect CLI **Integration Tasks**: 1. **CLI Integration**: Seamless integration with `markitect` command 2. **Backward Compatibility**: Maintain existing Makefile targets 3. **Configuration**: Integration with existing config system 4. **Testing**: End-to-end workflow validation ### Phase 10: PUBLISH - Deployment & Issue Closure **Scope**: Commit implementation and close Issue #59 **Deployment Tasks**: 1. **Git Commit**: Comprehensive commit with all changes 2. **Issue Closure**: Close Issue #59 with implementation summary 3. **Documentation Update**: Update NEXT_SESSION_BRIEFING.md 4. **Future Planning**: Identify follow-up improvements --- ## ๐Ÿ› ๏ธ Technical Implementation Details ### CLI Integration Strategy ```python # Add to markitect/cli.py @cli.group() def issues(): """Issue management with multiple backend support.""" pass @issues.command() @click.option('--state', type=click.Choice(['open', 'closed', 'all']), default='all') @click.option('--backend', help='Override configured backend') def list(state, backend): """List issues from configured backend.""" manager = IssueManager(backend=backend) issues = manager.list_issues(state=state) # Format and display ``` ### Plugin Discovery Mechanism ```python class IssueManager: def __init__(self, backend: Optional[str] = None): self.backend = backend or self._get_configured_backend() self.plugin = self._load_plugin(self.backend) def _discover_plugins(self) -> Dict[str, Type[IssueBackend]]: # Plugin discovery logic pass ``` ### Configuration Strategy ```yaml # .markitect/config/issues.yml default_backend: gitea backends: gitea: url: "http://92.205.130.254:32166" repo: "coulomb/markitect_project" local: directory: ".markitect/issues" auto_git: true ``` --- ## ๐Ÿงช Testing Strategy ### Test Categories 1. **Unit Tests**: Individual plugin methods and CLI commands 2. **Integration Tests**: Plugin manager with real/mock backends 3. **End-to-End Tests**: Complete workflows from CLI to backend 4. **Compatibility Tests**: Existing Makefile target compatibility ### Mock Strategy - **Gitea Mock**: Simulate API responses for testing - **Local Mock**: Temporary filesystem for testing - **Network Mock**: Handle API failures gracefully ### Test Data - **Sample Issues**: Realistic issue data for testing - **Edge Cases**: Error conditions, malformed data - **Performance**: Large issue lists, concurrent operations --- ## ๐ŸŽฏ Success Metrics ### Functional Success - โœ… All issue operations work through unified CLI - โœ… Plugin switching works seamlessly - โœ… Existing workflows remain compatible - โœ… Error handling provides clear guidance ### Performance Success - โœ… Response times under 2 seconds for list operations - โœ… Plugin loading under 500ms - โœ… No regression in existing functionality ### User Experience Success - โœ… Claude can perform all issue operations without API failures - โœ… Clear, consistent CLI interface across backends - โœ… Helpful error messages and guidance - โœ… Backward compatibility with existing tools --- ## ๐Ÿš€ Development Timeline ### Sprint 1 (TDD8 Phases 1-4): Foundation - **Duration**: 2-3 hours - **Deliverable**: Core plugin architecture with tests - **Milestone**: Mock plugin working through CLI ### Sprint 2 (TDD8 Phases 5-6): Backend Implementation - **Duration**: 3-4 hours - **Deliverable**: Gitea and Local plugins functional - **Milestone**: All backends operational ### Sprint 3 (TDD8 Phases 7-10): Polish & Integration - **Duration**: 2-3 hours - **Deliverable**: Production-ready integration - **Milestone**: Issue #59 complete and closed **Total Estimated Time**: 7-10 hours across multiple sessions --- ## ๐Ÿ”„ Next Steps ### Immediate Actions 1. **Start TDD8 Cycle**: `make tdd-start NUM=59` 2. **Create Test Workspace**: Set up Issue #59 TDD environment 3. **Begin ISSUE Phase**: Analyze existing code and design interfaces 4. **Write Failing Tests**: Comprehensive test coverage for plugin architecture ### Long-term Vision - **Extensible Backend System**: Easy addition of new issue management systems - **Unified Developer Experience**: Consistent issue management regardless of backend - **Offline Capabilities**: Local file-based workflows for environments without external services - **Enterprise Integration**: Future support for Jira, Azure DevOps, etc. --- *GAMEPLAN Generated: October 1, 2025* *Target: Issue #59 - Issue Management CLI Tool* *Strategy: TDD8 with Plugin Architecture* *Estimated Completion: 7-10 hours across multiple sessions*