{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clawcoach-food",
    "name": "ClawCoach Food",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/authoredniko/clawcoach-food",
    "canonicalUrl": "https://clawhub.ai/authoredniko/clawcoach-food",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clawcoach-food",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawcoach-food",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.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/clawcoach-food"
    },
    "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/clawcoach-food",
    "agentPageUrl": "https://openagent3.xyz/skills/clawcoach-food/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawcoach-food/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawcoach-food/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": "ClawCoach Food — Photo Analysis & Meal Logging",
        "body": "This skill handles food photo analysis via Claude Vision, text-based meal logging, and the confirmation flow."
      },
      {
        "title": "When to Activate",
        "body": "User sends a photo — assume it is food unless context clearly suggests otherwise\nUser types a food description (\"I had 2 eggs and toast for breakfast\")\nUser says \"log [food]\" or \"I ate [food]\"\nUser wants to edit or delete a previous meal"
      },
      {
        "title": "Data Storage",
        "body": "All meals are stored in ~/.clawcoach/food-log.json with this structure:\n\n{\n  \"meals\": [\n    {\n      \"id\": \"2026-02-22-lunch-001\",\n      \"date\": \"2026-02-22\",\n      \"type\": \"lunch\",\n      \"status\": \"confirmed\",\n      \"items\": [\n        {\n          \"name\": \"grilled chicken breast\",\n          \"portion\": \"6 oz\",\n          \"calories\": 280,\n          \"protein_g\": 52,\n          \"fat_g\": 6,\n          \"carbs_g\": 0\n        }\n      ],\n      \"total_calories\": 520,\n      \"total_protein_g\": 62,\n      \"total_fat_g\": 14,\n      \"total_carbs_g\": 48,\n      \"source\": \"photo\",\n      \"timestamp\": \"2026-02-22T12:35:00Z\"\n    }\n  ]\n}"
      },
      {
        "title": "Photo Analysis Flow",
        "body": "When the user sends a photo:\n\nAnalyze the image using your vision capabilities. Identify every distinct food item visible. For each item estimate:\n\nName (be specific: \"grilled chicken breast\" not just \"chicken\")\nPortion in common units (oz, cups, pieces, slices)\nCalories and macros (protein, fat, carbs in grams)\n\nUse your nutritional knowledge. For common foods, these are well-established values. Be conservative with portions if uncertain.\n\n\nPresent the results in the user's persona voice:\n\nList each item with portion and macros\nShow meal total\nShow daily running totals (consumed / target / remaining)\nAsk: \"confirm? (yes / edit / redo)\"\n\n\n\nHandle response:\n\n\"yes\" / \"confirm\" — Write the meal to ~/.clawcoach/food-log.json with status \"confirmed\"\nCorrection (e.g., \"the rice was brown rice\" or \"it was more like 8oz\") — recalculate and present updated totals\n\"redo\" — ask for a new photo or text description\n\n\n\nAfter confirmation, always show updated daily totals."
      },
      {
        "title": "Text-Based Logging",
        "body": "When the user describes food in text:\n\nParse the food items and estimate portions from the description\nCalculate macros for each item using your nutritional knowledge\nFollow the same confirmation flow as photo analysis"
      },
      {
        "title": "Meal Type Auto-Detection",
        "body": "Categorize meals by time:\n\nBefore 10:00 = breakfast\n10:00 - 14:00 = lunch\n14:00 - 17:00 = snack\nAfter 17:00 = dinner\n\nThe user can override: \"log this as a snack\""
      },
      {
        "title": "Editing and Deleting",
        "body": "\"Delete my lunch\" — find today's lunch entry, remove it from food-log.json\n\"I think that was more like 400 calories\" — update the specific meal entry\n\"What did I eat today?\" — list all confirmed meals for today with totals"
      },
      {
        "title": "Daily Totals",
        "body": "After any meal is confirmed, calculate and show:\n\nRead profile from ~/.clawcoach/profile.json for targets\nSum all confirmed meals for today from food-log.json\nDisplay:\n\nConsumed: X cal | Xg protein | Xg fat | Xg carbs\nTarget: X cal | Xg protein | Xg fat | Xg carbs\nRemaining: X cal | Xg protein | Xg fat | Xg carbs"
      },
      {
        "title": "Edge Cases",
        "body": "Blurry or unclear photo: \"I can't quite make out the food. Try a better lit photo, or just tell me what you had.\"\nNon-food photo: \"That doesn't look like food! Send a photo of your meal, or type what you ate.\"\nUnknown food: Ask the user for clarification rather than guessing wildly.\nMultiple items unclear: \"I can see chicken and something else — is that rice or pasta?\"\nNo portion visible: Use standard serving sizes and note: \"I estimated a standard portion — let me know if it was more or less.\""
      },
      {
        "title": "Nutritional Reference (Common Foods per 100g)",
        "body": "Use these as a baseline. Scale by estimated portion size.\n\nFoodCalProteinFatCarbsChicken breast (grilled)165313.60Salmon (baked)20820130White rice (cooked)1302.70.328Brown rice (cooked)1232.71.026Pasta (cooked)13151.125Broccoli (steamed)352.40.47Egg (whole, large ~50g)15513111.1Avocado1602159Sweet potato (baked)9020.121Greek yogurt (plain)59100.73.6Banana (~120g)891.10.323Oats (cooked)682.41.412Bread (white, per slice ~30g)26593.249Cheese (cheddar)40325331.3Almonds579215022Olive oil (1 tbsp ~14ml)88401000Pizza (pepperoni, per slice)298121430Burger (quarter lb w/ bun)~550303040Steak (sirloin)20626110Tofu (firm)1441793Lentils (cooked)11690.420Milk (whole, 250ml)613.23.34.8Protein shake (~1 scoop)~120251.53\n\nFor foods not on this list, use your general nutritional knowledge. Be transparent when estimating."
      },
      {
        "title": "Important",
        "body": "Always present macros rounded to whole numbers\nAlways show daily running totals after confirming a meal\nThe persona voice comes from clawcoach-core — match it in all responses\nNever log a meal without user confirmation\nGenerate unique meal IDs as: {date}-{meal_type}-{sequence}"
      }
    ],
    "body": "ClawCoach Food — Photo Analysis & Meal Logging\n\nThis skill handles food photo analysis via Claude Vision, text-based meal logging, and the confirmation flow.\n\nWhen to Activate\nUser sends a photo — assume it is food unless context clearly suggests otherwise\nUser types a food description (\"I had 2 eggs and toast for breakfast\")\nUser says \"log [food]\" or \"I ate [food]\"\nUser wants to edit or delete a previous meal\nData Storage\n\nAll meals are stored in ~/.clawcoach/food-log.json with this structure:\n\n{\n  \"meals\": [\n    {\n      \"id\": \"2026-02-22-lunch-001\",\n      \"date\": \"2026-02-22\",\n      \"type\": \"lunch\",\n      \"status\": \"confirmed\",\n      \"items\": [\n        {\n          \"name\": \"grilled chicken breast\",\n          \"portion\": \"6 oz\",\n          \"calories\": 280,\n          \"protein_g\": 52,\n          \"fat_g\": 6,\n          \"carbs_g\": 0\n        }\n      ],\n      \"total_calories\": 520,\n      \"total_protein_g\": 62,\n      \"total_fat_g\": 14,\n      \"total_carbs_g\": 48,\n      \"source\": \"photo\",\n      \"timestamp\": \"2026-02-22T12:35:00Z\"\n    }\n  ]\n}\n\nPhoto Analysis Flow\n\nWhen the user sends a photo:\n\nAnalyze the image using your vision capabilities. Identify every distinct food item visible. For each item estimate:\n\nName (be specific: \"grilled chicken breast\" not just \"chicken\")\nPortion in common units (oz, cups, pieces, slices)\nCalories and macros (protein, fat, carbs in grams)\n\nUse your nutritional knowledge. For common foods, these are well-established values. Be conservative with portions if uncertain.\n\nPresent the results in the user's persona voice:\n\nList each item with portion and macros\nShow meal total\nShow daily running totals (consumed / target / remaining)\nAsk: \"confirm? (yes / edit / redo)\"\n\nHandle response:\n\n\"yes\" / \"confirm\" — Write the meal to ~/.clawcoach/food-log.json with status \"confirmed\"\nCorrection (e.g., \"the rice was brown rice\" or \"it was more like 8oz\") — recalculate and present updated totals\n\"redo\" — ask for a new photo or text description\n\nAfter confirmation, always show updated daily totals.\n\nText-Based Logging\n\nWhen the user describes food in text:\n\nParse the food items and estimate portions from the description\nCalculate macros for each item using your nutritional knowledge\nFollow the same confirmation flow as photo analysis\nMeal Type Auto-Detection\n\nCategorize meals by time:\n\nBefore 10:00 = breakfast\n10:00 - 14:00 = lunch\n14:00 - 17:00 = snack\nAfter 17:00 = dinner\n\nThe user can override: \"log this as a snack\"\n\nEditing and Deleting\n\"Delete my lunch\" — find today's lunch entry, remove it from food-log.json\n\"I think that was more like 400 calories\" — update the specific meal entry\n\"What did I eat today?\" — list all confirmed meals for today with totals\nDaily Totals\n\nAfter any meal is confirmed, calculate and show:\n\nRead profile from ~/.clawcoach/profile.json for targets\nSum all confirmed meals for today from food-log.json\nDisplay:\nConsumed: X cal | Xg protein | Xg fat | Xg carbs\nTarget: X cal | Xg protein | Xg fat | Xg carbs\nRemaining: X cal | Xg protein | Xg fat | Xg carbs\nEdge Cases\nBlurry or unclear photo: \"I can't quite make out the food. Try a better lit photo, or just tell me what you had.\"\nNon-food photo: \"That doesn't look like food! Send a photo of your meal, or type what you ate.\"\nUnknown food: Ask the user for clarification rather than guessing wildly.\nMultiple items unclear: \"I can see chicken and something else — is that rice or pasta?\"\nNo portion visible: Use standard serving sizes and note: \"I estimated a standard portion — let me know if it was more or less.\"\nNutritional Reference (Common Foods per 100g)\n\nUse these as a baseline. Scale by estimated portion size.\n\nFood\tCal\tProtein\tFat\tCarbs\nChicken breast (grilled)\t165\t31\t3.6\t0\nSalmon (baked)\t208\t20\t13\t0\nWhite rice (cooked)\t130\t2.7\t0.3\t28\nBrown rice (cooked)\t123\t2.7\t1.0\t26\nPasta (cooked)\t131\t5\t1.1\t25\nBroccoli (steamed)\t35\t2.4\t0.4\t7\nEgg (whole, large ~50g)\t155\t13\t11\t1.1\nAvocado\t160\t2\t15\t9\nSweet potato (baked)\t90\t2\t0.1\t21\nGreek yogurt (plain)\t59\t10\t0.7\t3.6\nBanana (~120g)\t89\t1.1\t0.3\t23\nOats (cooked)\t68\t2.4\t1.4\t12\nBread (white, per slice ~30g)\t265\t9\t3.2\t49\nCheese (cheddar)\t403\t25\t33\t1.3\nAlmonds\t579\t21\t50\t22\nOlive oil (1 tbsp ~14ml)\t884\t0\t100\t0\nPizza (pepperoni, per slice)\t298\t12\t14\t30\nBurger (quarter lb w/ bun)\t~550\t30\t30\t40\nSteak (sirloin)\t206\t26\t11\t0\nTofu (firm)\t144\t17\t9\t3\nLentils (cooked)\t116\t9\t0.4\t20\nMilk (whole, 250ml)\t61\t3.2\t3.3\t4.8\nProtein shake (~1 scoop)\t~120\t25\t1.5\t3\n\nFor foods not on this list, use your general nutritional knowledge. Be transparent when estimating.\n\nImportant\nAlways present macros rounded to whole numbers\nAlways show daily running totals after confirming a meal\nThe persona voice comes from clawcoach-core — match it in all responses\nNever log a meal without user confirmation\nGenerate unique meal IDs as: {date}-{meal_type}-{sequence}"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/authoredniko/clawcoach-food",
    "publisherUrl": "https://clawhub.ai/authoredniko/clawcoach-food",
    "owner": "authoredniko",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clawcoach-food",
    "downloadUrl": "https://openagent3.xyz/downloads/clawcoach-food",
    "agentUrl": "https://openagent3.xyz/skills/clawcoach-food/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawcoach-food/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawcoach-food/agent.md"
  }
}