# Linear Static MITC4 Shell Requirements

## Metadata

- feature_id: `linear-static-mitc4-shell`
- title: `Linear Static MITC4 Shell`
- status: `approved`
- owner_agent: `requirement-agent`
- date: `2026-08-13`
- approval_basis: 사용자와 확정한 선형 정적 범위, `S4`/`S4R` 매핑, 6자유도 외부 계약, drilling 안정화, 자동 director 생성, 결과 및 검증 계약
- current_product_state: `requirements-approved-not-implemented`
- formulation_alignment: `docs/formulations/mitc4-shell-formulation.md`는 이 baseline의 6자유도 및 고정 drilling 안정화 계약과 정렬함
- reference_inventory_state: full-integration FESA-MITC4의 Abaqus acceptance comparison은 `reference/shell/`의 S4 input/displacement CSV만 기존 경로와 이름 그대로 사용함; S4R source support는 reference artifact 없이 mapping/kernel/HDF5 tests로 검증함

## Purpose

이 baseline은 승인된 Abaqus `.inp` subset의 4절점 `S4` 또는 `S4R` 요소를
FESA의 단일 MITC4 formulation으로 매핑하고, 소변형·소회전 선형 정적 해석을 수행해
검증 가능한 절점 및 쉘 요소 결과를 authoritative `results.h5`에 기록하는 다음
end-to-end 기능을 정의한다.

FESA는 Abaqus `S4` 또는 `S4R` formulation을 재현한다고 주장하지 않는다. 두 source
element type은 같은 FESA MITC4 formulation으로 매핑하며 source type과 internal
formulation identity를 분리해 보존한다. Abaqus reference comparison은 병진변위
`U1/U2/U3`만 pass/fail에 사용하고 회전 `UR1/UR2/UR3`은 비차단 warning evidence로
사용한다.

이 문서의 승인은 MITC4가 현재 제품에 구현되었다는 뜻이 아니다. Research,
Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및 이후
검증 gate가 순서대로 완료되어야 제품 기능이 된다.

## Source Basis

- 사용자 승인 결정: 선형 정적 실행 범위, `S4`/`S4R` 공통 MITC4 매핑, 전역 6자유도,
  비물리 drilling 안정화, 자동 두께방향 director, 단일층 등방성 재료, 필수 결과와
  displacement 중심 reference 판정
- `docs/reference-papers/MITC4/`: MITC4 director kinematics, assumed transverse shear,
  5-DOF physical kernel, 6-DOF transformation/stabilization 사례 및 shell benchmark 근거
- `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`: end-to-end feature boundary,
  ownership, linear-static lifecycle, deterministic assembly, HDF5, reference immutability 및
  failure atomicity
- `docs/formulations/mitc4-shell-formulation.md`: 후속 정렬이 필요한 선행 draft이며 이
  approved requirements baseline을 변경하는 근거로 사용하지 않음

## In Scope

- 입력 파일당 하나의 `*STEP, *STATIC` 선형 정적 해석
- small displacement와 small rotation
- 4절점 bilinear quadrilateral MITC4 shell
- Abaqus source element type `S4`와 `S4R`의 동일한 FESA MITC4 매핑
- 절점당 전역 자유도 `[UX, UY, UZ, URX, URY, URZ]`
- 3개 병진과 director 접평면 회전 2개로 구성된 물리 MITC4 kernel
- 비물리 local drilling 회전 1개에 대한 고정 수치 안정화
- 막, 굽힘, 횡전단 및 이들의 coupling
- 단일층, 균질 등방성 선형 탄성
- element set별 일정한 양의 두께와 하나의 material을 갖는 `*SHELL SECTION`
- 평면 및 매끄러운 곡면을 근사하는 유효한 사각형 mesh
- midsurface geometry와 element connectivity로부터 초기 두께방향 unit director 자동 생성
- DOF 1~6의 nodal `*BOUNDARY`와 nodal `*CLOAD`
- deterministic assembly와 기존 linear-static partition/factorization/substitution lifecycle
- HDF5 nodal displacement/reaction, shell generalized strain/resultant, in-plane stress, residual 및 energy output
- element invariant, patch, 현재 S4 displacement reference 및 physics verification

