feat: Implement Agentic Architecture for robust session workflows

Phase 1 - Session Bootstrap:
- Add .claude/ATOMIZER_CONTEXT.md as single entry point for new sessions
- Add study state detection and task routing

Phase 2 - Code Deduplication:
- Add optimization_engine/base_runner.py (ConfigDrivenRunner)
- Add optimization_engine/generic_surrogate.py (ConfigDrivenSurrogate)
- Add optimization_engine/study_state.py for study detection
- Add optimization_engine/templates/ with registry and templates
- Studies now require ~50 lines instead of ~300

Phase 3 - Skill Consolidation:
- Add YAML frontmatter metadata to all skills (versioning, dependencies)
- Consolidate create-study.md into core/study-creation-core.md
- Update 00_BOOTSTRAP.md, 01_CHEATSHEET.md, 02_CONTEXT_LOADER.md

Phase 4 - Self-Expanding Knowledge:
- Add optimization_engine/auto_doc.py for auto-generating documentation
- Generate docs/generated/EXTRACTORS.md (27 extractors documented)
- Generate docs/generated/TEMPLATES.md (6 templates)
- Generate docs/generated/EXTRACTOR_CHEATSHEET.md

Phase 5 - Subagent Implementation:
- Add .claude/commands/study-builder.md (create studies)
- Add .claude/commands/nx-expert.md (NX Open API)
- Add .claude/commands/protocol-auditor.md (config validation)
- Add .claude/commands/results-analyzer.md (results analysis)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Antoine
2025-12-07 14:52:25 -05:00
parent 6cf12d9344
commit 0e04457539
22 changed files with 4708 additions and 2212 deletions

1027
docs/generated/EXTRACTORS.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
## Extractor Quick Reference
| Physics | Extractor | Function Call |
|---------|-----------|---------------|
| Reaction forces | extract_spc_forces | `extract_spc_forces(op2_file, subcase)` |
| Reaction forces | extract_total_reaction_force | `extract_total_reaction_force(op2_file, subcase)` |
| Reaction forces | extract_reaction_component | `extract_reaction_component(op2_file, component)` |
| Reaction forces | check_force_equilibrium | `check_force_equilibrium(op2_file, applied_load)` |
| Displacement | extract_part_material | `extract_part_material(prt_file, properties_file)` |
| Displacement | extract_frequencies | `extract_frequencies(f06_file, n_modes)` |
| Mass | extract_part_mass_material | `extract_part_mass_material(prt_file, properties_file)` |
| Mass | extract_part_mass | `extract_part_mass(prt_file, properties_file)` |
| Natural frequency | extract_modal_mass | `extract_modal_mass(f06_file, mode)` |
| Natural frequency | get_first_frequency | `get_first_frequency(f06_file)` |
| Natural frequency | get_modal_mass_ratio | `get_modal_mass_ratio(f06_file, direction)` |
| Zernike WFE | extract_zernike_from_op2 | `extract_zernike_from_op2(op2_file, bdf_file)` |
| Zernike WFE | extract_zernike_filtered_rms | `extract_zernike_filtered_rms(op2_file, bdf_file)` |
| Zernike WFE | extract_zernike_relative_rms | `extract_zernike_relative_rms(op2_file, target_subcase)` |
| Strain energy | extract_strain_energy | `extract_strain_energy(op2_file, subcase)` |
| Strain energy | extract_total_strain_energy | `extract_total_strain_energy(op2_file, subcase)` |
| Strain energy | extract_strain_energy_density | `extract_strain_energy_density(op2_file, subcase)` |
| Von Mises stress | extract_solid_stress | `extract_solid_stress(op2_file, subcase)` |
| Von Mises stress | extract_principal_stress | `extract_principal_stress(op2_file, subcase)` |
| Von Mises stress | extract_max_principal_stress | `extract_max_principal_stress(op2_file, subcase)` |
| Von Mises stress | extract_min_principal_stress | `extract_min_principal_stress(op2_file, subcase)` |
| Temperature | extract_temperature | `extract_temperature(op2_file, subcase)` |
| Temperature | extract_temperature_gradient | `extract_temperature_gradient(op2_file, subcase)` |
| Temperature | extract_heat_flux | `extract_heat_flux(op2_file, subcase)` |
| Temperature | get_max_temperature | `get_max_temperature(op2_file, subcase)` |

