{
  "schemaVersion": "1.0",
  "item": {
    "slug": "farmos-equipment",
    "name": "Farmos Equipment",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/brianppetty/farmos-equipment",
    "canonicalUrl": "https://clawhub.ai/brianppetty/farmos-equipment",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/farmos-equipment",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=farmos-equipment",
    "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/farmos-equipment"
    },
    "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/farmos-equipment",
    "agentPageUrl": "https://openagent3.xyz/skills/farmos-equipment/agent",
    "manifestUrl": "https://openagent3.xyz/skills/farmos-equipment/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/farmos-equipment/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": "FarmOS Equipment",
        "body": "Query and manage farm equipment data — status, maintenance schedules, service records, and parts inventory."
      },
      {
        "title": "When to Use This",
        "body": "What this skill handles: Fleet status, maintenance schedules, equipment issues, hour/mileage logging, service manual lookups, parts questions, and maintenance completion records.\n\nTrigger phrases: \"the [machine] is...\", \"equipment status\", \"log hours on...\", \"maintenance due\", \"what equipment needs service?\", \"search equipment manuals for...\", \"what oil does the 8370R take?\"\n\nWhat this does NOT handle: Field observations about crop/soil/pest issues (use farmos-observations), scheduling repairs for people or assigning work (create a task via farmos-tasks), weather damage reports (use farmos-observations with weather_damage type).\n\nMinimum viable input: A machine name or description of an equipment issue. \"The combine sounds funny\" is enough."
      },
      {
        "title": "API Base",
        "body": "http://100.102.77.110:8005"
      },
      {
        "title": "Data Completeness Rules",
        "body": "CRITICAL: Always return complete data, never truncated results.\n\nDashboard endpoint is for SUMMARY STATS ONLY — use /api/integration/dashboard for counts and overdue items, NOT for listing equipment.\nFor listing equipment, use /api/integration/equipment which returns ALL equipment without pagination.\nFor due maintenance, use /api/integration/due-maintenance which returns ALL due/overdue items.\nAlways state the total count of items returned: \"Found 3 overdue maintenance items\" (not just \"overdue items:\").\nIf suspiciously few results, flag it: \"Only seeing X items — that may be incomplete. Let me try a different endpoint.\"\nIf an endpoint fails, report the failure to the user rather than silently falling back to partial data."
      },
      {
        "title": "Dashboard Summary",
        "body": "GET /api/integration/dashboard\n\nReturns: Equipment counts, maintenance stats, overdue items.\n\nUse for: Summary statistics and counts ONLY. Do NOT use for listing equipment or maintenance items."
      },
      {
        "title": "Equipment List",
        "body": "GET /api/integration/equipment\n\nReturns: All equipment with id, name, make, model, type, status, current_hours.\n\nUse for: Complete equipment listing. This endpoint returns ALL equipment without truncation.\n\nUse this to look up equipment IDs for other queries."
      },
      {
        "title": "Equipment Detail",
        "body": "GET /api/integration/equipment/{id}/summary\n\nReturns: Full equipment summary including maintenance history, upcoming service, documents."
      },
      {
        "title": "Due Maintenance",
        "body": "GET /api/integration/due-maintenance\n\nReturns: List of maintenance items that are due or overdue, including:\n\nschedule_id, equipment_id, equipment_name\nmaintenance_name, priority (low/normal/high/critical)\ntrigger_type (hours/calendar/seasonal)\nhours_overdue or days_overdue\nestimated_duration_minutes\nparts_required list\n\nUse for: Complete list of ALL due/overdue maintenance. Returns all items without truncation."
      },
      {
        "title": "Record Maintenance Completion",
        "body": "POST /api/integration/record-completion\nContent-Type: application/json\n\nBody:\n\n{\n  \"schedule_id\": 1,\n  \"equipment_id\": 5,\n  \"performed_at\": \"2026-02-13T10:00:00Z\",\n  \"performed_by\": \"user_name\",\n  \"equipment_hours\": 1250,\n  \"work_performed\": \"Changed engine oil and filter\",\n  \"parts_used\": [],\n  \"task_id\": null\n}\n\nUse this when someone reports maintenance was done."
      },
      {
        "title": "Semantic Search (Service Documents)",
        "body": "POST /api/integration/search\nContent-Type: application/json\n\nBody:\n\n{\n  \"query\": \"hydraulic fluid capacity 8370R\",\n  \"limit\": 5\n}\n\nReturns: Relevant chunks from service manuals and parts catalogs with similarity scores. Use this for technical questions about equipment specs, procedures, and parts."
      },
      {
        "title": "RAG Q&A",
        "body": "POST /api/integration/ask\nContent-Type: application/json\n\nBody:\n\n{\n  \"question\": \"What oil does the 8370R take?\"\n}\n\nReturns: AI-generated answer sourced from service documents. Use for natural language equipment questions."
      },
      {
        "title": "Regular API Endpoints",
        "body": "These endpoints provide additional functionality:"
      },
      {
        "title": "Equipment CRUD",
        "body": "GET /api/equipment — List with pagination and filters (?equipment_type=tractor&status=active&search=deere)\nGET /api/equipment/{id} — Full detail\nPOST /api/equipment/{id}/hours — Log hour meter reading: {\"hours\": 1500, \"recorded_at\": \"2026-02-13\"}"
      },
      {
        "title": "Maintenance",
        "body": "GET /api/maintenance/due — Detailed due maintenance list\nGET /api/schedules — All maintenance schedules\nGET /api/maintenance — Maintenance history records"
      },
      {
        "title": "Usage Notes",
        "body": "Equipment IDs are integers. Use the equipment list to find IDs by name.\nHour-based maintenance triggers when current_hours >= due_at_hours.\nCalendar-based maintenance triggers on date.\nPriority levels: low, normal, high, critical. Flag \"critical\" items prominently.\nWhen reporting maintenance status, always mention overdue items first.\nThe RAG search endpoints can answer technical questions from uploaded service manuals."
      },
      {
        "title": "Conversational Equipment Issue Intake",
        "body": "When crew reports an equipment problem -- even vaguely -- capture it. \"The combine sounds funny\" is a valid starting point. Your job is to guide toward useful detail without interrogating."
      },
      {
        "title": "Symptom Detection",
        "body": "Auto-detect from the message what you can:\n\nSound symptoms (map to likely systems):\n\nGrinding: bearings, gears, brakes\nClicking/knocking: engine, drivetrain, loose components\nWhining/squealing: belts, hydraulic pump, power steering\nHissing: air leak, hydraulic line, cooling system\n\nPerformance symptoms:\n\nSluggish/underpowered: fuel system, air filter, turbo, transmission\nJerky/rough: drivetrain, clutch, hydraulic valves\nDrifting/pulling: steering, alignment, tire pressure\nVibrating: balance, bearings, driveshaft, loose components\nOverheating: coolant, radiator, fan, thermostat\n\nVisual symptoms:\n\nLeaking: identify fluid color (oil=dark, hydraulic=amber/red, coolant=green/orange, fuel=clear/diesel smell)\nSmoking: color matters (white=coolant, blue=oil burning, black=rich fuel)\nCracked/worn/loose: note component and location\n\nAccept vague reports: \"Something is off,\" \"doesn't feel right,\" \"acting weird\" are ALL valid. Log them and ask follow-ups."
      },
      {
        "title": "Follow-Up Questions (2-3 Max, Not Interrogation)",
        "body": "Pick the most useful questions based on what is missing. Never ask more than 3.\n\nMissing InfoQuestionSound type\"Is it more of a grinding, clicking, or whining sound?\"Condition\"Does it happen all the time or just under load / at certain speeds / when turning?\"Onset\"When did you first notice it -- today, or has it been building?\"Context\"Anything change recently -- new attachment, hit something, different field conditions?\"Location\"Can you tell where it is coming from -- front, rear, left side, engine area?\"Severity\"Can you still operate it safely, or should it be parked?\"\n\nFor detailed reporters (mechanics, experienced operators): auto-detect everything, confirm, offer work order. Skip redundant questions.\n\nFor sparse reporters (\"something is wrong with the combine\"): ask 2-3 targeted questions, then log with what you have. A vague report logged is better than no report."
      },
      {
        "title": "Auto-Correlation",
        "body": "When an equipment issue is reported, automatically check:\n\nHour meter vs maintenance schedule: \"Current hours are 1,247 -- it is due for service at 1,250 anyway, so good timing to look at this.\"\nRecent maintenance history: \"The hydraulic filter was changed 200 hours ago -- probably not that, but worth mentioning.\"\nSimilar recent issues: \"Someone reported a similar noise on this machine last week -- could be related.\"\n\nUse the equipment detail endpoint (GET /api/integration/equipment/{id}/summary) to pull maintenance history and service intervals."
      },
      {
        "title": "Creating Maintenance Flags",
        "body": "After capturing the issue:\n\nAlways offer before creating: \"Want me to flag this for the shop?\" or \"Should I create a work order?\"\nCreate a task via the task-manager skill with:\n\nTitle: equipment name + symptom summary (e.g., \"8370R -- grinding noise on left turns\")\nDescription: all captured details (symptoms, conditions, operator observations)\nEquipment reference: equipment ID\nPriority: based on severity assessment\n\n\nLog hour meter reading if the operator mentions it: POST /api/equipment/{id}/hours"
      },
      {
        "title": "Safety Escalation",
        "body": "If the reported issue involves ANY of the following, switch to CRITICAL MODE immediately:\n\nBrakes -- any brake issue on any equipment\nSteering -- loss of steering, play in steering, pulling hard\nHydraulic failure -- sudden loss of hydraulic pressure, header or loader won't hold\nStructural -- cracks in frame, ROPS damage, roll bar issues\nRollover risk -- stability concerns, leaning, uneven ground incidents\nFire risk -- smoke from engine compartment, electrical smell, fuel leak near hot components\n\nIn critical mode:\n\nState the safety risk plainly\nRecommend parking the equipment immediately\nAuto-escalate to operator (notify Brian)\nCreate a critical-priority maintenance task\nDo NOT wait for the reporter to ask -- act immediately"
      },
      {
        "title": "Post-Issue Actions",
        "body": "After logging the issue, offer:\n\n\"Want me to check if we have the parts in stock?\" (if applicable)\n\"Should I search the service manual for this symptom?\" (use RAG search)\n\"Want me to schedule downtime for this?\" (create task with date)"
      },
      {
        "title": "Example Flows",
        "body": "Detailed reporter (experienced operator):\n\nCrew: \"Hey FarmBot, the 8370R is making a weird noise when turning left\"\n\nFarmBot: \"Noted on the 8370R. Couple quick things -- is it more of a\n         grinding, clicking, or whining sound? And does it happen at\n         low speed, high speed, or both? I will log a maintenance flag\n         either way.\"\n\nCrew: \"Grinding I think, mostly at low speed in the field\"\n\nFarmBot: \"Logged -- 8370R, grinding noise on left turns at low speed.\n         Current hours are 1,247 so it is due for service at 1,250\n         anyway. I have flagged it for maintenance review. If it gets\n         worse, let me know and I will escalate it.\"\n\nSparse reporter (vague but valid):\n\nCrew: \"Something is off with the planter\"\n\nFarmBot: \"Which planter -- the Kinze 4900? And can you describe what\n         is off -- a sound, how it is performing, or something you are\n         seeing? I will log it either way.\"\n\nCrew: \"Yeah the Kinze. It just does not feel right, kind of jerky\"\n\nFarmBot: \"Got it -- Kinze 4900, jerky operation. That could be\n         hydraulic valves, drive system, or row unit clutches. Want me\n         to flag it for the shop? I will include what you told me so\n         they know what to look for.\"\n\nSafety escalation:\n\nCrew: \"FarmBot the brakes on the grain cart feel spongy\"\n\nFarmBot: \"Flagging this immediately -- spongy brakes on the grain cart\n         is a safety issue. I have created a critical-priority work\n         order and notified Brian. Do not use the cart until someone\n         checks it. Good call reporting this.\""
      },
      {
        "title": "Cross-Module Context",
        "body": "When dealing with equipment issues, think about what else is affected:\n\nEquipment → Tasks:\n\nWhen equipment is reported as having issues or going down, check farmos-tasks for work orders assigned to that machine: \"The 8370R has 3 tasks this week — 2 need the planter. If this takes the planter offline, I can flag those tasks as blocked.\"\nWhen maintenance is due or overdue, check if tasks are scheduled that require that machine. Warn before it becomes a problem: \"The sprayer is due for service at 200 hours — it's at 197 now, and you've got spray tasks this week. Want me to schedule the service first?\"\nWhen equipment is marked as back in service, check for tasks that were waiting on it.\n\nEquipment → Observations:\n\nWhen an equipment issue is reported in the field, check farmos-observations for related field observations. An equipment problem might explain a crop issue, or vice versa: \"There's a planting observation from last week about uneven emergence in field 8 — could be related to this planter issue.\"\n\nEquipment → Weather:\n\nWhen field equipment goes down, check the forecast. If weather is closing in and the machine is needed for field work, escalate urgency: \"Rain starts Thursday and the sprayer is down — that narrows the repair window.\"\n\nCross-reference when a machine issue could ripple into the work schedule. Don't cross-reference for routine hour logging or simple status checks."
      },
      {
        "title": "Image Understanding",
        "body": "When a photo accompanies an equipment report (the image description will appear in your context as [Image] Description: ...), use it to enhance your response."
      },
      {
        "title": "Photo of Damage or Symptoms",
        "body": "Identify the component: Use the image description to identify what part of the machine is shown -- hose, belt, tire, bearing, cylinder, panel, etc.\nAssess visible damage: Note cracks, leaks, wear patterns, discoloration, deformation, corrosion, missing parts.\nCross-reference service manual: After identifying the component and issue, search the equipment docs via POST /api/integration/search with a query like \"[make] [model] [component] [symptom]\" to find relevant service manual sections.\nInclude in maintenance flag: When creating a work order or maintenance task, include the image-based observations: \"Photo shows a cracked hydraulic hose on the left rear of the 8370R, fluid visible on the frame below the fitting.\""
      },
      {
        "title": "Photo of Hour Meter or Dashboard",
        "body": "Read the numbers: Extract the hour meter reading, odometer, or other gauge values from the image description.\nOffer to log: \"I can see the hour meter reads [X] hours. Want me to log that?\" Then use POST /api/equipment/{id}/hours with the reading.\nNote warning lights: If dashboard warning lights are visible, identify them and cross-reference with the service manual for that machine.\nNote error codes: If a digital display shows an error code, extract it and search the service manual: \"That looks like error code E-47. Let me check the manual.\""
      },
      {
        "title": "Photo of Error Codes or Warning Lights",
        "body": "Extract the code: Read the error code from the display in the image description.\nSearch for meaning: Use POST /api/integration/search with the error code and machine make/model: {\"query\": \"error code E-47 Case IH 8250\"}.\nExplain in plain language: Translate the manual explanation into crew-friendly terms. Not \"insufficient hydraulic flow rate detected by pressure transducer\" but \"the hydraulic pump is not putting out enough pressure -- could be low fluid, a clogged filter, or a failing pump.\"\nRecommend action: Based on the error code severity, recommend next steps (continue with caution, park it, call the shop)."
      },
      {
        "title": "Photo Quality Handling",
        "body": "Clear photo: Use it confidently. State what you see and your assessment.\nUnclear/blurry photo: \"I can make out [what is visible] but it is hard to tell from this angle/lighting. Can you get a closer shot of the [component]?\"\nCannot identify the machine: \"What machine is this from? I cannot tell from the photo alone.\""
      },
      {
        "title": "Prompting for Photos",
        "body": "When crew reports equipment issues without a photo, and a photo would genuinely help diagnosis:\n\n\"Can you snap a photo of that? It would help me figure out what is going on.\"\nDo NOT demand photos for every issue. Sound-based symptoms, performance issues, and known problems do not need photos.\nPhotos are most useful for: visible damage, fluid leaks, error codes/displays, worn parts, and unknown components."
      }
    ],
    "body": "FarmOS Equipment\n\nQuery and manage farm equipment data — status, maintenance schedules, service records, and parts inventory.\n\nWhen to Use This\n\nWhat this skill handles: Fleet status, maintenance schedules, equipment issues, hour/mileage logging, service manual lookups, parts questions, and maintenance completion records.\n\nTrigger phrases: \"the [machine] is...\", \"equipment status\", \"log hours on...\", \"maintenance due\", \"what equipment needs service?\", \"search equipment manuals for...\", \"what oil does the 8370R take?\"\n\nWhat this does NOT handle: Field observations about crop/soil/pest issues (use farmos-observations), scheduling repairs for people or assigning work (create a task via farmos-tasks), weather damage reports (use farmos-observations with weather_damage type).\n\nMinimum viable input: A machine name or description of an equipment issue. \"The combine sounds funny\" is enough.\n\nAPI Base\n\nhttp://100.102.77.110:8005\n\nData Completeness Rules\n\nCRITICAL: Always return complete data, never truncated results.\n\nDashboard endpoint is for SUMMARY STATS ONLY — use /api/integration/dashboard for counts and overdue items, NOT for listing equipment.\nFor listing equipment, use /api/integration/equipment which returns ALL equipment without pagination.\nFor due maintenance, use /api/integration/due-maintenance which returns ALL due/overdue items.\nAlways state the total count of items returned: \"Found 3 overdue maintenance items\" (not just \"overdue items:\").\nIf suspiciously few results, flag it: \"Only seeing X items — that may be incomplete. Let me try a different endpoint.\"\nIf an endpoint fails, report the failure to the user rather than silently falling back to partial data.\nIntegration Endpoints (No Auth Required)\nDashboard Summary\n\nGET /api/integration/dashboard\n\nReturns: Equipment counts, maintenance stats, overdue items.\n\nUse for: Summary statistics and counts ONLY. Do NOT use for listing equipment or maintenance items.\n\nEquipment List\n\nGET /api/integration/equipment\n\nReturns: All equipment with id, name, make, model, type, status, current_hours.\n\nUse for: Complete equipment listing. This endpoint returns ALL equipment without truncation.\n\nUse this to look up equipment IDs for other queries.\n\nEquipment Detail\n\nGET /api/integration/equipment/{id}/summary\n\nReturns: Full equipment summary including maintenance history, upcoming service, documents.\n\nDue Maintenance\n\nGET /api/integration/due-maintenance\n\nReturns: List of maintenance items that are due or overdue, including:\n\nschedule_id, equipment_id, equipment_name\nmaintenance_name, priority (low/normal/high/critical)\ntrigger_type (hours/calendar/seasonal)\nhours_overdue or days_overdue\nestimated_duration_minutes\nparts_required list\n\nUse for: Complete list of ALL due/overdue maintenance. Returns all items without truncation.\n\nRecord Maintenance Completion\n\nPOST /api/integration/record-completion Content-Type: application/json\n\nBody:\n\n{\n  \"schedule_id\": 1,\n  \"equipment_id\": 5,\n  \"performed_at\": \"2026-02-13T10:00:00Z\",\n  \"performed_by\": \"user_name\",\n  \"equipment_hours\": 1250,\n  \"work_performed\": \"Changed engine oil and filter\",\n  \"parts_used\": [],\n  \"task_id\": null\n}\n\n\nUse this when someone reports maintenance was done.\n\nSemantic Search (Service Documents)\n\nPOST /api/integration/search Content-Type: application/json\n\nBody:\n\n{\n  \"query\": \"hydraulic fluid capacity 8370R\",\n  \"limit\": 5\n}\n\n\nReturns: Relevant chunks from service manuals and parts catalogs with similarity scores. Use this for technical questions about equipment specs, procedures, and parts.\n\nRAG Q&A\n\nPOST /api/integration/ask Content-Type: application/json\n\nBody:\n\n{\n  \"question\": \"What oil does the 8370R take?\"\n}\n\n\nReturns: AI-generated answer sourced from service documents. Use for natural language equipment questions.\n\nRegular API Endpoints\n\nThese endpoints provide additional functionality:\n\nEquipment CRUD\n\nGET /api/equipment — List with pagination and filters (?equipment_type=tractor&status=active&search=deere) GET /api/equipment/{id} — Full detail POST /api/equipment/{id}/hours — Log hour meter reading: {\"hours\": 1500, \"recorded_at\": \"2026-02-13\"}\n\nMaintenance\n\nGET /api/maintenance/due — Detailed due maintenance list GET /api/schedules — All maintenance schedules GET /api/maintenance — Maintenance history records\n\nUsage Notes\nEquipment IDs are integers. Use the equipment list to find IDs by name.\nHour-based maintenance triggers when current_hours >= due_at_hours.\nCalendar-based maintenance triggers on date.\nPriority levels: low, normal, high, critical. Flag \"critical\" items prominently.\nWhen reporting maintenance status, always mention overdue items first.\nThe RAG search endpoints can answer technical questions from uploaded service manuals.\nConversational Equipment Issue Intake\n\nWhen crew reports an equipment problem -- even vaguely -- capture it. \"The combine sounds funny\" is a valid starting point. Your job is to guide toward useful detail without interrogating.\n\nSymptom Detection\n\nAuto-detect from the message what you can:\n\nSound symptoms (map to likely systems):\n\nGrinding: bearings, gears, brakes\nClicking/knocking: engine, drivetrain, loose components\nWhining/squealing: belts, hydraulic pump, power steering\nHissing: air leak, hydraulic line, cooling system\n\nPerformance symptoms:\n\nSluggish/underpowered: fuel system, air filter, turbo, transmission\nJerky/rough: drivetrain, clutch, hydraulic valves\nDrifting/pulling: steering, alignment, tire pressure\nVibrating: balance, bearings, driveshaft, loose components\nOverheating: coolant, radiator, fan, thermostat\n\nVisual symptoms:\n\nLeaking: identify fluid color (oil=dark, hydraulic=amber/red, coolant=green/orange, fuel=clear/diesel smell)\nSmoking: color matters (white=coolant, blue=oil burning, black=rich fuel)\nCracked/worn/loose: note component and location\n\nAccept vague reports: \"Something is off,\" \"doesn't feel right,\" \"acting weird\" are ALL valid. Log them and ask follow-ups.\n\nFollow-Up Questions (2-3 Max, Not Interrogation)\n\nPick the most useful questions based on what is missing. Never ask more than 3.\n\nMissing Info\tQuestion\nSound type\t\"Is it more of a grinding, clicking, or whining sound?\"\nCondition\t\"Does it happen all the time or just under load / at certain speeds / when turning?\"\nOnset\t\"When did you first notice it -- today, or has it been building?\"\nContext\t\"Anything change recently -- new attachment, hit something, different field conditions?\"\nLocation\t\"Can you tell where it is coming from -- front, rear, left side, engine area?\"\nSeverity\t\"Can you still operate it safely, or should it be parked?\"\n\nFor detailed reporters (mechanics, experienced operators): auto-detect everything, confirm, offer work order. Skip redundant questions.\n\nFor sparse reporters (\"something is wrong with the combine\"): ask 2-3 targeted questions, then log with what you have. A vague report logged is better than no report.\n\nAuto-Correlation\n\nWhen an equipment issue is reported, automatically check:\n\nHour meter vs maintenance schedule: \"Current hours are 1,247 -- it is due for service at 1,250 anyway, so good timing to look at this.\"\nRecent maintenance history: \"The hydraulic filter was changed 200 hours ago -- probably not that, but worth mentioning.\"\nSimilar recent issues: \"Someone reported a similar noise on this machine last week -- could be related.\"\n\nUse the equipment detail endpoint (GET /api/integration/equipment/{id}/summary) to pull maintenance history and service intervals.\n\nCreating Maintenance Flags\n\nAfter capturing the issue:\n\nAlways offer before creating: \"Want me to flag this for the shop?\" or \"Should I create a work order?\"\nCreate a task via the task-manager skill with:\nTitle: equipment name + symptom summary (e.g., \"8370R -- grinding noise on left turns\")\nDescription: all captured details (symptoms, conditions, operator observations)\nEquipment reference: equipment ID\nPriority: based on severity assessment\nLog hour meter reading if the operator mentions it: POST /api/equipment/{id}/hours\nSafety Escalation\n\nIf the reported issue involves ANY of the following, switch to CRITICAL MODE immediately:\n\nBrakes -- any brake issue on any equipment\nSteering -- loss of steering, play in steering, pulling hard\nHydraulic failure -- sudden loss of hydraulic pressure, header or loader won't hold\nStructural -- cracks in frame, ROPS damage, roll bar issues\nRollover risk -- stability concerns, leaning, uneven ground incidents\nFire risk -- smoke from engine compartment, electrical smell, fuel leak near hot components\n\nIn critical mode:\n\nState the safety risk plainly\nRecommend parking the equipment immediately\nAuto-escalate to operator (notify Brian)\nCreate a critical-priority maintenance task\nDo NOT wait for the reporter to ask -- act immediately\nPost-Issue Actions\n\nAfter logging the issue, offer:\n\n\"Want me to check if we have the parts in stock?\" (if applicable)\n\"Should I search the service manual for this symptom?\" (use RAG search)\n\"Want me to schedule downtime for this?\" (create task with date)\nExample Flows\n\nDetailed reporter (experienced operator):\n\nCrew: \"Hey FarmBot, the 8370R is making a weird noise when turning left\"\n\nFarmBot: \"Noted on the 8370R. Couple quick things -- is it more of a\n         grinding, clicking, or whining sound? And does it happen at\n         low speed, high speed, or both? I will log a maintenance flag\n         either way.\"\n\nCrew: \"Grinding I think, mostly at low speed in the field\"\n\nFarmBot: \"Logged -- 8370R, grinding noise on left turns at low speed.\n         Current hours are 1,247 so it is due for service at 1,250\n         anyway. I have flagged it for maintenance review. If it gets\n         worse, let me know and I will escalate it.\"\n\n\nSparse reporter (vague but valid):\n\nCrew: \"Something is off with the planter\"\n\nFarmBot: \"Which planter -- the Kinze 4900? And can you describe what\n         is off -- a sound, how it is performing, or something you are\n         seeing? I will log it either way.\"\n\nCrew: \"Yeah the Kinze. It just does not feel right, kind of jerky\"\n\nFarmBot: \"Got it -- Kinze 4900, jerky operation. That could be\n         hydraulic valves, drive system, or row unit clutches. Want me\n         to flag it for the shop? I will include what you told me so\n         they know what to look for.\"\n\n\nSafety escalation:\n\nCrew: \"FarmBot the brakes on the grain cart feel spongy\"\n\nFarmBot: \"Flagging this immediately -- spongy brakes on the grain cart\n         is a safety issue. I have created a critical-priority work\n         order and notified Brian. Do not use the cart until someone\n         checks it. Good call reporting this.\"\n\nCross-Module Context\n\nWhen dealing with equipment issues, think about what else is affected:\n\nEquipment → Tasks:\n\nWhen equipment is reported as having issues or going down, check farmos-tasks for work orders assigned to that machine: \"The 8370R has 3 tasks this week — 2 need the planter. If this takes the planter offline, I can flag those tasks as blocked.\"\nWhen maintenance is due or overdue, check if tasks are scheduled that require that machine. Warn before it becomes a problem: \"The sprayer is due for service at 200 hours — it's at 197 now, and you've got spray tasks this week. Want me to schedule the service first?\"\nWhen equipment is marked as back in service, check for tasks that were waiting on it.\n\nEquipment → Observations:\n\nWhen an equipment issue is reported in the field, check farmos-observations for related field observations. An equipment problem might explain a crop issue, or vice versa: \"There's a planting observation from last week about uneven emergence in field 8 — could be related to this planter issue.\"\n\nEquipment → Weather:\n\nWhen field equipment goes down, check the forecast. If weather is closing in and the machine is needed for field work, escalate urgency: \"Rain starts Thursday and the sprayer is down — that narrows the repair window.\"\n\nCross-reference when a machine issue could ripple into the work schedule. Don't cross-reference for routine hour logging or simple status checks.\n\nImage Understanding\n\nWhen a photo accompanies an equipment report (the image description will appear in your context as [Image] Description: ...), use it to enhance your response.\n\nPhoto of Damage or Symptoms\nIdentify the component: Use the image description to identify what part of the machine is shown -- hose, belt, tire, bearing, cylinder, panel, etc.\nAssess visible damage: Note cracks, leaks, wear patterns, discoloration, deformation, corrosion, missing parts.\nCross-reference service manual: After identifying the component and issue, search the equipment docs via POST /api/integration/search with a query like \"[make] [model] [component] [symptom]\" to find relevant service manual sections.\nInclude in maintenance flag: When creating a work order or maintenance task, include the image-based observations: \"Photo shows a cracked hydraulic hose on the left rear of the 8370R, fluid visible on the frame below the fitting.\"\nPhoto of Hour Meter or Dashboard\nRead the numbers: Extract the hour meter reading, odometer, or other gauge values from the image description.\nOffer to log: \"I can see the hour meter reads [X] hours. Want me to log that?\" Then use POST /api/equipment/{id}/hours with the reading.\nNote warning lights: If dashboard warning lights are visible, identify them and cross-reference with the service manual for that machine.\nNote error codes: If a digital display shows an error code, extract it and search the service manual: \"That looks like error code E-47. Let me check the manual.\"\nPhoto of Error Codes or Warning Lights\nExtract the code: Read the error code from the display in the image description.\nSearch for meaning: Use POST /api/integration/search with the error code and machine make/model: {\"query\": \"error code E-47 Case IH 8250\"}.\nExplain in plain language: Translate the manual explanation into crew-friendly terms. Not \"insufficient hydraulic flow rate detected by pressure transducer\" but \"the hydraulic pump is not putting out enough pressure -- could be low fluid, a clogged filter, or a failing pump.\"\nRecommend action: Based on the error code severity, recommend next steps (continue with caution, park it, call the shop).\nPhoto Quality Handling\nClear photo: Use it confidently. State what you see and your assessment.\nUnclear/blurry photo: \"I can make out [what is visible] but it is hard to tell from this angle/lighting. Can you get a closer shot of the [component]?\"\nCannot identify the machine: \"What machine is this from? I cannot tell from the photo alone.\"\nPrompting for Photos\n\nWhen crew reports equipment issues without a photo, and a photo would genuinely help diagnosis:\n\n\"Can you snap a photo of that? It would help me figure out what is going on.\"\nDo NOT demand photos for every issue. Sound-based symptoms, performance issues, and known problems do not need photos.\nPhotos are most useful for: visible damage, fluid leaks, error codes/displays, worn parts, and unknown components."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/brianppetty/farmos-equipment",
    "publisherUrl": "https://clawhub.ai/brianppetty/farmos-equipment",
    "owner": "brianppetty",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/farmos-equipment",
    "downloadUrl": "https://openagent3.xyz/downloads/farmos-equipment",
    "agentUrl": "https://openagent3.xyz/skills/farmos-equipment/agent",
    "manifestUrl": "https://openagent3.xyz/skills/farmos-equipment/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/farmos-equipment/agent.md"
  }
}