## Out Of Scope

- Abaqus full compatibility 또는 Abaqus `S4`/`S4R` formulation equivalence 주장
- Abaqus reduced-integration, hourglass-control 또는 finite-membrane-strain 의미의 재현
- `S3`, `S8`, `S8R`, continuum shell, solid-shell 및 axisymmetric shell
- 다중 step과 step 간 load, boundary 또는 state propagation
- 기하비선형, 재료비선형, 좌굴, modal, dynamic, contact 및 thermal analysis 실행
- composite/laminated shell, orthotropic material, layer orientation 및 층별 integration output
- variable/nodal/distributed thickness, section offset 및 thickness stretch DOF
- explicit nodal normal/director input과 user-defined shell orientation
- shared source node에서 불연속 director를 요구하는 sharp fold, hinge 또는 shell-beam joint
- `*DLOAD`, pressure, gravity, body force, edge traction, follower load 및 current-normal load
- drilling 방향의 nodal moment를 물리 하중으로 취급하는 동작
- `S13/S23` section-point stress와 `S33` stress recovery
- Abaqus reaction, stress, strain 또는 section resultant equality를 release pass/fail로 사용하는 비교
- Abaqus, Nastran 또는 다른 reference solver 실행과 reference artifact 생성·수정·복원

## Analysis Definition

- analysis_type: single-step linear static
- kinematics: small displacement, small rotation, fixed initial geometry/director
- element: four-node bilinear quadrilateral MITC4 shell
- source_element_types: Abaqus `S4`, `S4R`
- internal_formulation: one FESA MITC4 formulation independent of source type
- nodal_dofs: global `[UX, UY, UZ, URX, URY, URZ]`
- physical_local_dofs: three translations and two director-tangent rotations per node
- numerical_local_dof: one nonphysical drilling rotation per node
- deformation_modes: membrane, bending, transverse shear, and coupling
- material_model: single-layer homogeneous isotropic linear elasticity from `E` and `nu`
- section_model: one constant positive thickness and one material per assigned element
- boundary_conditions: nodal essential constraints on global DOFs 1 through 6
- loads: nodal concentrated force/moment; drilling-direction moment excluded
- initial_director: deterministic geometry-derived positive-thickness unit vector
- units: user-consistent unit system; no unit system inferred from `.inp`
- authoritative_output: HDF5 `results.h5`
- reference_pass_fail: global translational displacement `U1/U2/U3`
- reference_warning_only: global nodal rotation `UR1/UR2/UR3`

## Input Requirements

