Moved experimental LLM integration code to optimization_engine/future/: - llm_optimization_runner.py - Runtime LLM API runner - llm_workflow_analyzer.py - Workflow analysis - inline_code_generator.py - Auto-generate calculations - hook_generator.py - Auto-generate hooks - report_generator.py - LLM report generation - extractor_orchestrator.py - Extractor orchestration Added comprehensive optimization_engine/future/README.md explaining: - MVP LLM strategy (Claude Code skills, not runtime LLM) - Why files were archived - When to revisit post-MVP - Production architecture reference Production runner confirmed: optimization_engine/runner.py is sole active runner. This establishes clear separation between: - Production code (stable, no runtime LLM dependencies) - Experimental code (archived for post-MVP exploration) Part of Phase 1: Core Stabilization & Organization for MVP Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
22 KiB
Atomizer Development Guide
Last Updated: 2025-11-21 Current Phase: Phase 3.2 - Integration Sprint + Documentation Status: 🟢 Core Complete (100%) | ✅ Protocols 10/11/13 Active (100%) | 🎯 Dashboard Live (95%) | 📚 Documentation Reorganized
📘 Quick Links:
- Protocol Specifications - All active protocols consolidated
- Documentation Index - Complete documentation navigation
- README - Project overview and quick start
Table of Contents
- Current Phase
- Completed Features
- Active Development
- Known Issues
- Testing Status
- Phase-by-Phase Progress
Current Phase
Phase 3.2: Integration Sprint (🎯 TOP PRIORITY)
Goal: Connect LLM intelligence components to production workflow
Timeline: 2-4 weeks (Started 2025-11-17)
Status: LLM components built and tested individually (85% complete). Need to wire them into production runner.
📋 Detailed Plan: docs/PHASE_3_2_INTEGRATION_PLAN.md
Critical Path:
Week 1: Make LLM Mode Accessible (16 hours)
-
1.1 Create unified entry point
optimization_engine/run_optimization.py(4h)- Add
--llmflag for natural language mode - Add
--requestparameter for natural language input - Support both LLM and traditional JSON modes
- Preserve backward compatibility
- Add
-
1.2 Wire LLMOptimizationRunner to production (8h)
- Connect LLMWorkflowAnalyzer to entry point
- Bridge LLMOptimizationRunner → OptimizationRunner
- Pass model updater and simulation runner callables
- Integrate with existing hook system
-
1.3 Create minimal example (2h)
- Create
examples/llm_mode_demo.py - Show natural language → optimization results
- Compare traditional (100 lines) vs LLM (3 lines)
- Create
-
1.4 End-to-end integration test (2h)
- Test with simple_beam_optimization study
- Verify extractors generated correctly
- Validate output matches manual mode
Week 2: Robustness & Safety (16 hours)
-
2.1 Code validation pipeline (6h)
- Create
optimization_engine/code_validator.py - Implement syntax validation (ast.parse)
- Implement security scanning (whitelist imports)
- Implement test execution on example OP2
- Add retry with LLM feedback on failure
- Create
-
2.2 Graceful fallback mechanisms (4h)
- Wrap all LLM calls in try/except
- Provide clear error messages
- Offer fallback to manual mode
- Never crash on LLM failure
-
2.3 LLM audit trail (3h)
- Create
optimization_engine/llm_audit.py - Log all LLM requests and responses
- Log generated code with prompts
- Create
llm_audit.jsonin study output
- Create
-
2.4 Failure scenario testing (3h)
- Test invalid natural language request
- Test LLM unavailable
- Test generated code syntax errors
- Test validation failures
Week 3: Learning System (12 hours)
-
3.1 Knowledge base implementation (4h)
- Create
optimization_engine/knowledge_base.py - Implement
save_session()- Save successful workflows - Implement
search_templates()- Find similar patterns - Add confidence scoring
- Create
-
3.2 Template extraction (4h)
- Extract reusable patterns from generated code
- Parameterize variable parts
- Save templates with usage examples
- Implement template application to new requests
-
3.3 ResearchAgent integration (4h)
- Complete ResearchAgent implementation
- Integrate into ExtractorOrchestrator error handling
- Add user example collection workflow
- Save learned knowledge to knowledge base
Week 4: Documentation & Discoverability (8 hours)
-
4.1 Update README (2h)
- Add "🤖 LLM-Powered Mode" section
- Show example command with natural language
- Link to detailed docs
-
4.2 Create LLM mode documentation (3h)
- Create
docs/LLM_MODE.md - Explain how LLM mode works
- Provide usage examples
- Add troubleshooting guide
- Create
-
4.3 Create demo video/GIF (1h)
- Record terminal session
- Show before/after (100 lines → 3 lines)
- Create animated GIF for README
-
4.4 Update all planning docs (2h)
- Update DEVELOPMENT.md status
- Update DEVELOPMENT_GUIDANCE.md (80-90% → 90-95%)
- Mark Phase 3.2 as ✅ Complete
Completed Features
✅ Live Dashboard System (Completed 2025-11-21)
Backend (FastAPI + WebSocket)
-
FastAPI Backend (atomizer-dashboard/backend/)
- REST API endpoints for study management
- WebSocket streaming with file watching (Watchdog)
- Real-time updates (<100ms latency)
- CORS configured for local development
-
REST API Endpoints (backend/api/routes/optimization.py)
GET /api/optimization/studies- List all studiesGET /api/optimization/studies/{id}/status- Get study statusGET /api/optimization/studies/{id}/history- Get trial historyGET /api/optimization/studies/{id}/pruning- Get pruning diagnostics
-
WebSocket Streaming (backend/api/websocket/optimization_stream.py)
- File watching on
optimization_history_incremental.json - Real-time trial updates via WebSocket
- Pruning alerts and progress updates
- Automatic observer lifecycle management
- File watching on
Frontend (HTML + Chart.js)
- Enhanced Live Dashboard (atomizer-dashboard/dashboard-enhanced.html)
- Real-time WebSocket updates
- Interactive convergence chart (Chart.js)
- Parameter space scatter plot
- Pruning alerts (toast notifications)
- Data export (JSON/CSV)
- Study auto-discovery and selection
- Metric dashboard (trials, best value, pruned count)
React Frontend (In Progress)
-
Project Configuration (atomizer-dashboard/frontend/)
- React 18 + Vite 5 + TypeScript 5.2
- TailwindCSS 3.3 for styling
- Recharts 2.10 for charts
- Complete build configuration
-
TypeScript Types (frontend/src/types/)
- Complete type definitions for API data
- WebSocket message types
- Chart data structures
-
Custom Hooks (frontend/src/hooks/useWebSocket.ts)
- WebSocket connection management
- Auto-reconnection with exponential backoff
- Type-safe message routing
-
Reusable Components (frontend/src/components/)
- Card, MetricCard, Badge, StudyCard components
- TailwindCSS styling with dark theme
-
Dashboard Page (Pending manual completion)
- Need to run
npm install - Create main.tsx, App.tsx, Dashboard.tsx
- Integrate Recharts for charts
- Test end-to-end
- Need to run
Documentation
-
Dashboard Master Plan (docs/DASHBOARD_MASTER_PLAN.md)
- Complete 3-page architecture (Configurator, Live Dashboard, Results Viewer)
- Tech stack recommendations
- Implementation phases
-
Implementation Status (docs/DASHBOARD_IMPLEMENTATION_STATUS.md)
- Current progress tracking
- Testing instructions
- Next steps
-
React Implementation Guide (docs/DASHBOARD_REACT_IMPLEMENTATION.md)
- Complete templates for remaining components
- Recharts integration examples
- Troubleshooting guide
-
Session Summary (docs/DASHBOARD_SESSION_SUMMARY.md)
- Features demonstrated
- How to use the dashboard
- Architecture explanation
✅ Phase 1: Plugin System & Infrastructure (Completed 2025-01-16)
Core Architecture
-
Hook Manager (optimization_engine/plugins/hook_manager.py)
- Hook registration with priority-based execution
- Auto-discovery from plugin directories
- Context passing to all hooks
- Execution history tracking
-
Lifecycle Hooks
pre_solve: Execute before solver launchpost_solve: Execute after solve, before extractionpost_extraction: Execute after result extraction
Logging Infrastructure
-
Detailed Trial Logs (detailed_logger.py)
- Per-trial log files in
optimization_results/trial_logs/ - Complete iteration trace with timestamps
- Design variables, configuration, timeline
- Extracted results and constraint evaluations
- Per-trial log files in
-
High-Level Optimization Log (optimization_logger.py)
optimization.logfile tracking overall progress- Configuration summary header
- Compact START/COMPLETE entries per trial
- Easy to scan format for monitoring
-
Result Appenders
- log_solve_complete.py - Appends solve completion to trial logs
- log_results.py - Appends extracted results to trial logs
- optimization_logger_results.py - Appends results to optimization.log
Project Organization
-
Studies Structure (studies/)
- Standardized folder layout with
model/,optimization_results/,analysis/ - Comprehensive documentation in studies/README.md
- Example study: bracket_stress_minimization/
- Template structure for future studies
- Standardized folder layout with
-
Path Resolution (atomizer_paths.py)
- Intelligent project root detection using marker files
- Helper functions:
root(),optimization_engine(),studies(),tests() ensure_imports()for robust module imports- Works regardless of script location
Testing
-
Hook Validation Test (test_hooks_with_bracket.py)
- Verifies hook loading and execution
- Tests 3 trials with dummy data
- Checks hook execution history
-
Integration Tests
- run_5trial_test.py - Quick 5-trial optimization
- test_journal_optimization.py - Full optimization test
Runner Enhancements
- Context Passing (runner.py:332,365,412)
output_dirpassed to all hook contexts- Trial number, design variables, extracted results
- Configuration dictionary available to hooks
✅ Core Engine (Pre-Phase 1)
- Optuna integration with TPE sampler
- Multi-objective optimization support
- NX journal execution (nx_solver.py)
- Expression updates (nx_updater.py)
- OP2 result extraction (stress, displacement)
- Study management with resume capability
- Web dashboard (real-time monitoring)
- Precision control (4-decimal rounding)
Active Development
In Progress - Dashboard (High Priority)
- Backend API complete (FastAPI + WebSocket)
- HTML dashboard with Chart.js complete
- React project structure and configuration complete
- Complete React frontend (Awaiting manual npm install)
- Run
npm installin frontend directory - Create main.tsx and App.tsx
- Create Dashboard.tsx with Recharts
- Test end-to-end with live optimization
- Run
Up Next - Dashboard (Next Session)
- Study Configurator page (React)
- Results Report Viewer page (React)
- LLM chat interface integration (future)
- Docker deployment configuration
In Progress - Phase 3.2 Integration
- Feature registry creation (Phase 2, Week 1)
- Claude skill definition (Phase 2, Week 1)
Up Next (Phase 2, Week 2)
- Natural language parser
- Intent classification system
- Entity extraction for optimization parameters
- Conversational workflow manager
Backlog (Phase 3+)
- Custom function generator (RSS, weighted objectives)
- Journal script generator
- Code validation pipeline
- Result analyzer with statistical analysis
- Surrogate quality checker
- HTML/PDF report generator
Known Issues
Critical
- None currently
Minor
.claude/settings.local.jsonmodified during development (contains user-specific settings)- Some old bash background processes still running from previous tests
Documentation
- Need to add examples of custom hooks to studies/README.md
- Missing API documentation for hook_manager methods
- No developer guide for creating new plugins
Testing Status
Automated Tests
- ✅ Hook system -
test_hooks_with_bracket.pypassing - ✅ 5-trial integration -
run_5trial_test.pyworking - ✅ Full optimization -
test_journal_optimization.pyfunctional - ⏳ Unit tests - Need to create for individual modules
- ⏳ CI/CD pipeline - Not yet set up
Manual Testing
- ✅ Bracket optimization (50 trials)
- ✅ Log file generation in correct locations
- ✅ Hook execution at all lifecycle points
- ✅ Path resolution across different script locations
- ✅ Dashboard backend - REST API and WebSocket tested successfully
- ✅ HTML dashboard - Live updates working with Chart.js
- ⏳ React dashboard - Pending npm install and completion
- ⏳ Resume functionality with config validation
Test Coverage
- Hook manager: ~80% (core functionality tested)
- Logging plugins: 100% (tested via integration tests)
- Path resolution: 100% (tested in all scripts)
- Result extractors: ~70% (basic tests exist)
- Dashboard backend: ~90% (REST endpoints and WebSocket tested)
- Dashboard frontend: ~60% (HTML version tested, React pending)
- Overall: ~65% estimated
Phase-by-Phase Progress
Phase 1: Plugin System ✅ (100% Complete)
Completed (2025-01-16):
- Hook system for optimization lifecycle
- Plugin auto-discovery and registration
- Hook manager with priority-based execution
- Detailed per-trial logs (
trial_logs/) - High-level optimization log (
optimization.log) - Context passing system for hooks
- Studies folder structure
- Comprehensive studies documentation
- Model file organization (
model/folder) - Intelligent path resolution
- Test suite for hook system
Deferred to Future Phases:
- Feature registry → Phase 2 (with LLM interface)
pre_meshandpost_meshhooks → Future (not needed for current workflow)- Custom objective/constraint registration → Phase 3 (Code Generation)
Phase 2: LLM Integration 🟡 (0% Complete)
Target: 2 weeks (Started 2025-01-16)
Week 1 Todos (Feature Registry & Claude Skill)
- Create
optimization_engine/feature_registry.json - Extract all current capabilities
- Draft
.claude/skills/atomizer.md - Test LLM's ability to navigate codebase
Week 2 Todos (Natural Language Interface)
- Implement intent classifier
- Build entity extractor
- Create workflow manager
- Test end-to-end: "Create a stress minimization study"
Success Criteria:
- LLM can create optimization from natural language in <5 turns
- 90% of user requests understood correctly
- Zero manual JSON editing required
Phase 3: Code Generation ⏳ (Not Started)
Target: 3 weeks
Key Deliverables:
- Custom function generator
- RSS (Root Sum Square) template
- Weighted objectives template
- Custom constraints template
- Journal script generator
- Code validation pipeline
- Safe execution environment
Success Criteria:
- LLM generates 10+ custom functions with zero errors
- All generated code passes safety validation
- Users save 50% time vs. manual coding
Phase 4: Analysis & Decision Support ⏳ (Not Started)
Target: 3 weeks
Key Deliverables:
- Result analyzer (convergence, sensitivity, outliers)
- Surrogate model quality checker (R², CV score, confidence intervals)
- Decision assistant (trade-offs, what-if analysis, recommendations)
Success Criteria:
- Surrogate quality detection 95% accurate
- Recommendations lead to 30% faster convergence
- Users report higher confidence in results
Phase 5: Automated Reporting ⏳ (Not Started)
Target: 2 weeks
Key Deliverables:
- Report generator with Jinja2 templates
- Multi-format export (HTML, PDF, Markdown, JSON)
- LLM-written narrative explanations
Success Criteria:
- Reports generated in <30 seconds
- Narrative quality rated 4/5 by engineers
- 80% of reports used without manual editing
Phase 6: NX MCP Enhancement ⏳ (Not Started)
Target: 4 weeks
Key Deliverables:
- NX documentation MCP server
- Advanced NX operations library
- Feature bank with 50+ pre-built operations
Success Criteria:
- NX MCP answers 95% of API questions correctly
- Feature bank covers 80% of common workflows
- Users write 50% less manual journal code
Phase 7: Self-Improving System ⏳ (Not Started)
Target: 4 weeks
Key Deliverables:
- Feature learning system
- Best practices database
- Continuous documentation generation
Success Criteria:
- 20+ user-contributed features in library
- Pattern recognition identifies 10+ best practices
- Documentation auto-updates with zero manual effort
Development Commands
Running Dashboard
# Start backend server
cd atomizer-dashboard/backend
python -m uvicorn api.main:app --reload --host 0.0.0.0 --port 8000
# Access HTML dashboard (current)
# Open browser: http://localhost:8000
# Start React frontend (when ready)
cd atomizer-dashboard/frontend
npm install # First time only
npm run dev # Starts on http://localhost:3000
Running Tests
# Hook validation (3 trials, fast)
python tests/test_hooks_with_bracket.py
# Quick integration test (5 trials)
python tests/run_5trial_test.py
# Full optimization test
python tests/test_journal_optimization.py
Code Quality
# Run linter (when available)
# pylint optimization_engine/
# Run type checker (when available)
# mypy optimization_engine/
# Run all tests (when test suite is complete)
# pytest tests/
Git Workflow
# Stage all changes
git add .
# Commit with conventional commits format
git commit -m "feat: description" # New feature
git commit -m "fix: description" # Bug fix
git commit -m "docs: description" # Documentation
git commit -m "test: description" # Tests
git commit -m "refactor: description" # Code refactoring
# Push to GitHub
git push origin main
Documentation
For Developers
- DEVELOPMENT_ROADMAP.md - Strategic vision and phases
- studies/README.md - Studies folder organization
- CHANGELOG.md - Version history
Dashboard Documentation
- docs/DASHBOARD_MASTER_PLAN.md - Complete architecture blueprint
- docs/DASHBOARD_IMPLEMENTATION_STATUS.md - Current progress
- docs/DASHBOARD_REACT_IMPLEMENTATION.md - React implementation guide
- docs/DASHBOARD_SESSION_SUMMARY.md - Session summary
- atomizer-dashboard/README.md - Dashboard quick start
- atomizer-dashboard/backend/README.md - Backend API docs
- atomizer-dashboard/frontend/README.md - Frontend setup guide
For Users
- README.md - Project overview and quick start
- docs/INDEX.md - Complete documentation index
- docs/ - Additional documentation
Notes
Architecture Decisions
- Hook system: Chose priority-based execution to allow precise control of plugin order
- Path resolution: Used marker files instead of environment variables for simplicity
- Logging: Two-tier system (detailed trial logs + high-level optimization.log) for different use cases
Performance Considerations
- Hook execution adds <1s overhead per trial (acceptable for FEA simulations)
- Path resolution caching could improve startup time (future optimization)
- Log file sizes grow linearly with trials (~10KB per trial)
Future Considerations
- Consider moving to structured logging (JSON) for easier parsing
- May need database for storing hook execution history (currently in-memory)
- Dashboard integration will require WebSocket for real-time log streaming
Last Updated: 2025-11-21 Maintained by: Antoine Polvé (antoine@atomaste.com) Repository: GitHub - Atomizer
Recent Updates (November 21, 2025)
Dashboard System Implementation ✅
- Backend: FastAPI + WebSocket with real-time file watching complete
- HTML Dashboard: Functional dashboard with Chart.js, data export, pruning alerts
- React Setup: Complete project configuration, types, hooks, components
- Documentation: 5 comprehensive markdown documents covering architecture, implementation, and usage
Next Immediate Steps
- Run
npm installinatomizer-dashboard/frontend - Create
main.tsx,App.tsx, andDashboard.tsxusing provided templates - Test React dashboard with live optimization
- Build Study Configurator page (next major feature)