Skip to main content

Planning Outputs

Planning is only useful if you can read the result. Feasbl writes a structured result object to result.json, and the planning-specific part of that result is what this page describes.

Here is a small example:

{
"schema": "feasbl.result.v1",
"job_id": "job_123",
"paradigm": "planning",
"outcome": "succeeded",
"metrics": {
"elapsed_s": 0.42,
"cpu_time_s": 0.39,
"peak_memory_bytes": 10485760
},
"planning": {
"status": "solved",
"makespan": 3,
"plan": [
{
"start_time": 0,
"action": "load-package",
"args": ["box", "A"],
"duration": 1
},
{
"start_time": 1,
"action": "move-truck",
"args": ["A", "B"],
"duration": 1
},
{
"start_time": 2,
"action": "unload-package",
"args": ["box", "B"],
"duration": 1
}
]
}
}

The planning result

The top-level result includes the job id, solver paradigm, outcome, metrics, and optional debug output. The planning result itself lives under the planning field and gives you the plan that Feasbl found.

When planning succeeds, the planning field contains:

  • status - the planning status reported by the solver
  • plan - the ordered list of steps
  • makespan - the total time if the plan has time information

Each plan step includes:

  • action - the action name
  • args - the arguments used for that action
  • start_time - when the step starts, if timing is available
  • duration - how long the step takes, if timing is available

That gives you more than a simple success or failure flag. It gives you the sequence Feasbl found and the timing information that goes with it.

What to expect

  • a structured JSON result
  • a planning section with the ordered steps
  • timing data when the model produces it
  • a status value you can show to a user or operator

If planning fails

If the goal is not reachable from the current state, the top-level result still tells you what happened. You get the job status, any error message, and the solver metrics, even when there is no plan to return.

That is useful because it tells you whether the problem needs a different starting state, a different goal, or a different model.