187
docs/generated/TEMPLATES.md Normal file
View File

@@ -0,0 +1,187 @@
# Atomizer Study Templates
*Auto-generated: 2025-12-07 12:53*
Available templates for quick study creation.
---
## Template Reference
| Template | Objectives | Extractors |
|----------|------------|------------|
| `Multi-Objective Structural` | mass, stress, stiffness | E1, E3, E4 |
| `Frequency Optimization` | frequency, mass | E2, E4 |
| `Mass Minimization` | mass | E1, E3, E4 |
| `Mirror Wavefront Optimization` | zernike_rms | E8, E9, E10 |
| `Thermal-Structural Coupled` | max_temperature, thermal_stress | E3, E15, E16 |
| `Shell Structure Optimization` | mass, stress | E1, E3, E4 |
---
## Multi-Objective Structural
**Description**: NSGA-II optimization for structural analysis with mass, stress, and stiffness objectives
**Category**: structural
**Solver**: SOL 101
**Sampler**: NSGAIISampler
**Turbo Suitable**: Yes
**Example Study**: `bracket_pareto_3obj`
**Objectives**:
- mass (minimize) - Extractor: E4
- stress (minimize) - Extractor: E3
- stiffness (maximize) - Extractor: E1
**Extractors Used**:
- E1
- E3
- E4
**Recommended Trials**:
- discovery: 1
- validation: 3
- quick: 20
- full: 50
- comprehensive: 100
---
## Frequency Optimization
**Description**: Maximize natural frequency while minimizing mass for vibration-sensitive structures
**Category**: dynamics
**Solver**: SOL 103
**Sampler**: NSGAIISampler
**Turbo Suitable**: Yes
**Example Study**: `uav_arm_optimization`
**Objectives**:
- frequency (maximize) - Extractor: E2
- mass (minimize) - Extractor: E4
**Extractors Used**:
- E2
- E4
**Recommended Trials**:
- discovery: 1
- validation: 3
- quick: 20
- full: 50
---
## Mass Minimization
**Description**: Minimize mass subject to stress and displacement constraints
**Category**: structural
**Solver**: SOL 101
**Sampler**: TPESampler
**Turbo Suitable**: Yes
**Example Study**: `bracket_stiffness_optimization_V3`
**Objectives**:
- mass (minimize) - Extractor: E4
**Extractors Used**:
- E1
- E3
- E4
**Recommended Trials**:
- discovery: 1
- validation: 3
- quick: 30
- full: 100
---
## Mirror Wavefront Optimization
**Description**: Minimize Zernike wavefront error for optical mirror deformation
**Category**: optics
**Solver**: SOL 101
**Sampler**: TPESampler
**Turbo Suitable**: No
**Example Study**: `m1_mirror_zernike_optimization`
**Objectives**:
- zernike_rms (minimize) - Extractor: E8
**Extractors Used**:
- E8
- E9
- E10
**Recommended Trials**:
- discovery: 1
- validation: 3
- quick: 30
- full: 100
---
## Thermal-Structural Coupled
**Description**: Optimize for thermal and structural performance
**Category**: multiphysics
**Solver**: SOL 153/400
**Sampler**: NSGAIISampler
**Turbo Suitable**: No
**Example Study**: `None`
**Objectives**:
- max_temperature (minimize) - Extractor: E15
- thermal_stress (minimize) - Extractor: E3
**Extractors Used**:
- E3
- E15
- E16
**Recommended Trials**:
- discovery: 1
- validation: 3
- quick: 20
- full: 50
---
## Shell Structure Optimization
**Description**: Optimize shell structures (CQUAD4/CTRIA3) for mass and stress
**Category**: structural
**Solver**: SOL 101
**Sampler**: NSGAIISampler
**Turbo Suitable**: Yes
**Example Study**: `beam_pareto_4var`
**Objectives**:
- mass (minimize) - Extractor: E4
- stress (minimize) - Extractor: E3
**Extractors Used**:
- E1
- E3
- E4
**Recommended Trials**:
- discovery: 1
- validation: 3
- quick: 20
- full: 50
---