{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clawpm",
    "name": "Clawpm",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/malphas-gh/clawpm",
    "canonicalUrl": "https://clawhub.ai/malphas-gh/clawpm",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clawpm",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawpm",
    "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/clawpm"
    },
    "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/clawpm",
    "agentPageUrl": "https://openagent3.xyz/skills/clawpm/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawpm/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawpm/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": "ClawPM Skill",
        "body": "Multi-project task management. All commands emit JSON by default; use -f text for human-readable output."
      },
      {
        "title": "First-Time Setup",
        "body": "clawpm setup               # Creates ~/clawpm/ with portfolio.toml, projects/, work_log.jsonl\nclawpm setup --check       # Verify installation"
      },
      {
        "title": "Creating Projects",
        "body": "Projects are directories with a .project/ folder. They don't need to be git repos."
      },
      {
        "title": "Initialize in any directory",
        "body": "cd /path/to/my-project\nclawpm project init                    # Auto-detects ID/name from directory\nclawpm project init --id myproj        # Custom ID"
      },
      {
        "title": "From a git clone (auto-init)",
        "body": "Git repos under ~/clawpm/projects/ auto-initialize on first use:\n\ngit clone git@github.com:user/repo.git ~/clawpm/projects/repo\ncd ~/clawpm/projects/repo\nclawpm add \"First task\"    # Auto-initializes .project/, then adds task"
      },
      {
        "title": "Discover untracked repos",
        "body": "clawpm projects list --all   # Shows tracked + untracked git repos"
      },
      {
        "title": "Quick Start",
        "body": "# From a project directory (auto-detected):\nclawpm status              # See project status\nclawpm next                # Get next task\nclawpm start 42            # Start task (short ID works)\nclawpm done 42             # Mark done\n\n# Or set a project context:\nclawpm use my-project\nclawpm status              # Now uses my-project"
      },
      {
        "title": "Top-Level Commands (Shortcuts)",
        "body": "CommandEquivalentDescriptionclawpm add \"Title\"clawpm tasks add -t \"Title\"Quick add a taskclawpm add \"Title\" -b \"desc\"clawpm tasks add -t \"Title\" -b \"desc\"Add with bodyclawpm add \"Title\" --parent 25-Add subtaskclawpm done 42clawpm tasks state 42 doneMark task doneclawpm start 42clawpm tasks state 42 progressStart workingclawpm block 42clawpm tasks state 42 blockedMark blockedclawpm nextclawpm projects nextGet next taskclawpm status-Project overviewclawpm context-Full agent contextclawpm use <id>-Set project context"
      },
      {
        "title": "Project Auto-Detection",
        "body": "ClawPM automatically detects your project from (in priority order):\n\nSubcommand flag: clawpm tasks list --project clawpm\nGlobal flag: clawpm --project clawpm status\nCurrent directory: Walks up looking for .project/settings.toml\nAuto-init: If in untracked git repo under project_roots, auto-initializes\nContext: Previously set with clawpm use <project>"
      },
      {
        "title": "Short Task IDs",
        "body": "You can use just the numeric part of a task ID:\n\n42 → CLAWP-042 (prefix derived from project ID)\nCLAWP-042 → CLAWP-042 (full ID works too)"
      },
      {
        "title": "Subtasks",
        "body": "clawpm add \"Subtask\" --parent 25   # Creates subtask (auto-splits parent if needed)\nclawpm tasks split 25              # Manually convert task to parent directory\n\nclawpm done 25             # Fails if subtasks not done\nclawpm done 25 --force     # Override and complete anyway\n\nSubtasks move with parent on state change (done/blocked moves entire directory)."
      },
      {
        "title": "Agent Context (Resuming Work)",
        "body": "Get everything needed to resume work in one command:\n\nclawpm context             # Full context for current project\nclawpm context -p myproj   # Specific project\n\nReturns JSON with: project info + spec, in-progress/next task, blockers, recent work log, git status, open issues."
      },
      {
        "title": "Workflow Example",
        "body": "clawpm context             # Get full context\nclawpm start 42            # Mark in progress (auto-logs)\n# ... do work ...\ngit add . && git commit -m \"feat: ...\"\nclawpm done 42 --note \"Completed\"       # Auto-logs with files_changed\nclawpm log commit                        # Also log the git commits themselves\n\nHit a blocker:\n\nclawpm block 42 --note \"Need API credentials\""
      },
      {
        "title": "Projects",
        "body": "clawpm projects list [--all]            # List projects (--all includes untracked repos)\nclawpm projects next                    # Next task across all projects\nclawpm project context [project]        # Full project context\nclawpm project init                     # Initialize project in current dir"
      },
      {
        "title": "Tasks",
        "body": "clawpm tasks                            # List tasks (default: open+progress+blocked)\nclawpm tasks list [-s open|done|blocked|progress|all] [--flat]\nclawpm tasks show <id>                  # Task details\nclawpm tasks add -t \"Title\" [--priority 3] [--complexity m] [--parent <id>] [-b \"body\"]\nclawpm tasks edit <id> [--title \"...\"] [--priority N] [--complexity s|m|l|xl] [--body \"...\"]\nclawpm tasks state <id> open|progress|done|blocked [--note \"...\"] [--force]\nclawpm tasks split <id>                 # Convert to parent directory for subtasks"
      },
      {
        "title": "Work Log",
        "body": "clawpm log add --task <id> --action progress --summary \"What I did\"\nclawpm log tail [--limit 10]            # Recent entries (auto-filtered to current project)\nclawpm log tail --all                   # Recent entries across all projects\nclawpm log tail --follow                # Live tail (like tail -f)\nclawpm log last                         # Most recent entry (auto-filtered to current project)\nclawpm log last --all                   # Most recent entry across all projects\nclawpm log commit [-n 10]               # Log recent git commits to work log\nclawpm log commit --dry-run             # Preview without logging\nclawpm log commit --task <id>           # Associate commits with a task\n\nNote: State changes (start/done/block) auto-log to work_log with git files_changed."
      },
      {
        "title": "Research",
        "body": "clawpm research list\nclawpm research add --type investigation --title \"Question\"\nclawpm research link --id <research_id> --session-key <key>"
      },
      {
        "title": "Issues",
        "body": "clawpm issues add --type bug --severity high --actual \"What happened\"\nclawpm issues list [--open]             # Open issues only"
      },
      {
        "title": "Admin",
        "body": "clawpm setup               # Create portfolio (first-time)\nclawpm setup --check       # Verify installation\nclawpm status              # Project overview\nclawpm context             # Full agent context\nclawpm doctor              # Health check\nclawpm use [project]       # Set/show project context\nclawpm use --clear         # Clear context"
      },
      {
        "title": "Work Log Actions",
        "body": "start - Started working (auto-logged on clawpm start)\nprogress - Made progress\ndone - Completed (auto-logged on clawpm done)\nblocked - Hit a blocker (auto-logged on clawpm block)\ncommit - Git commit (logged via clawpm log commit)\npause - Switching tasks\nresearch - Research note\nnote - General observation"
      },
      {
        "title": "Task States & File Locations",
        "body": "StateFile PatternMeaningopentasks/CLAWP-042.mdReady to workprogresstasks/CLAWP-042.progress.mdIn progressdonetasks/done/CLAWP-042.mdCompletedblockedtasks/blocked/CLAWP-042.mdWaiting"
      },
      {
        "title": "Tips",
        "body": "Flag order: clawpm [global flags] <command> [command flags] — e.g. clawpm -f text tasks list -s open\nJSON output: All commands emit JSON by default; use -f text for human-readable\nOne command per call: Don't chain clawpm commands with && — run each separately\nPortfolio root: Default ~/clawpm\nWork log: Append-only at <portfolio>/work_log.jsonl"
      },
      {
        "title": "Troubleshooting",
        "body": "clawpm doctor              # Check for issues\nclawpm setup --check       # Verify installation\nclawpm log tail            # See recent activity"
      }
    ],
    "body": "ClawPM Skill\n\nMulti-project task management. All commands emit JSON by default; use -f text for human-readable output.\n\nFirst-Time Setup\nclawpm setup               # Creates ~/clawpm/ with portfolio.toml, projects/, work_log.jsonl\nclawpm setup --check       # Verify installation\n\nCreating Projects\n\nProjects are directories with a .project/ folder. They don't need to be git repos.\n\nInitialize in any directory\ncd /path/to/my-project\nclawpm project init                    # Auto-detects ID/name from directory\nclawpm project init --id myproj        # Custom ID\n\nFrom a git clone (auto-init)\n\nGit repos under ~/clawpm/projects/ auto-initialize on first use:\n\ngit clone git@github.com:user/repo.git ~/clawpm/projects/repo\ncd ~/clawpm/projects/repo\nclawpm add \"First task\"    # Auto-initializes .project/, then adds task\n\nDiscover untracked repos\nclawpm projects list --all   # Shows tracked + untracked git repos\n\nQuick Start\n# From a project directory (auto-detected):\nclawpm status              # See project status\nclawpm next                # Get next task\nclawpm start 42            # Start task (short ID works)\nclawpm done 42             # Mark done\n\n# Or set a project context:\nclawpm use my-project\nclawpm status              # Now uses my-project\n\nTop-Level Commands (Shortcuts)\nCommand\tEquivalent\tDescription\nclawpm add \"Title\"\tclawpm tasks add -t \"Title\"\tQuick add a task\nclawpm add \"Title\" -b \"desc\"\tclawpm tasks add -t \"Title\" -b \"desc\"\tAdd with body\nclawpm add \"Title\" --parent 25\t-\tAdd subtask\nclawpm done 42\tclawpm tasks state 42 done\tMark task done\nclawpm start 42\tclawpm tasks state 42 progress\tStart working\nclawpm block 42\tclawpm tasks state 42 blocked\tMark blocked\nclawpm next\tclawpm projects next\tGet next task\nclawpm status\t-\tProject overview\nclawpm context\t-\tFull agent context\nclawpm use <id>\t-\tSet project context\nProject Auto-Detection\n\nClawPM automatically detects your project from (in priority order):\n\nSubcommand flag: clawpm tasks list --project clawpm\nGlobal flag: clawpm --project clawpm status\nCurrent directory: Walks up looking for .project/settings.toml\nAuto-init: If in untracked git repo under project_roots, auto-initializes\nContext: Previously set with clawpm use <project>\nShort Task IDs\n\nYou can use just the numeric part of a task ID:\n\n42 → CLAWP-042 (prefix derived from project ID)\nCLAWP-042 → CLAWP-042 (full ID works too)\nSubtasks\nclawpm add \"Subtask\" --parent 25   # Creates subtask (auto-splits parent if needed)\nclawpm tasks split 25              # Manually convert task to parent directory\n\nclawpm done 25             # Fails if subtasks not done\nclawpm done 25 --force     # Override and complete anyway\n\n\nSubtasks move with parent on state change (done/blocked moves entire directory).\n\nAgent Context (Resuming Work)\n\nGet everything needed to resume work in one command:\n\nclawpm context             # Full context for current project\nclawpm context -p myproj   # Specific project\n\n\nReturns JSON with: project info + spec, in-progress/next task, blockers, recent work log, git status, open issues.\n\nWorkflow Example\nclawpm context             # Get full context\nclawpm start 42            # Mark in progress (auto-logs)\n# ... do work ...\ngit add . && git commit -m \"feat: ...\"\nclawpm done 42 --note \"Completed\"       # Auto-logs with files_changed\nclawpm log commit                        # Also log the git commits themselves\n\n\nHit a blocker:\n\nclawpm block 42 --note \"Need API credentials\"\n\nFull Command Reference\nProjects\nclawpm projects list [--all]            # List projects (--all includes untracked repos)\nclawpm projects next                    # Next task across all projects\nclawpm project context [project]        # Full project context\nclawpm project init                     # Initialize project in current dir\n\nTasks\nclawpm tasks                            # List tasks (default: open+progress+blocked)\nclawpm tasks list [-s open|done|blocked|progress|all] [--flat]\nclawpm tasks show <id>                  # Task details\nclawpm tasks add -t \"Title\" [--priority 3] [--complexity m] [--parent <id>] [-b \"body\"]\nclawpm tasks edit <id> [--title \"...\"] [--priority N] [--complexity s|m|l|xl] [--body \"...\"]\nclawpm tasks state <id> open|progress|done|blocked [--note \"...\"] [--force]\nclawpm tasks split <id>                 # Convert to parent directory for subtasks\n\nWork Log\nclawpm log add --task <id> --action progress --summary \"What I did\"\nclawpm log tail [--limit 10]            # Recent entries (auto-filtered to current project)\nclawpm log tail --all                   # Recent entries across all projects\nclawpm log tail --follow                # Live tail (like tail -f)\nclawpm log last                         # Most recent entry (auto-filtered to current project)\nclawpm log last --all                   # Most recent entry across all projects\nclawpm log commit [-n 10]               # Log recent git commits to work log\nclawpm log commit --dry-run             # Preview without logging\nclawpm log commit --task <id>           # Associate commits with a task\n\n\nNote: State changes (start/done/block) auto-log to work_log with git files_changed.\n\nResearch\nclawpm research list\nclawpm research add --type investigation --title \"Question\"\nclawpm research link --id <research_id> --session-key <key>\n\nIssues\nclawpm issues add --type bug --severity high --actual \"What happened\"\nclawpm issues list [--open]             # Open issues only\n\nAdmin\nclawpm setup               # Create portfolio (first-time)\nclawpm setup --check       # Verify installation\nclawpm status              # Project overview\nclawpm context             # Full agent context\nclawpm doctor              # Health check\nclawpm use [project]       # Set/show project context\nclawpm use --clear         # Clear context\n\nWork Log Actions\nstart - Started working (auto-logged on clawpm start)\nprogress - Made progress\ndone - Completed (auto-logged on clawpm done)\nblocked - Hit a blocker (auto-logged on clawpm block)\ncommit - Git commit (logged via clawpm log commit)\npause - Switching tasks\nresearch - Research note\nnote - General observation\nTask States & File Locations\nState\tFile Pattern\tMeaning\nopen\ttasks/CLAWP-042.md\tReady to work\nprogress\ttasks/CLAWP-042.progress.md\tIn progress\ndone\ttasks/done/CLAWP-042.md\tCompleted\nblocked\ttasks/blocked/CLAWP-042.md\tWaiting\nTips\nFlag order: clawpm [global flags] <command> [command flags] — e.g. clawpm -f text tasks list -s open\nJSON output: All commands emit JSON by default; use -f text for human-readable\nOne command per call: Don't chain clawpm commands with && — run each separately\nPortfolio root: Default ~/clawpm\nWork log: Append-only at <portfolio>/work_log.jsonl\nTroubleshooting\nclawpm doctor              # Check for issues\nclawpm setup --check       # Verify installation\nclawpm log tail            # See recent activity"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/malphas-gh/clawpm",
    "publisherUrl": "https://clawhub.ai/malphas-gh/clawpm",
    "owner": "malphas-gh",
    "version": "0.1.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clawpm",
    "downloadUrl": "https://openagent3.xyz/downloads/clawpm",
    "agentUrl": "https://openagent3.xyz/skills/clawpm/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawpm/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawpm/agent.md"
  }
}