- **FESA-REQ-LSMITC4-001** — The solver shall accept exactly one `*STEP` containing `*STATIC` and shall reject a second analysis step or a non-linear/non-static procedure with a structured unsupported diagnostic.
- **FESA-REQ-LSMITC4-002** — The semantic mapper shall map both `*ELEMENT, TYPE=S4` and `*ELEMENT, TYPE=S4R` to the same FESA MITC4 formulation without claiming Abaqus formulation equivalence.
- **FESA-REQ-LSMITC4-003** — The model and result metadata shall preserve the source element type separately from the internal `FESA-MITC4` formulation identity.
- **FESA-REQ-LSMITC4-004** — Each accepted shell element shall contain exactly four distinct source nodes in the documented bilinear quadrilateral order, and the original source element identity shall remain stable through diagnostics and results.
- **FESA-REQ-LSMITC4-005** — Each shell node shall expose global DOFs `[UX, UY, UZ, URX, URY, URZ]` in that exact order; equation IDs shall not be stored in Node or Element records.
- **FESA-REQ-LSMITC4-006** — The material subset shall accept homogeneous isotropic `*ELASTIC` data containing `E` and `nu`, require finite `E > 0` and `-1 < nu < 0.5`, and reject temperature/field dependence and unsupported material behavior.
- **FESA-REQ-LSMITC4-007** — The section subset shall accept a single-layer `*SHELL SECTION, MATERIAL=<name>` with one finite constant thickness `t > 0` per section assignment.
- **FESA-REQ-LSMITC4-008** — Every active shell element shall resolve to exactly one shell section and exactly one material; missing, conflicting, duplicate or unresolved assignments shall be model errors.
- **FESA-REQ-LSMITC4-009** — A model may contain multiple element sets, constant-thickness shell sections and isotropic materials, but every individual element shall remain single-layer and homogeneous.
- **FESA-REQ-LSMITC4-010** — Composite data, section offset, distributed/nodal thickness, explicit director/normal input and user-defined material orientation shall be rejected as unsupported rather than ignored.
- **FESA-REQ-LSMITC4-011** — The initial nodal director shall be a dimensionless unit vector in the positive thickness direction; scalar thickness shall remain a separate property and shall not be encoded in the director magnitude.
- **FESA-REQ-LSMITC4-012** — The positive element normal candidate shall be derived deterministically from the source node order and midsurface covariant tangent cross product.
- **FESA-REQ-LSMITC4-013** — At a smooth shared node, consistently oriented incident element normal candidates shall be combined by deterministic area-weighted averaging and normalized to form the common nodal director.
- **FESA-REQ-LSMITC4-014** — Nonfinite or zero normal candidates, a nonfinite or zero averaged director, and opposing incident orientations shall fail model validation; this feature does not introduce a calibrated smooth-patch angle.
- **FESA-REQ-LSMITC4-015** — A physical fold or hinge shall be represented with duplicated source nodes so each smooth shell patch owns a separate director; the solver shall not silently average a discontinuous director field.
- **FESA-REQ-LSMITC4-016** — Element geometry validation shall reject duplicate nodes, self-intersection, nonfinite coordinates, zero area, and nonpositive or nonfinite Jacobians at every formulation-required Gauss and tying location; this feature does not introduce calibrated distortion or warp thresholds.
- **FESA-REQ-LSMITC4-017** — The solver shall support nodal `*BOUNDARY` targets resolved by source node label or node set for global DOFs 1 through 6, including existing zero and nonzero prescribed-displacement semantics.
- **FESA-REQ-LSMITC4-018** — The solver shall support nodal `*CLOAD` forces on DOFs 1 through 3 and nodal moments on DOFs 4 through 6 after deterministic aggregation in global coordinates.
- **FESA-REQ-LSMITC4-019** — The aggregated nodal moment component parallel to the approved nodal director shall be rejected as `unsupported-drilling-load`; a drilling-direction moment shall not be carried only by numerical stabilization.
- **FESA-REQ-LSMITC4-020** — `*DLOAD`, pressure, gravity, body force, edge traction and follower load shall remain unsupported at parser/CLI level even if a formulation-only equivalent-load kernel is later tested.
- **FESA-REQ-LSMITC4-021** — The accepted parser subset shall include the existing identity-preserving node, set, material, assembly, boundary, load and single-static-step keywords plus `*ELEMENT, TYPE=S4|S4R` and the approved single-layer `*SHELL SECTION` subset.
- **FESA-REQ-LSMITC4-022** — Identity `*PART/*ASSEMBLY/*INSTANCE` wrappers and multiple identity instances shall preserve `SourceEntityId`; instance transforms, nested assembly and dependent/independent mesh semantics shall remain unsupported unless separately approved.
- **FESA-REQ-LSMITC4-023** — Output-request keywords in the existing no-op allowlist shall not alter mandatory FESA results, and unsupported model-affecting keywords outside the allowlist shall be errors.

## Architecture and Execution Requirements

- **FESA-REQ-LSMITC4-024** — `Domain` shall own parsed shell elements, material/section assignments, source identity and initial directors; `AnalysisModel` shall expose the active single-step view without copying Domain objects.
- **FESA-REQ-LSMITC4-025** — `DofManager` alone shall own six-DOF node definitions, full/free equation numbering, constraint mappings, shell scatter maps and sparse-pattern ownership.
- **FESA-REQ-LSMITC4-026** — Linear-static `AnalysisState` shall own only the solution, force/residual/reaction, shell recovery and energy rows needed by this procedure and shall not preallocate nonlinear director history, iteration state, velocity or acceleration.
- **FESA-REQ-LSMITC4-027** — Element-local shell calculations shall use independent buffers and global sparse assembly shall preserve stable source-element ordering, deterministic COO ordering and fixed reduction independent of thread count.
- **FESA-REQ-LSMITC4-028** — The linear-static lifecycle shall assemble and partition stiffness, factorize `Kff`, then assemble loads, form `Ff-Kfc*dc`, substitute, reconstruct the full displacement, recover the full residual and only then commit results.
- **FESA-REQ-LSMITC4-029** — Constrained reactions and free-equilibrium evidence shall be recovered from the assembled full residual `K*d-F`; the shell feature shall not define reaction by separately summing recovered element resultants.
- **FESA-REQ-LSMITC4-030** — `S4` and `S4R` source elements with identical geometry, properties, constraints and loads shall execute the same FESA MITC4 numerical path; only preserved source metadata may differ.

