Purpose
Deterministic sequencing: family campaigns (#3) inside material gates (#2), committed orders protected (#4); reports the naive due-date sequence alongside so the changeover cost of "obvious" ordering is visible.
When to use
After capacity-check in every run.
Inputs
checked.json + changeovers.json (family-to-family hours matrix).
Steps
- Validate against the contract.
- Run scripts/sequence_optimize.py --checked checked.json --changeovers changeovers.json --out optimized.json
- Quote both sequences and both changeover totals verbatim. If the naive sequence misses a committed order once changeovers are counted, lead with that - it is the whole point.
- This is a heuristic, not a solver (#5 graduation note); say so when precision is questioned.
Output
optimized.json - the {schedule} hop.
Grounding requirements
Changeover numbers cite the matrix; lateness calls cite due dates and commitments.
Constraints
- Sequencing is engine-only; the model never hand-edits a sequence, and never trades a committed order for changeover savings (#4.1).
Escalation / uncertainty
Overload (#1.2) or unresolvable lateness: escalate to the planner with the tradeoff stated.