|
Download ARCHITECTURE.md from 2008robocode-crypto/code-generation-system: direct link, hf CLI and curl.
- Browser
- Download file 13.9 kB
-
https://huggingface.co/spaces/2008robocode-crypto/code-generation-system/resolve/main/ARCHITECTURE.md
- Command line
-
hf download hf://spaces/2008robocode-crypto/code-generation-system/ARCHITECTURE.md
-
curl -L -o ARCHITECTURE.md https://huggingface.co/spaces/2008robocode-crypto/code-generation-system/resolve/main/ARCHITECTURE.md
13.9 kB
| # Architecture & System Design Document | |
| ## Executive Summary | |
| This 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. | |
| ## System Architecture | |
| ### High-Level Pipeline | |
| ``` | |
| User Input (Natural Language) | |
| β | |
| [Stage 1] Intent Extraction | |
| βββ Structured intermediate representation | |
| β | |
| [Stage 2] System Design Layer | |
| βββ Domain model and architecture blueprint | |
| β | |
| [Stage 3] Schema Generation | |
| βββ Database, API, UI, and Auth schemas | |
| β | |
| [Stage 4] Refinement & Validation | |
| βββ Comprehensive validation | |
| βββ Intelligent repair (if needed) | |
| β | |
| Output: Executable Configuration (JSON) | |
| β | |
| Runtime Simulator | |
| βββ Proof of executability | |
| ``` | |
| ## Detailed Architecture | |
| ### 1. Intent Extraction Stage | |
| **Purpose**: Parse natural language into structured form | |
| **Inputs**: Free-form user prompt (string) | |
| **Process**: | |
| - Pattern-based extraction (primary) | |
| - Optional LLM-based extraction (enhanced) | |
| - Identify: features, roles, entities, requirements, constraints | |
| **Outputs**: Structured intent object | |
| ```python | |
| { | |
| "app_name": "string", | |
| "app_description": "string", | |
| "key_features": ["string"], | |
| "user_roles": ["string"], | |
| "core_entities": ["string"], | |
| "business_requirements": ["string"], | |
| "constraints": ["string"] | |
| } | |
| ``` | |
| **Key Design Decisions**: | |
| - Pattern-based extraction first (predictable, fast, low-cost) | |
| - Optional LLM enhancement (higher quality, higher cost) | |
| - Conservative extraction (better to miss than hallucinate) | |
| ### 2. System Design Layer | |
| **Purpose**: Convert intent into domain model and architecture | |
| **Inputs**: Intent object | |
| **Process**: | |
| - Generate entity relationships | |
| - Define user flows | |
| - Create RBAC matrix | |
| - Design UI structure | |
| - Map business logic | |
| **Outputs**: System design object | |
| ```python | |
| { | |
| "entities": { "name": ["attributes"] }, | |
| "user_flows": [{ "name": "string", "steps": ["string"] }], | |
| "roles_and_permissions": { "role": ["permissions"] }, | |
| "data_models": ["string"], | |
| "api_patterns": ["string"], | |
| "ui_structure": ["string"] | |
| } | |
| ``` | |
| **Key Design Decisions**: | |
| - Generate standard flows (login, CRUD, admin) | |
| - RBAC defaults (user, admin, guest) | |
| - Conservative attribute generation | |
| - Extensible for custom flows | |
| ### 3. Schema Generation | |
| **Purpose**: Generate complete, production-ready schemas | |
| **Inputs**: System design + Intent | |
| **Process**: | |
| For each schema type: | |
| - Database: Tables, fields, primary keys, indexes, relations | |
| - API: RESTful endpoints, methods, validation rules | |
| - UI: Pages, components, layouts | |
| - Auth: JWT config, expiry, roles | |
| **Outputs**: Complete configuration | |
| ```python | |
| { | |
| "app_name": "string", | |
| "app_description": "string", | |
| "database_schema": [...], | |
| "api_schema": [...], | |
| "ui_schema": [...], | |
| "auth_config": {...}, | |
| "roles": [...], | |
| "business_logic": {...} | |
| } | |
| ``` | |
| **Key Design Decisions**: | |
| - REST API pattern (standard, widely supported) | |
| - JWT authentication (stateless, scalable) | |
| - Normalized database schema | |
| - Component-based UI structure | |
| - Backward compatibility with existing frameworks | |
| ### 4. Refinement & Validation Layer | |
| This is the **CORE** of the system - implements compiler-like error detection and repair. | |
| #### 4.1 Validation Engine | |
| Checks for: | |
| 1. **JSON Validity** | |
| - Valid JSON structure | |
| - Proper nesting and formatting | |
| 2. **Required Fields** | |
| - Top-level: app_name, database_schema, api_schema, etc. | |
| - Table-level: name, fields, primary_key | |
| - Endpoint-level: path, method | |
| - Page-level: path, title, components | |
| 3. **Type Safety** | |
| - Valid field types (string, number, boolean, date, email, enum, array, object) | |
| - Valid HTTP methods (GET, POST, PUT, DELETE, PATCH) | |
| - Consistent type usage | |
| 4. **Cross-Layer Consistency** | |
| - API request/response fields map to DB fields | |
| - UI form fields reference API endpoints | |
| - Auth roles are defined before being referenced | |
| - Foreign key references point to existing tables | |
| 5. **Hallucination Detection** | |
| - Placeholder text detection ("TODO", "FIXME") | |
| - Semantic validation of field names | |
| - Inconsistency detection | |
| 6. **Logical Consistency** | |
| - Primary keys exist in field definitions | |
| - No circular dependencies | |
| - Role hierarchy is valid | |
| #### 4.2 Repair Engine | |
| **Core Philosophy**: Intelligent targeted repair, not blind retry | |
| Repairs: | |
| 1. **Missing Fields**: Add sensible defaults | |
| 2. **Invalid Types**: Convert to valid type | |
| 3. **Missing References**: Link to appropriate entity | |
| 4. **Malformed JSON**: Apply formatting fixes | |
| 5. **Schema Gaps**: Fill with generated values | |
| **Repair Strategy**: | |
| ``` | |
| For each error: | |
| IF error_type == "missing_field": | |
| Add default value for field | |
| ELIF error_type == "invalid_type": | |
| Convert to valid type | |
| ELIF error_type == "dangling_reference": | |
| Generate or link to valid entity | |
| ... | |
| ELSE: | |
| Mark as critical, skip repair | |
| ``` | |
| **Iterative Refinement**: | |
| - Run validation β Get errors | |
| - Apply repairs β Update config | |
| - Re-validate | |
| - Repeat until no more errors (max 3 iterations) | |
| **Key Design Decision**: Repair specific issues rather than regenerate entire config | |
| - **Why**: Regeneration loses all prior context and may introduce new errors | |
| - **Trade-off**: More complex to implement, but much more reliable | |
| ### 5. Runtime Simulator | |
| **Purpose**: Prove that generated config can actually execute | |
| **Checks**: | |
| 1. Database schema can be initialized | |
| 2. API endpoints are syntactically valid | |
| 3. UI pages can be rendered | |
| 4. Authentication system can function | |
| 5. User flows can complete | |
| **Execution**: | |
| ``` | |
| Initialize DB β Register API β Setup Auth β Simulate Flow | |
| ``` | |
| **Output**: Execution report with issues and simulation log | |
| ## Data Flow Diagram | |
| ``` | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β Natural Language Input β | |
| ββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βΌ | |
| βββββββββββββββββββ | |
| β Intent ExtractorβββββββΊ [Structured Intent] | |
| ββββββββββ¬βββββββββ | |
| β | |
| βΌ | |
| ββββββββββββββββββββββββββ | |
| β System Design Layer βββββββΊ [System Design] | |
| ββββββββββ¬ββββββββββββββββ | |
| β | |
| βΌ | |
| ββββββββββββββββββββββββββββββββ | |
| β Schema Generator βββββββΊ [Raw Config] | |
| β ββ Database Schema Gen β | |
| β ββ API Schema Gen β | |
| β ββ UI Schema Gen β | |
| β ββ Auth Config Gen β | |
| ββββββββββ¬ββββββββββββββββββββββ | |
| β | |
| βΌ | |
| βββββββββββββββββββββββββββββββββββββββββββββ | |
| β Refinement Layer β | |
| β βββββββββββββββ βββββββββββββββ β | |
| β β Validator ββββ β Repair β β | |
| β β β’ JSON β β β β’ Defaults β β | |
| β β β’ Structure ββββΌββββ β’ Types ββββββ | |
| β β β’ Consist. β β β β’ Referencesβ ββ | |
| β βββββββββββββββ β βββββββββββββββ ββ | |
| β βββββ(iterate)βββββββββββ | |
| βββββββββββββββββββββββββββββββββββββββββββββ | |
| β | |
| βΌ | |
| [Refined, Validated Config] | |
| β | |
| βΌ | |
| ββββββββββββββββββββββββ | |
| β Runtime Simulator β | |
| β β’ Database Check β | |
| β β’ API Validation β | |
| β β’ Flow Simulation β | |
| ββββββββββ¬ββββββββββββββ | |
| β | |
| βΌ | |
| [Executability Report] | |
| β | |
| βΌ | |
| [FINAL OUTPUT: Executable Config] | |
| ``` | |
| ## Error Handling Strategy | |
| ### Error Classification | |
| ``` | |
| ββ Critical Errors (cannot recover) | |
| β ββ Invalid JSON structure | |
| β ββ Missing top-level fields | |
| β ββ Circular dependencies | |
| β | |
| ββ Repairable Errors (auto-fix) | |
| β ββ Missing fields β Add defaults | |
| β ββ Invalid types β Convert | |
| β ββ Dangling refs β Create/link | |
| β ββ Schema gaps β Generate | |
| β | |
| ββ Warnings (log but proceed) | |
| ββ Possible placeholders | |
| ββ Cross-layer inconsistencies | |
| ββ Unusual patterns | |
| ``` | |
| ### Retry Strategy | |
| **Standard Flow** (no retries needed): | |
| ``` | |
| 1. Generate β Validate β No errors? β Return | |
| ``` | |
| **Error Recovery**: | |
| ``` | |
| 1. Generate β Validate | |
| 2. If errors: Apply repairs β Re-validate | |
| 3. If more errors (max 3 iterations): Return with warnings | |
| 4. If execution fails: Report unfixable issues | |
| ``` | |
| ## Consistency Guarantees | |
| ### JSON Structure | |
| - β Always valid JSON | |
| - β All required fields present | |
| - β Correct types throughout | |
| ### Cross-Layer Consistency | |
| - β API fields reference valid DB fields | |
| - β UI fields map to API endpoints | |
| - β Auth roles are fully defined | |
| - β Foreign keys reference existing tables | |
| ### Semantic Validity | |
| - β No circular dependencies | |
| - β Primary keys exist | |
| - β Relationships are valid | |
| - β No placeholder text | |
| ### Executability | |
| - β Database schema can initialize | |
| - β API endpoints are valid | |
| - β UI pages are renderable | |
| - β Auth system functions correctly | |
| ## Performance Characteristics | |
| ### Time Complexity | |
| - Intent extraction: O(n) where n = prompt length | |
| - Schema generation: O(m) where m = number of entities | |
| - Validation: O(s) where s = schema size | |
| - **Total**: Linear in input/output size | |
| ### Space Complexity | |
| - Config storage: ~2KB per average app | |
| - Intermediate representations: Negligible | |
| - **Total**: Constant for practical inputs | |
| ### Latency (Rule-Based) | |
| - Stage 1: ~10-50ms | |
| - Stage 2: ~20-100ms | |
| - Stage 3: ~50-200ms | |
| - Stage 4: ~20-100ms | |
| - **Total**: ~100-450ms per request | |
| ### Cost (LLM-Based, with Anthropic) | |
| - Estimated tokens: 3,000-5,000 per generation | |
| - Estimated cost: $0.01-0.02 per request | |
| - 1,000 generations: ~$10-20 | |
| ## Scalability | |
| ### Horizontal Scalability | |
| - β Stateless pipeline (can run on multiple servers) | |
| - β No database dependency | |
| - β Parallelizable stages | |
| ### Vertical Scalability | |
| - β Handles 100+ entity applications | |
| - β Processes 1000+ API endpoints | |
| - β Generates 100+ UI pages | |
| ### Current Limitations | |
| - Limited to ~200 entity systems before performance degrades | |
| - Memory constrained at ~512MB config size | |
| - LLM-based stages may timeout on very large inputs | |
| ## Extension Points | |
| ### Adding New Schema Types | |
| 1. Define new schema structure in `schemas.py` | |
| 2. Add generator in `SchemaGenerator` | |
| 3. Add validator in `Validator` | |
| 4. Add repair logic in `RepairEngine` | |
| ### Adding New Validation Rules | |
| 1. Implement check in `Validator` class | |
| 2. Add to validation suite | |
| 3. Create corresponding repair in `RepairEngine` | |
| ### Adding New LLM Providers | |
| 1. Implement new provider in `pipeline.py` | |
| 2. Add fallback logic | |
| 3. Update `use_llm` parameter handling | |
| ## Security Considerations | |
| ### Input Validation | |
| - β Max prompt length: 2,000 chars | |
| - β Max field name length: 255 chars | |
| - β Alphanumeric validation for identifiers | |
| - β SQL injection prevention in schema names | |
| ### Output Safety | |
| - β No code generation (only configs) | |
| - β No shell command generation | |
| - β No credential storage in config | |
| - β All outputs are declarative (not executable code) | |
| ### Dependency Safety | |
| - β No external file access | |
| - β No network calls (except optional LLM API) | |
| - β No environment variable exposure | |
| - β Sandboxed schema validation | |
| ## Comparison with Alternatives | |
| | Aspect | This System | Prompt Only | Template-Based | | |
| |--------|------------|------------|-----------------| | |
| | Reliability | βββββ | ββ | βββ | | |
| | Consistency | βββββ | ββ | ββββ | | |
| | Error Recovery | βββββ | β | ββ | | |
| | Customization | βββ | βββββ | ββ | | |
| | Speed | ββββ | βββββ | ββββ | | |
| | Cost | ββββ | ββ | βββββ | | |
| ## Future Architecture Enhancements | |
| 1. **Streaming Validation**: Validate while generating | |
| 2. **Parallel Stages**: Run independent schemas in parallel | |
| 3. **Cache Layer**: Cache common intent patterns | |
| 4. **ML-Based Repair**: Train models on error patterns | |
| 5. **Custom Validators**: Allow plugin validators | |
| --- | |
| **Key Principle**: Design for reliability first, performance second, customization third. This reflects production system requirements. | |