2008robocode-crypto/code-generation-system
0
1# Architecture & System Design Document2 3## Executive Summary4 5This code generation system implements a **compiler-like architecture** for transforming natural language requirements into complete, validated, and executable application configurations. The system prioritizes reliability, consistency, and deterministic behavior over raw flexibility.6 7## System Architecture8 9### High-Level Pipeline10 11```12User Input (Natural Language)13 ↓14[Stage 1] Intent Extraction15 └─→ Structured intermediate representation16 ↓17[Stage 2] System Design Layer18 └─→ Domain model and architecture blueprint19 ↓20[Stage 3] Schema Generation21 └─→ Database, API, UI, and Auth schemas22 ↓23[Stage 4] Refinement & Validation24 ├─→ Comprehensive validation25 └─→ Intelligent repair (if needed)26 ↓27Output: Executable Configuration (JSON)28 ↓29Runtime Simulator30 └─→ Proof of executability31```32 33## Detailed Architecture34 35### 1. Intent Extraction Stage36 37**Purpose**: Parse natural language into structured form38 39**Inputs**: Free-form user prompt (string)40 41**Process**:42- Pattern-based extraction (primary)43- Optional LLM-based extraction (enhanced)44- Identify: features, roles, entities, requirements, constraints45 46**Outputs**: Structured intent object47```python48{49 "app_name": "string",50 "app_description": "string",51 "key_features": ["string"],52 "user_roles": ["string"],53 "core_entities": ["string"],54 "business_requirements": ["string"],55 "constraints": ["string"]56}57```58 59**Key Design Decisions**:60- Pattern-based extraction first (predictable, fast, low-cost)61- Optional LLM enhancement (higher quality, higher cost)62- Conservative extraction (better to miss than hallucinate)63 64### 2. System Design Layer65 66**Purpose**: Convert intent into domain model and architecture67 68**Inputs**: Intent object69 70**Process**:71- Generate entity relationships72- Define user flows73- Create RBAC matrix74- Design UI structure75- Map business logic76 77**Outputs**: System design object78```python79{80 "entities": { "name": ["attributes"] },81 "user_flows": [{ "name": "string", "steps": ["string"] }],82 "roles_and_permissions": { "role": ["permissions"] },83 "data_models": ["string"],84 "api_patterns": ["string"],85 "ui_structure": ["string"]86}87```88 89**Key Design Decisions**:90- Generate standard flows (login, CRUD, admin)91- RBAC defaults (user, admin, guest)92- Conservative attribute generation93- Extensible for custom flows94 95### 3. Schema Generation96 97**Purpose**: Generate complete, production-ready schemas98 99**Inputs**: System design + Intent100 101**Process**:102For each schema type:103- Database: Tables, fields, primary keys, indexes, relations104- API: RESTful endpoints, methods, validation rules105- UI: Pages, components, layouts106- Auth: JWT config, expiry, roles107 108**Outputs**: Complete configuration109```python110{111 "app_name": "string",112 "app_description": "string",113 "database_schema": [...],114 "api_schema": [...],115 "ui_schema": [...],116 "auth_config": {...},117 "roles": [...],118 "business_logic": {...}119}120```121 122**Key Design Decisions**:123- REST API pattern (standard, widely supported)124- JWT authentication (stateless, scalable)125- Normalized database schema126- Component-based UI structure127- Backward compatibility with existing frameworks128 129### 4. Refinement & Validation Layer130 131This is the **CORE** of the system - implements compiler-like error detection and repair.132 133#### 4.1 Validation Engine134 135Checks for:136 1371. **JSON Validity**138 - Valid JSON structure139 - Proper nesting and formatting140 1412. **Required Fields**142 - Top-level: app_name, database_schema, api_schema, etc.143 - Table-level: name, fields, primary_key144 - Endpoint-level: path, method145 - Page-level: path, title, components146 1473. **Type Safety**148 - Valid field types (string, number, boolean, date, email, enum, array, object)149 - Valid HTTP methods (GET, POST, PUT, DELETE, PATCH)150 - Consistent type usage151 1524. **Cross-Layer Consistency**153 - API request/response fields map to DB fields154 - UI form fields reference API endpoints155 - Auth roles are defined before being referenced156 - Foreign key references point to existing tables157 1585. **Hallucination Detection**159 - Placeholder text detection ("TODO", "FIXME")160 - Semantic validation of field names161 - Inconsistency detection162 1636. **Logical Consistency**164 - Primary keys exist in field definitions165 - No circular dependencies166 - Role hierarchy is valid167 168#### 4.2 Repair Engine169 170**Core Philosophy**: Intelligent targeted repair, not blind retry171 172Repairs:1731. **Missing Fields**: Add sensible defaults1742. **Invalid Types**: Convert to valid type1753. **Missing References**: Link to appropriate entity1764. **Malformed JSON**: Apply formatting fixes1775. **Schema Gaps**: Fill with generated values178 179**Repair Strategy**:180```181For each error:182 IF error_type == "missing_field":183 Add default value for field184 ELIF error_type == "invalid_type":185 Convert to valid type186 ELIF error_type == "dangling_reference":187 Generate or link to valid entity188 ...189 ELSE:190 Mark as critical, skip repair191```192 193**Iterative Refinement**:194- Run validation → Get errors195- Apply repairs → Update config196- Re-validate197- Repeat until no more errors (max 3 iterations)198 199**Key Design Decision**: Repair specific issues rather than regenerate entire config200- **Why**: Regeneration loses all prior context and may introduce new errors201- **Trade-off**: More complex to implement, but much more reliable202 203### 5. Runtime Simulator204 205**Purpose**: Prove that generated config can actually execute206 207**Checks**:2081. Database schema can be initialized2092. API endpoints are syntactically valid2103. UI pages can be rendered2114. Authentication system can function2125. User flows can complete213 214**Execution**:215```216Initialize DB → Register API → Setup Auth → Simulate Flow217```218 219**Output**: Execution report with issues and simulation log220 221## Data Flow Diagram222 223```224┌─────────────────────────────────────────────────────────────────┐225│ Natural Language Input │226└──────────────────────────┬──────────────────────────────────────┘227 │228 ▼229 ┌─────────────────┐230 │ Intent Extractor│─────► [Structured Intent]231 └────────┬────────┘232 │233 ▼234 ┌────────────────────────┐235 │ System Design Layer │─────► [System Design]236 └────────┬───────────────┘237 │238 ▼239 ┌──────────────────────────────┐240 │ Schema Generator │─────► [Raw Config]241 │ ├─ Database Schema Gen │242 │ ├─ API Schema Gen │243 │ ├─ UI Schema Gen │244 │ └─ Auth Config Gen │245 └────────┬─────────────────────┘246 │247 ▼248 ┌───────────────────────────────────────────┐249 │ Refinement Layer │250 │ ┌─────────────┐ ┌─────────────┐ │251 │ │ Validator │──┐ │ Repair │ │252 │ │ • JSON │ │ │ • Defaults │ │253 │ │ • Structure │──┼──→│ • Types │───┐│254 │ │ • Consist. │ │ │ • References│ ││255 │ └─────────────┘ │ └─────────────┘ ││256 │ └────(iterate)─────────┘│257 └───────────────────────────────────────────┘258 │259 ▼260 [Refined, Validated Config]261 │262 ▼263 ┌──────────────────────┐264 │ Runtime Simulator │265 │ • Database Check │266 │ • API Validation │267 │ • Flow Simulation │268 └────────┬─────────────┘269 │270 ▼271 [Executability Report]272 │273 ▼274 [FINAL OUTPUT: Executable Config]275```276 277## Error Handling Strategy278 279### Error Classification280 281```282┌─ Critical Errors (cannot recover)283│ ├─ Invalid JSON structure284│ ├─ Missing top-level fields285│ └─ Circular dependencies286│287├─ Repairable Errors (auto-fix)288│ ├─ Missing fields → Add defaults289│ ├─ Invalid types → Convert290│ ├─ Dangling refs → Create/link291│ └─ Schema gaps → Generate292│293└─ Warnings (log but proceed)294 ├─ Possible placeholders295 ├─ Cross-layer inconsistencies296 └─ Unusual patterns297```298 299### Retry Strategy300 301**Standard Flow** (no retries needed):302```3031. Generate → Validate → No errors? → Return304```305 306**Error Recovery**:307```3081. Generate → Validate3092. If errors: Apply repairs → Re-validate3103. If more errors (max 3 iterations): Return with warnings3114. If execution fails: Report unfixable issues312```313 314## Consistency Guarantees315 316### JSON Structure317- ✅ Always valid JSON318- ✅ All required fields present319- ✅ Correct types throughout320 321### Cross-Layer Consistency322- ✅ API fields reference valid DB fields323- ✅ UI fields map to API endpoints324- ✅ Auth roles are fully defined325- ✅ Foreign keys reference existing tables326 327### Semantic Validity328- ✅ No circular dependencies329- ✅ Primary keys exist330- ✅ Relationships are valid331- ✅ No placeholder text332 333### Executability334- ✅ Database schema can initialize335- ✅ API endpoints are valid336- ✅ UI pages are renderable337- ✅ Auth system functions correctly338 339## Performance Characteristics340 341### Time Complexity342- Intent extraction: O(n) where n = prompt length343- Schema generation: O(m) where m = number of entities344- Validation: O(s) where s = schema size345- **Total**: Linear in input/output size346 347### Space Complexity348- Config storage: ~2KB per average app349- Intermediate representations: Negligible350- **Total**: Constant for practical inputs351 352### Latency (Rule-Based)353- Stage 1: ~10-50ms354- Stage 2: ~20-100ms355- Stage 3: ~50-200ms356- Stage 4: ~20-100ms357- **Total**: ~100-450ms per request358 359### Cost (LLM-Based, with Anthropic)360- Estimated tokens: 3,000-5,000 per generation361- Estimated cost: $0.01-0.02 per request362- 1,000 generations: ~$10-20363 364## Scalability365 366### Horizontal Scalability367- ✅ Stateless pipeline (can run on multiple servers)368- ✅ No database dependency369- ✅ Parallelizable stages370 371### Vertical Scalability372- ✅ Handles 100+ entity applications373- ✅ Processes 1000+ API endpoints374- ✅ Generates 100+ UI pages375 376### Current Limitations377- Limited to ~200 entity systems before performance degrades378- Memory constrained at ~512MB config size379- LLM-based stages may timeout on very large inputs380 381## Extension Points382 383### Adding New Schema Types3841. Define new schema structure in `schemas.py`3852. Add generator in `SchemaGenerator`3863. Add validator in `Validator`3874. Add repair logic in `RepairEngine`388 389### Adding New Validation Rules3901. Implement check in `Validator` class3912. Add to validation suite3923. Create corresponding repair in `RepairEngine`393 394### Adding New LLM Providers3951. Implement new provider in `pipeline.py`3962. Add fallback logic3973. Update `use_llm` parameter handling398 399## Security Considerations400 401### Input Validation402- ✅ Max prompt length: 2,000 chars403- ✅ Max field name length: 255 chars404- ✅ Alphanumeric validation for identifiers405- ✅ SQL injection prevention in schema names406 407### Output Safety408- ✅ No code generation (only configs)409- ✅ No shell command generation410- ✅ No credential storage in config411- ✅ All outputs are declarative (not executable code)412 413### Dependency Safety414- ✅ No external file access415- ✅ No network calls (except optional LLM API)416- ✅ No environment variable exposure417- ✅ Sandboxed schema validation418 419## Comparison with Alternatives420 421| Aspect | This System | Prompt Only | Template-Based |422|--------|------------|------------|-----------------|423| Reliability | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |424| Consistency | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ |425| Error Recovery | ⭐⭐⭐⭐⭐ | ⭐ | ⭐⭐ |426| Customization | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |427| Speed | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |428| Cost | ⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ |429 430## Future Architecture Enhancements431 4321. **Streaming Validation**: Validate while generating4332. **Parallel Stages**: Run independent schemas in parallel4343. **Cache Layer**: Cache common intent patterns4354. **ML-Based Repair**: Train models on error patterns4365. **Custom Validators**: Allow plugin validators437 438---439 440**Key Principle**: Design for reliability first, performance second, customization third. This reflects production system requirements.441 