Expectation types
paths, not path, for file_exists; use criteria, not prompt, for llm_review. Script checks always use exit code 0 as success and do not accept expectExitCode.
Expectations run concurrently. Metrics run as a second concurrent group; each metric executes a command, parses its stdout as a number, and compares it with threshold using value >= threshold.
LLM review
Anllm_review uses three independent reviewers. For file-changing work, each reviewer can explore with read, glob, and grep tools for up to 20 steps before a separate structured-scoring call. For output-only work, the reviewer skips filesystem exploration and scores the execution output and registered outcomes.
The default dimensions are:
If
dimensions is omitted, Polpo first attempts to generate task-specific dimensions and uses the defaults as fallback. Custom dimensions require name, description, and a weight from 0 to 1; they may also define a numeric rubric.
maxAssessmentRetries.
The expectation’s threshold defaults to 3.0. A mission’s qualityThreshold is an aggregate mission-quality setting and does not replace an explicit llm_review.threshold.
Fix and retry
When an assessed task fails, the runtime may ask the same agent to fix the lowest-scoring problems before consuming a full retry.maxFixAttempts defaults to 2. After that, normal task retry and escalation policy applies. Tasks marked sideEffects move to awaiting_approval before repeating work.
Every assessment is stored on TaskResult.assessment; the previous value moves into assessmentHistory. Triggers are initial, reassess, fix, retry, auto-correct, or judge.
Judge configuration
The reviewer model resolves fromPOLPO_JUDGE_MODEL, then POLPO_MODEL, then the runtime default. POLPO_JUDGE_REASONING can set judge reasoning when no explicit reasoning value is passed. Use a model identifier supported by the configured provider or gateway.