Files
FESADev/phases/abaqus-input-parser/step0.md
T
2026-06-12 17:15:05 +09:00

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

  1. Run the acceptance criteria commands.
  2. Confirm the contract does not claim full Abaqus compatibility.
  3. Confirm every supported keyword has purpose, data requirements, mapping, and unsupported-case behavior.
  4. Update phases/abaqus-input-parser/index.json step 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>"

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.