{
  "schemaVersion": "1.0",
  "item": {
    "slug": "food-cal-order",
    "name": "Food Calendar Order",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/ThisIsJeron/food-cal-order",
    "canonicalUrl": "https://clawhub.ai/ThisIsJeron/food-cal-order",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/food-cal-order",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=food-cal-order",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/doordash.md",
      "references/grubhub.md",
      "references/ubereats.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/food-cal-order"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/food-cal-order",
    "agentPageUrl": "https://openagent3.xyz/skills/food-cal-order/agent",
    "manifestUrl": "https://openagent3.xyz/skills/food-cal-order/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/food-cal-order/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Food Calendar Order",
        "body": "Place food delivery orders via browser automation, triggered by calendar events."
      },
      {
        "title": "Security & Prerequisites",
        "body": "Read before using this skill.\n\nChrome profile access: This skill opens your local Chrome profile, which contains your saved logins, payment methods, and delivery addresses. Sub-agents will interact with these directly.\nReal charges: Confirming an order will charge your saved payment method. There is no sandbox — this is a live transaction.\nTrusted trigger source: Only calendar events you created yourself should trigger this skill. Events created or modified by others (shared calendars, external invites) may not reflect your intent. Verify event origin before proceeding.\nMandatory confirmation: A pre-checkout summary will be presented before any order is placed. You must explicitly confirm with \"yes\" — any other response aborts the order."
      },
      {
        "title": "Direct Mode",
        "body": "Specific service and restaurant provided.\n\nTitle: \"DoorDash: Chipotle\"\nDescription: \"burrito bowl, chicken, guac\""
      },
      {
        "title": "Discovery Mode",
        "body": "Criteria-based; searches all services to find best match.\n\nTitle: \"Thai food, high ratings, under $30, food for 2\"\nDescription: \"no shellfish, prefer noodles\""
      },
      {
        "title": "Calendar Event Parsing",
        "body": "Always read both the title AND description of the calendar event.\n\nTrust warning: Only process events that appear to have been created by the calendar owner. If an event was recently modified by an external party (e.g., a shared calendar attendee or external invite), note this explicitly in the pre-confirmation summary so the user can assess before confirming."
      },
      {
        "title": "Title → Mode + Target",
        "body": "PatternMode{Service}: {Restaurant}DirectCuisine/criteria onlyDiscovery"
      },
      {
        "title": "Description → Order Details + Constraints",
        "body": "The description carries two kinds of info:\n\nOrder details — what to order (items, quantity, servings)\nConstraints — things that MUST be honored, safety-critical\n\nParse the description and extract:\n\nFieldExamplesPriorityitems\"burrito bowl, chicken, guac\"Order detailsservings\"food for 2\", \"feeds 4\"Order detailsallergies\"nut allergy\", \"allergic to shellfish\"CRITICAL — never violatedietary\"vegetarian\", \"halal\", \"gluten-free\", \"no pork\"CRITICAL — never violatepreferences\"prefer noodles\", \"extra spicy\", \"no onions\"Best-effortbudget\"under $30\", \"keep it cheap\"Constraintdelivery_notes\"gate code 1234\", \"leave at door\"Pass to checkoutspecial_requests\"birthday cake candle\", \"extra napkins\"Best-effort\n\nAllergy/dietary constraints are non-negotiable. If unsure whether an item is safe, skip it and pick a clearly safe alternative. When in doubt, err on the side of caution — wrong food is annoying, an allergic reaction is dangerous."
      },
      {
        "title": "Parsing Example",
        "body": "Title: \"DoorDash: Chipotle\"\nDescription: \"2 burrito bowls (chicken), guac on the side. Nut allergy. Gate code: 5521\"\n\nExtracted:\n\nitems: 2x burrito bowl (chicken), guacamole (side)\nallergies: nuts\ndelivery_notes: gate code 5521\n\nTitle: \"Thai food, high ratings, under $30, food for 2\"\nDescription: \"no shellfish, prefer noodles, gluten-free if possible, leave at door\"\n\nExtracted:\n\nservings: 2\nbudget: $30\nallergies: shellfish\ndietary: gluten-free (best-effort — \"if possible\")\npreferences: noodles\ndelivery_notes: leave at door"
      },
      {
        "title": "Supported Services",
        "body": "DoorDash — prefix DoorDash:, url doordash.com\nUber Eats — prefix UberEats: or Uber Eats:, url ubereats.com\nGrubhub — prefix Grubhub:, url grubhub.com"
      },
      {
        "title": "Direct Mode Execution",
        "body": "Spawn a single sub-agent with inline instructions:\n\nsessions_spawn(\n  task: \"\"\"\nOrder food delivery via browser automation.\n\nSERVICE: {service}\nRESTAURANT: {restaurant}\nITEMS: {items}\nALLERGIES: {allergies or \"none\"}\nDIETARY: {dietary or \"none\"}\nPREFERENCES: {preferences or \"none\"}\nDELIVERY_NOTES: {delivery_notes or \"none\"}\nADDRESS: {address or \"use saved default\"}\n\n⚠️ ALLERGY/DIETARY RULES:\n- NEVER add items containing allergens listed above\n- When customizing items, REMOVE ingredients that conflict (e.g., \"no peanuts\")\n- If an item cannot be made safe → skip it, note why in report\n- Check item descriptions and ingredient lists on the menu\n\nBROWSER STEPS:\n1. Open {service_url} using Chrome profile (NOTE: this profile contains your saved logins,\n   payment methods, and delivery addresses — a real charge will be made on confirmation)\n2. Verify logged in (account icon visible, not \"Sign In\")\n   - If not logged in → ABORT, report \"Please log into {service} in Chrome first\"\n3. Search for \"{restaurant}\" using search bar\n4. Click matching restaurant from results\n   - If not found or closed → ABORT, report reason\n5. For each item in ITEMS:\n   - Find item on menu (use semantic matching)\n   - Check description for allergen conflicts before adding\n   - Click to open customization modal\n   - Select required options (size, protein, etc.)\n   - Apply customizations as specified\n   - Apply allergy-related modifications (remove conflicting ingredients)\n   - Apply PREFERENCES if customization options exist\n   - Click \"Add to cart/bag/order\"\n6. Open cart and verify:\n   - Contents match ITEMS\n   - No allergen conflicts in final order\n   - Note any substitutions or issues\n7. Proceed to checkout\n   - Confirm delivery address (use saved default)\n   - Add DELIVERY_NOTES if supported (special instructions field)\n   - Confirm payment method (use saved default)\n   - Note delivery ETA and total\n\n7b. PAUSE — present order summary to user and request explicit confirmation:\n    \"Ready to place order:\n     • Restaurant: {restaurant} via {service}\n     • Items: {items}\n     • Total: ${amount}\n     • Delivery to: {address}\n     • ETA: {eta}\n     Confirm? (yes / no / cancel)\"\n\n    WAIT for user response.\n    - \"yes\" → proceed to step 8\n    - anything else → ABORT, do NOT place order\n\n8. Click \"Place Order\"\n9. Wait for confirmation, capture order number and ETA\n\nREPORT FORMAT:\n✅ Order confirmed: {restaurant} via {service}, ETA {time}, total ${amount}\n   Allergy accommodations: {what was modified or \"N/A\"}\n— OR —\n❌ Failed: {reason}\n\nDo NOT checkout if cart doesn't match requested items.\nDo NOT checkout if allergen safety cannot be confirmed.\n\"\"\",\n  label: \"food-order-{service}\"\n)"
      },
      {
        "title": "Phase 1: Recon (parallel)",
        "body": "Spawn sub-agents for ALL services simultaneously:\n\nsessions_spawn(\n  task: \"\"\"\nSearch for restaurants on {service}. RECON ONLY — do NOT order.\n\nCRITERIA:\n- Cuisine: {cuisine}\n- Budget: {budget}\n- Rating: {rating_preference}\n- Servings: {servings}\n- Allergies: {allergies or \"none\"}\n- Dietary: {dietary or \"none\"}\n- Preferences: {preferences}\n\n⚠️ ALLERGY/DIETARY RULES:\n- Only recommend restaurants where allergen-safe options clearly exist\n- Flag any restaurant where the menu is ambiguous about allergens\n- When noting menu highlights, confirm dishes are safe given stated allergies/dietary\n\nBROWSER STEPS:\n1. Open {service_url} using Chrome profile (NOTE: this profile contains your saved logins,\n   payment methods, and delivery addresses — a real charge will be made on confirmation)\n2. Verify logged in\n3. Search for \"{cuisine}\" or \"{cuisine} food\"\n4. Apply filters if available (rating, price level, delivery time)\n5. For top 3 restaurants:\n   - Note: name, rating (stars + review count), price level ($/$$/$$$)\n   - Note: delivery time estimate, delivery fee\n   - Click into restaurant, scan menu for items matching cuisine\n   - Note 2-3 standout dishes and typical entree price\n   - Check if menu items list ingredients or allergen info\n   - Flag any allergen concerns for highlighted dishes\n\nRETURN FORMAT:\n## {service} Results\n\n### 1. {Restaurant Name}\n- Rating: {stars} ({count} reviews)\n- Price: {$/$$/$$S} (~${X}/person)\n- Delivery: {time} min, ${fee} fee\n- Menu highlights: {dishes matching criteria}\n- Allergen safety: {safe / caution / unclear} — {notes}\n- Fits constraints: {yes/no + notes}\n\n### 2. ...\n### 3. ...\n\n**Best match:** {pick} because {reason}\n\"\"\",\n  label: \"food-recon-{service}\"\n)"
      },
      {
        "title": "Phase 2: Decision",
        "body": "After all recon sub-agents return, aggregate and compare:\n\nServiceRestaurantRating$/personETAFits Constraints..................\n\nSelect winner based on:\n\nAllergen safety first — eliminate any restaurant where safety is \"unclear\" or \"caution\" unless no safe options exist\nMust fit cuisine and dietary constraints\nMust be achievable within budget (leave 25% for fees/tip)\nPrefer higher rating\nPrefer faster delivery\nMenu fits stated preferences\n\nDecide on order: Based on servings and preferences, plan a good meal:\n\nFor 2: typically 1 appetizer + 2 entrees, or 2-3 shareable plates\nStay within budget\nNever include items that conflict with allergies/dietary constraints\nLean into preferences (\"prefer noodles\" → include noodle dish)\nIf allergy info is ambiguous for an item, pick a clearly safe alternative"
      },
      {
        "title": "Phase 3: Order",
        "body": "Spawn order sub-agent for winning service (use Direct Mode task prompt above, with decided items)."
      },
      {
        "title": "State Tracking",
        "body": "Track in memory/food-order-state.json:\n\n{\n  \"ordered\": {\n    \"{calendar_event_id}\": {\n      \"at\": \"2026-02-06T19:00:00\",\n      \"mode\": \"discovery\",\n      \"criteria\": \"Thai food, high ratings, under $30, food for 2\",\n      \"constraints\": {\n        \"allergies\": [\"shellfish\"],\n        \"dietary\": [\"gluten-free\"],\n        \"delivery_notes\": \"leave at door\"\n      },\n      \"service\": \"doordash\",\n      \"restaurant\": \"Thai Basil\",\n      \"items\": [\"spring rolls\", \"pad thai (no shrimp)\", \"green curry\"],\n      \"status\": \"confirmed\",\n      \"eta\": \"7:35 PM\",\n      \"total\": 28.47\n    }\n  }\n}\n\nPrune entries older than 24h on each check."
      },
      {
        "title": "Error Handling",
        "body": "ErrorActionNot logged inAbort, notify user to log in via ChromeRestaurant closedDirect: abort. Discovery: use next-best from reconNo matches foundNotify user, suggest broadening criteriaOver budgetPick cheaper option or reduce order, note adjustmentItem unavailableClosest substitute, note in confirmationAllergen conflictNever order the item. Pick safe alternative or skip. Flag in reportAllergen info unclearSkip item, pick clearly safe alternative. Note uncertainty in report"
      },
      {
        "title": "Reference Files",
        "body": "Service-specific gotchas and UI element locations in references/:\n\ndoordash.md\nubereats.md\ngrubhub.md\n\nThese document service quirks (promo modals, tip screens, etc.). Key steps are inlined in task prompts above for sub-agent self-sufficiency."
      }
    ],
    "body": "Food Calendar Order\n\nPlace food delivery orders via browser automation, triggered by calendar events.\n\nSecurity & Prerequisites\n\nRead before using this skill.\n\nChrome profile access: This skill opens your local Chrome profile, which contains your saved logins, payment methods, and delivery addresses. Sub-agents will interact with these directly.\nReal charges: Confirming an order will charge your saved payment method. There is no sandbox — this is a live transaction.\nTrusted trigger source: Only calendar events you created yourself should trigger this skill. Events created or modified by others (shared calendars, external invites) may not reflect your intent. Verify event origin before proceeding.\nMandatory confirmation: A pre-checkout summary will be presented before any order is placed. You must explicitly confirm with \"yes\" — any other response aborts the order.\nModes\nDirect Mode\n\nSpecific service and restaurant provided.\n\nTitle: \"DoorDash: Chipotle\"\nDescription: \"burrito bowl, chicken, guac\"\n\nDiscovery Mode\n\nCriteria-based; searches all services to find best match.\n\nTitle: \"Thai food, high ratings, under $30, food for 2\"\nDescription: \"no shellfish, prefer noodles\"\n\nCalendar Event Parsing\n\nAlways read both the title AND description of the calendar event.\n\nTrust warning: Only process events that appear to have been created by the calendar owner. If an event was recently modified by an external party (e.g., a shared calendar attendee or external invite), note this explicitly in the pre-confirmation summary so the user can assess before confirming.\n\nTitle → Mode + Target\nPattern\tMode\n{Service}: {Restaurant}\tDirect\nCuisine/criteria only\tDiscovery\nDescription → Order Details + Constraints\n\nThe description carries two kinds of info:\n\nOrder details — what to order (items, quantity, servings)\nConstraints — things that MUST be honored, safety-critical\n\nParse the description and extract:\n\nField\tExamples\tPriority\nitems\t\"burrito bowl, chicken, guac\"\tOrder details\nservings\t\"food for 2\", \"feeds 4\"\tOrder details\nallergies\t\"nut allergy\", \"allergic to shellfish\"\tCRITICAL — never violate\ndietary\t\"vegetarian\", \"halal\", \"gluten-free\", \"no pork\"\tCRITICAL — never violate\npreferences\t\"prefer noodles\", \"extra spicy\", \"no onions\"\tBest-effort\nbudget\t\"under $30\", \"keep it cheap\"\tConstraint\ndelivery_notes\t\"gate code 1234\", \"leave at door\"\tPass to checkout\nspecial_requests\t\"birthday cake candle\", \"extra napkins\"\tBest-effort\n\nAllergy/dietary constraints are non-negotiable. If unsure whether an item is safe, skip it and pick a clearly safe alternative. When in doubt, err on the side of caution — wrong food is annoying, an allergic reaction is dangerous.\n\nParsing Example\nTitle: \"DoorDash: Chipotle\"\nDescription: \"2 burrito bowls (chicken), guac on the side. Nut allergy. Gate code: 5521\"\n\n\nExtracted:\n\nitems: 2x burrito bowl (chicken), guacamole (side)\nallergies: nuts\ndelivery_notes: gate code 5521\nTitle: \"Thai food, high ratings, under $30, food for 2\"\nDescription: \"no shellfish, prefer noodles, gluten-free if possible, leave at door\"\n\n\nExtracted:\n\nservings: 2\nbudget: $30\nallergies: shellfish\ndietary: gluten-free (best-effort — \"if possible\")\npreferences: noodles\ndelivery_notes: leave at door\nSupported Services\nDoorDash — prefix DoorDash:, url doordash.com\nUber Eats — prefix UberEats: or Uber Eats:, url ubereats.com\nGrubhub — prefix Grubhub:, url grubhub.com\nDirect Mode Execution\n\nSpawn a single sub-agent with inline instructions:\n\nsessions_spawn(\n  task: \"\"\"\nOrder food delivery via browser automation.\n\nSERVICE: {service}\nRESTAURANT: {restaurant}\nITEMS: {items}\nALLERGIES: {allergies or \"none\"}\nDIETARY: {dietary or \"none\"}\nPREFERENCES: {preferences or \"none\"}\nDELIVERY_NOTES: {delivery_notes or \"none\"}\nADDRESS: {address or \"use saved default\"}\n\n⚠️ ALLERGY/DIETARY RULES:\n- NEVER add items containing allergens listed above\n- When customizing items, REMOVE ingredients that conflict (e.g., \"no peanuts\")\n- If an item cannot be made safe → skip it, note why in report\n- Check item descriptions and ingredient lists on the menu\n\nBROWSER STEPS:\n1. Open {service_url} using Chrome profile (NOTE: this profile contains your saved logins,\n   payment methods, and delivery addresses — a real charge will be made on confirmation)\n2. Verify logged in (account icon visible, not \"Sign In\")\n   - If not logged in → ABORT, report \"Please log into {service} in Chrome first\"\n3. Search for \"{restaurant}\" using search bar\n4. Click matching restaurant from results\n   - If not found or closed → ABORT, report reason\n5. For each item in ITEMS:\n   - Find item on menu (use semantic matching)\n   - Check description for allergen conflicts before adding\n   - Click to open customization modal\n   - Select required options (size, protein, etc.)\n   - Apply customizations as specified\n   - Apply allergy-related modifications (remove conflicting ingredients)\n   - Apply PREFERENCES if customization options exist\n   - Click \"Add to cart/bag/order\"\n6. Open cart and verify:\n   - Contents match ITEMS\n   - No allergen conflicts in final order\n   - Note any substitutions or issues\n7. Proceed to checkout\n   - Confirm delivery address (use saved default)\n   - Add DELIVERY_NOTES if supported (special instructions field)\n   - Confirm payment method (use saved default)\n   - Note delivery ETA and total\n\n7b. PAUSE — present order summary to user and request explicit confirmation:\n    \"Ready to place order:\n     • Restaurant: {restaurant} via {service}\n     • Items: {items}\n     • Total: ${amount}\n     • Delivery to: {address}\n     • ETA: {eta}\n     Confirm? (yes / no / cancel)\"\n\n    WAIT for user response.\n    - \"yes\" → proceed to step 8\n    - anything else → ABORT, do NOT place order\n\n8. Click \"Place Order\"\n9. Wait for confirmation, capture order number and ETA\n\nREPORT FORMAT:\n✅ Order confirmed: {restaurant} via {service}, ETA {time}, total ${amount}\n   Allergy accommodations: {what was modified or \"N/A\"}\n— OR —\n❌ Failed: {reason}\n\nDo NOT checkout if cart doesn't match requested items.\nDo NOT checkout if allergen safety cannot be confirmed.\n\"\"\",\n  label: \"food-order-{service}\"\n)\n\nDiscovery Mode Execution\nPhase 1: Recon (parallel)\n\nSpawn sub-agents for ALL services simultaneously:\n\nsessions_spawn(\n  task: \"\"\"\nSearch for restaurants on {service}. RECON ONLY — do NOT order.\n\nCRITERIA:\n- Cuisine: {cuisine}\n- Budget: {budget}\n- Rating: {rating_preference}\n- Servings: {servings}\n- Allergies: {allergies or \"none\"}\n- Dietary: {dietary or \"none\"}\n- Preferences: {preferences}\n\n⚠️ ALLERGY/DIETARY RULES:\n- Only recommend restaurants where allergen-safe options clearly exist\n- Flag any restaurant where the menu is ambiguous about allergens\n- When noting menu highlights, confirm dishes are safe given stated allergies/dietary\n\nBROWSER STEPS:\n1. Open {service_url} using Chrome profile (NOTE: this profile contains your saved logins,\n   payment methods, and delivery addresses — a real charge will be made on confirmation)\n2. Verify logged in\n3. Search for \"{cuisine}\" or \"{cuisine} food\"\n4. Apply filters if available (rating, price level, delivery time)\n5. For top 3 restaurants:\n   - Note: name, rating (stars + review count), price level ($/$$/$$$)\n   - Note: delivery time estimate, delivery fee\n   - Click into restaurant, scan menu for items matching cuisine\n   - Note 2-3 standout dishes and typical entree price\n   - Check if menu items list ingredients or allergen info\n   - Flag any allergen concerns for highlighted dishes\n\nRETURN FORMAT:\n## {service} Results\n\n### 1. {Restaurant Name}\n- Rating: {stars} ({count} reviews)\n- Price: {$/$$/$$S} (~${X}/person)\n- Delivery: {time} min, ${fee} fee\n- Menu highlights: {dishes matching criteria}\n- Allergen safety: {safe / caution / unclear} — {notes}\n- Fits constraints: {yes/no + notes}\n\n### 2. ...\n### 3. ...\n\n**Best match:** {pick} because {reason}\n\"\"\",\n  label: \"food-recon-{service}\"\n)\n\nPhase 2: Decision\n\nAfter all recon sub-agents return, aggregate and compare:\n\nService\tRestaurant\tRating\t$/person\tETA\tFits Constraints\n...\t...\t...\t...\t...\t...\n\nSelect winner based on:\n\nAllergen safety first — eliminate any restaurant where safety is \"unclear\" or \"caution\" unless no safe options exist\nMust fit cuisine and dietary constraints\nMust be achievable within budget (leave 25% for fees/tip)\nPrefer higher rating\nPrefer faster delivery\nMenu fits stated preferences\n\nDecide on order: Based on servings and preferences, plan a good meal:\n\nFor 2: typically 1 appetizer + 2 entrees, or 2-3 shareable plates\nStay within budget\nNever include items that conflict with allergies/dietary constraints\nLean into preferences (\"prefer noodles\" → include noodle dish)\nIf allergy info is ambiguous for an item, pick a clearly safe alternative\nPhase 3: Order\n\nSpawn order sub-agent for winning service (use Direct Mode task prompt above, with decided items).\n\nState Tracking\n\nTrack in memory/food-order-state.json:\n\n{\n  \"ordered\": {\n    \"{calendar_event_id}\": {\n      \"at\": \"2026-02-06T19:00:00\",\n      \"mode\": \"discovery\",\n      \"criteria\": \"Thai food, high ratings, under $30, food for 2\",\n      \"constraints\": {\n        \"allergies\": [\"shellfish\"],\n        \"dietary\": [\"gluten-free\"],\n        \"delivery_notes\": \"leave at door\"\n      },\n      \"service\": \"doordash\",\n      \"restaurant\": \"Thai Basil\",\n      \"items\": [\"spring rolls\", \"pad thai (no shrimp)\", \"green curry\"],\n      \"status\": \"confirmed\",\n      \"eta\": \"7:35 PM\",\n      \"total\": 28.47\n    }\n  }\n}\n\n\nPrune entries older than 24h on each check.\n\nError Handling\nError\tAction\nNot logged in\tAbort, notify user to log in via Chrome\nRestaurant closed\tDirect: abort. Discovery: use next-best from recon\nNo matches found\tNotify user, suggest broadening criteria\nOver budget\tPick cheaper option or reduce order, note adjustment\nItem unavailable\tClosest substitute, note in confirmation\nAllergen conflict\tNever order the item. Pick safe alternative or skip. Flag in report\nAllergen info unclear\tSkip item, pick clearly safe alternative. Note uncertainty in report\nReference Files\n\nService-specific gotchas and UI element locations in references/:\n\ndoordash.md\nubereats.md\ngrubhub.md\n\nThese document service quirks (promo modals, tip screens, etc.). Key steps are inlined in task prompts above for sub-agent self-sufficiency."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ThisIsJeron/food-cal-order",
    "publisherUrl": "https://clawhub.ai/ThisIsJeron/food-cal-order",
    "owner": "ThisIsJeron",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/food-cal-order",
    "downloadUrl": "https://openagent3.xyz/downloads/food-cal-order",
    "agentUrl": "https://openagent3.xyz/skills/food-cal-order/agent",
    "manifestUrl": "https://openagent3.xyz/skills/food-cal-order/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/food-cal-order/agent.md"
  }
}