## Numerical Formulation Boundary Requirements

- **FESA-REQ-LSMITC4-031** — The physical MITC4 kernel shall use three translations and two director-tangent rotations per node and shall not treat the drilling rotation as a physical strain variable.
- **FESA-REQ-LSMITC4-032** — The six-DOF element embedding shall transform global nodal rotations into two director-tangent components and one director-parallel drilling component using deterministic right-handed orthonormal frames.
- **FESA-REQ-LSMITC4-033** — The drilling contribution shall be a symmetric positive numerical stabilization of the four director-parallel coordinates and shall not define a physical drilling strain or load channel.
- **FESA-REQ-LSMITC4-034** — Let `R+` be the finite strictly positive diagonal entries of the physical local stiffness belonging only to the eight director-tangent rotational DOFs. The element shall use `k_ref=min(R+)`, `k_d=10^-3*k_ref`, `K_drill_local=k_d I4`, and the documented drilling transformation `T_d`; translational diagonals shall never enter `R+`.
- **FESA-REQ-LSMITC4-035** — Drilling stabilization shall not contribute to physical membrane, bending or transverse-shear generalized strain/resultant, section-point stress, or separately reported result quantities.
- **FESA-REQ-LSMITC4-036** — An otherwise accepted element with no finite strictly positive entry in `R+` shall fail numerical validation deterministically; coefficient sweeps, plateau selection, conditioning calibration, artificial-energy ratios, and drilling-specific result datasets are outside this feature.
- **FESA-REQ-LSMITC4-037** — Source `S4R` shall not select reduced integration or Abaqus hourglass control; all accepted `S4` and `S4R` inputs shall use the single quadrature and MITC tying contract approved by the FESA formulation.
- **FESA-REQ-LSMITC4-038** — The stabilized element shall retain exactly six physical rigid-body modes within the approved normalized tolerance, preserve stiffness symmetry and coordinate-transformation energy, and have positive energy for every accepted non-rigid physical deformation mode.

## Output Requirements

- **FESA-REQ-LSMITC4-039** — The sole authoritative solver output shall be HDF5 `results.h5`; the writer shall validate and close a temporary candidate before replacing the final path and shall not leave an incomplete final file after failure.
- **FESA-REQ-LSMITC4-040** — Metadata/model output shall include schema and solver versions, source input identity, user-consistent unit label, global/local coordinate conventions, source element type, internal formulation, stable node/element identities, shell section/material identity and initial nodal director.
- **FESA-REQ-LSMITC4-041** — Every node shall have global displacement `[U1,U2,U3,UR1,UR2,UR3]` and full-residual reaction `[RF1,RF2,RF3,RM1,RM2,RM3]` rows in stable source identity order.
- **FESA-REQ-LSMITC4-042** — Every required shell integration location shall output local generalized strain components `[E11,E22,G12,K11,K22,K12,G13,G23]` with membrane/shear strain dimensionless and curvature dimension `1/length`.
- **FESA-REQ-LSMITC4-043** — The same shell locations shall output local section resultant components `[N11,N22,N12,M11,M22,M12,Q13,Q23]`, where `N` and `Q` have dimension `force/length` and `M` has dimension `force` as moment resultant per unit edge length.
- **FESA-REQ-LSMITC4-044** — Each required shell location shall output local in-plane stress `[S11,S22,S12]` at bottom, middle and top section positions with dimension `force/length^2`; `S33` shall be documented as the plane-stress assumption and `S13/S23` point stress shall not be emitted.
- **FESA-REQ-LSMITC4-045** — Result rows shall identify source element, integration/tying or recovery location, natural coordinates, section position, local frame/director and component order without averaging mismatched locations.
- **FESA-REQ-LSMITC4-046** — The output shall include free-DOF residual evidence, total force/moment equilibrium metrics and physical shell strain energy with dimension `force*length` and deterministic aggregation order; no drilling-specific stiffness, ratio or energy dataset is required.
- **FESA-REQ-LSMITC4-047** — Abaqus output requests shall neither suppress nor expand the mandatory HDF5 quantity inventory; any deterministic FESA CSV projection shall remain a debugging/review view rather than official solver output.
- **FESA-REQ-LSMITC4-048** — Nonfinite recovery values, inconsistent component/location inventory or failure to finalize required HDF5 rows shall fail the analysis without committing a partial successful state.

