Small, inspectable building blocks for turning engineering and simulation outputs into source-backed, reproducible evidence. The v0.2 contract accepts the v0.1 example while validating lifecycle precedence, hexadecimal SHA-256 digests, unique IDs, resolvable claims, and typed frame/time markers. The toolkit is designed for human-reviewed workflows: it records scope, provenance, solver state, units, coordinates, frames, and claim readiness without pretending that a green solver exit code proves physical correctness.
This is a clean-room, Apache-2.0 repository. The examples are synthetic and contain no ODB, CAE, manuscript, credential, or private project data.
| Skill | Purpose |
|---|---|
| evidence-contract | Define the smallest testable contract before collecting results. |
| provenance-ledger | Bind every input and observation to an identifier, digest, unit system, and transform history. |
| solver-status-gate | Separate datacheck, solver completion, physical review, and publication readiness. |
| result-audit | Audit signs, units, coordinates, frames, regions, baselines, and simple bounds. |
| claim-readiness-audit | Map each prose claim to evidence and expose blocked or conditional links. |
| reproducible-reporting | Assemble a deterministic manifest, environment record, command log, and handoff report. |
The standard-library checker at scripts/evidence_check.py validates a compact JSON contract. It is a structural gate, not a replacement for an Abaqus run, an ODB review, or an engineering sign-off.
python -B scripts/evidence_check.py examples/synthetic/contract.json
python -B -m unittest discover -s tests -vThe synthetic contract should print PASS. Changing solver_status.physics_review to not_started demonstrates the CONDITIONAL exit code (2). Missing source records or unbound evidence returns BLOCKED.
Every contract records:
- an
artifact_idand explicitscope(model, step, region, and other boundaries); - non-empty
inputswithsource_id, SHA-256, and units; - separate
solver_statusvalues fordatacheck,analysis, andphysics_review; - field/history observations with source IDs, field names, units, coordinate system, and valid non-negative frame or finite non-negative time; static-audit/document rows are exempt from frame/time;
- claims whose
evidence_idsresolve to observations.
The contract intentionally keeps the final decision visible. A failed status in any of datacheck, analysis, or physics_review blocks the contract; otherwise any pending/required/not-run state is conditional; only complete/passed/reviewed states across all three can pass. A calculation can be complete while a claim remains conditional or blocked until physical review, baseline comparison, or source reconciliation is complete.
The deterministic from_abaqus_audit.py adapter accepts the companion Abaqus report shape (input_digest plus findings) and emits a static-only 0.2 contract. It can also hash a model input file with --model-input:
python -B scripts/from_abaqus_audit.py examples/cross-repo/abaqus-agent-report.json contract.json
python -B scripts/evidence_check.py contract.jsonThe public cross-repository example is synthetic. Repeating the conversion produces byte-identical output and the checker returns CONDITIONAL because no solver or physical-review gate is being asserted.
- Architecture
- Quickstart and extension guide
- Claim lifecycle
- Contributing
- Security and data boundary
- Roadmap
- Citation metadata
The companion abaqus-agent-skills repository focuses on model construction and review. This repository is deliberately solver-agnostic so that the same evidence contract can wrap Abaqus, other finite-element solvers, laboratory measurements, or analytical baselines.