{
  "schemaVersion": "1.0",
  "item": {
    "slug": "farmos-tasks",
    "name": "Farmos Tasks",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/brianppetty/farmos-tasks",
    "canonicalUrl": "https://clawhub.ai/brianppetty/farmos-tasks",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/farmos-tasks",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=farmos-tasks",
    "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-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.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-tasks"
    },
    "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-tasks",
    "agentPageUrl": "https://openagent3.xyz/skills/farmos-tasks/agent",
    "manifestUrl": "https://openagent3.xyz/skills/farmos-tasks/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/farmos-tasks/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 Task Manager",
        "body": "Work orders and task management — view assignments, check status, and manage the task workflow."
      },
      {
        "title": "When to Use This",
        "body": "What this skill handles: Task creation, assignments, status updates, work orders, action items, follow-ups, and restock/procurement requests.\n\nTrigger 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...\"\n\nWhat 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).\n\nMinimum viable input: Any description of work that needs to happen. \"We need to do something about field 12\" is enough."
      },
      {
        "title": "API Base",
        "body": "http://100.102.77.110:8007"
      },
      {
        "title": "Dashboard Summary",
        "body": "GET /api/integration/dashboard\n\nReturns: Task widget data — counts by status, priority breakdown, recent activity. Use for summary stats only — not for listing tasks."
      },
      {
        "title": "Tasks Summary",
        "body": "GET /api/integration/tasks-summary\n\nReturns: Aggregate counts:\n\n{\n  \"total\": 15,\n  \"pending\": 3,\n  \"assigned\": 5,\n  \"in_progress\": 4,\n  \"completed\": 3,\n  \"critical\": 1,\n  \"high_priority\": 2,\n  \"overdue\": 1\n}"
      },
      {
        "title": "Task List (Filtered)",
        "body": "GET /api/integration/tasks?limit=10&status=in_progress&priority=high\n\nQuery params: limit, status (pending|assigned|in_progress|completed|cancelled), priority (low|normal|high|critical)\n\nReturns: Simplified task objects with id, title, status, priority, due_date, assignees."
      },
      {
        "title": "Single Task",
        "body": "GET /api/integration/tasks/{id}\n\nReturns: Full task detail for integration."
      },
      {
        "title": "Authenticated Endpoints",
        "body": "These require JWT auth. See Authentication section below."
      },
      {
        "title": "Authentication",
        "body": "This skill accesses protected FarmOS endpoints that require a JWT token.\n\nTo get a token: Run the auth helper with the appropriate role:\n\nTOKEN=$(~/clawd/scripts/farmos-auth.sh manager)\n\nTo use the token: Include it as a Bearer token:\n\ncurl -H \"Authorization: Bearer $TOKEN\" http://100.102.77.110:8007/api/endpoint\n\nToken expiry: Tokens last 15 minutes. If you get a 401 response, request a new token.\n\nRole 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."
      },
      {
        "title": "My Tasks (Employee View)",
        "body": "GET /api/tasks/mine\nAuthorization: Bearer {token}\n\nReturns: Tasks assigned to the authenticated user."
      },
      {
        "title": "Create Task (Manager+)",
        "body": "POST /api/tasks\nAuthorization: Bearer {token}\nContent-Type: application/json\n\nBody:\n\n{\n  \"title\": \"Spray north fields - Section 12\",\n  \"description\": \"Apply pre-emerge herbicide per agronomy recommendation\",\n  \"priority\": \"high\",\n  \"due_date\": \"2026-02-20\",\n  \"equipment_id\": 5,\n  \"estimated_duration_minutes\": 180\n}"
      },
      {
        "title": "Update Task Status",
        "body": "POST /api/tasks/{id}/start — Mark as in_progress\nPOST /api/tasks/{id}/complete — Mark as completed\nPOST /api/tasks/{id}/cancel — Cancel task\nAuthorization: Bearer {token}"
      },
      {
        "title": "Assign Task (Manager+)",
        "body": "POST /api/tasks/{id}/assign\nAuthorization: Bearer {token}\nContent-Type: application/json\n\nBody:\n\n{\n  \"employee_ids\": [3, 4]\n}\n\nEmployee IDs come from the Workforce module integration endpoint."
      },
      {
        "title": "List Templates",
        "body": "GET /api/templates\nAuthorization: Bearer {token}"
      },
      {
        "title": "Create Task from Template",
        "body": "POST /api/templates/{id}/create-task\nAuthorization: Bearer {token}\n\nCreates a new task pre-filled from the template."
      },
      {
        "title": "Status Workflow",
        "body": "pending → assigned → in_progress → completed\n                                  → cancelled\n\nTasks start as \"pending\"\nAssigning employees moves to \"assigned\"\nWorker starting moves to \"in_progress\"\nWorker finishing moves to \"completed\""
      },
      {
        "title": "Conversational Task Creation",
        "body": "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."
      },
      {
        "title": "Auto-Detect from Conversation",
        "body": "When someone describes actionable work, extract as much as you can:\n\nSignalHow to DetectExampleAssignee\"tell Jake to...\" → Jake. \"I need to...\" → reporter. Otherwise → unassigned\"Tell Jake to check the tile outlet\" → assignee: JakePriority\"ASAP\" / \"before it rains\" / \"right now\" → high. \"When you get a chance\" / \"sometime\" → low. Default → normal\"We need to spray before it rains\" → priority: highFieldField number, field name, landmark reference\"field 14\", \"the Byrd farm\", \"that field by the elevator\"EquipmentMachine name, number, type\"the 8370R\", \"the planter\", \"combine #2\"DeadlineTime references parsed to dates\"by Thursday\", \"this week\", \"before planting\", \"end of month\""
      },
      {
        "title": "Natural Language Examples",
        "body": "What They SayAuto-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"
      },
      {
        "title": "Confirmation Before Creating (ALWAYS)",
        "body": "Never create a task without confirming. Pattern:\n\n\"Creating: 'Spray field 14' — due Thursday, unassigned. Sound right?\"\n\nIf they say yes, confirm details and POST. If they tweak something (\"actually make it high priority\"), adjust and confirm again."
      },
      {
        "title": "When NOT to Offer a Task",
        "body": "Message is clearly just conversation, not actionable (\"Man, that field looks rough\")\nSomeone is asking a question, not requesting work (\"When was field 14 last sprayed?\")\nThe work is already being done right now (\"I'm spraying field 14\")\nIt's a status update, not a new request (\"Field 14 is done\")"
      },
      {
        "title": "Guidance",
        "body": "\"Want me to make that a task?\" is the right prompt when it sounds like work\nIf vague, create the task with what you have — a vague task is better than no task\nFor recurring needs (\"we always need to do X before Y\"), mention templates: \"Want me to create a template for this so it auto-generates next time?\"\nAfter creating, offer related actions: \"Want me to assign someone?\" \"Should I set a reminder?\""
      },
      {
        "title": "Parts & Supplies Intake",
        "body": "Any mention of supply levels should be treated as actionable. The bot captures supply intel that would otherwise be lost."
      },
      {
        "title": "Detection Patterns",
        "body": "What They SayActionPriority\"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 contextnormal\"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"
      },
      {
        "title": "Response Patterns",
        "body": "Low supply: \"Good to know — logged it. Want me to create a restock task or just flag it for Brian?\"\nLast one / completely out: \"Noted — that sounds urgent. Creating a restock task now.\" (still confirm, but signal urgency)\nAlready ordered: \"Got it, thanks for the heads up.\" (no task, just acknowledge)\nQuestion about supplies: Answer the question, no task creation"
      },
      {
        "title": "Restock Task Format",
        "body": "When creating a procurement task:\n\n{\n  \"title\": \"Restock: hydraulic filters (planters)\",\n  \"description\": \"Crew reports low supply — down to 2 remaining\",\n  \"priority\": \"normal\",\n  \"tags\": [\"procurement\"]\n}\n\nTag ALL supply/restock tasks with procurement so they can be filtered and batched for ordering.\n\nFor \"used the last\" or \"completely out\" situations, set priority to \"high\"."
      },
      {
        "title": "Data Completeness",
        "body": "Always report the total count of records returned\nIf a query returns suspiciously few results, say so: \"I'm only seeing X results — that may be incomplete\"\nUse integration /tasks endpoint with appropriate filters for listing, not /api/integration/dashboard (which truncates)\nFor paginated results, note the total and offer to fetch more"
      },
      {
        "title": "Cross-Module Context",
        "body": "When working with tasks, connect the dots to other modules:\n\nTasks → Weather:\n\nWhen listing today's tasks or the week's schedule, check farmos-weather. Flag conflicts: \"You've got spray tasks on the board for Thursday, but rain is coming Thursday afternoon. Might want to move those up.\"\nFor any field operation task (spraying, planting, harvesting, tillage), the weather matters. Check spray conditions for spray tasks, check precipitation forecast for fieldwork.\nDon't check weather for shop tasks, office tasks, or supply runs — only field work.\n\nTasks → Equipment:\n\nWhen listing tasks, check farmos-equipment for machine availability. If a task requires specific equipment, verify it's not down or due for maintenance: \"The sprayer has 3 tasks this week, but it's at 197 hours and service is due at 200. Might want to get that done first.\"\nWhen a task is created for a specific machine, check that machine's status. If it's in maintenance or has an open issue, flag it.\nWhen equipment is reported as down, check for tasks assigned to that machine and offer to flag them as blocked.\n\nTasks → Observations:\n\nWhen a task relates to a field, check farmos-observations for recent observations on that field. \"There's a waterhemp observation from yesterday in field 14 — might be related to the scouting task.\"\nAfter a task is created from an observation (e.g., \"spray field 14 for waterhemp\"), link back to the observation context.\n\nTasks → Marketing (delivery deadlines):\n\nDuring harvest season, check farmos-marketing delivery schedules. Delivery commitments affect which fields get priority: \"You've got a 5,000-bu bean delivery to ADM due next week — priority on the bean fields.\"\nThis only matters during harvest and delivery windows. Don't cross-reference marketing for routine maintenance or spray tasks.\n\nCross-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."
      },
      {
        "title": "Usage Notes",
        "body": "Use integration endpoints for read queries (no auth needed).\nUse authenticated endpoints for creating/updating tasks (manager+ role).\nPriority levels: low, normal, high, critical.\nAlways check for overdue tasks in summaries.\nEquipment IDs link to the Equipment module — use farmos-equipment skill to look up names.\nEmployee IDs for assignments come from farmos-workforce skill.\nWhen creating tasks, suggest appropriate priority based on context."
      }
    ],
    "body": "FarmOS Task Manager\n\nWork orders and task management — view assignments, check status, and manage the task workflow.\n\nWhen to Use This\n\nWhat this skill handles: Task creation, assignments, status updates, work orders, action items, follow-ups, and restock/procurement requests.\n\nTrigger 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...\"\n\nWhat 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).\n\nMinimum viable input: Any description of work that needs to happen. \"We need to do something about field 12\" is enough.\n\nAPI Base\n\nhttp://100.102.77.110:8007\n\nIntegration Endpoints (No Auth Required)\nDashboard Summary\n\nGET /api/integration/dashboard\n\nReturns: Task widget data — counts by status, priority breakdown, recent activity. Use for summary stats only — not for listing tasks.\n\nTasks Summary\n\nGET /api/integration/tasks-summary\n\nReturns: Aggregate counts:\n\n{\n  \"total\": 15,\n  \"pending\": 3,\n  \"assigned\": 5,\n  \"in_progress\": 4,\n  \"completed\": 3,\n  \"critical\": 1,\n  \"high_priority\": 2,\n  \"overdue\": 1\n}\n\nTask List (Filtered)\n\nGET /api/integration/tasks?limit=10&status=in_progress&priority=high\n\nQuery params: limit, status (pending|assigned|in_progress|completed|cancelled), priority (low|normal|high|critical)\n\nReturns: Simplified task objects with id, title, status, priority, due_date, assignees.\n\nSingle Task\n\nGET /api/integration/tasks/{id}\n\nReturns: Full task detail for integration.\n\nAuthenticated Endpoints\n\nThese require JWT auth. See Authentication section below.\n\nAuthentication\n\nThis skill accesses protected FarmOS endpoints that require a JWT token.\n\nTo get a token: Run the auth helper with the appropriate role:\n\nTOKEN=$(~/clawd/scripts/farmos-auth.sh manager)\n\n\nTo use the token: Include it as a Bearer token:\n\ncurl -H \"Authorization: Bearer $TOKEN\" http://100.102.77.110:8007/api/endpoint\n\n\nToken expiry: Tokens last 15 minutes. If you get a 401 response, request a new token.\n\nRole 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.\n\nMy Tasks (Employee View)\n\nGET /api/tasks/mine Authorization: Bearer {token}\n\nReturns: Tasks assigned to the authenticated user.\n\nCreate Task (Manager+)\n\nPOST /api/tasks Authorization: Bearer {token} Content-Type: application/json\n\nBody:\n\n{\n  \"title\": \"Spray north fields - Section 12\",\n  \"description\": \"Apply pre-emerge herbicide per agronomy recommendation\",\n  \"priority\": \"high\",\n  \"due_date\": \"2026-02-20\",\n  \"equipment_id\": 5,\n  \"estimated_duration_minutes\": 180\n}\n\nUpdate Task Status\n\nPOST /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}\n\nAssign Task (Manager+)\n\nPOST /api/tasks/{id}/assign Authorization: Bearer {token} Content-Type: application/json\n\nBody:\n\n{\n  \"employee_ids\": [3, 4]\n}\n\n\nEmployee IDs come from the Workforce module integration endpoint.\n\nTask Templates\nList Templates\n\nGET /api/templates Authorization: Bearer {token}\n\nCreate Task from Template\n\nPOST /api/templates/{id}/create-task Authorization: Bearer {token}\n\nCreates a new task pre-filled from the template.\n\nStatus Workflow\npending → assigned → in_progress → completed\n                                  → cancelled\n\nTasks start as \"pending\"\nAssigning employees moves to \"assigned\"\nWorker starting moves to \"in_progress\"\nWorker finishing moves to \"completed\"\nConversational Task Creation\n\nThe 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.\n\nAuto-Detect from Conversation\n\nWhen someone describes actionable work, extract as much as you can:\n\nSignal\tHow to Detect\tExample\nAssignee\t\"tell Jake to...\" → Jake. \"I need to...\" → reporter. Otherwise → unassigned\t\"Tell Jake to check the tile outlet\" → assignee: Jake\nPriority\t\"ASAP\" / \"before it rains\" / \"right now\" → high. \"When you get a chance\" / \"sometime\" → low. Default → normal\t\"We need to spray before it rains\" → priority: high\nField\tField number, field name, landmark reference\t\"field 14\", \"the Byrd farm\", \"that field by the elevator\"\nEquipment\tMachine name, number, type\t\"the 8370R\", \"the planter\", \"combine #2\"\nDeadline\tTime references parsed to dates\t\"by Thursday\", \"this week\", \"before planting\", \"end of month\"\nNatural Language Examples\nWhat They Say\tAuto-Detect\n\"We need to spray field 14 before Thursday\"\tField: 14, action: spray, deadline: Thursday\n\"Remind me to call the seed rep\"\tAssignee: reporter, action: call seed rep\n\"Someone should check the tile outlet in field 8\"\tField: 8, action: check tile outlet, unassigned\n\"The north fence needs fixed before we turn cows out\"\tLocation: north fence, context: cattle, deadline: before turnout\n\"Jake needs to grease the planter before we start\"\tAssignee: Jake, equipment: planter, action: grease\n\"We should probably get the combine serviced this month\"\tEquipment: combine, action: service, deadline: end of month, priority: normal\nConfirmation Before Creating (ALWAYS)\n\nNever create a task without confirming. Pattern:\n\n\"Creating: 'Spray field 14' — due Thursday, unassigned. Sound right?\"\n\nIf they say yes, confirm details and POST. If they tweak something (\"actually make it high priority\"), adjust and confirm again.\n\nWhen NOT to Offer a Task\nMessage is clearly just conversation, not actionable (\"Man, that field looks rough\")\nSomeone is asking a question, not requesting work (\"When was field 14 last sprayed?\")\nThe work is already being done right now (\"I'm spraying field 14\")\nIt's a status update, not a new request (\"Field 14 is done\")\nGuidance\n\"Want me to make that a task?\" is the right prompt when it sounds like work\nIf vague, create the task with what you have — a vague task is better than no task\nFor recurring needs (\"we always need to do X before Y\"), mention templates: \"Want me to create a template for this so it auto-generates next time?\"\nAfter creating, offer related actions: \"Want me to assign someone?\" \"Should I set a reminder?\"\nParts & Supplies Intake\n\nAny mention of supply levels should be treated as actionable. The bot captures supply intel that would otherwise be lost.\n\nDetection Patterns\nWhat They Say\tAction\tPriority\n\"We're low on hydraulic filters\"\tOffer restock task (tag: procurement)\tnormal\n\"Used the last box of seed treatment\"\tCreate restock task (tag: procurement)\thigh — last one is urgent\n\"We're gonna need more twine before we're done\"\tOffer restock task (tag: procurement)\tnormal\n\"Down to 2 hydraulic filters for the planters\"\tOffer restock task with quantity context\tnormal\n\"I ordered 5 gallons of Roundup\"\tAcknowledge — no task needed (already ordered)\t—\n\"Where do we keep the grease cartridges?\"\tAnswer question — no task\t—\n\"We're out of DEF\"\tCreate restock task (tag: procurement)\thigh — completely out\nResponse Patterns\nLow supply: \"Good to know — logged it. Want me to create a restock task or just flag it for Brian?\"\nLast one / completely out: \"Noted — that sounds urgent. Creating a restock task now.\" (still confirm, but signal urgency)\nAlready ordered: \"Got it, thanks for the heads up.\" (no task, just acknowledge)\nQuestion about supplies: Answer the question, no task creation\nRestock Task Format\n\nWhen creating a procurement task:\n\n{\n  \"title\": \"Restock: hydraulic filters (planters)\",\n  \"description\": \"Crew reports low supply — down to 2 remaining\",\n  \"priority\": \"normal\",\n  \"tags\": [\"procurement\"]\n}\n\n\nTag ALL supply/restock tasks with procurement so they can be filtered and batched for ordering.\n\nFor \"used the last\" or \"completely out\" situations, set priority to \"high\".\n\nData Completeness\nAlways report the total count of records returned\nIf a query returns suspiciously few results, say so: \"I'm only seeing X results — that may be incomplete\"\nUse integration /tasks endpoint with appropriate filters for listing, not /api/integration/dashboard (which truncates)\nFor paginated results, note the total and offer to fetch more\nCross-Module Context\n\nWhen working with tasks, connect the dots to other modules:\n\nTasks → Weather:\n\nWhen listing today's tasks or the week's schedule, check farmos-weather. Flag conflicts: \"You've got spray tasks on the board for Thursday, but rain is coming Thursday afternoon. Might want to move those up.\"\nFor any field operation task (spraying, planting, harvesting, tillage), the weather matters. Check spray conditions for spray tasks, check precipitation forecast for fieldwork.\nDon't check weather for shop tasks, office tasks, or supply runs — only field work.\n\nTasks → Equipment:\n\nWhen listing tasks, check farmos-equipment for machine availability. If a task requires specific equipment, verify it's not down or due for maintenance: \"The sprayer has 3 tasks this week, but it's at 197 hours and service is due at 200. Might want to get that done first.\"\nWhen a task is created for a specific machine, check that machine's status. If it's in maintenance or has an open issue, flag it.\nWhen equipment is reported as down, check for tasks assigned to that machine and offer to flag them as blocked.\n\nTasks → Observations:\n\nWhen a task relates to a field, check farmos-observations for recent observations on that field. \"There's a waterhemp observation from yesterday in field 14 — might be related to the scouting task.\"\nAfter a task is created from an observation (e.g., \"spray field 14 for waterhemp\"), link back to the observation context.\n\nTasks → Marketing (delivery deadlines):\n\nDuring harvest season, check farmos-marketing delivery schedules. Delivery commitments affect which fields get priority: \"You've got a 5,000-bu bean delivery to ADM due next week — priority on the bean fields.\"\nThis only matters during harvest and delivery windows. Don't cross-reference marketing for routine maintenance or spray tasks.\n\nCross-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.\n\nUsage Notes\nUse integration endpoints for read queries (no auth needed).\nUse authenticated endpoints for creating/updating tasks (manager+ role).\nPriority levels: low, normal, high, critical.\nAlways check for overdue tasks in summaries.\nEquipment IDs link to the Equipment module — use farmos-equipment skill to look up names.\nEmployee IDs for assignments come from farmos-workforce skill.\nWhen creating tasks, suggest appropriate priority based on context."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/brianppetty/farmos-tasks",
    "publisherUrl": "https://clawhub.ai/brianppetty/farmos-tasks",
    "owner": "brianppetty",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/farmos-tasks",
    "downloadUrl": "https://openagent3.xyz/downloads/farmos-tasks",
    "agentUrl": "https://openagent3.xyz/skills/farmos-tasks/agent",
    "manifestUrl": "https://openagent3.xyz/skills/farmos-tasks/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/farmos-tasks/agent.md"
  }
}