# Sprint 23 Plan: Architect Mode + Tech Stack Selection ## Context The endgame feature: describe a problem in natural language, and the system proposes a technology stack, project structure, and annotated skeleton. This is the architect's power tool — not replacing the architect, but giving them a structured starting point they can review, modify, and approve. Sprint 23 builds on everything: the annotation taxonomy (Sprints 10-11), the skeleton AST (Sprint 11e), the workflow model (Sprint 12), the orchestrator (Sprint 15), the language coverage (17+ languages), and the transpilation engine (Sprint 21). --- ## Phase 23a: Problem Decomposition (Steps 471-476) ### Step 471: Problem Description Parser (12 tests) - Accept natural language problem description - Extract structured requirements: - Functional requirements (what it should do) - Non-functional requirements (performance, security, scalability) - Platform constraints (web, mobile, embedded, server, CLI) - Integration requirements (databases, APIs, existing systems) - Output: StructuredRequirements JSON with confidence per extraction - This is the one place where LLM assistance is expected in the architecture — the extraction is an MCP prompt template, not hardcoded NLP ### Step 472: Module Decomposition Engine (12 tests) - Given StructuredRequirements, propose module structure: - Identify major subsystems (auth, data, API, UI, etc.) - Define module boundaries and interfaces - Estimate complexity per module - Identify cross-cutting concerns (logging, error handling, config) - Output: ModuleGraph with nodes (modules) and edges (dependencies) - Multiple decomposition strategies: microservice vs monolith vs layered ### Step 473: Technology Stack Selector (12 tests) - Given requirements + module graph, recommend tech stack: - Language selection per module (guided by requirements): - Performance-critical → Rust or C++ - Web frontend → TypeScript - Data processing → Python - System scripting → Go or Python - Database → SQL dialect based on requirements - Embedded → C or assembly - Framework suggestions (as annotations, not framework-specific code) - Database selection based on data requirements - Configurable preferences: "I prefer Rust for backend", "must use PostgreSQL" - Output: TechStackDecision with reasoning per choice ### Step 474: Skeleton Generation from Requirements (12 tests) - Given module graph + tech stack: 1. Create skeleton modules in chosen languages 2. Create skeleton functions/classes with @Intent annotations from requirements 3. Add routing annotations: @Complexity, @ContextWidth, @Automatability 4. Add contract annotations: @Contract from functional requirements 5. Add dependency annotations between modules - Output: Multi-file skeleton project ready for workflow creation ### Step 475: Architect Review Interface (12 tests) - Present the proposed stack + skeleton to the architect for review: - Tech stack summary with reasoning - Module dependency graph (visual in GUI, structured in MCP) - Per-module: language choice, complexity estimate, key annotations - Modification tools: change language, merge modules, add modules, adjust routing - Architect approves → skeleton becomes the project spec - Architect modifies → re-run affected selections ### Step 476: Phase 23a Integration (8 tests) - Full flow: "Build a REST API for a bookstore with user auth, PostgreSQL, and a React frontend" → structured requirements → module decomposition → tech stack (TypeScript frontend, Python/Rust backend, PostgreSQL) → skeleton project → architect review → approved → workflow created - 87+ MCP tools total --- ## Phase 23b: Project Templates + Scaffolding (Steps 477-481) ### Step 477: Architecture Templates (12 tests) - Pre-built architecture patterns: - **REST API:** routes + handlers + models + middleware + database - **CLI Tool:** argument parsing + commands + output formatting - **Library:** public API + internal modules + tests + documentation stubs - **Microservice:** service + transport + storage + health check - **Full Stack:** frontend + backend + database + deployment config - Templates are parameterized: entity names, field definitions, auth method - Each template produces a fully-annotated skeleton project ### Step 478: Scaffold File Generation (12 tests) - Generate actual project files on disk from approved skeleton: - Source files with skeleton code + Semanno annotations - Project configuration (package.json, Cargo.toml, pyproject.toml, CMakeLists.txt) - Directory structure following language conventions - .gitignore appropriate for selected stack - .whetstone/ directory with sidecar files and workflow state - Uses existing fileCreate/fileWrite MCP infrastructure ### Step 479: Dependency + Build System Awareness (12 tests) - Annotate dependencies between modules with build system info: - Python: imports and pip requirements - Rust: crate dependencies in Cargo.toml format - Node: npm packages in package.json format - C++: include paths and CMake targets - SQL: migration ordering - Not full build system integration — annotation-level awareness for context ### Step 480: Multi-Language Project Orchestration (12 tests) - Workflow creation for multi-language projects: - Each module may be a different language - Cross-language interfaces annotated with @Link and @Shim - Build order respects cross-language dependencies - FFI boundaries explicitly annotated for human review - Orchestrator handles multi-language workflow as a single project ### Step 481: Phase 23b Integration + Sprint Summary (8 tests) - REST API template → scaffold files on disk → workflow → orchestrate - Multi-language project: Python service + Rust core + SQL schema - Architect modifies tech stack mid-planning → skeleton regenerates - All scaffolded files have proper annotations and structure - Sprint 23 totals: architect mode operational, templates working --- ## Step & Test Summary | Phase | Steps | Tests | Theme | |-------|-------|-------|-------| | 23a | 471-476 | 68 | Problem decomposition, tech stack selection, skeleton generation | | 23b | 477-481 | 56 | Templates, scaffolding, build awareness, multi-language orchestration | | **Total** | **471-481** | **~124** | 11 steps |