# Step 14: stored-reference-regression ## Sprint Contract ### Objective Add stored-reference regression coverage using accepted Phase 1-compatible cases and preserve `quad_01` as a compatibility/provenance reference. ### Required Reading - /AGENTS.md - /PROGRESS.md - /PLAN.md - /docs/README.md - /docs/HARNESS_ENGINEERING.md - /docs/ABAQUS_INPUT_SUBSET.md - /docs/VERIFICATION_PLAN.md - /docs/RESULTS_SCHEMA.md - /references/README.md - /phases/1-linear-static-mitc4/step9.md - /phases/1-linear-static-mitc4/step13.md ### Scope - Add automated regression tests comparing FESA `U` output to stored `*_displacements.csv` for Phase 1-compatible `TYPE=S4` linear static cases. - Keep `references/quad_01.inp` documented as S4R/NLGEOM provenance and future compatibility target, not a passing Phase 1 parser case. - Add or document reference-case requirements for single-element, multi-element, and curved-shell cases. - Use internal equilibrium tests for RF unless `*_reactions.csv` artifacts are added. ### Allowed Files - `include/**` - `src/**` - `tests/**` - `references/**` - `docs/VERIFICATION_PLAN.md` - `docs/ABAQUS_INPUT_SUBSET.md` only for reference compatibility notes - `PLAN.md` - `PROGRESS.md` - `phases/1-linear-static-mitc4/index.json` ### Explicit Non-Goals - Do not require Abaqus execution locally or in CI. - Do not make `quad_01.inp` pass by adding S4R, Part/Assembly/Instance, or NLGEOM support. - Do not accept missing reference comparisons silently. ### Tests To Write First - Regression test harness test that fails when a required displacement CSV is missing or malformed. - At least one Phase 1-compatible displacement comparison test when a matching reference case exists. - Negative test that `quad_01.inp` remains unsupported for Phase 1 parsing while its CSV can still validate comparator format. ### Reference Artifacts - Required solver regression: at least one Phase 1-compatible `TYPE=S4` `.inp` and matching `*_displacements.csv`. - Format/provenance only: `references/quad_01.inp` and `references/quad_01_displacements.csv`. - Optional RF artifact: `*_reactions.csv`; otherwise RF is checked by internal equilibrium/reaction tests. ### Acceptance Commands ```bash python scripts/validate_workspace.py ``` ### Evaluator Checklist - At least one accepted Phase 1 reference comparison runs if the artifact exists. - Missing required reference artifacts produce a documented block or failing test, not a silent pass. - `quad_01` remains out of Phase 1 parser support. - Reference comparisons use documented columns, node-id matching, and tolerances. ### Handoff Requirements - Record reference cases, comparison results, and missing artifacts in `PROGRESS.md`. - Update `PLAN.md` with remaining reference additions for Phase 1 completion or Phase 2. - Update the matching phase index entry: use `completed` with a one-line `summary`, or `blocked` with `blocked_reason`, or `error` with `error_message`. ## Verification 1. Run the acceptance command. 2. Inspect regression logs or test output for actual CSV comparison. ## Do Not - Do not relax parser restrictions to make an existing reference input pass.