UNPKG

@boundless-oss/atlas

Version:

Atlas - MCP Server for comprehensive startup project management

107 lines (83 loc) 4.81 kB
# Product Roadmap Module - SQLite Migration Summary ## Overview The product-roadmap module has been successfully migrated from file-based JSON storage to SQLite database storage, following the 12-factor MCP pattern established by other migrated modules. ## What Was Implemented ### 1. SQLite Schema (src/storage/schema.sql) Added comprehensive database schema for product roadmap data: - `product_roadmaps` - Main roadmap table with vision, time horizon, owner - `roadmap_themes` - Strategic themes with objectives and priorities - `roadmap_initiatives` - Product initiatives with value metrics and effort estimates - `roadmap_features` - Features with business value and technical complexity - `roadmap_milestones` - Key milestones with deliverables and dependencies - `roadmap_releases` - Product releases with feature lists and goals - `roadmap_reviews` - Roadmap review records with decisions and feedback All tables include proper foreign key constraints, indexes for performance, and timestamp tracking. ### 2. Tools Implementation (tools.ts) Implemented all 14 product roadmap tools using the 12-factor pattern: - `create_roadmap` - Create new product roadmaps - `add_roadmap_theme` - Add strategic themes - `create_initiative` - Create initiatives within themes - `add_feature` - Add features to initiatives - `update_feature_status` - Update feature lifecycle status - `update_initiative_status` - Update initiative status - `create_milestone` - Create roadmap milestones - `plan_release` - Plan product releases - `prioritize_features` - Feature prioritization (RICE, MoSCoW, etc.) - `generate_roadmap_timeline` - Generate timeline views - `list_roadmaps` - List all roadmaps - `get_roadmap` - Get detailed roadmap information - `get_theme_details` - Get theme details with initiatives/features - `get_roadmap_health` - Assess roadmap health metrics Each tool: - Uses structured input/output schemas with JSON Schema validation - Implements proper error handling with structured error results - Returns deterministic, LLM-friendly responses - Maintains stateless execution per 12-factor principles ### 3. Module Setup (index-new.ts) Created the new module entry point that exports the standardized ModuleSetup interface. ### 4. MCP Adapter (mcp-adapter.ts) Built an adapter that: - Converts 12-factor tools to MCP SDK format - Handles request context creation with database access - Formats tool results as readable text for LLM consumption - Provides proper error handling and reporting ### 5. Legacy Wrapper (legacy-wrapper.ts) Maintains backward compatibility by wrapping the old file-based implementation. ### 6. Migration Logic (storage/migration.ts) Added `migrateProductRoadmapData` method that: - Migrates existing roadmap JSON files - Handles all entity types (themes, initiatives, features, etc.) - Preserves relationships and data integrity - Maintains timestamps and metadata ### 7. Server Integration (server.ts) Updated the server to: - Try loading the new SQLite-based module first - Fall back to legacy implementation if needed - Initialize SQLiteManager for database access - Pass proper context to tools ## Key Design Decisions 1. **Stateless Tools**: Each tool execution is completely stateless, receiving all needed context in the request. 2. **Structured Errors**: All errors follow a consistent structure with codes, messages, details, and recovery suggestions. 3. **Foreign Key Integrity**: All relationships are enforced at the database level for data consistency. 4. **JSON Storage**: Complex data like objectives, risks, and metrics are stored as JSON strings in the database. 5. **Timestamp Tracking**: All entities track creation and update timestamps as Unix milliseconds. 6. **Project Isolation**: All roadmap data is scoped to projects via foreign key constraints. ## Migration Benefits 1. **Performance**: SQLite queries are much faster than file system operations 2. **Data Integrity**: Foreign key constraints ensure referential integrity 3. **Atomicity**: Database transactions ensure data consistency 4. **Querying**: Complex queries and aggregations are now possible 5. **Scalability**: Can handle large numbers of roadmaps and features efficiently 6. **Concurrent Access**: SQLite handles concurrent reads properly ## Testing Considerations The module can be tested by: 1. Enabling the product-roadmap module in configuration 2. Creating a project first (required by foreign keys) 3. Using the roadmap tools through the MCP interface 4. Checking that data persists in the SQLite database ## Future Enhancements 1. Add visualization support for timeline views 2. Implement advanced analytics and reporting 3. Add integration with agile management module 4. Support for roadmap templates 5. Export/import functionality for roadmap sharing