{
  "schemaVersion": "1.0",
  "item": {
    "slug": "todo-management",
    "name": "Todo management",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/lstpsche/todo-management",
    "canonicalUrl": "https://clawhub.ai/lstpsche/todo-management",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/todo-management",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=todo-management",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "scripts/todo.sh",
      "README.md",
      "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/todo-management"
    },
    "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/todo-management",
    "agentPageUrl": "https://openagent3.xyz/skills/todo-management/agent",
    "manifestUrl": "https://openagent3.xyz/skills/todo-management/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/todo-management/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "What this skill controls",
        "body": "A per-workspace SQLite database:\n\nDefault: ./todo.db\nOverride: TODO_DB=/path/to/todo.db\n\nAll changes MUST happen through the CLI:\nbash {baseDir}/scripts/todo.sh ..."
      },
      {
        "title": "Statuses",
        "body": "pending (default), in_progress, done, skipped\n\nDefault list hides done and skipped unless --all or --status=...."
      },
      {
        "title": "1) No file writing (ever)",
        "body": "Do NOT create or edit any files (e.g., todos.md, notes, markdown, exports).\nDo NOT output “filename blocks” like todos.md (...).\nThe only persistent state is in todo.db, mutated by todo.sh."
      },
      {
        "title": "2) Never print the todo list unless explicitly asked",
        "body": "If the user does NOT ask to “show/list/print my todos”, do NOT paste the list.\nDefault behavior after mutations: one short confirmation line only."
      },
      {
        "title": "3) Keep replies extremely short",
        "body": "After success: respond with ONE line, max ~5 words (translate to user’s language yourself).\nDo not include bullets, tables, code blocks, or tool output unless the user explicitly asked for the list/details.\n\nAllowed confirmations (English examples; translate as needed):\n\n“Done.”\n“Added.”\n“Updated.”\n“Removed.”\n“Moved.”\n“Renamed.”\n“Cleared.”\n“Added to the list.”"
      },
      {
        "title": "4) Ambiguity handling (the ONLY exception to rule #2)",
        "body": "If the user requests a destructive action but does not specify an ID (e.g., “remove the milk task”):\n\nrun entry list (optionally with --group=...)\nshow the results (minimal table)\nask which ID to act on\n\nThis is the only case where you may show the list without the user explicitly requesting it."
      },
      {
        "title": "5) Group deletion safety",
        "body": "group remove \"X\" moves entries to Inbox (default).\nOnly delete entries if the user explicitly chooses that:\n\nask: “Move entries to Inbox (default) or delete entries too?”\nonly then use --delete-entries."
      },
      {
        "title": "Entries",
        "body": "Add:\n\nbash {baseDir}/scripts/todo.sh entry create \"Buy milk\"\nbash {baseDir}/scripts/todo.sh entry create \"Ship feature X\" --group=\"Work\" --status=in_progress\n\n\nList (ONLY when user asks, or for ambiguity resolution):\n\nbash {baseDir}/scripts/todo.sh entry list\nbash {baseDir}/scripts/todo.sh entry list --group=\"Work\"\nbash {baseDir}/scripts/todo.sh entry list --all\nbash {baseDir}/scripts/todo.sh entry list --status=done\n\n\nShow one entry:\n\nbash {baseDir}/scripts/todo.sh entry show 12\n\n\nEdit text:\n\nbash {baseDir}/scripts/todo.sh entry edit 12 \"Buy oat milk instead\"\n\n\nMove:\n\nbash {baseDir}/scripts/todo.sh entry move 12 --group=\"Inbox\"\n\n\nChange status:\n\nbash {baseDir}/scripts/todo.sh entry status 12 --status=done\nbash {baseDir}/scripts/todo.sh entry status 12 --status=skipped\n\n\nRemove:\n\nbash {baseDir}/scripts/todo.sh entry remove 12"
      },
      {
        "title": "Groups",
        "body": "Create / list:\n\nbash {baseDir}/scripts/todo.sh group create \"Work\"\nbash {baseDir}/scripts/todo.sh group list\n\n\nRename (alias: edit):\n\nbash {baseDir}/scripts/todo.sh group rename \"Work\" \"Work (Project A)\"\nbash {baseDir}/scripts/todo.sh group edit \"Work\" \"Work (Project A)\"\n\n\nRemove:\n\nDefault (move entries to Inbox):\n\nbash {baseDir}/scripts/todo.sh group remove \"Work\"\n\n\nDelete entries too (ONLY if user explicitly wants it):\n\nbash {baseDir}/scripts/todo.sh group remove \"Work\" --delete-entries"
      },
      {
        "title": "“Clear the list” behavior (no list printing)",
        "body": "To clear the todo list:\n\nrun entry list --all to get IDs (do NOT paste the results)\nremove each ID with entry remove ID\nreply with ONE line: “Cleared.”\n\nIf the user then asks to see the list, run entry list and show it."
      },
      {
        "title": "Dialogue example (expected behavior)",
        "body": "User: \"I need to buy milk, add it to my todo list\"\nAgent: \"Done.\"\n\nUser: \"Oh, and I also need to clean the room\"\nAgent: \"Added to the list.\"\n\nUser: \"Show my todos\"\nAgent: (prints the list)\n\nUser: \"Remove the milk one\"\nAgent: (lists matching tasks + asks for ID, then removes when ID is provided)"
      }
    ],
    "body": "Todo Management\nWhat this skill controls\n\nA per-workspace SQLite database:\n\nDefault: ./todo.db\nOverride: TODO_DB=/path/to/todo.db\n\nAll changes MUST happen through the CLI: bash {baseDir}/scripts/todo.sh ...\n\nStatuses\n\npending (default), in_progress, done, skipped\n\nDefault list hides done and skipped unless --all or --status=....\n\nNon-negotiable rules\n1) No file writing (ever)\nDo NOT create or edit any files (e.g., todos.md, notes, markdown, exports).\nDo NOT output “filename blocks” like todos.md (...).\nThe only persistent state is in todo.db, mutated by todo.sh.\n2) Never print the todo list unless explicitly asked\nIf the user does NOT ask to “show/list/print my todos”, do NOT paste the list.\nDefault behavior after mutations: one short confirmation line only.\n3) Keep replies extremely short\nAfter success: respond with ONE line, max ~5 words (translate to user’s language yourself).\nDo not include bullets, tables, code blocks, or tool output unless the user explicitly asked for the list/details.\n\nAllowed confirmations (English examples; translate as needed):\n\n“Done.”\n“Added.”\n“Updated.”\n“Removed.”\n“Moved.”\n“Renamed.”\n“Cleared.”\n“Added to the list.”\n4) Ambiguity handling (the ONLY exception to rule #2)\n\nIf the user requests a destructive action but does not specify an ID (e.g., “remove the milk task”):\n\nrun entry list (optionally with --group=...)\nshow the results (minimal table)\nask which ID to act on\n\nThis is the only case where you may show the list without the user explicitly requesting it.\n\n5) Group deletion safety\ngroup remove \"X\" moves entries to Inbox (default).\nOnly delete entries if the user explicitly chooses that:\nask: “Move entries to Inbox (default) or delete entries too?”\nonly then use --delete-entries.\nCommands (use exactly these)\nEntries\nAdd:\nbash {baseDir}/scripts/todo.sh entry create \"Buy milk\"\nbash {baseDir}/scripts/todo.sh entry create \"Ship feature X\" --group=\"Work\" --status=in_progress\nList (ONLY when user asks, or for ambiguity resolution):\nbash {baseDir}/scripts/todo.sh entry list\nbash {baseDir}/scripts/todo.sh entry list --group=\"Work\"\nbash {baseDir}/scripts/todo.sh entry list --all\nbash {baseDir}/scripts/todo.sh entry list --status=done\nShow one entry:\nbash {baseDir}/scripts/todo.sh entry show 12\nEdit text:\nbash {baseDir}/scripts/todo.sh entry edit 12 \"Buy oat milk instead\"\nMove:\nbash {baseDir}/scripts/todo.sh entry move 12 --group=\"Inbox\"\nChange status:\nbash {baseDir}/scripts/todo.sh entry status 12 --status=done\nbash {baseDir}/scripts/todo.sh entry status 12 --status=skipped\nRemove:\nbash {baseDir}/scripts/todo.sh entry remove 12\nGroups\nCreate / list:\nbash {baseDir}/scripts/todo.sh group create \"Work\"\nbash {baseDir}/scripts/todo.sh group list\nRename (alias: edit):\nbash {baseDir}/scripts/todo.sh group rename \"Work\" \"Work (Project A)\"\nbash {baseDir}/scripts/todo.sh group edit \"Work\" \"Work (Project A)\"\nRemove:\nDefault (move entries to Inbox):\nbash {baseDir}/scripts/todo.sh group remove \"Work\"\nDelete entries too (ONLY if user explicitly wants it):\nbash {baseDir}/scripts/todo.sh group remove \"Work\" --delete-entries\n“Clear the list” behavior (no list printing)\n\nTo clear the todo list:\n\nrun entry list --all to get IDs (do NOT paste the results)\nremove each ID with entry remove ID\nreply with ONE line: “Cleared.”\n\nIf the user then asks to see the list, run entry list and show it.\n\nDialogue example (expected behavior)\n\nUser: \"I need to buy milk, add it to my todo list\" Agent: \"Done.\"\n\nUser: \"Oh, and I also need to clean the room\" Agent: \"Added to the list.\"\n\nUser: \"Show my todos\" Agent: (prints the list)\n\nUser: \"Remove the milk one\" Agent: (lists matching tasks + asks for ID, then removes when ID is provided)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lstpsche/todo-management",
    "publisherUrl": "https://clawhub.ai/lstpsche/todo-management",
    "owner": "lstpsche",
    "version": "1.1.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/todo-management",
    "downloadUrl": "https://openagent3.xyz/downloads/todo-management",
    "agentUrl": "https://openagent3.xyz/skills/todo-management/agent",
    "manifestUrl": "https://openagent3.xyz/skills/todo-management/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/todo-management/agent.md"
  }
}