{
  "schemaVersion": "1.0",
  "item": {
    "slug": "task-specialist",
    "name": "task-specialist",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/OBODA0/task-specialist",
    "canonicalUrl": "https://clawhub.ai/OBODA0/task-specialist",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/task-specialist",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=task-specialist",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "SKILL.md",
      "install.sh",
      "scripts/cmds/cmd_block.sh",
      "scripts/cmds/cmd_board.sh",
      "scripts/cmds/cmd_break.sh"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/task-specialist"
    },
    "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/task-specialist",
    "agentPageUrl": "https://openagent3.xyz/skills/task-specialist/agent",
    "manifestUrl": "https://openagent3.xyz/skills/task-specialist/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/task-specialist/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": "Task-Specialist",
        "body": "Local task management with SQLite. Offline, persistent, zero dependencies beyond sqlite3 and bash."
      },
      {
        "title": "Quick Start",
        "body": "# Install (creates DB only, no PATH changes)\nbash install.sh\n\n# Or install AND create easy CLI symlinks in ~/.local/bin\nbash install.sh --symlink\n\n# Create and work tasks\ntask create \"Build auth module\" --priority=8\ntask start 1\ntask-heartbeat 1          # keep-alive ping\ntask complete 1"
      },
      {
        "title": "Agent Principles",
        "body": "When using the task-specialist CLI, follow these principles to ensure high-quality, organized project execution:\n\nDecompose First: Always break large, multi-step requests into smaller, logical subtasks using task break.\nStatus Transparency: Keep task statuses (start, block, complete) updated in real-time so your progress is traceable and accurate.\nDependency Management: Use task depend to link tasks that rely on each other, preventing illogical execution order.\nDocument Progress: Use the --notes or task show output to keep track of critical information as you move through a project.\nMulti-Agent Swarm Queue: If executing in parallel alongside other agents, NEVER pick tasks blindly from task list (this causes severe race conditions). ALWAYS run task claim --agent=\"<YourName>\". This executes an atomic SQL lock to fetch the highest-priority, fully unblocked pending task exclusively for you and paints your node's identifier onto the global Kanban board.\nContext Persistence: Use task note <Next_Task_ID> \"Your specific context string\" to permanently pass vital URLs, file paths, or error codes to downstream agents before you close your current task. WARNING: Never store API keys or secrets in task notes; use secure local environment variables instead.\nVerification Checkpoints: If a task has a --verify=\"cmd\" bound to it, running task complete <ID> will natively print the Bash subshell checkpoint. For security (RCE prevention), these checkpoints must be executed manually."
      },
      {
        "title": "Swarm Orchestrator Guide",
        "body": "If you are the Primary Agent (Orchestrator) managing a complex project, task-specialist is designed to help you spawn parallel Subagents to execute decoupled work simultaneously.\n\nWhen to Spawn Subagents: Use the Swarm for horizontally scalable logic (e.g., \"Write isolated unit tests for 10 different files\", or \"Simultaneously deploy 3 independent Docker containers\"). Do not spawn subagents for highly linear, sequential work.\nDecomposing the Board:\n\nFirst, create all the parallel objectives using task create.\nCreate a final integration task (e.g., \"Merge services\") and link it to the subtasks using task depend. This automatically blocks the final task until all Subagents finish.\nUse task edit <ID> --notes=\"...\" to inject deep context (URLs, file paths, git SHAs) directly into the task payload.\n\n\nSpawning the Subagents: Use your native OpenClaw sessions_spawn tool to horizontally scale. Set mode: \"run\" for one-shot parallel workers. Pass them the strict execution prompt in the task parameter:\n{\n  \"tool\": \"sessions_spawn\",\n  \"runtime\": \"subagent\",\n  \"mode\": \"run\",\n  \"label\": \"worker-alpha\",\n  \"task\": \"You are a Swarm Worker utilizing the `task-specialist` skill. The task payload DB is at $PWD/.tasks.db. (Read SKILL.md for CLI syntax if needed).\\n1. Run `task claim --agent=\\\"worker-alpha\\\"` to atomically pop the queue.\\n2. Read your target objective via `task show <ID>`.\\n3. Execute the objective. Record vital context for me via `task note <ID> \\\"msg\\\"`.\\n4. Run `task complete <ID>` and self-terminate.\"\n}\n\n\nMonitoring the Swarm: While your mode: \"run\" Subagents are executing asynchronously:\n\nRun task board periodically to monitor their live Kanban progress through the SQLite matrix.\nRun task stuck to catch any agents that have timed out and require termination (subagents(action=\\\"kill\\\")) and queue restart."
      },
      {
        "title": "Swarm Subagent Guide",
        "body": "If you are a freshly spawned Subagent Worker, your sole purpose is to execute pending tasks in the queue without colliding with other parallel agents.\n\nAcquiring Work: NEVER pick tasks blindly from task list. ALWAYS run task claim --agent=\\\"<YourName>\\\". This natively executes an atomic SQL lock to guarantee you aren't fighting another agent for the same process.\nContext Intake: Once you have acquired a task (e.g., Task #5), run task show 5. Read the Notes: section! Your Orchestrator or previous subagents may have left you precise URLs, file paths, or parameters there.\nContext Persistence: When your work is done, ask yourself: \"Does the next downstream agent need to know I did this?\" If yes, use task note <Next_Task_ID> \\\"Your context string here\\\" to permanently append that knowledge to the downstream task's envelope.\nCompletion and Checkpoints: Run task complete <ID>. If your task contains a Checkpoint Validation (a Bash subshell script), the engine will output the command for you to run manually. You must repair the codebase until the tests pass before you can technically complete the task and self-terminate."
      },
      {
        "title": "Task Lifecycle",
        "body": "task create \"description\" [--priority=N] [--parent=ID] [--project=NAME] [--verify=\"cmd\"] [--due=\"YYYY-MM-DD\"] [--tags=\"a,b\"] # → prints task ID\ntask edit    ID [--desc=\"new text\"] [--priority=N] [--project=NAME] [--verify=\"cmd\"] [--assignee=\"NAME\"|--unassign] [--due=\"YYYY-MM-DD\"] [--tags=\"a,b\"] # adjust details\ntask claim   [--agent=\"NAME\"]                            # atomically lock & claim highest priority pending task\ntask start   ID                                          # pending → in_progress (prefer 'claim' for swarm)\ntask block   ID \"reason\"                                 # → blocked (reason in notes)\ntask unblock ID                                          # blocked → pending\ntask note    ID \"message\"                                # append runtime logic or error context to the task\ntask complete ID                                         # → done. Checkpoint verifications are printed for manual execution.\ntask restart ID                                          # done/in_progress → pending. Resets assignee.\ntask delete  ID [--force]                                # remove task (--force for parents)\n\nStatus flow: pending → in_progress → blocked → done\n\nPriority: 1 (low) to 10 (critical). Default: 5.\n\nDelete: Refuses if task has subtasks unless --force is passed, which cascades the delete to all children and their dependencies."
      },
      {
        "title": "Querying & Observability",
        "body": "task board                                                               # renders visual ASCII Kanban dashboard\ntask list [--status=S] [--parent=ID] [--project=N] [--format=chat] [--tag=\"T\"] # tabular lists or github markdown\ntask export [--status=STATUS] [--project=NAME] [--json]                  # markdown table or raw JSON array hook\ntask show ID                                                             # full details, assignee, & deps\ntask stuck                                                               # in_progress tasks inactive >30min"
      },
      {
        "title": "Subtask Decomposition",
        "body": "task break PARENT_ID \"step 1\" \"step 2\" \"step 3\"\n\nCreates children linked to parent. Auto-chains dependencies: step 2 depends on step 1, step 3 depends on step 2."
      },
      {
        "title": "Manual Dependencies",
        "body": "task depend TASK_ID DEPENDS_ON_ID\n\nWhen starting a task, all dependencies must be done or the command is refused with a list of blockers.\n\nWhen completing a task, any dependent tasks whose deps are now all satisfied are auto-unblocked (blocked → pending)."
      },
      {
        "title": "Heartbeat",
        "body": "task-heartbeat TASK_ID    # update last_updated timestamp\ntask-heartbeat            # report stalled tasks (no args)\n\nIntegrate into long-running scripts:\n\nwhile work_in_progress; do\n  do_work\n  task-heartbeat \"$TASK_ID\"\n  sleep 300  # every 5 minutes\ndone"
      },
      {
        "title": "Schema",
        "body": "tasks: id, request_text, project, status, priority, parent_id,\n       created_at, started_at, completed_at, last_updated, notes, verification_cmd, assignee\n\ndependencies: task_id, depends_on_task_id (composite PK)"
      },
      {
        "title": "Environment",
        "body": "VariableDefaultPurposeTASK_DB$PWD/.tasks.dbPath to SQLite database\n\nThe DB defaults to a hidden .tasks.db file in the current working directory where the command is executed. This natively supports separate task lists for different projects/workspaces without data collision."
      },
      {
        "title": "Security",
        "body": "No eval(), no external API calls, no crypto\nPure SQLite + Bash — passes VirusTotal clean\nInteger-only validation on all task IDs via require_int() guard before any SQL use\nStatus whitelist: task list --status only accepts pending, in_progress, blocked, done\nDate format enforcement: --since only accepts YYYY-MM-DD format via regex check\nText inputs sanitized via single-quote escaping (sed \"s/'/''/g\")\nTemp-file SQL delivery: SQL is written to a temp file and fed to sqlite3 via stdin redirect to avoid all argument-injection vectors"
      }
    ],
    "body": "Task-Specialist\n\nLocal task management with SQLite. Offline, persistent, zero dependencies beyond sqlite3 and bash.\n\nQuick Start\n# Install (creates DB only, no PATH changes)\nbash install.sh\n\n# Or install AND create easy CLI symlinks in ~/.local/bin\nbash install.sh --symlink\n\n# Create and work tasks\ntask create \"Build auth module\" --priority=8\ntask start 1\ntask-heartbeat 1          # keep-alive ping\ntask complete 1\n\nAgent Principles\n\nWhen using the task-specialist CLI, follow these principles to ensure high-quality, organized project execution:\n\nDecompose First: Always break large, multi-step requests into smaller, logical subtasks using task break.\nStatus Transparency: Keep task statuses (start, block, complete) updated in real-time so your progress is traceable and accurate.\nDependency Management: Use task depend to link tasks that rely on each other, preventing illogical execution order.\nDocument Progress: Use the --notes or task show output to keep track of critical information as you move through a project.\nMulti-Agent Swarm Queue: If executing in parallel alongside other agents, NEVER pick tasks blindly from task list (this causes severe race conditions). ALWAYS run task claim --agent=\"<YourName>\". This executes an atomic SQL lock to fetch the highest-priority, fully unblocked pending task exclusively for you and paints your node's identifier onto the global Kanban board.\nContext Persistence: Use task note <Next_Task_ID> \"Your specific context string\" to permanently pass vital URLs, file paths, or error codes to downstream agents before you close your current task. WARNING: Never store API keys or secrets in task notes; use secure local environment variables instead.\nVerification Checkpoints: If a task has a --verify=\"cmd\" bound to it, running task complete <ID> will natively print the Bash subshell checkpoint. For security (RCE prevention), these checkpoints must be executed manually.\nSwarm Orchestrator Guide\n\nIf you are the Primary Agent (Orchestrator) managing a complex project, task-specialist is designed to help you spawn parallel Subagents to execute decoupled work simultaneously.\n\nWhen to Spawn Subagents: Use the Swarm for horizontally scalable logic (e.g., \"Write isolated unit tests for 10 different files\", or \"Simultaneously deploy 3 independent Docker containers\"). Do not spawn subagents for highly linear, sequential work.\nDecomposing the Board:\nFirst, create all the parallel objectives using task create.\nCreate a final integration task (e.g., \"Merge services\") and link it to the subtasks using task depend. This automatically blocks the final task until all Subagents finish.\nUse task edit <ID> --notes=\"...\" to inject deep context (URLs, file paths, git SHAs) directly into the task payload.\nSpawning the Subagents: Use your native OpenClaw sessions_spawn tool to horizontally scale. Set mode: \"run\" for one-shot parallel workers. Pass them the strict execution prompt in the task parameter:\n{\n  \"tool\": \"sessions_spawn\",\n  \"runtime\": \"subagent\",\n  \"mode\": \"run\",\n  \"label\": \"worker-alpha\",\n  \"task\": \"You are a Swarm Worker utilizing the `task-specialist` skill. The task payload DB is at $PWD/.tasks.db. (Read SKILL.md for CLI syntax if needed).\\n1. Run `task claim --agent=\\\"worker-alpha\\\"` to atomically pop the queue.\\n2. Read your target objective via `task show <ID>`.\\n3. Execute the objective. Record vital context for me via `task note <ID> \\\"msg\\\"`.\\n4. Run `task complete <ID>` and self-terminate.\"\n}\n\nMonitoring the Swarm: While your mode: \"run\" Subagents are executing asynchronously:\nRun task board periodically to monitor their live Kanban progress through the SQLite matrix.\nRun task stuck to catch any agents that have timed out and require termination (subagents(action=\\\"kill\\\")) and queue restart.\nSwarm Subagent Guide\n\nIf you are a freshly spawned Subagent Worker, your sole purpose is to execute pending tasks in the queue without colliding with other parallel agents.\n\nAcquiring Work: NEVER pick tasks blindly from task list. ALWAYS run task claim --agent=\\\"<YourName>\\\". This natively executes an atomic SQL lock to guarantee you aren't fighting another agent for the same process.\nContext Intake: Once you have acquired a task (e.g., Task #5), run task show 5. Read the Notes: section! Your Orchestrator or previous subagents may have left you precise URLs, file paths, or parameters there.\nContext Persistence: When your work is done, ask yourself: \"Does the next downstream agent need to know I did this?\" If yes, use task note <Next_Task_ID> \\\"Your context string here\\\" to permanently append that knowledge to the downstream task's envelope.\nCompletion and Checkpoints: Run task complete <ID>. If your task contains a Checkpoint Validation (a Bash subshell script), the engine will output the command for you to run manually. You must repair the codebase until the tests pass before you can technically complete the task and self-terminate.\nCLI Reference\nTask Lifecycle\ntask create \"description\" [--priority=N] [--parent=ID] [--project=NAME] [--verify=\"cmd\"] [--due=\"YYYY-MM-DD\"] [--tags=\"a,b\"] # → prints task ID\ntask edit    ID [--desc=\"new text\"] [--priority=N] [--project=NAME] [--verify=\"cmd\"] [--assignee=\"NAME\"|--unassign] [--due=\"YYYY-MM-DD\"] [--tags=\"a,b\"] # adjust details\ntask claim   [--agent=\"NAME\"]                            # atomically lock & claim highest priority pending task\ntask start   ID                                          # pending → in_progress (prefer 'claim' for swarm)\ntask block   ID \"reason\"                                 # → blocked (reason in notes)\ntask unblock ID                                          # blocked → pending\ntask note    ID \"message\"                                # append runtime logic or error context to the task\ntask complete ID                                         # → done. Checkpoint verifications are printed for manual execution.\ntask restart ID                                          # done/in_progress → pending. Resets assignee.\ntask delete  ID [--force]                                # remove task (--force for parents)\n\n\nStatus flow: pending → in_progress → blocked → done\n\nPriority: 1 (low) to 10 (critical). Default: 5.\n\nDelete: Refuses if task has subtasks unless --force is passed, which cascades the delete to all children and their dependencies.\n\nQuerying & Observability\ntask board                                                               # renders visual ASCII Kanban dashboard\ntask list [--status=S] [--parent=ID] [--project=N] [--format=chat] [--tag=\"T\"] # tabular lists or github markdown\ntask export [--status=STATUS] [--project=NAME] [--json]                  # markdown table or raw JSON array hook\ntask show ID                                                             # full details, assignee, & deps\ntask stuck                                                               # in_progress tasks inactive >30min\n\nSubtask Decomposition\ntask break PARENT_ID \"step 1\" \"step 2\" \"step 3\"\n\n\nCreates children linked to parent. Auto-chains dependencies: step 2 depends on step 1, step 3 depends on step 2.\n\nManual Dependencies\ntask depend TASK_ID DEPENDS_ON_ID\n\n\nWhen starting a task, all dependencies must be done or the command is refused with a list of blockers.\n\nWhen completing a task, any dependent tasks whose deps are now all satisfied are auto-unblocked (blocked → pending).\n\nHeartbeat\ntask-heartbeat TASK_ID    # update last_updated timestamp\ntask-heartbeat            # report stalled tasks (no args)\n\n\nIntegrate into long-running scripts:\n\nwhile work_in_progress; do\n  do_work\n  task-heartbeat \"$TASK_ID\"\n  sleep 300  # every 5 minutes\ndone\n\nSchema\ntasks: id, request_text, project, status, priority, parent_id,\n       created_at, started_at, completed_at, last_updated, notes, verification_cmd, assignee\n\ndependencies: task_id, depends_on_task_id (composite PK)\n\nEnvironment\nVariable\tDefault\tPurpose\nTASK_DB\t$PWD/.tasks.db\tPath to SQLite database\n\nThe DB defaults to a hidden .tasks.db file in the current working directory where the command is executed. This natively supports separate task lists for different projects/workspaces without data collision.\n\nSecurity\nNo eval(), no external API calls, no crypto\nPure SQLite + Bash — passes VirusTotal clean\nInteger-only validation on all task IDs via require_int() guard before any SQL use\nStatus whitelist: task list --status only accepts pending, in_progress, blocked, done\nDate format enforcement: --since only accepts YYYY-MM-DD format via regex check\nText inputs sanitized via single-quote escaping (sed \"s/'/''/g\")\nTemp-file SQL delivery: SQL is written to a temp file and fed to sqlite3 via stdin redirect to avoid all argument-injection vectors"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/OBODA0/task-specialist",
    "publisherUrl": "https://clawhub.ai/OBODA0/task-specialist",
    "owner": "OBODA0",
    "version": "2.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/task-specialist",
    "downloadUrl": "https://openagent3.xyz/downloads/task-specialist",
    "agentUrl": "https://openagent3.xyz/skills/task-specialist/agent",
    "manifestUrl": "https://openagent3.xyz/skills/task-specialist/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/task-specialist/agent.md"
  }
}