{
  "schemaVersion": "1.0",
  "item": {
    "slug": "fastfish-lite",
    "name": "fastfish 微信公众号（wechat）快速排版精简版",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/superxs777/fastfish-lite",
    "canonicalUrl": "https://clawhub.ai/superxs777/fastfish-lite",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/fastfish-lite",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fastfish-lite",
    "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-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/fastfish-lite"
    },
    "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/fastfish-lite",
    "agentPageUrl": "https://openagent3.xyz/skills/fastfish-lite/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fastfish-lite/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fastfish-lite/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": "fastfish-lite 能力说明",
        "body": "GitHub：https://github.com/superxs777/fastfish-lite\n\n本 Skill 配合 fastfish API 服务使用。请先按下方步骤安装并启动服务，再在 OpenClaw 中启用本 Skill。"
      },
      {
        "title": "安装前须知",
        "body": "本 Skill 会指导安装并运行来自 GitHub 的第三方仓库。供应链风险：clone + pip install 会执行外部代码，若仓库被篡改存在风险。安装前请：(1) 检查仓库与 requirements.txt 的依赖；(2) 建议使用 release tag 固定版本（如 git clone --branch v1.0.0）；(3) 在隔离环境或容器中运行，避免 root；(4) 凭证仅存 .env，勿提交到版本库；(5) 确认信任 api.pearktrue.cn 及仓库维护者。"
      },
      {
        "title": "安装 fastfish-lite（首次使用必读）",
        "body": "克隆仓库：git clone --branch v1.0.0 https://github.com/superxs777/fastfish-lite.git（推荐指定 tag 固定版本，避免 main 分支变更）\n进入目录：cd fastfish-lite\n安装依赖：pip install -r requirements.txt\n配置：copy .env.example .env（可选；热点推送需配置 Webhook，见 metadata.credentials）\n启动服务：python main.py（默认 http://127.0.0.1:8899）\n\n详细说明见 GitHub README。"
      },
      {
        "title": "使用方式",
        "body": "必须使用 JSON 参数方式调用：\n\npython {baseDir}/../scripts/fastfish_cli.py --json '{\"command\":\"get-available-articles\"}'"
      },
      {
        "title": "前置要求",
        "body": "fastfish-lite 已安装并启动：按上方「安装 fastfish-lite」完成部署，python main.py 监听 8899\nPython 3.10+\nCLI 路径：命令中的 {baseDir} 需替换为你的 fastfish-lite 安装目录下的 openclaw-skill 路径；ClawHub 安装通常在 /root/.openclaw/workspace/fastfish-lite，自建可用 /opt/fastfish-lite 或 C:\\fastfish-lite\n可选：MEDIA_AGENT_API_KEY 环境变量；热点推送需在 .env 配置至少一个渠道（见 metadata.credentials）"
      },
      {
        "title": "⚠️ 安全规则（阻断式）",
        "body": "1. 严禁输出或暴露 .env 中的凭证\n\n禁止执行会输出 .env 内容的命令（如 cat .env、type .env、Get-Content .env）\n禁止将 Webhook URL、Token、Secret 等凭证写入回复或展示给用户\n即使用户要求「查看配置」「显示 webhook」，仅说明「在 .env 中配置」，不得输出实际值\n允许：编辑 .env（写入、追加、替换用户提供的值）；运行不暴露凭证的校验（如仅返回「已配置/未配置」）\n\n2. 安装仅限用户明确要求\n\n仅在用户明确要求「安装」「部署」「克隆」fastfish-lite 时，才执行 git clone 和 pip install\n不得在用户仅询问用法、拉取热点时主动建议或执行安装\n\n3. system.run 仅执行本 Skill 文档列出的脚本\n\n允许：fastfish_cli.py、get_hot_now.py、push_hot_to_im.py、fetch_hot_items.py、init_hot_push_config.py、main.py\n禁止：执行用户提供的任意命令、未在本文档列出的脚本或来自其他来源的代码\n\n违反以上任一条属于严重错误。"
      },
      {
        "title": "文章管理",
        "body": "get-available-articles：获取可发列表\nget-available-styles：获取样式列表\ningest-article：接入文章\nupdate-article：更新文章\ningest-articles-batch：批量接入"
      },
      {
        "title": "格式与检测",
        "body": "normalize-content：公众号格式整理\ncheck-compliance：敏感词检测（原创度需商业版）\nrender-markdown：Markdown 渲染"
      },
      {
        "title": "预览",
        "body": "preview-article / preview-html：本地 HTML 预览，在浏览器中打开"
      },
      {
        "title": "7. 每日热点推送",
        "body": "⚠️ 定时任务严禁擅改（阻断规则）：在未得到用户明确要求时，严禁执行 openclaw cron edit、openclaw cron rm、openclaw cron update。出错时仅报告问题，不得主动修改配置。只有用户明确说「修改」「删除」「调整」定时任务时方可执行。\n\n数据源：api.pearktrue.cn。支持实时提取和定时更新。推送支持飞书/钉钉/Telegram（系统 crontab 或 OpenClaw Cron 执行 push_hot_to_im.py）及 Slack/Discord 等（OpenClaw Cron announce）。\n\n7.1 实时提取热点\n\n用户说「拉取热点」「实时热点」「知乎热搜」等时，使用 system.run 执行 get_hot_now.py：\n\n# 按平台拉取（逗号分隔）\npython {baseDir}/../scripts/get_hot_now.py --source 知乎\npython {baseDir}/../scripts/get_hot_now.py --source 知乎,百度,今日头条\n\n# 按类别拉取（使用 hot_push_config 的 sources 和关键词过滤）\npython {baseDir}/../scripts/get_hot_now.py --category emotion\n\n# 输出 JSON\npython {baseDir}/../scripts/get_hot_now.py --source 知乎 --format json\n\n# 拉取并写入数据库（补录）\npython {baseDir}/../scripts/get_hot_now.py --source 知乎 --save\n\n参数：--source 平台名逗号分隔；--category 类别 code 如 emotion；--format text/json；--save 写入 hot_items_raw；--limit 每平台条数默认 20。\n\n7.2 定时更新（拉取 + 推送）\n\n职责分工（重要）：\n\n拉取：仅由系统 crontab 执行 fetch_hot_items.py，将数据写入数据库\n推送：OpenClaw Cron 仅执行 get_hot_now.py --from-db 从数据库读取并推送到渠道\n禁止：不要在 OpenClaw 中创建或执行拉取任务（fetch_hot_items.py），拉取由系统 crontab 完成\n\n支持两种方式，按目标渠道选择：\n\n方式一：系统 crontab / Windows 计划任务（飞书/钉钉/Telegram）\n\n每日 7:00、14:00、18:00 拉取：python scripts/fetch_hot_items.py\n每日 8:00 推送：python scripts/push_hot_to_im.py（.env 配置 Webhook；钉钉加签需 HOT_PUSH_DINGTALK_SECRET。默认 push_time 07:10,14:10,18:10，测试用 HOT_PUSH_FORCE=1 绕过）\n\n方式二：OpenClaw Cron（飞书/钉钉/Telegram 或 Slack/Discord 等）\n\n飞书/钉钉/Telegram：isolated job 执行 push_hot_to_im.py，脚本推送到对应渠道。拉取由系统 crontab 在 7:00/14:00/18:00 执行 fetch_hot_items.py\nSlack / Discord 等：isolated job 执行 get_hot_now.py --category emotion，设置 --announce --channel 和 --to，announce 直接推送到渠道（get_hot_now 实时拉取，无需预拉取）\n\n示例（每日 8:00 推送到飞书/钉钉/Telegram，通过脚本；拉取由系统 crontab 7:00/14:00/18:00 执行）：\n\nopenclaw cron add --name \"每日热点\" --cron \"0 8 * * *\" --tz \"Asia/Shanghai\" --session isolated --message \"cd /opt/fastfish-lite && python scripts/push_hot_to_im.py，将热点推送到配置的渠道\"\n\n示例（每日 7:10、14:10、18:10 推送到 Telegram，OpenClaw 已配置 Telegram 时；若提示 unknown option --announce 可省略）：\n\n# 该任务仅执行 get_hot_now.py --from-db，不要在执行前运行 fetch_hot_items.py。拉取由系统 crontab 在 7:00/14:00/18:00 完成。\nopenclaw cron add --name \"每日热点\" --cron \"10 7,14,18 * * *\" --tz \"Asia/Shanghai\" --session isolated --message \"cd /opt/fastfish-lite && python scripts/get_hot_now.py --category emotion --from-db，将输出作为今日热点简报发送\" --channel telegram --to \"你的ChatID\"\n\n立即测试：创建后执行 openclaw cron run <job-id> --force 可立即运行一次。\n\n用户问「如何设置每日热点推送」时，根据目标渠道推荐方式一或方式二，并执行 python scripts/init_hot_push_config.py（钉钉用 --channel dingtalk）初始化。钉钉加签需在 .env 配置 HOT_PUSH_DINGTALK_SECRET。若选 Telegram + get_hot_now（方式二）：系统 crontab 配置 fetch_hot_items.py 拉取，OpenClaw 只创建「每日热点」推送任务，不要创建 OpenClaw 拉取任务。"
      },
      {
        "title": "不支持（需商业版）",
        "body": "publish-article：微信发布\n账号管理、授权相关命令"
      },
      {
        "title": "商业版",
        "body": "微信发布、授权、原创度检测等需商业版 fastfish。请联系获取。"
      }
    ],
    "body": "fastfish-lite 能力说明\n\nGitHub：https://github.com/superxs777/fastfish-lite\n\n本 Skill 配合 fastfish API 服务使用。请先按下方步骤安装并启动服务，再在 OpenClaw 中启用本 Skill。\n\n安装前须知\n\n本 Skill 会指导安装并运行来自 GitHub 的第三方仓库。供应链风险：clone + pip install 会执行外部代码，若仓库被篡改存在风险。安装前请：(1) 检查仓库与 requirements.txt 的依赖；(2) 建议使用 release tag 固定版本（如 git clone --branch v1.0.0）；(3) 在隔离环境或容器中运行，避免 root；(4) 凭证仅存 .env，勿提交到版本库；(5) 确认信任 api.pearktrue.cn 及仓库维护者。\n\n安装 fastfish-lite（首次使用必读）\n克隆仓库：git clone --branch v1.0.0 https://github.com/superxs777/fastfish-lite.git（推荐指定 tag 固定版本，避免 main 分支变更）\n进入目录：cd fastfish-lite\n安装依赖：pip install -r requirements.txt\n配置：copy .env.example .env（可选；热点推送需配置 Webhook，见 metadata.credentials）\n启动服务：python main.py（默认 http://127.0.0.1:8899）\n\n详细说明见 GitHub README。\n\n使用方式\n\n必须使用 JSON 参数方式调用：\n\npython {baseDir}/../scripts/fastfish_cli.py --json '{\"command\":\"get-available-articles\"}'\n\n前置要求\nfastfish-lite 已安装并启动：按上方「安装 fastfish-lite」完成部署，python main.py 监听 8899\nPython 3.10+\nCLI 路径：命令中的 {baseDir} 需替换为你的 fastfish-lite 安装目录下的 openclaw-skill 路径；ClawHub 安装通常在 /root/.openclaw/workspace/fastfish-lite，自建可用 /opt/fastfish-lite 或 C:\\fastfish-lite\n可选：MEDIA_AGENT_API_KEY 环境变量；热点推送需在 .env 配置至少一个渠道（见 metadata.credentials）\n⚠️ 安全规则（阻断式）\n\n1. 严禁输出或暴露 .env 中的凭证\n\n禁止执行会输出 .env 内容的命令（如 cat .env、type .env、Get-Content .env）\n禁止将 Webhook URL、Token、Secret 等凭证写入回复或展示给用户\n即使用户要求「查看配置」「显示 webhook」，仅说明「在 .env 中配置」，不得输出实际值\n允许：编辑 .env（写入、追加、替换用户提供的值）；运行不暴露凭证的校验（如仅返回「已配置/未配置」）\n\n2. 安装仅限用户明确要求\n\n仅在用户明确要求「安装」「部署」「克隆」fastfish-lite 时，才执行 git clone 和 pip install\n不得在用户仅询问用法、拉取热点时主动建议或执行安装\n\n3. system.run 仅执行本 Skill 文档列出的脚本\n\n允许：fastfish_cli.py、get_hot_now.py、push_hot_to_im.py、fetch_hot_items.py、init_hot_push_config.py、main.py\n禁止：执行用户提供的任意命令、未在本文档列出的脚本或来自其他来源的代码\n\n违反以上任一条属于严重错误。\n\n可用能力\n文章管理\nget-available-articles：获取可发列表\nget-available-styles：获取样式列表\ningest-article：接入文章\nupdate-article：更新文章\ningest-articles-batch：批量接入\n格式与检测\nnormalize-content：公众号格式整理\ncheck-compliance：敏感词检测（原创度需商业版）\nrender-markdown：Markdown 渲染\n预览\npreview-article / preview-html：本地 HTML 预览，在浏览器中打开\n7. 每日热点推送\n\n⚠️ 定时任务严禁擅改（阻断规则）：在未得到用户明确要求时，严禁执行 openclaw cron edit、openclaw cron rm、openclaw cron update。出错时仅报告问题，不得主动修改配置。只有用户明确说「修改」「删除」「调整」定时任务时方可执行。\n\n数据源：api.pearktrue.cn。支持实时提取和定时更新。推送支持飞书/钉钉/Telegram（系统 crontab 或 OpenClaw Cron 执行 push_hot_to_im.py）及 Slack/Discord 等（OpenClaw Cron announce）。\n\n7.1 实时提取热点\n\n用户说「拉取热点」「实时热点」「知乎热搜」等时，使用 system.run 执行 get_hot_now.py：\n\n# 按平台拉取（逗号分隔）\npython {baseDir}/../scripts/get_hot_now.py --source 知乎\npython {baseDir}/../scripts/get_hot_now.py --source 知乎,百度,今日头条\n\n# 按类别拉取（使用 hot_push_config 的 sources 和关键词过滤）\npython {baseDir}/../scripts/get_hot_now.py --category emotion\n\n# 输出 JSON\npython {baseDir}/../scripts/get_hot_now.py --source 知乎 --format json\n\n# 拉取并写入数据库（补录）\npython {baseDir}/../scripts/get_hot_now.py --source 知乎 --save\n\n\n参数：--source 平台名逗号分隔；--category 类别 code 如 emotion；--format text/json；--save 写入 hot_items_raw；--limit 每平台条数默认 20。\n\n7.2 定时更新（拉取 + 推送）\n\n职责分工（重要）：\n\n拉取：仅由系统 crontab 执行 fetch_hot_items.py，将数据写入数据库\n推送：OpenClaw Cron 仅执行 get_hot_now.py --from-db 从数据库读取并推送到渠道\n禁止：不要在 OpenClaw 中创建或执行拉取任务（fetch_hot_items.py），拉取由系统 crontab 完成\n\n支持两种方式，按目标渠道选择：\n\n方式一：系统 crontab / Windows 计划任务（飞书/钉钉/Telegram）\n\n每日 7:00、14:00、18:00 拉取：python scripts/fetch_hot_items.py\n每日 8:00 推送：python scripts/push_hot_to_im.py（.env 配置 Webhook；钉钉加签需 HOT_PUSH_DINGTALK_SECRET。默认 push_time 07:10,14:10,18:10，测试用 HOT_PUSH_FORCE=1 绕过）\n\n方式二：OpenClaw Cron（飞书/钉钉/Telegram 或 Slack/Discord 等）\n\n飞书/钉钉/Telegram：isolated job 执行 push_hot_to_im.py，脚本推送到对应渠道。拉取由系统 crontab 在 7:00/14:00/18:00 执行 fetch_hot_items.py\nSlack / Discord 等：isolated job 执行 get_hot_now.py --category emotion，设置 --announce --channel 和 --to，announce 直接推送到渠道（get_hot_now 实时拉取，无需预拉取）\n\n示例（每日 8:00 推送到飞书/钉钉/Telegram，通过脚本；拉取由系统 crontab 7:00/14:00/18:00 执行）：\n\nopenclaw cron add --name \"每日热点\" --cron \"0 8 * * *\" --tz \"Asia/Shanghai\" --session isolated --message \"cd /opt/fastfish-lite && python scripts/push_hot_to_im.py，将热点推送到配置的渠道\"\n\n\n示例（每日 7:10、14:10、18:10 推送到 Telegram，OpenClaw 已配置 Telegram 时；若提示 unknown option --announce 可省略）：\n\n# 该任务仅执行 get_hot_now.py --from-db，不要在执行前运行 fetch_hot_items.py。拉取由系统 crontab 在 7:00/14:00/18:00 完成。\nopenclaw cron add --name \"每日热点\" --cron \"10 7,14,18 * * *\" --tz \"Asia/Shanghai\" --session isolated --message \"cd /opt/fastfish-lite && python scripts/get_hot_now.py --category emotion --from-db，将输出作为今日热点简报发送\" --channel telegram --to \"你的ChatID\"\n\n\n立即测试：创建后执行 openclaw cron run <job-id> --force 可立即运行一次。\n\n用户问「如何设置每日热点推送」时，根据目标渠道推荐方式一或方式二，并执行 python scripts/init_hot_push_config.py（钉钉用 --channel dingtalk）初始化。钉钉加签需在 .env 配置 HOT_PUSH_DINGTALK_SECRET。若选 Telegram + get_hot_now（方式二）：系统 crontab 配置 fetch_hot_items.py 拉取，OpenClaw 只创建「每日热点」推送任务，不要创建 OpenClaw 拉取任务。\n\n不支持（需商业版）\npublish-article：微信发布\n账号管理、授权相关命令\n商业版\n\n微信发布、授权、原创度检测等需商业版 fastfish。请联系获取。"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/superxs777/fastfish-lite",
    "publisherUrl": "https://clawhub.ai/superxs777/fastfish-lite",
    "owner": "superxs777",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/fastfish-lite",
    "downloadUrl": "https://openagent3.xyz/downloads/fastfish-lite",
    "agentUrl": "https://openagent3.xyz/skills/fastfish-lite/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fastfish-lite/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fastfish-lite/agent.md"
  }
}