2.3 KiB
2.3 KiB
Step 0: io-contract
Read First
Read these files before editing:
/AGENTS.md/docs/PRD.md/docs/ARCHITECTURE.md/docs/ADR.md/docs/SOLVER_AGENT_DESIGN.md/docs/io-definitions/README.md
Task
Create the feature-level I/O contract for the Abaqus input parser at
/docs/io-definitions/abaqus-input-parser-io.md.
The contract must explicitly state that FESA supports only the documented Abaqus keyword subset, not full Abaqus compatibility. Keep this document at a semantic level. Do not design C++ APIs and do not implement parser code in this step.
Required scope:
- Model data keywords:
*HEADING,*NODE,*ELEMENT,*NSET,*ELSET,*MATERIAL,*ELASTIC, and section keywords needed for V0 bar/truss use. - History data keywords:
*STEP,*STATIC,*BOUNDARY,*CLOAD,*OUTPUT,*NODE OUTPUT, and*ELEMENT OUTPUT. - Syntax policy for comments beginning with
**, case-insensitive keywords, comma-separated parameters and data, blank lines, unsupported keywords, and parse diagnostics. - Internal semantic mapping to
Domain, nodes, elements, sets, materials, properties,AnalysisStep, boundary conditions, loads, and output requests. - HDF5 and reference CSV comparison schema summary consistent with existing PRD/architecture documents. Do not create or modify reference artifacts.
Tests To Write First
No C++ tests are required in this documentation-only step.
Acceptance Criteria
python -m unittest discover -s scripts -p "test_*.py"
python scripts/validate_workspace.py
Verification Procedure
- Run the acceptance criteria commands.
- Confirm the contract does not claim full Abaqus compatibility.
- Confirm every supported keyword has purpose, data requirements, mapping, and unsupported-case behavior.
- Update
phases/abaqus-input-parser/index.jsonstep 0:- success:
"status": "completed","summary": "Abaqus input parser I/O contract added" - error after three attempts:
"status": "error","error_message": "<specific error>" - blocked:
"status": "blocked","blocked_reason": "<specific reason>"
- success:
Forbidden
- Do not implement parser code.
- Do not design C++ APIs.
- Do not run Abaqus, Nastran, or any reference solver.
- Do not generate or modify Abaqus reference CSV files.