66 lines
2.3 KiB
Markdown
66 lines
2.3 KiB
Markdown
# 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
|
|
|
|
```powershell
|
|
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.
|