2.2 KiB
2.2 KiB
Step 1: core-types-diagnostics
Sprint Contract
Objective
Add core numeric/id types, shell DOF enumeration, diagnostics primitives, and error-result conventions used by later layers.
Required Reading
- /AGENTS.md
- /PROGRESS.md
- /PLAN.md
- /docs/README.md
- /docs/HARNESS_ENGINEERING.md
- /docs/ARCHITECTURE.md
- /docs/ADR.md
- /docs/NUMERICAL_CONVENTIONS.md
- /phases/1-linear-static-mitc4/step0.md
Scope
- Define int64-based ids, indices, and equation-number types.
- Define
doubleas the default scalar precision. - Define the six shell DOFs in the documented order:
UX,UY,UZ,RX,RY,RZ. - Add diagnostics/result primitives with enough context for parser, validation, and solver errors.
Allowed Files
include/**src/**tests/**docs/ADR.mdPLAN.mdPROGRESS.mdphases/1-linear-static-mitc4/index.json
Explicit Non-Goals
- Do not add Domain, parser, DofManager, sparse matrix, or MITC4 element behavior.
- Do not use 32-bit ids, equation numbers, or sparse indices.
- Do not encode global equation ids inside node or element data structures.
Tests To Write First
- Unit tests for id/index/equation type sizes and signedness expectations.
- Unit tests for DOF ordering, component labels, and stable integer mapping.
- Unit tests for diagnostic severity, code, message, and source-location payloads.
Reference Artifacts
- None.
Acceptance Commands
python scripts/validate_workspace.py
Evaluator Checklist
- Core types are reusable without depending on parser, analysis, MKL, TBB, or HDF5.
- DOF labels and order match
docs/NUMERICAL_CONVENTIONS.md. - Diagnostics can carry actionable context for unsupported input and singular systems.
- Tests were added before behavior and pass through validation.
Handoff Requirements
- Record completed work and validation in
PROGRESS.md. - Keep
PLAN.mdfocused on future blockers only. - Update the matching phase index entry: use
completedwith a one-linesummary, orblockedwithblocked_reason, orerrorwitherror_message.
Verification
- Run the acceptance command.
- Inspect tests for explicit int64 and DOF-order assertions.
Do Not
- Do not infer future element or solver APIs beyond what this contract requires.