verify_recipe
Verify a candidate recipe against a Guardian master recipe.
Uses deterministic graph-based verification to check technique, temperature, timing, cooking medium, and required ingredients.
Verdict: verdict is strictly PASSED or FAILED and is policy-driven — any CRITICAL
finding fails the recipe; more than 5 WARNINGs also fail. There is no score in the
response (ADR-013): gate on verdict and explain failures from findings.
Field audience: issue is a machine-readable code for programmatic handling — never
show it to end users. Use title and suggested_correction as the user-facing fields.
Returns structured JSON by default (machine-actionable findings and patches); response_format="text" renders a human-readable report. Both formats are transparent (ADR-009 / ADR-018): exact values and ingredient names included.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dish | No | Alias for dish_name — for backward compatibility with production clients. | |
| dish_name | No | Name of the dish to verify against (e.g. 'carbonara', 'rendang', 'roast-chicken', 'confit', 'cheesecake', 'kung-pao', 'fried-chicken', 'brisket', 'wellington', 'cheese-souffle'). Use list_dishes() to see all available recipes and their aliases. | |
| session_id | No | Optional session ID to track an agent's improvement loop across multiple attempts. | |
| master_json | No | Optional user-supplied master SOP to verify against (BYO master, ADR-018), as a JSON string or object using the same schema as catalog masters (dish_name, steps[], required_ingredients[]; see get_master() for a live example). When provided, the bundled catalog is bypassed — the candidate is checked against YOUR spec — and dish_name may be omitted. The response pins the spec via master_hash (sha256) and master_source='user' so the verdict is replayable. | |
| operator_id | No | Optional audit identifier for the calling operator (letters, digits, hyphens; max 64 chars). Tags the verification in the tamper-evident log and compliance record. Defaults to 'anonymous'. | |
| candidate_json | No | The full candidate recipe as a JSON string or object. Expected schema: {"title": "<string>", "cuisine": "<string>", "serves": <int>, "ingredients": [{"name": "<string>", "quantity": "<string>"}], "steps": [{"step_number": <int>, "title": "<string>", "instruction_english": "<string>", "technique": "<string>", "estimated_temperature_c": <number or [min, max]>, "duration_minutes": <number or [min, max]>, "cooking_medium": "<string>"}]} | |
| original_prompt | No | RECOMMENDED for best results. Include the user's original cooking request. Copy the user's exact message that triggered this recipe (e.g., 'Make me a spicy vegan rendang' or 'Generate a traditional carbonara, but healthier'). WITHOUT this parameter: Guardian returns actionable findings with specific ingredient names and technique details — enough to fix most recipes. WITH this parameter: Guardian additionally activates safety context awareness (e.g., flagging honey for infants, raw egg for pregnant users) and personalised feedback matched to dietary needs and flavour preferences. Include it when the user's context matters for safety or personalisation. | |
| response_format | No | Response format: 'json' (default — machine-actionable verdict, findings, and patches) or 'text' (human-readable report). | json |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |