SKILL.md
Online Resource Scheduling
Use this skill to build online schedulers that make deterministic decisions from the current observation only.
Core Workflow
Convert each observation into a temporary state, rank pending work, score feasible actions by weighted marginal cost, update the temporary state immediately, then replay the final action list before returning it.
actions = []
temporary_state = copy_resources(observation)
for item in ranked_pending_items(observation):
candidates = enumerate_feasible_actions(item, temporary_state)
if not candidates:
actions.append(defer_or_reject(item))
continue
scored = []
for action in candidates:
deltas = estimate_objective_deltas(action, temporary_state)
score = sum(weights[k] * deltas[k] for k in deltas)
scored.append((score, stable_tie_break(action), action))
chosen = min(scored)[-1]
actions.append(chosen)
apply(chosen, temporary_state)
validate(actions, observation)
return actions
Weighted Marginal Scoring
When a task provides objective weights, use them to compare feasible actions. Avoid fixed rules such as "always first-fit", "always minimize fragmentation", or "always use the tightest slot". Those can be wrong when another objective component has a larger weighted effect.
Suggested generic workflow:
- Read visible objective weights.
- For each pending item, enumerate feasible actions.
- For each feasible action, estimate the change in each objective component.
- Compute
weighted_marginal_score. - Choose the feasible action with the lowest score.
- Apply the action to temporary state before scoring later actions.
weighted_marginal_score =
weight_1 * delta_component_1
+ weight_2 * delta_component_2
+ weight_3 * delta_component_3
+ ...
+ deterministic_tie_break
Feasibility remains a hard filter. Only score feasible actions. Useful components might include resource activation cost, residual-capacity cost, waiting or lateness cost, rejection or unserved-work cost, and fragmentation or stranded-capacity cost.
