Files
Atomizer/hq/workspaces/shared/reviews/v2-migration-coherence-audit.md

418 lines
30 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Cross-Document Coherence Audit — V2 Migration Pre-Flight
**Date:** 2026-02-23
**Auditor:** Auditor (Subagent)
**Documents Reviewed:** 5 source document sets, 48 AOM docs (sampled), 4 pillars
**Scope:** Pre-migration alignment verification for Atomizer V2 migration
---
## Executive Summary
**VERDICT: CONDITIONAL PASS — Proceed with Cautions**
The V2 migration can proceed, but **not as-is**. Three critical contradictions and five major gaps require resolution before Phase 1 execution. The documents are directionally aligned on architecture and tool strategy, but they diverge on:
1. **Contracts implementation timing** (contradictory)
2. **Project Standard integration scope** (under-specified in Arsenal V3)
3. **Structural path definitions** (contradictions between Arsenal V3 and Migration Plan V3.1)
### Top 3 Findings
| # | Finding | Severity | Impact |
|---|---------|----------|--------|
| 1 | **Contracts deferral conflict:** Arsenal V3 says "contracts are canonical in architecture doc," Migration Plan V3.1 says "stubs only at P0, implement post-migration" — Architecture doc says "contracts are NEW" (not existing). This creates a circular dependency. | 🔴 CRITICAL | Phase 1 cannot implement contracts that don't exist yet |
| 2 | **Project Standard orphaned in Arsenal V3:** Migration Plan V3.1 added full Project Standard integration (§5.5, templates/, init script) as P1 deliverables. Arsenal V3 Final (the architecture source) doesn't mention Project Standard at all — no templates folder, no init script, no study paths at `03-studies/`. | 🔴 CRITICAL | Arsenal V3 is not the complete architecture — migration plan adds 15+ deliverables not defined upstream |
| 3 | **NX consolidation path mismatch:** Arsenal V3 says `atomizer/processors/geometry/nx_geometry.py`, Migration V3 says `atomizer/nx/` as consolidated NX home with journals/ subdirectory. Both are present in V2 structure tree but with different organizational philosophies. | 🟡 MAJOR | NX code may be split across two locations creating maintenance confusion |
### Recommendation
**APPROVE migration with mandatory pre-Phase-1 actions:**
1. **Resolve contracts chicken-and-egg:** Either (a) write contract stub definitions NOW in architecture doc before migration starts, OR (b) accept that contracts are post-migration work and remove all P0/P1 references to implementing them
2. **Backport Project Standard to Arsenal V3:** Update Arsenal V3 Final (the canonical architecture) to include Project Standard as a first-class component with templates/, init script, and engine --project-root support
3. **Consolidate NX strategy:** CEO decision: Is NX a processor alongside others (`processors/geometry/nx_geometry.py`) OR is it a special legacy subsystem (`nx/` with all NX code consolidated)? Both structures exist in the plan — pick one.
With these three corrections, the migration is **sound and executable**.
---
## A. Structural Alignment
**Question:** Does the V2 repo structure in the migration plan match what Arsenal V3 defines?
### Alignment ✅
| Component | Arsenal V3 Final | Migration Plan V3.1 | Status |
|-----------|------------------|---------------------|--------|
| Three-layer architecture | `contracts/`, `processors/`, `orchestrator/` | ✅ Present in V2 tree | ✅ MATCH |
| Optimization engine | `atomizer/optimization/` | ✅ Present | ✅ MATCH |
| Extractors | `atomizer/extractors/` | ✅ Present | ✅ MATCH |
| Spec/config | `atomizer/spec/` | ✅ Present | ✅ MATCH |
| Dashboard | `dashboard/` | ✅ Present | ✅ MATCH |
| MCP servers | `mcp_servers/` | ✅ Present (placeholder) | ✅ MATCH |
| Knowledge base | `atomizer/knowledge/` | ✅ Present | ✅ MATCH |
### Contradictions 🔴
| Item | Arsenal V3 Says | Migration Plan V3.1 Says | Resolution Needed |
|------|----------------|-------------------------|-------------------|
| **Contracts location** | "Canonical in `ATOMIZER-TOOL-AGNOSTIC-ARCHITECTURE.md` Section 2.1" (Arsenal V3 §2.12.2) | `atomizer/contracts/*.py` files in V2 tree (§2) | ⚠️ **Problem:** Architecture doc (from AOM review) says contracts are NEW design, not existing code. Arsenal says "don't duplicate dataclass definitions" but doesn't provide them. Migration says "stub → implement P1/P2" but Arsenal says "these are canonical already." **CIRCULAR DEPENDENCY.** |
| **NX module organization** | `atomizer/processors/geometry/nx_geometry.py` (Arsenal V3 §4.1 table) | `atomizer/nx/` with `solver.py`, `session_manager.py`, `journals/`, etc. (Migration §2, §3.7) | ⚠️ Arsenal treats NX as one processor among many. Migration treats NX as a special subsystem. Both exist in V2 tree. **SPLIT PERSONALITY.** |
| **Project Standard templates** | ❌ NOT MENTIONED in Arsenal V3 | `templates/project/` + `tools/init_project.py` + engine `--project-root` flag (Migration §2, §3.17, §5.5) | ⚠️ **Arsenal V3 is incomplete.** Migration added ~15 files and integration work that Arsenal never defined. |
### Gaps 🟡
| Gap | Arsenal Defines | Migration Implements | Missing Link |
|-----|----------------|---------------------|--------------|
| **processors/base.py** | Arsenal V3 §4.1: "Abstract base classes (NEW)" | Migration §2: `atomizer/processors/base.py` | ✅ Implied by Arsenal, implemented by Migration — no gap |
| **orchestrator/pipeline.py** | Arsenal V3 §4.1: "Main evaluation loop" (NEW) | Migration §2: `atomizer/orchestrator/pipeline.py` | ✅ Implied by Arsenal, implemented by Migration |
| **Processor categories** | Arsenal V3 lists: geometry/, meshing/, solvers/, postprocessing/, converters/, surrogates/ | Migration §2 has all 6 categories | ✅ Full alignment |
### Naming Consistency ✅
Folder names, module locations, and component boundaries are **consistent** where both documents define them. The contradictions are about *what's included*, not *what it's called*.
**Verdict for Section A: 🟡 MAJOR ISSUES**
- Core architecture alignment is strong (3-layer model, folder structure, component names)
- Contracts and NX placement are contradictory
- Project Standard is a migration-only addition not backed by Arsenal
---
## B. Project Standard Integration
**Question:** Does the migration plan properly implement the Project Standard's folder structure, entry points, KB architecture, and study lifecycle?
### What the Project Standard Defines
From `P-Atomizer-Project-Standard/05-FINAL-RECOMMENDATION.md`:
| Requirement | Specification |
|-------------|--------------|
| **Root structure** | 9 top-level items: README, CONTEXT, BREAKDOWN, DECISIONS, models/, kb/, studies/, playbooks/, deliverables/ |
| **Study numbering** | `{NN}_{slug}` format (01_doe_landscape, 02_tpe_refined, etc.) |
| **KB structure** | 4 folders: components/, materials/, fea/, dev/ |
| **Study lifecycle** | 3 phases: Setup (human) → Execute (machine) → Review (human+machine) |
| **Study internals** | 1_setup/, 2_iterations/, 3_results/, 3_insights/ |
| **Entry points** | README.md (single entry, not PROJECT+AGENT+STATUS split) |
### What Migration Plan V3.1 Implements
From Migration Plan §3.17, §5.5:
| Component | Migration Status | Location |
|-----------|-----------------|----------|
| **Template files** | ✅ ~14 .template files | `templates/project/` |
| **Scaffolding script** | ✅ NEW script | `tools/init_project.py` |
| **Engine integration** | ✅ `--project-root` flag | `atomizer/optimization/engine.py`, `atomizer/study/creator.py` |
| **AOM reference** | ✅ Pillar 2 cross-reference planned | `docs/AOM/02-Operations/` |
### Does Migration Match Project Standard?
| Project Standard Requirement | Migration Plan Implementation | Status |
|-------------------------------|------------------------------|--------|
| **9-item root structure** | Template includes PROJECT.md, AGENT.md, STATUS.md, DECISIONS.md, CHANGELOG.md, 00-context/, 01-models/, 02-kb/, 03-studies/, etc. | ⚠️ **MISMATCH:** Standard recommends **single README.md**, not PROJECT+AGENT+STATUS split. Migration uses OLD spec structure (§9 of spec superseded by §5 final recommendation). |
| **KB 4-folder structure** | Template has design/ (5 branches), analysis/ (7 subdirs), manufacturing/, domain/, introspection/ | 🔴 **CONTRADICTION:** Standard says 4 folders (components/, materials/, fea/, dev/). Template has **5 branches with 15+ subdirs** (the OLD rejected spec). |
| **Study lifecycle** | Engine integration supports `--project-root`, studies at `03-studies/` | ✅ MATCH |
| **Study numbering** | Standard: `{NN}_{slug}`. Engine: compatible | ✅ MATCH |
| **atomizer_spec.json** | Standard: per-study spec at study root. Engine: loads from study path | ✅ MATCH |
### Critical Finding 🔴
**The Migration Plan's Project Standard templates (§3.17 table) are based on the REJECTED SPECIFICATION (00-SPECIFICATION.md), NOT the APPROVED FINAL RECOMMENDATION (05-FINAL-RECOMMENDATION.md).**
Evidence:
- Final Recommendation says: "README.md (single entry point, replaces PROJECT+AGENT+STATUS)"
- Migration template table lists: "PROJECT.md.template, AGENT.md.template, STATUS.md.template"
- Final Recommendation says: "KB 4 folders (components/, materials/, fea/, dev/)"
- Migration template structure shows: "design/, analysis/ with 7 subdirs, manufacturing/, domain/, introspection/"
**The migration is implementing the WRONG standard.**
### Gaps 🟡
| Gap | Description |
|-----|-------------|
| **Template versioning** | Project Standard spec §9 calls for `.atomizer/template-version.json` to track which standard version a project uses. Migration lists this file but doesn't specify version tagging strategy. |
| **Migration script for existing projects** | Standard discusses migrating Hydrotech Beam (~15 min effort). Migration plan doesn't include a migration helper for V1 projects to Project Standard structure. |
**Verdict for Section B: 🔴 CRITICAL FAILURE**
- Migration implements the **rejected spec**, not the **approved recommendation**
- Templates must be completely rewritten before Phase 1
- This affects ~15 files in the migration inventory (§3.17)
---
## C. AOM Consistency
**Question:** Does the migration plan's documentation structure align with the AOM's 4-pillar organization? Would migration break AOM references?
### AOM Structure (from MAP.md)
| Pillar | Docs | Purpose |
|--------|------|---------|
| 01-Philosophy | 9 docs | Mission, architecture, component map, tool-agnostic design |
| 02-Operations | 15 docs | Study lifecycle, protocols, specs, integrations |
| 03-Developer | 10 docs | Codebase, API, extension points, processor dev |
| 04-Knowledge | 6 docs | LAC, KB architecture, failure patterns |
**Total:** 48 docs (40 main docs + Audit/ + Phase-4-LLM-Layer/ + Phase-5-Living-Protocol/)
### Migration Plan's AOM Deployment
From Migration §5:
```
docs/
├── AOM/
│ ├── README.md # MAP (renamed)
│ ├── 01-Philosophy/ # 9 docs
│ ├── 02-Operations/ # 15 docs
│ ├── 03-Developer/ # 10 docs
│ ├── 04-Knowledge/ # 6 docs
│ └── Audit/ # 2 docs
├── protocols/ # OP/SYS/EXT migrated from V1
├── QUICK_REF.md
└── guides/
```
**Alignment:****PERFECT 1:1 MAPPING**
The migration preserves the exact 4-pillar structure. MAP.md → README.md rename is correct (Gitea auto-renders README).
### Path Breakage Check
**Question:** Do any AOM docs reference V1 paths that the migration would break?
Sample from AOM docs reviewed:
- Component Map (§4) references `atomizer/contracts/`, `atomizer/processors/`, `atomizer/orchestrator/` → ✅ These paths exist in V2 structure
- Tool-Agnostic Architecture (§8) describes the 3-layer model → ✅ V2 implements this exactly
- Arsenal Reference would reference MCP servers → ✅ `mcp_servers/` placeholder exists in V2
**Potential Breaks:**
| AOM Doc | Likely References | V2 Status | Risk |
|---------|-------------------|-----------|------|
| 02-Operations/09-NX-Integration | May reference `optimization_engine/nx/` paths | ⚠️ V2 has `atomizer/nx/` — paths changed | 🟡 Needs path updates |
| 03-Developer/01-Codebase-Architecture | Module dependency map | ⚠️ All `optimization_engine.*``atomizer.*` | 🟡 Needs update |
| 03-Developer/03-API-Reference | Import statements | ⚠️ Import paths changed | 🟡 Needs update |
| 04-Knowledge/02-Knowledge-Base-Architecture | May reference old `knowledge_base/` | ✅ V2 has `atomizer/knowledge/` | ✅ Compatible if relative |
**Mitigation:** Migration Phase 0 includes AOM link conversion (§5.1: convert `[[wiki-links]]` → relative MD links). This MUST also update any code paths in AOM docs from `optimization_engine/``atomizer/`.
### AOM Cross-References to Project Standard
Migration §5.5.4 says: "AOM Pillar 2 (Operations) references the Project Standard spec"
**Gap:** The AOM MAP.md reviewed does NOT currently mention Project Standard. The only reference is in Related Projects section pointing to `P-Atomizer-Project-Standard/MAP`.
**Required action:** During AOM deployment (Phase 0), add Project Standard guide to `02-Operations/` (e.g., `02-Operations/16-Project-Organization-Standard.md` or update existing docs to reference templates/).
**Verdict for Section C: 🟢 OK with Minor Updates**
- AOM pillar structure perfectly preserved
- Path updates needed in 35 AOM docs (tracked in Phase 0)
- Project Standard cross-reference is a forward commitment, not a current contradiction
---
## D. Contradictions Table
| Doc1 Says | Doc2 Says | Nature | Severity |
|-----------|-----------|--------|----------|
| **Arsenal V3 §2.2:** "Contract dataclasses are canonical in `ATOMIZER-TOOL-AGNOSTIC-ARCHITECTURE.md` Section 2.1. Do not duplicate." | **Tool-Agnostic Architecture (AOM):** Contracts are described as NEW design pattern. Section 2.1 lists what they should contain but doesn't provide Pydantic/dataclass implementations. | Contracts don't exist yet, but Arsenal references them as canonical source. | 🔴 CRITICAL |
| **Arsenal V3 §2.2:** "All contract details reference Section 2.1 above" (implying contracts are defined) | **Migration V3.1 §2, Phase 1:** "Create contract stubs (docstrings only, no implementation). DEFERRED to post-migration." | Arsenal says contracts exist. Migration says create stubs. Circular dependency. | 🔴 CRITICAL |
| **Arsenal V3 §4.1:** NX listed as `atomizer/processors/geometry/nx_geometry.py` | **Migration §2 + §3.7:** NX consolidated at `atomizer/nx/` with `solver.py`, `session_manager.py`, `journals/` | Is NX a single geometry processor or a subsystem? | 🟡 MAJOR |
| **Arsenal V3 Sprint 3 §5.3:** "Topology Engineer (new)" activated Sprint 3 | **Webster Review §4:** "Topology is post-MVP future (Arsenal V3 §3.1). Role activation conflicts with scope boundary." | Topology Engineer exists in agent roster but topology is explicitly out of scope. | 🟡 MAJOR |
| **Project Standard Final Recommendation:** "README.md (single entry point)" | **Migration §3.17 template table:** "PROJECT.md.template + AGENT.md.template + STATUS.md.template" | Migration implements rejected spec, not approved recommendation. | 🔴 CRITICAL |
| **Project Standard Final Recommendation:** "4-folder KB: components/, materials/, fea/, dev/" | **Migration §3.17 template structure:** "design/ → analysis/ (7 subdirs) → manufacturing/ → domain/ → introspection/" | Migration uses OLD 5-branch spec rejected by final recommendation. | 🔴 CRITICAL |
| **Arsenal V3 §3.1:** OpenFOAM is "Expansion Stack (Sprints 4-6)" | **Arsenal V3 §5.4:** Sprint 4 delivers OpenFOAM lane | ✅ Self-consistent — expansion starts Sprint 4 | 🟢 OK |
| **Arsenal V3 §4.1:** `launch_dashboard.py` listed in root | **Migration §2:** `dashboard/launch_dashboard.py` | Path moved — minor | 🟢 OK |
**Summary:** 3 critical contradictions, 2 major contradictions, 0 architecture-breaking contradictions (the core 3-layer model is fully aligned).
---
## E. Gaps Table
### Defined in Source, Missing from Migration
| Defined In | What's Defined | Missing From | Impact |
|------------|---------------|--------------|--------|
| Arsenal V3 §6 (Agent Roster) | 19 agents: Manager, Technical Lead, Optimizer, NX Expert, Post-Processor, Reporter, Study Builder, Auditor, Researcher, Developer, KB, IT, **Meshing Engineer, CFD Specialist, Coupling Engineer, Topology Engineer, MDO Architect, MCP Engineer**, Secretary | Migration Plan (repo structure) | 🟢 OK — agents are runtime entities, not repo structure. Migration doesn't need to define agents. |
| Arsenal V3 §8 (MCP Servers) | Top 4 MCP servers: MCP-CalculiX, MCP-Gmsh, MCP-Build123d, MCP-pyNastran | Migration §2 | 🟡 **GAP:** Migration has `mcp_servers/` placeholder but no implementation plan or file inventory. Should list README.md at minimum. |
| Tool-Agnostic Architecture (AOM) | Abstract base classes: `SolverProcessor`, `GeometryProcessor`, `MeshProcessor` with specific method signatures | Migration §2 | ✅ Migration says "Create `atomizer/processors/base.py`" — covered. |
| Arsenal V3 §2.3 (AOM Placement) | "All implementation mapping lands inside V2 repo paths under atomizer/contracts/, processors/, orchestrator/, optimization/, mcp_servers/" | Migration Plan V2 tree | ✅ V2 tree includes all 5 paths. Full alignment. |
| Project Standard spec §3 (Study Internals) | Study folder structure: `1_setup/`, `2_iterations/`, `3_results/`, `3_insights/` | Migration Plan, Arsenal V3 | 🟡 **GAP:** Neither Arsenal nor Migration describes study internals structure. Project Standard defines it, but no one implements engine support for `1_setup/model/` copying or `3_insights/` auto-generation. |
### Defined in Migration, Not in Source
| Migration Defines | Source Coverage | Gap Type |
|------------------|----------------|----------|
| **Project Standard templates (~15 files)** | ❌ Not in Arsenal V3. Not in AOM (yet). In separate spec doc only. | 🔴 **CRITICAL:** Arsenal V3 is supposed to be the canonical architecture. It's incomplete. |
| **`atomizer/_compat.py` import shim** | ❌ Not in Arsenal V3 | 🟢 OK — migration-specific transition tool, not architecture |
| **`tools/init_project.py` scaffolding script** | ❌ Not in Arsenal V3 | 🔴 **MAJOR:** If Project Standard is first-class (per Migration §5.5), Arsenal should define this. |
| **`--project-root` engine flag** | ❌ Not in Arsenal V3 | 🔴 **MAJOR:** Needed for Project Standard study paths. Not in architecture spec. |
| **Phase-by-phase rollback procedures (Migration §16)** | ❌ Not in Arsenal V3 or Webster Review | 🟢 OK — operational concern, not architecture |
| **Pre-commit hooks config (Migration §13)** | ❌ Not in Arsenal V3 | 🟢 OK — repo hygiene, not architecture |
**Summary:** 5 major gaps. The biggest: Arsenal V3 doesn't define Project Standard integration, but Migration treats it as first-class architecture.
---
## F. Naming & Path Consistency
**Question:** Do all documents use consistent naming for modules, folders, and components?
### Folder/Module Names ✅
| Component | Arsenal V3 | Migration V3.1 | AOM (Component Map) | Consistent? |
|-----------|------------|---------------|---------------------|-------------|
| Contracts | `atomizer/contracts/` | `atomizer/contracts/` | `atomizer/contracts/` | ✅ |
| Processors | `atomizer/processors/` | `atomizer/processors/` | `atomizer/processors/` | ✅ |
| Orchestrator | `atomizer/orchestrator/` | `atomizer/orchestrator/` | `atomizer/orchestrator/` | ✅ |
| Optimization | `atomizer/optimization/` | `atomizer/optimization/` | `atomizer/optimization/` | ✅ |
| Extractors | `atomizer/extractors/` | `atomizer/extractors/` | `atomizer/extractors/` | ✅ |
| Spec/Config | `atomizer/spec/` | `atomizer/spec/` | `atomizer/spec/` | ✅ |
| Knowledge | `atomizer/knowledge/` | `atomizer/knowledge/` | `atomizer/knowledge/` | ✅ |
| Dashboard | `dashboard/` | `dashboard/` | `dashboard/` | ✅ |
| MCP Servers | `mcp_servers/` | `mcp_servers/` | `mcp_servers/` | ✅ |
**Naming is 100% consistent** where all documents define the same component.
### Module Renaming Consistency ✅
| V1 Name | V2 Name (Arsenal) | V2 Name (Migration) | Consistent? |
|---------|------------------|---------------------|-------------|
| `optimization_engine/core/runner.py` | `atomizer/optimization/engine.py` | `atomizer/optimization/engine.py` | ✅ |
| `optimization_engine/extractors/extractor_library.py` | `atomizer/extractors/registry.py` | `atomizer/extractors/registry.py` | ✅ |
| `optimization_engine/config/` | `atomizer/spec/` | `atomizer/spec/` | ✅ |
### Component Terminology ✅
| Concept | Arsenal V3 | Migration V3.1 | AOM | Consistent? |
|---------|------------|---------------|-----|-------------|
| Universal data types | "Contracts" | "Contracts" | "Data Contracts" | ✅ |
| Tool-specific translators | "Processors" | "Processors" | "Processors" | ✅ |
| Pipeline controller | "Orchestrator" | "Orchestrator" | "Orchestrator" | ✅ |
| Study configuration | "AtomizerSpec v3.0" | "AtomizerSpec v3.0" | "AtomizerSpec" | ✅ |
| Optimization algorithms | "Optuna/pymoo/OpenMDAO" | "Optuna/pymoo" | "Optuna/pymoo" | ✅ |
### Inconsistencies 🟡
| Inconsistency | Where | Impact |
|--------------|-------|--------|
| **NX placement** | Arsenal: `processors/geometry/nx_geometry.py`. Migration: `atomizer/nx/` (full module) + `processors/geometry/nx_geometry.py` (also listed in tree §2). | 🟡 MAJOR — both exist in V2 tree, unclear which is canonical |
| **Surrogates location** | Arsenal: `processors/surrogates/` (9 files). Migration also has `optimization/surrogates/` (GNN). Both exist. | 🟡 MINOR — Tech Lead noted this in V3 review. Need docstring clarification or consolidation. |
**Verdict for Section F: 🟢 GOOD**
- 99% naming consistency across all documents
- NX placement ambiguity is the only significant issue (same as structural alignment finding)
---
## Recommendations (Prioritized)
### 🔴 CRITICAL (Blockers — Must Fix Before Phase 1)
| # | Recommendation | Affected Phases | Effort |
|---|---------------|----------------|--------|
| C1 | **Resolve contracts chicken-and-egg:** Write contract stub definitions in Tool-Agnostic Architecture doc (AOM Pillar 1) NOW, before migration starts. Provide at minimum: class signatures, field lists, docstrings. OR accept contracts are post-migration and remove them from Phase 1 scope entirely. | Phase 0, Phase 1 | 🕐 4 hours (write stubs) |
| C2 | **Rewrite Project Standard templates:** The current template list (Migration §3.17) implements the REJECTED spec. Rewrite all 14 templates to match the APPROVED Final Recommendation: single README.md (not PROJECT+AGENT+STATUS), 4-folder KB (not 5-branch). | Phase 1 | 🕐🕐 8 hours (rewrite 14 templates) |
| C3 | **Backport Project Standard to Arsenal V3:** Update Arsenal V3 Final to include Project Standard as a first-class component. Add: templates/ folder, init script, --project-root flag, study path conventions. Arsenal must be the complete architecture source. | Pre-Phase 0 | 🕐🕐 6 hours (update Arsenal doc) |
### 🟡 MAJOR (High Priority — Resolve in Phase 0 or Phase 1)
| # | Recommendation | Affected Phases | Effort |
|---|---------------|----------------|--------|
| M1 | **Consolidate NX strategy:** CEO decision required. Is NX (a) a processor like any other (`processors/geometry/nx_geometry.py` only), OR (b) a special legacy subsystem (`atomizer/nx/` with all NX code including journals/). Remove one or clearly document why both exist. | Phase 1 | 🕐 2 hours (decide + update docs) |
| M2 | **Update AOM code paths:** During Phase 0 AOM deployment, update 35 AOM docs that reference `optimization_engine/` paths → `atomizer/`. Specifically: 02-Operations/09-NX-Integration, 03-Developer/01-Codebase-Architecture, 03-Developer/03-API-Reference. | Phase 0 | 🕐 2 hours |
| M3 | **Add Project Standard reference to AOM:** Create `docs/AOM/02-Operations/16-Project-Organization-Standard.md` explaining the template system, init script, and --project-root integration. Cross-reference from Study Lifecycle doc. | Phase 0 | 🕐 3 hours |
| M4 | **Clarify study internals implementation:** Project Standard defines `1_setup/`, `2_iterations/`, `3_results/`, `3_insights/` study structure. Migration assumes engine supports this but doesn't specify implementation. Verify `atomizer/study/creator.py` creates this structure, or add to Phase 1 scope. | Phase 1 | 🕐 4 hours (code + verify) |
| M5 | **Document MCP server scope:** Arsenal V3 says top 4 MCP servers (CalculiX, Gmsh, Build123d, pyNastran) are MVP. Migration has `mcp_servers/` placeholder. Add `mcp_servers/README.md` with implementation roadmap, or explicitly defer to post-MVP. | Phase 0 or Phase 2 | 🕐 1 hour (README) |
### 🟢 MINOR (Nice to Have — Address During Migration)
| # | Recommendation | Effort |
|---|---------------|--------|
| N1 | **Topology Engineer activation:** Arsenal activates Topology Engineer in Sprint 3, but topology is post-MVP. Either defer activation or scope role to "benchmark prep only" as Webster suggested. | 🕐 30 min (update agent roster) |
| N2 | **Surrogates consolidation:** `processors/surrogates/` and `optimization/surrogates/` both exist. Add docstring to each `__init__.py` explaining the distinction (processors = classical ML, optimization = GNN). Or consolidate if redundant. | 🕐 1 hour |
| N3 | **Template versioning strategy:** `.atomizer/template-version.json` exists in template list but versioning scheme is undefined. Define format: `{"standard_version": "1.0.0", "deployed_date": "2026-02-23"}`. | 🕐 30 min |
---
## Risk Assessment
| Risk | Likelihood | Impact | Mitigation |
|------|------------|--------|-----------|
| **Contracts undefined causes Phase 1 failure** | HIGH (if not fixed) | CRITICAL | C1: Write stubs NOW or defer contracts |
| **Wrong Project Standard templates deployed** | HIGH (templates are wrong) | CRITICAL | C2: Rewrite templates before Phase 1 |
| **NX code fragmentation** | MEDIUM | MAJOR | M1: Consolidate before Phase 1 |
| **AOM paths broken after migration** | MEDIUM | MAJOR | M2: Update during Phase 0 |
| **Study structure assumptions break** | MEDIUM | MAJOR | M4: Verify engine implementation |
| **Arsenal V3 incomplete as architecture source** | MEDIUM | MAJOR | C3: Backport Project Standard |
---
## Verification Checklist (for CEO/Manager)
Before approving Phase 0 start:
- [ ] **C1 resolved:** Contracts either (a) have stub definitions in AOM, OR (b) are removed from Phase 1 scope
- [ ] **C2 resolved:** Project Standard templates rewritten to match Final Recommendation (README.md single entry, 4-folder KB)
- [ ] **C3 resolved:** Arsenal V3 updated to include Project Standard as first-class component
- [ ] **M1 resolved:** NX consolidation strategy decided and documented
- [ ] **M2 tracked:** AOM path updates added to Phase 0 checklist
- [ ] **M3 tracked:** Project Standard AOM doc added to Phase 0 deliverables
---
## Appendices
### Appendix A: Document Versions Reviewed
| Document | Version/Date | Location |
|----------|-------------|----------|
| Arsenal V3 Webster Review | 2026-02-23 | `Atomizer-AtomasteAI/Development/ARSENAL-V3-WEBSTER-REVIEW.md` |
| Arsenal V3 Final | 2026-02-23 | `Atomizer-AtomasteAI/Development/ARSENAL-V3-FINAL.md` |
| Project Standard Final Recommendation | 2026-02-19 | `P-Atomizer-Project-Standard/05-FINAL-RECOMMENDATION.md` |
| Migration Plan V3.1 | 2026-02-23 (V3.1 amendment) | `Atomizer-AtomasteAI/Development/ATOMIZER-V2-MIGRATION-MASTERPLAN-V3.md` |
| AOM MAP | 2026-02-21 | `P-Atomizer-Operating-Manual/MAP - Atomizer Operating Manual.md` |
| AOM Component Map | 2026-02-22 | `P-Atomizer-Operating-Manual/01-Philosophy/04-Component-Map.md` |
| AOM Tool-Agnostic Architecture | 2026-02-22 | `P-Atomizer-Operating-Manual/01-Philosophy/08-Tool-Agnostic-Architecture.md` |
### Appendix B: Files Counted
- **Arsenal V3:** 1 architecture doc, 6 sprints, 19 agent definitions, 4 MCP servers, 3 architectural layers
- **Migration Plan V3.1:** 8 phases, 163 Python files, 48 AOM docs, 15+ Project Standard templates, 6 verification checklists
- **Project Standard:** 9 top-level items, 14 template files, 4 KB folders, 3 lifecycle phases
- **AOM:** 4 pillars, 48 docs (40 core + 8 auxiliary), 19 agent architecture
### Appendix C: Methodology
1. **Read all 5 source document sets in full** (Arsenal Webster Review, Arsenal Final, Project Standard Final Rec, Migration V3.1, AOM MAP + 2 key architecture docs)
2. **Extract structural definitions** from each (folder paths, component names, module locations)
3. **Cross-reference systematically** across 6 audit dimensions (A-F)
4. **Tag contradictions** by severity (🔴 critical if blocks migration, 🟡 major if causes confusion, 🟢 minor if cosmetic)
5. **Trace gaps** bidirectionally (defined in A but missing from B, AND defined in B but missing from A)
6. **Document every finding** with section references (e.g., "Arsenal V3 §2.2 says X, Migration §3.17 says Y")
7. **Prioritize recommendations** (Critical → Major → Minor)
---
**TASK:** Cross-document coherence audit
**STATUS:** complete
**RESULT:** 3 critical contradictions found (contracts undefined, wrong Project Standard templates, Arsenal incomplete). 5 major gaps identified. Migration can proceed after resolving C1-C3.
**CONFIDENCE:** high
**NOTES:**
- Arsenal V3 and Tool-Agnostic Architecture are directionally sound but have implementation gaps (contracts are described but not defined, Project Standard not included)
- Migration Plan V3.1 is executable AFTER correcting the Project Standard template error (currently implements rejected spec)
- The core 3-layer architecture (contracts/processors/orchestrator) is perfectly aligned across all documents — this is the strongest finding
- NX consolidation ambiguity is solvable with a CEO decision (not a documentation error, just an unstated choice)
- Recommend 1-2 day hold before Phase 0 start to resolve C1-C3
---
*Audit completed by Auditor (Subagent) on 2026-02-23*
*All findings traceable to source documents with section references*
*Severity ratings follow Atomizer audit protocol (🔴🟡🟢)*