docs: add phase 1 sprint contracts
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
# Step 4: parser-phase1-subset
|
||||
|
||||
## Sprint Contract
|
||||
|
||||
### Objective
|
||||
Complete Phase 1 Abaqus input subset behavior and explicit rejection diagnostics for unsupported features.
|
||||
|
||||
### Required Reading
|
||||
- /AGENTS.md
|
||||
- /PROGRESS.md
|
||||
- /PLAN.md
|
||||
- /docs/README.md
|
||||
- /docs/HARNESS_ENGINEERING.md
|
||||
- /docs/PRD.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ABAQUS_INPUT_SUBSET.md
|
||||
- /docs/VERIFICATION_PLAN.md
|
||||
- /phases/1-linear-static-mitc4/step3.md
|
||||
|
||||
### Scope
|
||||
- Parse `*Node`, `*Element`, `*Nset`, `*Elset`, `*Material`, `*Elastic`, `*Shell Section`, `*Boundary`, `*Cload`, `*Step`, `*Static`, and `*End Step` as documented.
|
||||
- Support generated and explicit set definitions only if documented in `docs/ABAQUS_INPUT_SUBSET.md`.
|
||||
- Reject unsupported Abaqus constructs with clear diagnostics.
|
||||
|
||||
### Allowed Files
|
||||
- `include/**`
|
||||
- `src/**`
|
||||
- `tests/**`
|
||||
- `docs/ABAQUS_INPUT_SUBSET.md` only for clarification of already agreed behavior
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
- `phases/1-linear-static-mitc4/index.json`
|
||||
|
||||
### Explicit Non-Goals
|
||||
- Do not support `S4R`, `Part`, `Assembly`, `Instance`, `*Include`, pressure loads, nonzero prescribed displacement, `*Density`, or `NLGEOM=YES`.
|
||||
- Do not make `quad_01.inp` pass as Phase 1 input.
|
||||
- Do not add geometric/material nonlinearity, dynamics, thermal coupling, or mesh quality diagnostics.
|
||||
|
||||
### Tests To Write First
|
||||
- Positive parser tests for each Phase 1 supported keyword.
|
||||
- Negative parser tests for `S4R`, `Part/Assembly/Instance`, `*Include`, `*Density`, pressure loads, nonzero prescribed displacement, and `NLGEOM=YES`.
|
||||
- Diagnostics tests for missing required parameters, malformed data rows, and invalid labels.
|
||||
|
||||
### Reference Artifacts
|
||||
- Format/provenance only: `references/quad_01.inp` may be used to assert that unsupported features are rejected or documented, not as a passing parser case.
|
||||
|
||||
### Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
### Evaluator Checklist
|
||||
- Supported keyword coverage matches `docs/ABAQUS_INPUT_SUBSET.md`.
|
||||
- Unsupported features fail loudly and specifically.
|
||||
- S4 maps to the internal MITC4 shell element type; S4R remains unsupported.
|
||||
- Tests include both successful subset parsing and negative diagnostics.
|
||||
|
||||
### Handoff Requirements
|
||||
- Record parser coverage, unsupported-feature behavior, and validation in `PROGRESS.md`.
|
||||
- Update `PLAN.md` if a parser blocker remains.
|
||||
- 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 tests to ensure unsupported Abaqus features are not silently accepted.
|
||||
|
||||
## Do Not
|
||||
- Do not widen parser support because a stored reference file happens to contain a keyword.
|
||||
Reference in New Issue
Block a user