{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-deck-tracker",
    "name": "NextCloud Deck Tracker",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/SkanderHelali/openclaw-deck-tracker",
    "canonicalUrl": "https://clawhub.ai/SkanderHelali/openclaw-deck-tracker",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-deck-tracker",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-deck-tracker",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "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/openclaw-deck-tracker"
    },
    "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/openclaw-deck-tracker",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-deck-tracker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-deck-tracker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-deck-tracker/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": "Deck Tracker v1.0.0",
        "body": "Track tasks on a NextCloud Deck board."
      },
      {
        "title": "Board Structure",
        "body": "This skill assumes a board with 4 stacks (columns):\n\nStackDefault IDPurposeQueue1New incoming tasksIn Progress2Currently working onWaiting3Blocked/waiting for userDone Today4Completed tasks"
      },
      {
        "title": "Configuration",
        "body": "Set the following environment variables (e.g. in your .bashrc or OpenClaw config):\n\nexport DECK_URL=\"https://your-nextcloud.com/index.php/apps/deck/api/v1.0\"\nexport DECK_USER=\"your_username\"\nexport DECK_PASS=\"your_app_password\" # Use an App Password!\nexport BOARD_ID=1\n\nIf your stack IDs differ from the defaults (1, 2, 3, 4), override them:\n\nexport STACK_QUEUE=10\nexport STACK_PROGRESS=11\nexport STACK_WAITING=12\nexport STACK_DONE=13"
      },
      {
        "title": "List all cards on the board",
        "body": "deck list"
      },
      {
        "title": "Add a new task to Queue",
        "body": "deck add \"Task title\" \"Optional description\"\n\nOptions:\n\n--progress: Automatically move the new card to \"In Progress\" immediately.\n--stack <id>: Create in a specific stack ID (default: Queue).\n\nExample with auto-start:\n\ndeck add \"Urgent Fix\" \"Fixing production bug\" --progress"
      },
      {
        "title": "Move a card to a different stack",
        "body": "deck move <card_id> <queue|progress|waiting|done>"
      },
      {
        "title": "Get card details",
        "body": "deck get <card_id>"
      },
      {
        "title": "Update card title/description",
        "body": "deck update <card_id> [--title \"New title\"] [--description \"New desc\"]"
      },
      {
        "title": "Log a status update to a card",
        "body": "deck log <card_id> <status> \"Message\"\n\nStatuses: progress, success, error, warning, info."
      },
      {
        "title": "Start automated heartbeat monitoring",
        "body": "deck monitor <card_id> [target_id]\n\nSpawns a background process that appends a \"Still working...\" log entry every 60 seconds. Additionally, it sends a chat notification to the specified target_id (defaults to Skander) every 120 seconds. The process terminates automatically when the card is moved out of the \"In Progress\" stack (to Done or Waiting). Use for tasks expected to take >2 minutes."
      },
      {
        "title": "Dump all completed tasks as JSON",
        "body": "deck dump-done\n\nOutputs the JSON payload for all cards in \"Done Today\". Useful for memory synthesis."
      },
      {
        "title": "Archive all completed cards",
        "body": "deck archive-done\n\nMoves all cards in \"Done Today\" to the archived state. Useful for daily cleanup via cron."
      },
      {
        "title": "Delete a card",
        "body": "deck delete <card_id>"
      },
      {
        "title": "Workflow & Memory Protocol",
        "body": "New task arrives → deck add \"Title\" \"Rich Initial Description\" (Use --progress to start immediately).\nDetailed Descriptions: Start descriptions with Objective, Plan, and Constraints.\nLog updates → deck log <id> progress \"Finished step 1\".\nClosing Task: Use deck update <id> --description \"Rich Summary\" to include Technical Summary, Operations Performed, and Outcome.\nMemory Synthesis: Before archiving, use deck dump-done to parse the day's work and reinforce long-term memory.\nDaily cleanup → deck archive-done."
      },
      {
        "title": "🚨 AI Protocol: Complex Descriptions",
        "body": "When updating cards with multi-line markdown descriptions, ALWAYS use the temp file method to prevent shell expansion errors:\n\n# 1. Write rich description to temp file\ncat > /tmp/deck_desc_<id>.txt << 'EOF'\n[Rich Markdown]\nEOF\n\n# 2. Update deck using the temp file\ndeck update <id> --description \"$(cat /tmp/deck_desc_<id>.txt)\""
      }
    ],
    "body": "Deck Tracker v1.0.0\n\nTrack tasks on a NextCloud Deck board.\n\nBoard Structure\n\nThis skill assumes a board with 4 stacks (columns):\n\nStack\tDefault ID\tPurpose\nQueue\t1\tNew incoming tasks\nIn Progress\t2\tCurrently working on\nWaiting\t3\tBlocked/waiting for user\nDone Today\t4\tCompleted tasks\nConfiguration\n\nSet the following environment variables (e.g. in your .bashrc or OpenClaw config):\n\nexport DECK_URL=\"https://your-nextcloud.com/index.php/apps/deck/api/v1.0\"\nexport DECK_USER=\"your_username\"\nexport DECK_PASS=\"your_app_password\" # Use an App Password!\nexport BOARD_ID=1\n\n\nIf your stack IDs differ from the defaults (1, 2, 3, 4), override them:\n\nexport STACK_QUEUE=10\nexport STACK_PROGRESS=11\nexport STACK_WAITING=12\nexport STACK_DONE=13\n\nCommands\nList all cards on the board\ndeck list\n\nAdd a new task to Queue\ndeck add \"Task title\" \"Optional description\"\n\n\nOptions:\n\n--progress: Automatically move the new card to \"In Progress\" immediately.\n--stack <id>: Create in a specific stack ID (default: Queue).\n\nExample with auto-start:\n\ndeck add \"Urgent Fix\" \"Fixing production bug\" --progress\n\nMove a card to a different stack\ndeck move <card_id> <queue|progress|waiting|done>\n\nGet card details\ndeck get <card_id>\n\nUpdate card title/description\ndeck update <card_id> [--title \"New title\"] [--description \"New desc\"]\n\nLog a status update to a card\ndeck log <card_id> <status> \"Message\"\n\n\nStatuses: progress, success, error, warning, info.\n\nStart automated heartbeat monitoring\ndeck monitor <card_id> [target_id]\n\n\nSpawns a background process that appends a \"Still working...\" log entry every 60 seconds. Additionally, it sends a chat notification to the specified target_id (defaults to Skander) every 120 seconds. The process terminates automatically when the card is moved out of the \"In Progress\" stack (to Done or Waiting). Use for tasks expected to take >2 minutes.\n\nDump all completed tasks as JSON\ndeck dump-done\n\n\nOutputs the JSON payload for all cards in \"Done Today\". Useful for memory synthesis.\n\nArchive all completed cards\ndeck archive-done\n\n\nMoves all cards in \"Done Today\" to the archived state. Useful for daily cleanup via cron.\n\nDelete a card\ndeck delete <card_id>\n\nWorkflow & Memory Protocol\nNew task arrives → deck add \"Title\" \"Rich Initial Description\" (Use --progress to start immediately).\nDetailed Descriptions: Start descriptions with Objective, Plan, and Constraints.\nLog updates → deck log <id> progress \"Finished step 1\".\nClosing Task: Use deck update <id> --description \"Rich Summary\" to include Technical Summary, Operations Performed, and Outcome.\nMemory Synthesis: Before archiving, use deck dump-done to parse the day's work and reinforce long-term memory.\nDaily cleanup → deck archive-done.\n🚨 AI Protocol: Complex Descriptions\n\nWhen updating cards with multi-line markdown descriptions, ALWAYS use the temp file method to prevent shell expansion errors:\n\n# 1. Write rich description to temp file\ncat > /tmp/deck_desc_<id>.txt << 'EOF'\n[Rich Markdown]\nEOF\n\n# 2. Update deck using the temp file\ndeck update <id> --description \"$(cat /tmp/deck_desc_<id>.txt)\""
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/SkanderHelali/openclaw-deck-tracker",
    "publisherUrl": "https://clawhub.ai/SkanderHelali/openclaw-deck-tracker",
    "owner": "SkanderHelali",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-deck-tracker",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-deck-tracker",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-deck-tracker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-deck-tracker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-deck-tracker/agent.md"
  }
}