{
  "schemaVersion": "1.0",
  "item": {
    "slug": "let-me-know",
    "name": "Let Me Know",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/fogyoy/let-me-know",
    "canonicalUrl": "https://clawhub.ai/fogyoy/let-me-know",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/let-me-know",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=let-me-know",
    "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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/let-me-know"
    },
    "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/let-me-know",
    "agentPageUrl": "https://openagent3.xyz/skills/let-me-know/agent",
    "manifestUrl": "https://openagent3.xyz/skills/let-me-know/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/let-me-know/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": "Purpose",
        "body": "Ensure the user is informed before long-running tasks start, gets periodic updates on a configurable interval (default 5 minutes), and receives an immediate completion/failure notice. Heartbeat messages must reflect real-time progress, not a repeated template."
      },
      {
        "title": "Trigger",
        "body": "Use this skill whenever a task will take noticeable time (>2–3 minutes) or involves long-running installs/builds/tests."
      },
      {
        "title": "Workflow (required)",
        "body": "Pre-flight message (before starting):\n\nSend a short message: what will run, estimated time, and explicitly state:\n\n“完成或失败都会立刻通知你；期间我每 X 分钟 发一次进度心跳，您也可以修改心跳时间间隔。”\n\nStart a heartbeat (configurable interval, with pre-check)\n\nDefault interval = 5 minutes (everyMs=300000). If the user specifies a different interval, use it.\nSchedule repeating updates while the task runs.\nBefore each heartbeat message, read the latest progress (state file/logs) and send current progress (no repeated template):\n\nRunning → include latest step, progress metrics, and next step.\nFailed → send failure notice and stop the heartbeat.\n\n\n优先推荐：同一条 agentTurn 内“原地心跳”（不创建额外 cron）：\n\n在长任务执行期间，用循环 sleep <interval> → 读取进度 → message send 发一次动态进度。\n任务结束自然停止，不会遗留心跳任务。\n\n\n只有在必须脱离当前执行流时才用 cron 心跳，并且必须满足：\n\n通过 cron add 创建心跳 job 时，payload.deliver=false（避免“收到/启动”之类消息被转发给用户）。\n心跳 job 内部用 message send 主动推送进度。\n创建后把返回的 heartbeatJobId 写入状态文件（例如 <task>-state.json），供清理使用。\n创建前先 cron list，若已存在同名心跳 job，先 remove（去重）。\n\n\nContent template (dynamic):\n\nRunning: 进度：<最新步骤/阶段>（<关键指标>）。下一步：<next>。完成/失败会立刻通知你。\nFailed: 失败：<task> 发生错误（简述原因）。已停止心跳提醒。\n\nRun the task\n\nExecute the long-running command(s).\n\nCompletion message (immediately after finish)\n\nSend result summary (success/failure + key output).\n\nStop heartbeat（必须做到）\n\n如果你使用了“原地心跳”（推荐）：任务结束即可，不会遗留任何 cron。\n如果你使用了 cron 心跳：\n\n在任务成功/失败的 finally 里调用 cron remove <heartbeatJobId>。\n若 remove 失败（gateway timeout）：至少重试 2 次（指数退避 2s/8s）。\n仍失败：创建一个 2 分钟后的一次性 cleanup cron 再次 remove（避免永远刷屏）。"
      },
      {
        "title": "Heartbeat interval (user-configurable)",
        "body": "Default: 5 minutes.\nIf the user specifies an interval (e.g., “每 2 分钟/10 分钟”), use that value.\nIf the user changes the interval mid-task, update the cron schedule and acknowledge in the next heartbeat."
      },
      {
        "title": "Message Delivery",
        "body": "Prefer outbound normal chat messages:\n\nUse message send with the correct target format.\nExample for Discord DM: user:<id>."
      },
      {
        "title": "Safety",
        "body": "Do not start long tasks without the pre-flight message.\nIf blocked/failed, notify immediately, set state=failed, and stop the heartbeat.\nIf cron removal fails due to gateway timeout, retry removal; if still stuck, use gateway restart (requires commands.restart: true) and retry."
      },
      {
        "title": "Example (Discord DM)",
        "body": "Start message:\n\n即将开始：安装依赖并运行测试（预计 5–10 分钟）。完成或失败都会立刻通知你；期间我每 5 分钟发一次进度心跳，你也可以修改心跳时间间隔。\n\nHeartbeat (every 5 min, example):\n\n进度：已完成安装依赖（1/2），测试运行中（已用时 4 分钟）。下一步：汇总测试结果。完成/失败会立刻通知你。\n\nCompletion:\n\n完成：安装成功，测试通过。"
      }
    ],
    "body": "Let Me Know\nPurpose\n\nEnsure the user is informed before long-running tasks start, gets periodic updates on a configurable interval (default 5 minutes), and receives an immediate completion/failure notice. Heartbeat messages must reflect real-time progress, not a repeated template.\n\nTrigger\n\nUse this skill whenever a task will take noticeable time (>2–3 minutes) or involves long-running installs/builds/tests.\n\nWorkflow (required)\nPre-flight message (before starting):\nSend a short message: what will run, estimated time, and explicitly state:\n“完成或失败都会立刻通知你；期间我每 X 分钟 发一次进度心跳，您也可以修改心跳时间间隔。”\nStart a heartbeat (configurable interval, with pre-check)\nDefault interval = 5 minutes (everyMs=300000). If the user specifies a different interval, use it.\nSchedule repeating updates while the task runs.\nBefore each heartbeat message, read the latest progress (state file/logs) and send current progress (no repeated template):\nRunning → include latest step, progress metrics, and next step.\nFailed → send failure notice and stop the heartbeat.\n优先推荐：同一条 agentTurn 内“原地心跳”（不创建额外 cron）：\n在长任务执行期间，用循环 sleep <interval> → 读取进度 → message send 发一次动态进度。\n任务结束自然停止，不会遗留心跳任务。\n只有在必须脱离当前执行流时才用 cron 心跳，并且必须满足：\n通过 cron add 创建心跳 job 时，payload.deliver=false（避免“收到/启动”之类消息被转发给用户）。\n心跳 job 内部用 message send 主动推送进度。\n创建后把返回的 heartbeatJobId 写入状态文件（例如 <task>-state.json），供清理使用。\n创建前先 cron list，若已存在同名心跳 job，先 remove（去重）。\nContent template (dynamic):\nRunning: 进度：<最新步骤/阶段>（<关键指标>）。下一步：<next>。完成/失败会立刻通知你。\nFailed: 失败：<task> 发生错误（简述原因）。已停止心跳提醒。\nRun the task\nExecute the long-running command(s).\nCompletion message (immediately after finish)\nSend result summary (success/failure + key output).\nStop heartbeat（必须做到）\n如果你使用了“原地心跳”（推荐）：任务结束即可，不会遗留任何 cron。\n如果你使用了 cron 心跳：\n在任务成功/失败的 finally 里调用 cron remove <heartbeatJobId>。\n若 remove 失败（gateway timeout）：至少重试 2 次（指数退避 2s/8s）。\n仍失败：创建一个 2 分钟后的一次性 cleanup cron 再次 remove（避免永远刷屏）。\nHeartbeat interval (user-configurable)\nDefault: 5 minutes.\nIf the user specifies an interval (e.g., “每 2 分钟/10 分钟”), use that value.\nIf the user changes the interval mid-task, update the cron schedule and acknowledge in the next heartbeat.\nMessage Delivery\n\nPrefer outbound normal chat messages:\n\nUse message send with the correct target format.\nExample for Discord DM: user:<id>.\nSafety\nDo not start long tasks without the pre-flight message.\nIf blocked/failed, notify immediately, set state=failed, and stop the heartbeat.\nIf cron removal fails due to gateway timeout, retry removal; if still stuck, use gateway restart (requires commands.restart: true) and retry.\nExample (Discord DM)\n\nStart message:\n\n即将开始：安装依赖并运行测试（预计 5–10 分钟）。完成或失败都会立刻通知你；期间我每 5 分钟发一次进度心跳，你也可以修改心跳时间间隔。\n\nHeartbeat (every 5 min, example):\n\n进度：已完成安装依赖（1/2），测试运行中（已用时 4 分钟）。下一步：汇总测试结果。完成/失败会立刻通知你。\n\nCompletion:\n\n完成：安装成功，测试通过。"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/fogyoy/let-me-know",
    "publisherUrl": "https://clawhub.ai/fogyoy/let-me-know",
    "owner": "fogyoy",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/let-me-know",
    "downloadUrl": "https://openagent3.xyz/downloads/let-me-know",
    "agentUrl": "https://openagent3.xyz/skills/let-me-know/agent",
    "manifestUrl": "https://openagent3.xyz/skills/let-me-know/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/let-me-know/agent.md"
  }
}