docs: Complete M1 mirror optimization campaign V11-V15
## M1 Mirror Campaign Summary - V11-V15 optimization campaign completed (~1,400 FEA evaluations) - Best design: V14 Trial #725 with Weighted Sum = 121.72 - V15 NSGA-II confirmed V14 TPE found optimal solution - Campaign improved from WS=129.33 (V11) to WS=121.72 (V14): -5.9% ## Key Results - 40° tracking: 5.99 nm (target 4.0 nm) - 60° tracking: 13.10 nm (target 10.0 nm) - Manufacturing: 26.28 nm (target 20.0 nm) - Targets not achievable within current design space ## Documentation Added - V15 STUDY_REPORT.md: Detailed NSGA-II results analysis - M1_MIRROR_CAMPAIGN_SUMMARY.md: Full V11-V15 campaign overview - Updated CLAUDE.md, ATOMIZER_CONTEXT.md with NXSolver patterns - Updated 01_CHEATSHEET.md with --resume guidance - Updated OP_01_CREATE_STUDY.md with FEARunner template ## Studies Added - m1_mirror_adaptive_V13: TPE validation (291 trials) - m1_mirror_adaptive_V14: TPE intensive (785 trials, BEST) - m1_mirror_adaptive_V15: NSGA-II exploration (126 new FEA) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
65
CLAUDE.md
65
CLAUDE.md
@@ -274,9 +274,49 @@ See `docs/protocols/operations/OP_06_TROUBLESHOOT.md` for full troubleshooting g
|
||||
|
||||
---
|
||||
|
||||
## Learning Atomizer Core (LAC)
|
||||
## Learning Atomizer Core (LAC) - CRITICAL
|
||||
|
||||
LAC is Atomizer's persistent memory. Every session should contribute to and benefit from accumulated knowledge.
|
||||
LAC is Atomizer's persistent memory. **Every session MUST contribute to accumulated knowledge.**
|
||||
|
||||
### MANDATORY: Real-Time Recording
|
||||
|
||||
**DO NOT wait until session end to record insights.** Session close is unreliable - the user may close the terminal without warning.
|
||||
|
||||
**Record IMMEDIATELY when any of these occur:**
|
||||
|
||||
| Event | Action | Category |
|
||||
|-------|--------|----------|
|
||||
| Workaround discovered | Record NOW | `workaround` |
|
||||
| Something failed (and we learned why) | Record NOW | `failure` |
|
||||
| User states a preference | Record NOW | `user_preference` |
|
||||
| Protocol/doc was confusing | Record NOW | `protocol_clarification` |
|
||||
| An approach worked well | Record NOW | `success_pattern` |
|
||||
| Performance observation | Record NOW | `performance` |
|
||||
|
||||
**Recording Pattern:**
|
||||
```python
|
||||
from knowledge_base.lac import get_lac
|
||||
lac = get_lac()
|
||||
lac.record_insight(
|
||||
category="workaround", # failure, success_pattern, user_preference, etc.
|
||||
context="Brief description of situation",
|
||||
insight="What we learned - be specific and actionable",
|
||||
confidence=0.8, # 0.0-1.0
|
||||
tags=["relevant", "tags"]
|
||||
)
|
||||
```
|
||||
|
||||
**After recording, confirm to user:**
|
||||
```
|
||||
✓ Recorded to LAC: {brief insight summary}
|
||||
```
|
||||
|
||||
### User Command: `/record-learning`
|
||||
|
||||
The user can explicitly trigger learning capture by saying `/record-learning`. When invoked:
|
||||
1. Review recent conversation for notable insights
|
||||
2. Classify and record each insight
|
||||
3. Confirm what was recorded
|
||||
|
||||
### Directory Structure
|
||||
```
|
||||
@@ -288,32 +328,27 @@ knowledge_base/lac/
|
||||
├── session_insights/ # Learnings from sessions
|
||||
│ ├── failure.jsonl # Failures and solutions
|
||||
│ ├── success_pattern.jsonl # Successful approaches
|
||||
│ └── workaround.jsonl # Known workarounds
|
||||
│ ├── workaround.jsonl # Known workarounds
|
||||
│ ├── user_preference.jsonl # User preferences
|
||||
│ └── protocol_clarification.jsonl # Doc improvements needed
|
||||
└── skill_evolution/ # Protocol improvements
|
||||
└── suggested_updates.jsonl
|
||||
```
|
||||
|
||||
### Usage
|
||||
### At Session Start
|
||||
|
||||
**At session start** - Query for relevant insights:
|
||||
Query LAC for relevant prior knowledge:
|
||||
```python
|
||||
from knowledge_base.lac import get_lac
|
||||
lac = get_lac()
|
||||
insights = lac.get_relevant_insights("bracket mass optimization")
|
||||
similar = lac.query_similar_optimizations("bracket", ["mass"])
|
||||
rec = lac.get_best_method_for("bracket", n_objectives=1)
|
||||
```
|
||||
|
||||
**During session** - Record learnings:
|
||||
```python
|
||||
lac.record_insight(
|
||||
category="failure", # or success_pattern, workaround, user_preference
|
||||
context="Modal analysis with CMA-ES",
|
||||
insight="CMA-ES struggles with discrete frequency targets. TPE works better.",
|
||||
confidence=0.8
|
||||
)
|
||||
```
|
||||
### After Optimization Completes
|
||||
|
||||
**At session end** - Record outcomes:
|
||||
Record the outcome for future reference:
|
||||
```python
|
||||
lac.record_optimization_outcome(
|
||||
study_name="bracket_v3",
|
||||
|
||||
Reference in New Issue
Block a user