# Sprint Contract: Parser Domain Subset ## Objective Revalidate and repair the Phase 1 Abaqus parser and `Domain` model against the documented subset while preserving strict rejection of unsupported reference features. ## Required Reading - /AGENTS.md - /docs/ARCHITECTURE.md - /docs/ADR.md - /docs/ABAQUS_INPUT_SUBSET.md - /docs/VERIFICATION_PLAN.md - /docs/MITC4_FORMULATION.md ## Scope - Parse Phase 1 keywords into immutable `Domain` objects. - Preserve node, element, set, material, shell section, boundary, load, and step definitions. - Reject `S4R`, `Part/Assembly/Instance`, `*Include`, `NLGEOM=YES`, nonzero prescribed displacement, and unsupported material/section modes. ## Allowed Files - `include/` - `src/` - `tests/` - `docs/ABAQUS_INPUT_SUBSET.md` only for clarifying parser contract - `PLAN.md` - `PROGRESS.md` ## Explicit Non-Goals - Do not implement analysis or assembly. - Do not add `Part/Assembly/Instance` support because `quad_02` contains it. - Do not normalize reference files in parser code. ## Tests To Write First - Parser acceptance tests for every Phase 1 keyword. - Generated and explicit `*Nset` and `*Elset` tests. - Unsupported feature rejection tests for `S4R`, `Part`, `Assembly`, `Instance`, `*Density`, and `NLGEOM=YES`. - Line-numbered diagnostic tests for malformed numeric and DOF fields. ## Reference Artifacts - `references/quad_01.inp` as unsupported provenance. - `references/quad_02.inp` as unsupported original provenance until normalized or parser scope changes. ## Acceptance Commands ```bash python scripts/validate_workspace.py ``` ## Evaluator Checklist - Parser behavior matches `docs/ABAQUS_INPUT_SUBSET.md`. - `TYPE=S4` maps to internal MITC4. - Unsupported stored references are not silently accepted. - Domain objects do not own equation numbers. ## Handoff Requirements - Update `PROGRESS.md` with parser status. - Update `PLAN.md` for unresolved reference compatibility work. ## Do Not - Do not broaden the parser subset without ADR and doc updates.