73 lines
2.4 KiB
Markdown
73 lines
2.4 KiB
Markdown
# Sprint Contract: IO Parser Extraction
|
|
|
|
## Objective
|
|
Move the Abaqus Phase 1 input parser into the `IO` module while preserving the documented strict parser subset and unsupported-feature diagnostics.
|
|
|
|
## Required Reading
|
|
- /AGENTS.md
|
|
- /PROGRESS.md
|
|
- /PLAN.md
|
|
- /docs/README.md
|
|
- /docs/HARNESS_ENGINEERING.md
|
|
- /docs/ARCHITECTURE.md
|
|
- /docs/ADR.md
|
|
- /docs/ABAQUS_INPUT_SUBSET.md
|
|
- /docs/VERIFICATION_PLAN.md
|
|
- /phases/1-structure-alignment-refactor/step0-architecture-map.md
|
|
- /phases/1-structure-alignment-refactor/step2.md
|
|
|
|
## Scope
|
|
- Extract `KeywordLine`, `ParseResult`, `AbaqusInputParser`, and parser-only helpers into `IO`.
|
|
- Keep parser output in `Domain`.
|
|
- Preserve strict rejection for `S4R`, `Part/Assembly/Instance`, `*Include`, `NLGEOM=YES`, nonzero prescribed displacement, and unsupported keyword parameters.
|
|
- Keep normalized reference behavior for `references/quad_02_phase1.inp`.
|
|
|
|
## Allowed Files
|
|
- `include/fesa/fesa.hpp`
|
|
- `include/fesa/IO/`
|
|
- `src/IO/`
|
|
- `include/fesa/Core/`
|
|
- `src/Core/`
|
|
- `tests/`
|
|
- `CMakeLists.txt`
|
|
- `phases/1-structure-alignment-refactor/index.json`
|
|
- `PLAN.md`
|
|
- `PROGRESS.md`
|
|
|
|
## Explicit Non-Goals
|
|
- Do not add new Abaqus keyword support.
|
|
- Do not accept original `references/quad_02.inp` as a Phase 1 parser input.
|
|
- Do not change `docs/ABAQUS_INPUT_SUBSET.md` unless a purely clarifying note is required.
|
|
- Do not move results or reference comparator code in this step.
|
|
|
|
## Tests To Write First
|
|
- Add or update an include/link test for `fesa/IO` parser headers.
|
|
- Preserve parser acceptance and rejection tests as characterization tests.
|
|
- Ensure original `quad_02.inp` unsupported provenance remains rejected where tested.
|
|
|
|
## Reference Artifacts
|
|
- `references/quad_02.inp`
|
|
- `references/quad_02_phase1.inp`
|
|
|
|
Do not edit these files.
|
|
|
|
## Acceptance Commands
|
|
```bash
|
|
python scripts/validate_workspace.py
|
|
```
|
|
|
|
## Evaluator Checklist
|
|
- Parser code lives in `IO` and does not own analysis or assembly behavior.
|
|
- Parser subset discipline is unchanged.
|
|
- Diagnostics still include enough source context for malformed input.
|
|
- `Domain` remains the parser output boundary.
|
|
- Stored reference compatibility notes remain true.
|
|
|
|
## Handoff Requirements
|
|
- Update this step status in `phases/1-structure-alignment-refactor/index.json`.
|
|
- Record moved parser files and any unsupported-feature behavior verified.
|
|
|
|
## Do Not
|
|
- Do not normalize reference files inside parser code.
|
|
- Do not silently broaden parser compatibility while refactoring.
|