## Verification Requirements

- **FESA-REQ-LSMITC4-049** — Every production behavior shall follow project TDD `RED -> GREEN -> VERIFY`, have a related C++ test, and later pass MSVC x64 Debug CMake/CTest with no new warning; this requirements phase shall not run Harness or implementation validation.
- **FESA-REQ-LSMITC4-050** — Element invariant tests shall cover frame orthonormality/handedness, Jacobian sign, stiffness symmetry, coordinate-transformation energy invariance, six physical rigid modes, deformation-mode positivity and deterministic repeatability.
- **FESA-REQ-LSMITC4-051** — Normalized algebraic acceptance shall use `1e-12` for symmetry, frame orthonormality and transformation-energy invariance and `1e-10` for rigid-mode action, linear-system residual and global equilibrium unless Numerical Review approves and documents an evidence-backed scale-aware replacement before Implementation Planning.
- **FESA-REQ-LSMITC4-052** — Patch verification shall independently cover constant membrane strain/stress, pure bending, transverse shear and twist, including sign and component-order checks for generalized strain, resultant and recovered in-plane stress.
- **FESA-REQ-LSMITC4-053** — The implementation shall pass the formulation-defined element invariants and patch/manufactured tests plus the declared S4 displacement reference case; an expanded locking, distortion or curved-shell benchmark portfolio is not an implementation-completion gate for this feature.
- **FESA-REQ-LSMITC4-054** — Geometry validation tests shall cover the exact accepted/rejected conditions defined by the formulation and I/O contract; `NR-O03` smooth-director calibration and `NR-O04` distortion/warp threshold sweeps are not required tests.
- **FESA-REQ-LSMITC4-055** — Additional pinched-cylinder, hemispherical-shell, Scordelis-Lo or mesh-convergence studies may be added later as nonblocking research or release evidence, but are not required for Implementation Planning or feature completion.
- **FESA-REQ-LSMITC4-056** — Drilling verification shall check the fixed formula in Requirement 034, symmetry, positivity, deterministic assembly, removal of the four nonphysical local drilling null modes, and exclusion from physical recovery; coefficient sweeps and drilling-energy checks are not required.
- **FESA-REQ-LSMITC4-057** — Physics verification shall check load/reaction balance, global moment balance, displacement direction, symmetry, energy positivity, result sign and consistency between assembled residual and recovered shell resultants.

## Verification Quantities

- nodal_displacement: required, global six components; `U1/U2/U3` reference pass/fail and `UR1/UR2/UR3` warning-only
- reaction: required, global six components from full residual; internal physics verification
- shell_generalized_strain: required, local eight components at documented locations
- shell_section_resultant: required, local `N/M/Q` eight components at documented locations
- stress: required, local bottom/middle/top `[S11,S22,S12]`; Abaqus equality comparison N/A
- residual: required, free-DOF and normalized global equilibrium evidence
- energy: required for the physical shell strain energy; drilling-specific energy output is not required
- modes_and_invariants: required, six physical rigid modes, symmetry, transformation invariance and positive deformation energy

## Tolerance Policy

