Skip to content

madoo.attempts-report/v1

Madoo attempts report — What Repeat Until Accepted did: the body and its version, the policy, every attempt with its run, acceptance, score and feedback, and which attempt was delivered and why.

Reference madoo.attempts-report/v1
Schema id urn:madoo:schema:attempts-report:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.attempts-report/v1 · MCP get_json_schema
  • Produced by: workflow/repeat → report
Field Type Required Rules Description
schema "madoo.attempts-report/v1" yes
body object yes no other fields
body.workflow string or null yes pattern “^wf_[0-9a-f]{32}$” The wf_ ID of the body; null when it was deleted since.
body.version integer yes ≥ 1 The body version every attempt ran: fixed for the whole run.
policy object yes no other fields
policy.max_attempts integer yes ≥ 1; ≤ 5
policy.on_exhausted one of "best", "discard", "fail" yes
policy.minimum_score_to_deliver number or null yes ≥ 0; ≤ 1
item integer or null ≥ 0 The item of the iteration this report belongs to; null when the step is not repeated per item.
attempts array of objects yes min items 1; max items 5
attempts[].attempt integer yes ≥ 1; ≤ 5
attempts[].execution string yes pattern “^run_[0-9a-f]{32}$” The run of this attempt: its trace shows every step of the body.
attempts[].accepted boolean yes
attempts[].score number yes ≥ 0; ≤ 1
attempts[].feedback string or null yes What the body asked the next attempt to correct; the next attempt received it as previous_feedback.
selected_attempt integer or null yes ≥ 1 The attempt delivered as the candidate; null when the result was discarded.
disposition one of "accepted", "best_unaccepted", "discarded" yes accepted: an attempt was accepted. best_unaccepted: none was, the best one is delivered and stays marked as not accepted. discarded: none was and nothing is delivered.
reason string yes Why this attempt was delivered, or why none was.
madoo.attempts-report/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:attempts-report:v1",
"title": "Madoo attempts report",
"description": "What Repeat Until Accepted (workflow/repeat) did: the body it ran, its policy, every attempt in order with the execution it was, whether its body accepted it, its score and its feedback, and which attempt was delivered and why. Derived from the attempts' own runs, never from text a model wrote. Public IDs only.",
"type": "object",
"required": [
"schema",
"body",
"policy",
"attempts",
"selected_attempt",
"disposition",
"reason"
],
"additionalProperties": false,
"properties": {
"schema": {
"const": "madoo.attempts-report/v1"
},
"body": {
"type": "object",
"required": [
"workflow",
"version"
],
"additionalProperties": false,
"properties": {
"workflow": {
"type": [
"string",
"null"
],
"pattern": "^wf_[0-9a-f]{32}$",
"description": "The wf_ ID of the body; null when it was deleted since."
},
"version": {
"type": "integer",
"minimum": 1,
"description": "The body version every attempt ran: fixed for the whole run."
}
}
},
"policy": {
"type": "object",
"required": [
"max_attempts",
"on_exhausted",
"minimum_score_to_deliver"
],
"additionalProperties": false,
"properties": {
"max_attempts": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"on_exhausted": {
"enum": [
"best",
"discard",
"fail"
]
},
"minimum_score_to_deliver": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1
}
}
},
"item": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "The item of the iteration this report belongs to; null when the step is not repeated per item."
},
"attempts": {
"type": "array",
"minItems": 1,
"maxItems": 5,
"items": {
"$ref": "#/$defs/attempt"
}
},
"selected_attempt": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "The attempt delivered as the candidate; null when the result was discarded."
},
"disposition": {
"enum": [
"accepted",
"best_unaccepted",
"discarded"
],
"description": "accepted: an attempt was accepted. best_unaccepted: none was, the best one is delivered and stays marked as not accepted. discarded: none was and nothing is delivered."
},
"reason": {
"type": "string",
"description": "Why this attempt was delivered, or why none was."
}
},
"$defs": {
"attempt": {
"type": "object",
"required": [
"attempt",
"execution",
"accepted",
"score",
"feedback"
],
"additionalProperties": false,
"properties": {
"attempt": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"execution": {
"type": "string",
"pattern": "^run_[0-9a-f]{32}$",
"description": "The run of this attempt: its trace shows every step of the body."
},
"accepted": {
"type": "boolean"
},
"score": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"feedback": {
"type": [
"string",
"null"
],
"description": "What the body asked the next attempt to correct; the next attempt received it as previous_feedback."
}
}
}
}
}