HomeBrowseUpload
← Back to registry
// Skill profile

FarmOS Equipment

name: farmos-equipment

by brianppetty · published 2026-03-22

日历管理图像生成
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:brianppetty/brianppetty-farmos-equipment
View on GitHub
// Full documentation

---

name: farmos-equipment

description: Query equipment status, maintenance schedules, and service history for the farm fleet. Uses integration endpoints (no auth required).

tags: [farming, equipment, maintenance]

---

# FarmOS Equipment

Query and manage farm equipment data — status, maintenance schedules, service records, and parts inventory.

When to Use This

**What this skill handles:** Fleet status, maintenance schedules, equipment issues, hour/mileage logging, service manual lookups, parts questions, and maintenance completion records.

**Trigger 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?"

**What 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).

**Minimum viable input:** A machine name or description of an equipment issue. "The combine sounds funny" is enough.

API Base

http://100.102.77.110:8005

Data Completeness Rules

**CRITICAL: Always return complete data, never truncated results.**

1. **Dashboard endpoint is for SUMMARY STATS ONLY** — use `/api/integration/dashboard` for counts and overdue items, NOT for listing equipment.

2. **For listing equipment**, use `/api/integration/equipment` which returns ALL equipment without pagination.

3. **For due maintenance**, use `/api/integration/due-maintenance` which returns ALL due/overdue items.

4. **Always state the total count** of items returned: "Found 3 overdue maintenance items" (not just "overdue items:").

5. **If suspiciously few results**, flag it: "Only seeing X items — that may be incomplete. Let me try a different endpoint."

6. **If an endpoint fails**, report the failure to the user rather than silently falling back to partial data.

Integration Endpoints (No Auth Required)

Dashboard Summary

GET /api/integration/dashboard

Returns: Equipment counts, maintenance stats, overdue items.

**Use for:** Summary statistics and counts ONLY. Do NOT use for listing equipment or maintenance items.

Equipment List

GET /api/integration/equipment

Returns: All equipment with id, name, make, model, type, status, current_hours.

**Use for:** Complete equipment listing. This endpoint returns ALL equipment without truncation.

Use this to look up equipment IDs for other queries.

Equipment Detail

GET /api/integration/equipment/{id}/summary

Returns: Full equipment summary including maintenance history, upcoming service, documents.

Due Maintenance

GET /api/integration/due-maintenance

