Skip to main content
dabke reports schedule quality through instruction-level feedback. Feedback is designed for API clients, MCP tools, and LLM consumption. It answers whether scheduling instructions were followed without exposing solver implementation details such as internal constraint buckets.

Compilation feedback

ModelBuilder.compile() returns feedback alongside the solver request:
The canSolve flag is false when structural errors make solving impossible, for example coverage requirements that reference roles no team member has.

Solve feedback

schedule(...).solve(...) returns the same feedback shape after analyzing the solver result:

Feedback structure

A FeedbackReport contains:
  • status: "pass", "has_failures", or "has_errors"
  • summary: check counts by pass, fail, and error
  • details: grouped feedback for one instruction or report-level concern
  • checks: factual checks inside each detail

Outcomes

  • pass: the instruction was followed
  • fail: a soft instruction was evaluated and not fully followed
  • error: compilation or solving found a blocking issue
When an instruction fully passes, dabke emits a concise check for the whole instruction:
When an instruction has failures, dabke groups facts by outcome and merges adjacent dates and time ranges where possible:

Custom rule feedback

Custom rule descriptors should prefer solver artifacts with context for solve-time checks and compile findings for phase errors. Prefer factual messages that describe what happened. Do not include remediation instructions unless your API surface explicitly needs them.