Organize project documentation by moving historical files to dedicated history/ directory for better project structure and nostalgic reference. Key changes: - Create history/ directory for completed documentation - Move all *GAMEPLAN*.md files to history/ (9 strategic planning documents) - Move ProjectDiary.md to history/ (main development diary) - Move diary/ contents to history/ (4 milestone diary entries) - Remove empty diary/ directory - Add history/README.md explaining organization and purpose File Organization: - GAMEPLAN files: Strategic planning documents for major development phases - Diary entries: Development milestone documentation with chronological naming - README.md: Explains purpose and organization of historical documentation Benefits: - Cleaner project root directory - Preserved institutional knowledge and development patterns - Better organization for pattern analysis and decision-making reference - Maintains nostalgic value while improving current project navigation Impact: - Project root decluttered from 9 GAMEPLAN files - Historical documentation preserved and organized - Foundation for future development pattern analysis - Improved project maintainability and navigation Resolves Issue #47: GAMEPLAN and DIARY files to subdirectory history 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
330 lines
11 KiB
Markdown
330 lines
11 KiB
Markdown
# 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* |