Returns: List of maintenance items that are due or overdue, including:

  • schedule_id, equipment_id, equipment_name
  • maintenance_name, priority (low/normal/high/critical)
  • trigger_type (hours/calendar/seasonal)
  • hours_overdue or days_overdue
  • estimated_duration_minutes
  • parts_required list
  • **Use for:** Complete list of ALL due/overdue maintenance. Returns all items without truncation.

    Record Maintenance Completion

    POST /api/integration/record-completion

    Content-Type: application/json

    Body:

    {
      "schedule_id": 1,
      "equipment_id": 5,
      "performed_at": "2026-02-13T10:00:00Z",
      "performed_by": "user_name",
      "equipment_hours": 1250,
      "work_performed": "Changed engine oil and filter",
      "parts_used": [],
      "task_id": null
    }

    Use this when someone reports maintenance was done.

    Semantic Search (Service Documents)

    POST /api/integration/search

    Content-Type: application/json

    Body:

    {
      "query": "hydraulic fluid capacity 8370R",
      "limit": 5
    }

    Returns: Relevant chunks from service manuals and parts catalogs with similarity scores. Use this for technical questions about equipment specs, procedures, and parts.

    RAG Q&A

    POST /api/integration/ask

    Content-Type: application/json

    Body:

    {
      "question": "What oil does the 8370R take?"
    }

    Returns: AI-generated answer sourced from service documents. Use for natural language equipment questions.

    Regular API Endpoints

    These endpoints provide additional functionality:

    Equipment CRUD

    GET /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"}

    Maintenance

    GET /api/maintenance/due — Detailed due maintenance list

    GET /api/schedules — All maintenance schedules

    GET /api/maintenance — Maintenance history records

    Usage Notes

  • Equipment IDs are integers. Use the equipment list to find IDs by name.
  • Hour-based maintenance triggers when current_hours >= due_at_hours.
  • Calendar-based maintenance triggers on date.
  • Priority levels: low, normal, high, critical. Flag "critical" items prominently.
  • When reporting maintenance status, always mention overdue items first.
  • The RAG search endpoints can answer technical questions from uploaded service manuals.
  • Conversational Equipment Issue Intake

    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.

    Symptom Detection

    Auto-detect from the message what you can:

    **Sound symptoms** (map to likely systems):

  • Grinding: bearings, gears, brakes
  • Clicking/knocking: engine, drivetrain, loose components
  • Whining/squealing: belts, hydraulic pump, power steering
  • Hissing: air leak, hydraulic line, cooling system
  • **Performance symptoms:**

  • Sluggish/underpowered: fuel system, air filter, turbo, transmission
  • Jerky/rough: drivetrain, clutch, hydraulic valves
  • Drifting/pulling: steering, alignment, tire pressure
  • Vibrating: balance, bearings, driveshaft, loose components
  • Overheating: coolant, radiator, fan, thermostat
  • **Visual symptoms:**

  • Leaking: identify fluid color (oil=dark, hydraulic=amber/red, coolant=green/orange, fuel=clear/diesel smell)
  • Smoking: color matters (white=coolant, blue=oil burning, black=rich fuel)
  • Cracked/worn/loose: note component and location
  • **Accept vague reports:** "Something is off," "doesn't feel right," "acting weird" are ALL valid. Log them and ask follow-ups.

    Follow-Up Questions (2-3 Max, Not Interrogation)

    Pick the most useful questions based on what is missing. Never ask more than 3.

    | Missing Info | Question |

    |-------------|----------|

    | Sound 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?" |

    **For detailed reporters** (mechanics, experienced operators): auto-detect everything, confirm, offer work order. Skip redundant questions.

    **For 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.

    Auto-Correlation

    When an equipment issue is reported, automatically check:

    1. **Hour 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."

    2. **Recent maintenance history:** "The hydraulic filter was changed 200 hours ago -- probably not that, but worth mentioning."

    3. **Similar recent issues:** "Someone reported a similar noise on this machine last week -- could be related."

    Use the equipment detail endpoint (GET /api/integration/equipment/{id}/summary) to pull maintenance history and service intervals.

    Creating Maintenance Flags

    After capturing the issue:

    1. **Always offer before creating:** "Want me to flag this for the shop?" or "Should I create a work order?"

    2. **Create a task** via the task-manager skill with:

    - Title: equipment name + symptom summary (e.g., "8370R -- grinding noise on left turns")

    - Description: all captured details (symptoms, conditions, operator observations)

    - Equipment reference: equipment ID

    - Priority: based on severity assessment

    3. **Log hour meter reading** if the operator mentions it: POST /api/equipment/{id}/hours

    Safety Escalation

    If the reported issue involves ANY of the following, switch to CRITICAL MODE immediately:

  • **Brakes** -- any brake issue on any equipment
  • **Steering** -- loss of steering, play in steering, pulling hard
  • **Hydraulic failure** -- sudden loss of hydraulic pressure, header or loader won't hold
  • **Structural** -- cracks in frame, ROPS damage, roll bar issues
  • **Rollover risk** -- stability concerns, leaning, uneven ground incidents
  • **Fire risk** -- smoke from engine compartment, electrical smell, fuel leak near hot components
  • **In critical mode:**

  • State the safety risk plainly
  • Recommend parking the equipment immediately
  • Auto-escalate to operator (notify Brian)
  • Create a critical-priority maintenance task
  • Do NOT wait for the reporter to ask -- act immediately
  • Post-Issue Actions

    After logging the issue, offer:

  • "Want me to check if we have the parts in stock?" (if applicable)
  • "Should I search the service manual for this symptom?" (use RAG search)
  • "Want me to schedule downtime for this?" (create task with date)
  • Example Flows

    **Detailed reporter (experienced operator):**

    Crew: "Hey FarmBot, the 8370R is making a weird noise when turning left"
    
    FarmBot: "Noted on the 8370R. Couple quick things -- is it more of a
             grinding, clicking, or whining sound? And does it happen at
             low speed, high speed, or both? I will log a maintenance flag
             either way."
    
    Crew: "Grinding I think, mostly at low speed in the field"
    
    FarmBot: "Logged -- 8370R, grinding noise on left turns at low speed.
             Current hours are 1,247 so it is due for service at 1,250
             anyway. I have flagged it for maintenance review. If it gets
             worse, let me know and I will escalate it."

    **Sparse reporter (vague but valid):**

    Crew: "Something is off with the planter"
    
    FarmBot: "Which planter -- the Kinze 4900? And can you describe what
             is off -- a sound, how it is performing, or something you are
             seeing? I will log it either way."
    
    Crew: "Yeah the Kinze. It just does not feel right, kind of jerky"
    
    FarmBot: "Got it -- Kinze 4900, jerky operation. That could be
             hydraulic valves, drive system, or row unit clutches. Want me
             to flag it for the shop? I will include what you told me so
             they know what to look for."

    **Safety escalation:**

    Crew: "FarmBot the brakes on the grain cart feel spongy"
    
    FarmBot: "Flagging this immediately -- spongy brakes on the grain cart
             is a safety issue. I have created a critical-priority work
             order and notified Brian. Do not use the cart until someone
             checks it. Good call reporting this."

    ---

    Cross-Module Context

    When dealing with equipment issues, think about what else is affected:

    **Equipment → Tasks:**

  • When 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."
  • When 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?"
  • When equipment is marked as back in service, check for tasks that were waiting on it.
  • **Equipment → Observations:**

  • When 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."
  • **Equipment → Weather:**

  • When 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."
  • Cross-reference when a machine issue could ripple into the work schedule. Don't cross-reference for routine hour logging or simple status checks.

    Image Understanding

    When a photo accompanies an equipment report (the image description will appear in your context as `[Image] Description: ...`), use it to enhance your response.

    Photo of Damage or Symptoms

  • **Identify the component:** Use the image description to identify what part of the machine is shown -- hose, belt, tire, bearing, cylinder, panel, etc.
  • **Assess visible damage:** Note cracks, leaks, wear patterns, discoloration, deformation, corrosion, missing parts.
  • **Cross-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.
  • **Include 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."
  • Photo of Hour Meter or Dashboard

  • **Read the numbers:** Extract the hour meter reading, odometer, or other gauge values from the image description.
  • **Offer 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.
  • **Note warning lights:** If dashboard warning lights are visible, identify them and cross-reference with the service manual for that machine.
  • **Note 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."
  • Photo of Error Codes or Warning Lights

  • **Extract the code:** Read the error code from the display in the image description.
  • **Search for meaning:** Use `POST /api/integration/search` with the error code and machine make/model: `{"query": "error code E-47 Case IH 8250"}`.
  • **Explain 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."
  • **Recommend action:** Based on the error code severity, recommend next steps (continue with caution, park it, call the shop).
  • Photo Quality Handling

  • **Clear photo:** Use it confidently. State what you see and your assessment.
  • **Unclear/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]?"
  • **Cannot identify the machine:** "What machine is this from? I cannot tell from the photo alone."
  • Prompting for Photos

    When crew reports equipment issues without a photo, and a photo would genuinely help diagnosis:

  • "Can you snap a photo of that? It would help me figure out what is going on."
  • Do NOT demand photos for every issue. Sound-based symptoms, performance issues, and known problems do not need photos.
  • Photos are most useful for: visible damage, fluid leaks, error codes/displays, worn parts, and unknown components.
  • // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band