- **FESA-REQ-LSMITC4-058** — Abaqus reference pass/fail shall apply only to matched global `U1/U2/U3` rows using the fixed absolute tolerance `abs(fesa-reference) <= 1.0e-5` for every row.
- **FESA-REQ-LSMITC4-059** — MITC4 row tolerance and tolerance-normalized error shall not depend on `reference_scale`, a row-specific denominator, zero clamp or component magnitude; a reference scale may be reported only as non-decision diagnostic information.
- **FESA-REQ-LSMITC4-060** — The fixed `1.0e-5` U tolerance is expressed in the model's user-consistent length unit and is independent of the approved B33 component-scale mixed tolerance.
- **FESA-REQ-LSMITC4-061** — Global `UR1/UR2/UR3` rows shall use the same fixed absolute value `1.0e-5` and shall be fully reported; an exceedance emits a deterministic nonblocking warning and never changes pass/fail.
- **FESA-REQ-LSMITC4-062** — The fixed `1.0e-5` UR tolerance is dimensionless. No separate UR large-error or drilling-energy threshold is required.
- **FESA-REQ-LSMITC4-063** — Missing, extra, duplicate, nonfinite, schema-mismatched or source-identity-mismatched rows shall fail artifact/schema validation before numeric tolerance evaluation for both U and UR inventories.
- **FESA-REQ-LSMITC4-064** — The comparison report shall record each U/UR row decision, maximum absolute error, fixed-tolerance-normalized error, RMS error, vector-norm error and worst source row/component; nonblocking UR warnings shall not be omitted from an otherwise passing report.

## Reference Artifact Requirements

The approved lightweight acceptance inventory uses only the existing S4 paths below.
Every file under `reference/` remains read-only; its name is an identity, not a
canonical/legacy-policy decision.

- **FESA-REQ-LSMITC4-065** — The S4 case shall use `reference/shell/shell.inp` and `reference/shell/shell displacements.csv` without creating, renaming, rewriting or repairing either file.
- **FESA-REQ-LSMITC4-066** — No S4R Abaqus artifact shall be required or consumed by this feature's reference acceptance comparison. S4R source support shall instead be verified by parser, common-kernel, deterministic assembly and HDF5 source-metadata tests; any existing `reference/shellR/` files remain untouched optional evidence.
- **FESA-REQ-LSMITC4-067** — Reference readiness requires only the declared input and required displacement CSV, FESA `results.h5`, deterministic source-node/component mapping, and Requirements 058-063 tolerance/precheck rules. README, `metadata.json`, canonical naming, provenance, Abaqus version, duplicated model semantics, and a schema version are not required gates; a present `metadata.json` is optional read-only context.
- **FESA-REQ-LSMITC4-068** — Artifact validation shall require unique finite displacement rows and deterministic source-node/component identity before comparison; it shall not attempt to establish Abaqus internal formulation equivalence.
- **FESA-REQ-LSMITC4-069** — The sole declared Abaqus comparison case is `reference/shell/` S4 because FESA-MITC4 uses full `2 x 2 x 2` integration. S4R source-label coverage is satisfied by the non-reference tests in Requirement 066; no expanded reference portfolio is required for this feature.
- **FESA-REQ-LSMITC4-070** — Reference verification shall compare FESA HDF5 global nodal displacement rows directly against Abaqus displacement CSV rows by model, step/frame, source node and component identity; a FESA-generated CSV view shall not become the authoritative comparison source.
- **FESA-REQ-LSMITC4-071** — Abaqus reaction, stress, strain and shell force/moment output may be retained as review evidence if present but shall not change the approved `U1/U2/U3` pass/fail boundary or become an undeclared equality gate.
- **FESA-REQ-LSMITC4-072** — FESA agents shall not execute Abaqus or another reference solver and shall not generate, modify, restore or normalize reference artifacts during requirements, research, formulation, implementation or verification unless a later phase explicitly authorizes that operation.

## Requirement Verification Matrix

Each range row below applies its verification method and acceptance criteria to every
individual requirement ID in that inclusive range; the ranges cover `001` through `072`
without gaps or overlap.

