Skip to content

feat(shipyard): audit robust recovery across immutable scenarios - #2725

Draft
Tristan-Stoltz-ERC wants to merge 13 commits into
research/shipyard-polygon-exact-v0from
research/shipyard-robust-scenario-audit-v0
Draft

Tristan-Stoltz-ERC wants to merge 13 commits into
research/shipyard-polygon-exact-v0from
research/shipyard-robust-scenario-audit-v0

Conversation

@Tristan-Stoltz-ERC

Copy link
Copy Markdown
Contributor

Summary

Adds a separate finite-scenario robustness auditor on top of the tiny exact-polygon and placement work. It is an audit layer, not another optimizer, and does not modify the existing production verifier.

Paradigm shift: robust plans are checked over immutable scenario sets

The caller supplies ground-truth scenario definitions separately from candidate plans. A robust acceptance requires the scenario and plan IDs to match exactly, every required block/reservation/operation/resource-use identity to remain present, mandatory occupancy not to be shortened, modeled operation durations to stay fixed, declared finish-to-start precedence to hold, spatial reservations not to conflict in overlapping time, unary resource reservations not to overlap, and resource uses not to overlap source-declared outages.

Candidate plans cannot change outage windows. Omitting a scenario or mandatory work produces Incomplete; a complete scenario with a genuine spatial/resource/precedence conflict produces NotRobust; only a complete, conflict-free finite scenario set receives RobustlyFeasible. An empty scenario set is rejected rather than passing vacuously.

Conformance coverage

  • Nominal and delayed-clearance scenarios, including a single failing scenario invalidating robust acceptance.
  • Missing scenarios and required block/space/resource commitments.
  • Minimum space-reservation durations and fixed operation durations.
  • Finish-to-start precedence with minimum lag.
  • Unary resource overlap and source-declared crane outages.
  • Half-open endpoint reuse where earlier occupancy ends at the later start tick.
  • Empty scenario-set negative control.

Scope and limits

This V0 models static planar footprints over half-open integer-tick intervals and unary resource uses/outages. It does not model transfer trajectories, swept-volume clearance, crane kinematics, tandem lifts, capacity greater than one, setup/changeover, load charts, stacking/support, floor bearing or probabilistic scenario likelihoods. Passing covers only supplied finite scenarios and the declared model.

Verification status

The implementation and frozen authored tests are committed to the feature branch. No local Rust toolchain was available, so compilation and test success have not been claimed. The exact-head Rust 1.96 formatting, offline test and Clippy-with-warnings-denied workflows are the required gates; keep this PR draft until they pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant