farmos-tasksQuery and manage farm work orders and tasks. View assignments, create tasks, update status. Uses integration endpoints (no auth) for reads and authenticated...
Install via ClawdBot CLI:
clawdbot install brianppetty/farmos-tasksWork orders and task management — view assignments, check status, and manage the task workflow.
What this skill handles: Task creation, assignments, status updates, work orders, action items, follow-ups, and restock/procurement requests.
Trigger phrases: "remind me to...", "we need to...", "someone should...", "create a task", "what tasks are assigned to me?", "any overdue tasks?", "mark task X as complete", "we're low on...", "used the last...", "we need more..."
What this does NOT handle: Equipment maintenance tracking (use farmos-equipment), scheduling/time-off/availability (use farmos-workforce), field observations and scouting reports (use farmos-observations).
Minimum viable input: Any description of work that needs to happen. "We need to do something about field 12" is enough.
http://100.102.77.110:8007
GET /api/integration/dashboard
Returns: Task widget data — counts by status, priority breakdown, recent activity. Use for summary stats only — not for listing tasks.
GET /api/integration/tasks-summary
Returns: Aggregate counts:
{
"total": 15,
"pending": 3,
"assigned": 5,
"in_progress": 4,
"completed": 3,
"critical": 1,
"high_priority": 2,
"overdue": 1
}
GET /api/integration/tasks?limit=10&status=in_progress&priority=high
Query params: limit, status (pending|assigned|in_progress|completed|cancelled), priority (low|normal|high|critical)
Returns: Simplified task objects with id, title, status, priority, due_date, assignees.
GET /api/integration/tasks/{id}
Returns: Full task detail for integration.
These require JWT auth. See Authentication section below.
This skill accesses protected FarmOS endpoints that require a JWT token.
To get a token: Run the auth helper with the appropriate role:
TOKEN=$(~/clawd/scripts/farmos-auth.sh manager)
To use the token: Include it as a Bearer token:
curl -H "Authorization: Bearer $TOKEN" http://100.102.77.110:8007/api/endpoint
Token expiry: Tokens last 15 minutes. If you get a 401 response, request a new token.
Role mapping: Check the sender's role in ~/.clawdbot/farmos-users.json to determine which auth level to use. If the user's role doesn't have permission for the requested data, tell them they don't have access rather than trying with a higher-privilege token.
GET /api/tasks/mine
Authorization: Bearer {token}
Returns: Tasks assigned to the authenticated user.
POST /api/tasks
Authorization: Bearer {token}
Content-Type: application/json
Body:
{
"title": "Spray north fields - Section 12",
"description": "Apply pre-emerge herbicide per agronomy recommendation",
"priority": "high",
"due_date": "2026-02-20",
"equipment_id": 5,
"estimated_duration_minutes": 180
}
POST /api/tasks/{id}/start — Mark as in_progress
POST /api/tasks/{id}/complete — Mark as completed
POST /api/tasks/{id}/cancel — Cancel task
Authorization: Bearer {token}
POST /api/tasks/{id}/assign
Authorization: Bearer {token}
Content-Type: application/json
Body:
{
"employee_ids": [3, 4]
}
Employee IDs come from the Workforce module integration endpoint.
GET /api/templates
Authorization: Bearer {token}
POST /api/templates/{id}/create-task
Authorization: Bearer {token}
Creates a new task pre-filled from the template.
pending → assigned → in_progress → completed
→ cancelled
The bot should recognize when someone describes work that needs to happen and offer to create a task. Do NOT create tasks silently — always offer first.
When someone describes actionable work, extract as much as you can:
| Signal | How to Detect | Example |
|--------|--------------|---------|
| Assignee | "tell Jake to..." → Jake. "I need to..." → reporter. Otherwise → unassigned | "Tell Jake to check the tile outlet" → assignee: Jake |
| Priority | "ASAP" / "before it rains" / "right now" → high. "When you get a chance" / "sometime" → low. Default → normal | "We need to spray before it rains" → priority: high |
| Field | Field number, field name, landmark reference | "field 14", "the Byrd farm", "that field by the elevator" |
| Equipment | Machine name, number, type | "the 8370R", "the planter", "combine #2" |
| Deadline | Time references parsed to dates | "by Thursday", "this week", "before planting", "end of month" |
| What They Say | Auto-Detect |
|--------------|-------------|
| "We need to spray field 14 before Thursday" | Field: 14, action: spray, deadline: Thursday |
| "Remind me to call the seed rep" | Assignee: reporter, action: call seed rep |
| "Someone should check the tile outlet in field 8" | Field: 8, action: check tile outlet, unassigned |
| "The north fence needs fixed before we turn cows out" | Location: north fence, context: cattle, deadline: before turnout |
| "Jake needs to grease the planter before we start" | Assignee: Jake, equipment: planter, action: grease |
| "We should probably get the combine serviced this month" | Equipment: combine, action: service, deadline: end of month, priority: normal |
Never create a task without confirming. Pattern:
"Creating: 'Spray field 14' — due Thursday, unassigned. Sound right?"
If they say yes, confirm details and POST. If they tweak something ("actually make it high priority"), adjust and confirm again.
Any mention of supply levels should be treated as actionable. The bot captures supply intel that would otherwise be lost.
| What They Say | Action | Priority |
|--------------|--------|----------|
| "We're low on hydraulic filters" | Offer restock task (tag: procurement) | normal |
| "Used the last box of seed treatment" | Create restock task (tag: procurement) | high — last one is urgent |
| "We're gonna need more twine before we're done" | Offer restock task (tag: procurement) | normal |
| "Down to 2 hydraulic filters for the planters" | Offer restock task with quantity context | normal |
| "I ordered 5 gallons of Roundup" | Acknowledge — no task needed (already ordered) | — |
| "Where do we keep the grease cartridges?" | Answer question — no task | — |
| "We're out of DEF" | Create restock task (tag: procurement) | high — completely out |
When creating a procurement task:
{
"title": "Restock: hydraulic filters (planters)",
"description": "Crew reports low supply — down to 2 remaining",
"priority": "normal",
"tags": ["procurement"]
}
Tag ALL supply/restock tasks with procurement so they can be filtered and batched for ordering.
For "used the last" or "completely out" situations, set priority to "high".
/tasks endpoint with appropriate filters for listing, not /api/integration/dashboard (which truncates)When working with tasks, connect the dots to other modules:
Tasks → Weather:
Tasks → Equipment:
Tasks → Observations:
Tasks → Marketing (delivery deadlines):
Cross-reference when it adds value. Not every "mark task complete" needs a weather check. Use judgment — the goal is connecting dots the crew might miss, not adding noise to simple operations.
Generated Mar 1, 2026
A farm manager uses the skill to monitor task progress across teams, quickly assign new tasks based on field observations, and ensure high-priority items like spraying before rain are addressed. They rely on integration endpoints for real-time dashboards and authenticated writes to delegate work efficiently.
A field worker notices low herbicide levels and verbally reports 'we're low on spray' to the AI assistant. The skill detects this as a procurement request, prompts the worker to confirm details, and creates a task for restocking, automatically setting it as high priority to prevent workflow delays.
During harvest season, a team lead uses the skill to check overdue tasks and reassign workers based on equipment availability. They query tasks by status like 'in_progress' and update completion statuses via voice commands, ensuring seamless coordination across multiple fields and machinery.
A farm owner accesses summary stats via integration endpoints to review task counts by priority and overdue items. They use this data in meetings to identify bottlenecks, plan resource allocation for the coming week, and ensure critical tasks like fence repairs before livestock turnout are tracked.
A new employee is guided through standard procedures using task templates, such as equipment maintenance checks. The skill creates pre-filled tasks from templates, assigns them to the employee, and allows status updates via simple commands like 'mark task X as complete,' speeding up training and compliance.
Offer this skill as part of a monthly subscription service for small to mid-sized farms, providing AI-driven task management, analytics dashboards, and integration with other farm modules. Revenue comes from tiered plans based on user count and advanced features like predictive task scheduling.
Provide consulting services to large agricultural enterprises for custom integration of this skill with existing ERP systems, workforce tools, and IoT devices. Revenue is generated through project-based fees, ongoing support contracts, and training workshops for farm staff.
Deploy a freemium mobile app where individual farmers can use basic task tracking for free, with premium features like automated priority detection, template libraries, and team collaboration tools available via in-app purchases or annual subscriptions. Revenue scales with user adoption and upsells.
💬 Integration Tip
Ensure JWT tokens are refreshed every 15 minutes to avoid authentication failures, and map user roles from farmos-users.json to enforce access controls without over-privileging tokens.
Use the @steipete/oracle CLI to bundle a prompt plus the right files and get a second-model review (API or browser) for debugging, refactors, design checks, or cross-validation.
Manage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database). Use when a user asks Clawdbot to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.
Local search/indexing CLI (BM25 + vectors + rerank) with MCP mode.
Use when designing database schemas, writing migrations, optimizing SQL queries, fixing N+1 problems, creating indexes, setting up PostgreSQL, configuring EF Core, implementing caching, partitioning tables, or any database performance question.
Connect to Supabase for database operations, vector search, and storage. Use for storing data, running SQL queries, similarity search with pgvector, and managing tables. Triggers on requests involving databases, vector stores, embeddings, or Supabase specifically.
Query, design, migrate, and optimize SQL databases. Use when working with SQLite, PostgreSQL, or MySQL — schema design, writing queries, creating migrations, indexing, backup/restore, and debugging slow queries. No ORMs required.