| id range | requirement theme | category | source | priority | verification method | acceptance criteria | tolerance/decision owner | downstream agents | status |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `001` | Single linear-static step | analysis | User approval; PRD/ADR linear-static lifecycle | must | Parser/semantic negative and CLI integration tests | One supported static step runs; other procedures or a second step fail deterministically | Exact procedure inventory | I/O Definition; Implementation Planning | approved |
| `002-004` | `S4`/`S4R` mapping and identity | input/model | User approval | must | Parser/semantic/HDF5 metadata tests | Both source types map to one MITC4 path and preserve distinct source metadata and four-node identity | Exact element/type identity | I/O Definition; Implementation Planning | approved |
| `005` | Six global nodal DOFs | model | User approval; project DOF convention | must | DofManager and HDF5 schema tests | Exact component order and no distributed equation ownership | Exact ordering | Formulation; I/O Definition; Implementation Planning | approved |
| `006-010` | Isotropic material and single-layer section | input/model | User approval | must | Parser, mapping and validation tests | Valid `E,nu,t` resolve once per element; excluded section/material meanings fail | Exact inequalities; finite values | Research; I/O Definition; Implementation Planning | approved |
| `011-016` | Initial director and geometry validity | geometry | User approval; MITC director kinematics | must | Geometry/unit/property-based tests | Deterministic unit directors for supported valid meshes; explicitly invalid mappings fail | Exact formulation/I/O predicates; no `NR-O03`/`NR-O04` calibration gate | Formulation; I/O Definition; Implementation Planning | approved |
| `017-020` | Boundary and nodal-load subset | input/load | User approval | must | Parser/semantic/load tests | Global BC/CLOAD works; director-parallel moment and distributed loads fail | Exact-zero/projection rule from Formulation and I/O | Formulation; I/O Definition; Implementation Planning | approved |
| `021-023` | Parser subset, wrappers and no-op policy | input | User approval; ADR-003/013/018 | must | Parser diagnostic and semantic identity tests | Only approved meanings affect Domain; excluded meanings fail closed | Exact keyword/diagnostic inventory | I/O Definition; Implementation Planning | approved |
| `024-030` | Ownership, deterministic assembly and linear-static execution | architecture/execution | PRD; ADR-004/007/008/009/016/017 | must | Unit, orchestration and repeated-thread-count tests | Ownership boundaries, event order, residual reaction and deterministic bytes/rows match | `1e-12` deterministic numeric target where applicable | Numerical Review; Implementation Planning | approved |
| `031-038` | 5-DOF physics embedded in 6-DOF with fixed drilling stabilization | numerical boundary | User approval; MITC literature and thesis 6-DOF discussion | must | Formulation review, invariant and rank tests | Exact `10^-3` positive rotational-diagonal rule; physical outputs exclude drilling | Fixed by Requirements 033-036 | Formulation; Numerical Review; Implementation Planning | approved |
| `039-048` | Mandatory HDF5 output and failure atomicity | output | User approval; ADR-005/016/018 | must | Recovery, schema, identity, nonfinite and atomicity tests | Every quantity/location/unit/identity exists; failure commits no partial success | Exact component/location inventory; I/O Definition owns schema | Formulation; I/O Definition; Implementation Planning | approved |
| `049-057` | TDD, invariants, patch, declared reference and physics | verification | User approval; shell formulation evidence; project process | must | CTest evidence, analytical/patch tests, the S4 reference case and physics review | Required tests pass; removed calibration/portfolio checks are not reintroduced | `1e-12` symmetry/frame; `1e-10` rigid/residual | Numerical Review; Implementation Planning | approved |
| `058-060` | Translational displacement pass/fail tolerance | tolerance | User approval; ADR-020 | must | Comparator unit/integration tests and report review | Every matched U row uses fixed absolute `1.0e-5` without scale, clamp or omission | Fixed by Requirements 058-060 | Reference Verification | approved |
| `061-062` | Rotational warning-only comparison | tolerance/warning | User approval; ADR-020 | must | Comparator/diagnostic tests and report review | UR never changes pass/fail; fixed absolute `1.0e-5` exceedance emits a deterministic warning | Fixed by Requirements 061-062 | Reference Verification | approved |
| `063-064` | Row/schema failure and report completeness | reference verification | User approval; ADR-005/014/018 | must | Negative comparator and report-schema tests | Invalid inventory fails before numeric comparison; all U/UR metrics remain visible | No ignored invalid rows | I/O Definition; Reference Verification | approved |
| `065-068` | Exact S4 reference-case inventory, S4R exclusion and row validity | reference | User declaration; ADR-019 | must | Read-only S4 inventory, source-row/component precheck and S4R non-consumption test | Two declared S4 paths exist; required rows are unique, finite and deterministically mapped; S4R artifacts are not required or consumed | Requirements `058-063` | Reference Model; Reference Verification | approved |
| `069-071` | S4 reference coverage and displacement-only comparison | reference | User approval | must | HDF5-to-CSV comparison | Declared S4 case only; U blocks and UR only warns; S4R mapping remains independently tested | Requirements `058-064` | Reference Verification; Physics Evaluation | approved |
| `072` | Reference solver/artifact immutability | governance | User/project policy; ADR-010 | must | Process audit and Git diff | No unapproved execution or artifact mutation | Exact zero mutations | All downstream agents | approved |

