mergegate/GOALS.md
Shunsuke Hayashi 00d5d4d4e9 chore: Initialize Miyabi project with full planning
- Add .claude/ configuration (agents, commands, prompts, templates)
- Add comprehensive documentation:
  - WBS.md - Work Breakdown Structure
  - SPRINT_PLANNING.md - 4-sprint detailed plan
  - OPERATION_PLAN.md - Execution procedures
  - PRODUCT_SPEC.md - Product requirements
  - PREPARATION_OPS.md - Pre-sprint checklist
- Add PlantUML diagrams (wbs-diagram, gantt-chart)
- Configure Miyabi (.miyabi.yml)
- Set up Rust workspace structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-22 17:45:08 +09:00

4 KiB

Miyabi CLI - Development Goals

Reference Projects

Baseline

Extension Source

  • Miyabi Private: /Users/shunsuke/dev/01-miyabi/_core/miyabi-private

Mission

Codex CLI同等の品質を持つ、Production-Ready Miyabi CLIを構築する


Gap Analysis Summary

Metric Codex CLI Current Miyabi Target
Total Lines 20,969 1,200 15,000+
Files 50+ 10 40+
Features Complete Basic Full Parity

Phase 1: Core TUI Foundation COMPLETED

Status: Done (1,200 lines)

  • Cargo workspace setup
  • wrapping.rs - Text wrapping with textwrap
  • history_cell.rs - Card design UI
  • markdown_render.rs - Basic markdown
  • app.rs - Main TUI loop
  • event.rs - Event handling

Phase 2: Advanced Text Rendering 🔄 IN PROGRESS

Target: +1,500 lines

2.1 markdown_stream.rs (690 lines)

  • Streaming markdown rendering
  • Progressive display during generation
  • Cursor position tracking
  • Partial code block handling

2.2 diff_render.rs (715 lines)

  • Git diff visualization
  • Syntax highlighting for diffs
  • Line number display
  • Add/Remove/Change indicators

Phase 3: Chat Composer Separation

Target: +4,000 lines

3.1 chat_composer.rs (3,938 lines)

  • Separate input handling from main app
  • Multi-line input support
  • Command history
  • Auto-completion
  • Syntax highlighting in input

3.2 textarea.rs (2,213 lines)

  • Full-featured text area widget
  • Selection support
  • Copy/paste
  • Undo/redo

Phase 4: Approval & Feedback

Target: +1,500 lines

4.1 approval_overlay.rs (656 lines)

  • Tool execution approval UI
  • Y/N/Always/Never options
  • Risk level display
  • Preview of changes

4.2 feedback_view.rs (555 lines)

  • User feedback collection
  • Rating system
  • Comment input

Phase 5: Advanced Navigation

Target: +2,500 lines

5.1 resume_picker.rs (1,580 lines)

  • Session resume selection
  • Conversation history browser
  • Search functionality
  • Preview pane

5.2 pager_overlay.rs (913 lines)

  • Full-screen content viewer
  • Scroll and search
  • Jump to line
  • Keyboard shortcuts

Phase 6: LLM Integration

Target: +2,000 lines

6.1 Claude API Integration

  • Anthropic API client
  • Streaming responses
  • Token counting
  • Rate limiting
  • Error handling

6.2 Conversation Management

  • Context window management
  • Message history
  • System prompts
  • Tool definitions

Phase 7: Tool Execution

Target: +2,500 lines

7.1 A2A Bridge Integration

  • Tool registry
  • Execution engine
  • Result formatting
  • Error recovery

7.2 Built-in Tools

  • File operations (Read, Write, Edit)
  • Bash execution
  • Search (Glob, Grep)
  • Web fetch

Success Criteria

Functional Requirements

  • Real Claude API conversations
  • Tool execution with approval
  • Session persistence and resume
  • Markdown rendering with streaming
  • Full keyboard navigation

Quality Requirements

  • 15,000+ lines of code
  • 90%+ test coverage
  • < 100ms response latency
  • Memory efficient (< 100MB)
  • Cross-platform (macOS, Linux)

User Experience

  • Intuitive keyboard shortcuts
  • Clear visual feedback
  • Smooth scrolling
  • Proper error messages
  • Help system

Timeline

Phase Duration Deliverable
Phase 1 Done Core TUI
Phase 2 1 week Streaming Markdown
Phase 3 2 weeks Chat Composer
Phase 4 1 week Approval System
Phase 5 1 week Navigation
Phase 6 2 weeks LLM Integration
Phase 7 2 weeks Tool Execution

Total: ~10 weeks to Production-Ready


Next Action

Phase 2.1: Implement markdown_stream.rs

Create streaming markdown renderer that can display partial content during LLM generation.