Files
FESADev/phases/1-structure-alignment-refactor/step4.md
T

2.4 KiB

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

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.