## Open Questions and Required Downstream Decisions

No user or numerical calibration decision remains before Implementation Planning. Formulation
shall retain exact quadrature, tying interpolation, local-axis, sign and recovery definitions.
Future geometric-nonlinear execution remains separately unauthorized even though its residual
and tangent derivation may remain in the formulation document.

## Downstream Handoff

### Research Agent

- Establish source-backed MITC4 linear kinematics, tying, quadrature, shear correction and benchmark applicability.
- Record the thesis drilling rule and the approved dimensional restriction to positive physical rotational diagonals; do not reopen coefficient calibration.
- Preserve nodal-director and geometry evidence as implementation guidance without creating `NR-O03`/`NR-O04` calibration gates.

### Formulation Agent

- Revise `docs/formulations/mitc4-shell-formulation.md` to align with global 6-DOF input/output and a physical 5-DOF MITC4 kernel plus numerical drilling embedding.
- Keep current-product equations strictly linear static; retain geometric-nonlinear residual/tangent only as clearly separated future formulation.
- Define local frames, transformations, generalized component order, quadrature/tying, stress/resultant recovery and consistent units/signs.
- Do not introduce distributed-load product support or make `S4R` select reduced integration.

### Numerical Review Agent

- Independently review the revised formulation for dimensions, rigid modes, rank, symmetry, invariance, Jacobian/director handling and separation of fixed drilling stabilization from physical recovery.
- Treat drilling calibration/energy-ratio checks and `NR-O03`/`NR-O04` as removed scope, not missing evidence.

### I/O Definition Agent

- Define the exact Abaqus keyword/data subset for `S4`, `S4R`, single-layer `*SHELL SECTION`, material, BC and CLOAD semantics.
- Define source identity, auto-director data, unsupported-drilling-load projection, diagnostics and exact HDF5 dataset/row schemas without drilling-specific result datasets.
- Preserve source element type separately from FESA formulation and define bottom/middle/top stress location identity.

### Reference Model Agent

- Record only the exact existing S4 input/displacement CSV paths from Requirement 065 as acceptance artifacts and keep every existing reference artifact read-only.
- Do not consume the S4R bundle in reference verification; route S4R source support to parser/common-kernel/HDF5 tests from Requirement 066.
- Define only the HDF5-to-CSV source-node/component projection and the approved fixed absolute MITC4 tolerance `1.0e-5`; do not add bundle administration or portfolio gates.

### Implementation Planning Agent

- Do not start until Research, revised Formulation, Numerical Review, I/O and lightweight Reference Model inventory are mutually consistent.
- Trace every `must` requirement to RED/GREEN/VERIFY tests and preserve current solver ownership, deterministic assembly and failure-atomic HDF5 boundaries.
- Use the project Harness skill to propose self-contained implementation Steps for user approval, then write only the approved phase-planning files; do not execute Harness without a separate explicit request.
- Include tests for source-type mapping, auto directors, fixed drilling rank/separation, required recovery quantities, row failures and S4-only U-versus-UR comparison behavior; retain non-reference S4R source mapping coverage and exclude coefficient sweeps, drilling energy and `NR-O03`/`NR-O04`.
