{"id":"868711bf-9238-4538-ae19-c4f4cdba8048","entityType":"agent","slug":"clawhub-if530770-xhs-prohibited-word","name":"小红书违禁词检测","canonicalUrl":"https://www.xpersona.co/agent/clawhub-if530770-xhs-prohibited-word","canonicalPath":"/agent/clawhub-if530770-xhs-prohibited-word","generatedAt":"2026-10-11T14:15:59.674Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T11:42:19.695Z","emptyReason":null},"description":"检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。 Skill: 小红书违禁词检测 Owner: if530770 Summary: 检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。 Tags: latest:1.0.6, xiaohongshu check hot:1.0.3 Version history: v1.0.6 | 2026-06-05T03:30:12.605Z | user **Changelog for version 1.0.6:** - Added English and Chinese README files (README.md, README.en.md) for improved documentation and user guidance. - Enhanced skill documentati","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17dj64hf08x3mak1j99vesphd84gs9c:xhs-prohibited-word","sourceUrl":"https://clawhub.ai/if530770/xhs-prohibited-word","homepage":"https://clawhub.ai/if530770/skills/xhs-prohibited-word","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/if530770/xhs-prohibited-word","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/if530770/skills/xhs-prohibited-word","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。 Skill: 小红书违禁词检测 Owner: if530770 Summary: 检测文案、文件或网页中的小红书违禁词并加"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:42:19.695Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:42:19.695Z","emptyReason":null},"stars":null,"forks":null,"downloads":1073,"packageName":null,"latestVersion":"1.0.6","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T11:42:19.629Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T11:42:19.695Z","lastCrawledAt":"2026-10-11T11:42:19.629Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T11:42:19.629Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.6","createdAt":"2026-06-05T03:30:12.605Z","changelog":"**Changelog for version 1.0.6:** - Added English and Chinese README files (README.md, README.en.md) for improved documentation and user guidance. - Enhanced skill documentation (SKILL.md): expanded feature descriptions, usage scenarios, detailed installation and API key configuration steps, troubleshooting, and FAQs. - Updated the project name to \"xiaohongshu-prohibited-word\" and clarified capabilities, triggers, and limitations. - Added detailed workflow, technical stack, and directory structure explanations.","fileCount":7,"zipByteSize":21594},{"version":"1.0.5","createdAt":"2026-05-18T08:44:18.533Z","changelog":"- Version bump to 1.0.5 with no file changes detected. - No updates or changes in functionality or documentation in this release.","fileCount":5,"zipByteSize":14891},{"version":"1.0.4","createdAt":"2026-05-18T08:26:08.635Z","changelog":"- No changes detected in this version; documentation and code remain the same. - Version number retained at 1.0.4.","fileCount":4,"zipByteSize":13458},{"version":"1.0.3","createdAt":"2026-05-18T08:18:18.439Z","changelog":"**简要升级说明：本版本进一步精简 Skill 介绍，突出易用性与多输入场景，强化执行规范，细化异常处理。** - Skill 说明更短更直观，新增使用场景图标及常见输入方式一览 - 输出模板由三板块升级为四板块：检测结果、修改建议、优化文案、跨平台推荐 - 更明确执行流程及触发条件，强调只引用检测脚本输出 - 支持文本、TXT/DOC/DOCX、图片（文字提取）、网页四类输入方式，提示 PDF 不支持 - 字数分界和分批检测须遵循统一流程，异常处理/错误提示更为细致 - 依赖要求、注意事项、合规约束置于易查位置，方便用户和开发者快速上手","fileCount":4,"zipByteSize":13458},{"version":"1.0.2","createdAt":"2026-05-09T08:35:59.090Z","changelog":"No user-facing or functional changes in this version. - Version updated to 1.0.2 with no file changes detected. - All features, dependencies, and documentation remain the same.","fileCount":4,"zipByteSize":13498},{"version":"1.0.1","createdAt":"2026-05-09T07:12:19.136Z","changelog":"- Updated skill documentation for greater clarity, with restructured summaries, examples, and key usage rules. - Tightened guidance: users must consult and strictly follow [references/core_workflow.md] for all workflow, input, and output requirements. - Clarified multi-source input handling (text, file, webpage; images require OCR, PDF unsupported). - Highlighted core output requirements: detection result, replacement suggestions, optimized text file delivery via download card. - Refined FAQ, command reference, and role-based scenarios; removed redundant or platform-specific implementation notes. - No changes to code or dependencies; version remains at 1.0.0.","fileCount":4,"zipByteSize":13501},{"version":"1.0.0","createdAt":"2026-05-09T03:43:26.562Z","changelog":"xhs-prohibited-word 1.0.0 release - Introduces a 小红书专属违禁词库 for detecting platform-specific sensitive and restricted words. - Supports multiple input types: direct text, TXT/DOC/DOCX/image files, and web pages (URL). - Provides smart semantic filtering to reduce false positives, especially with mixed language content. - Outputs highlighted risks, replacement suggestions, and optimized revised text; delivers results as both rich text and plain text files. - Enforces strict rule execution and response formatting as detailed in core_workflow.md. - Suitable for brands, copywriters, MCN agencies, and creators seeking compliance and risk reduction before publishing on 小红书.","fileCount":4,"zipByteSize":14678}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17dj64hf08x3mak1j99vesphd84gs9c:xhs-prohibited-word","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T14:15:59.672Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-if530770-xhs-prohibited-word/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T11:42:19.695Z","emptyReason":null},"readme":"Skill: 小红书违禁词检测\n\nOwner: if530770\n\nSummary: 检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。\n\nTags: latest:1.0.6, xiaohongshu check hot:1.0.3\n\nVersion history:\n\nv1.0.6 | 2026-06-05T03:30:12.605Z | user\n\n**Changelog for version 1.0.6:**\n\n- Added English and Chinese README files (README.md, README.en.md) for improved documentation and user guidance.\n- Enhanced skill documentation (SKILL.md): expanded feature descriptions, usage scenarios, detailed installation and API key configuration steps, troubleshooting, and FAQs.\n- Updated the project name to \"xiaohongshu-prohibited-word\" and clarified capabilities, triggers, and limitations.\n- Added detailed workflow, technical stack, and directory structure explanations.\n\nv1.0.5 | 2026-05-18T08:44:18.533Z | user\n\n- Version bump to 1.0.5 with no file changes detected.\n- No updates or changes in functionality or documentation in this release.\n\nv1.0.4 | 2026-05-18T08:26:08.635Z | user\n\n- No changes detected in this version; documentation and code remain the same.\n- Version number retained at 1.0.4.\n\nv1.0.3 | 2026-05-18T08:18:18.439Z | user\n\n**简要升级说明：本版本进一步精简 Skill 介绍，突出易用性与多输入场景，强化执行规范，细化异常处理。**\n\n- Skill 说明更短更直观，新增使用场景图标及常见输入方式一览\n- 输出模板由三板块升级为四板块：检测结果、修改建议、优化文案、跨平台推荐\n- 更明确执行流程及触发条件，强调只引用检测脚本输出\n- 支持文本、TXT/DOC/DOCX、图片（文字提取）、网页四类输入方式，提示 PDF 不支持\n- 字数分界和分批检测须遵循统一流程，异常处理/错误提示更为细致\n- 依赖要求、注意事项、合规约束置于易查位置，方便用户和开发者快速上手\n\nv1.0.2 | 2026-05-09T08:35:59.090Z | user\n\nNo user-facing or functional changes in this version.\n\n- Version updated to 1.0.2 with no file changes detected.\n- All features, dependencies, and documentation remain the same.\n\nv1.0.1 | 2026-05-09T07:12:19.136Z | user\n\n- Updated skill documentation for greater clarity, with restructured summaries, examples, and key usage rules.\n- Tightened guidance: users must consult and strictly follow [references/core_workflow.md] for all workflow, input, and output requirements.\n- Clarified multi-source input handling (text, file, webpage; images require OCR, PDF unsupported).\n- Highlighted core output requirements: detection result, replacement suggestions, optimized text file delivery via download card.\n- Refined FAQ, command reference, and role-based scenarios; removed redundant or platform-specific implementation notes.\n- No changes to code or dependencies; version remains at 1.0.0.\n\nv1.0.0 | 2026-05-09T03:43:26.562Z | user\n\nxhs-prohibited-word 1.0.0 release\n\n- Introduces a 小红书专属违禁词库 for detecting platform-specific sensitive and restricted words.\n- Supports multiple input types: direct text, TXT/DOC/DOCX/image files, and web pages (URL).\n- Provides smart semantic filtering to reduce false positives, especially with mixed language content.\n- Outputs highlighted risks, replacement suggestions, and optimized revised text; delivers results as both rich text and plain text files.\n- Enforces strict rule execution and response formatting as detailed in core_workflow.md.\n- Suitable for brands, copywriters, MCN agencies, and creators seeking compliance and risk reduction before publishing on 小红书.\n\nArchive index:\n\nArchive v1.0.6: 7 files, 21594 bytes\n\nFiles: README.en.md (5394b), README.md (5082b), references/core_workflow.md (16908b), scripts/check_sensitive_words.py (14117b), skill-card.md (2267b), SKILL.md (11099b), _meta.json (138b)\n\nFile v1.0.6:SKILL.md\n\n---\r\nname: xiaohongshu-prohibited-word\r\ndescription: 检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。\r\ndependency:\r\n  python:\r\n    - python-docx==1.1.0\r\n    - beautifulsoup4==4.12.3\r\n    - playwright==1.58.0\r\n  system:\r\n    - playwright install chromium\r\n---\r\n\r\n# 小红书违禁词查询\r\n\r\n## 简介\r\n\r\n小红书违禁词查询是一款专为小红书内容创作者、品牌运营和营销人员设计的智能违禁词检测工具，基于 红狐Hub 违禁词检测 API，在笔记发布前快速扫描文案中的敏感词并提供上下文智能替换建议。\r\n\r\n通过简单的文案输入，你可以：\r\n- 🔍 **违禁词标记** —— 原文中命中词用加粗标出，一眼看到风险点\r\n- 💡 **替换建议** —— 每个违禁词配一个结合上下文的替换词 + 更换理由\r\n- ✏️ **优化文案** —— 直接给出一份替换后的可发布版本，复制粘贴就能用\r\n- 📏 **长文案分批检测** —— 超过 3000 字自动提醒，支持分批检测后合并结果\r\n\r\n触发关键词：`小红书违禁词` `笔记敏感词` `小红书审核` `限流词` `种草文案合规`\r\n\r\n## 功能特性\r\n\r\n### 🎯 核心功能\r\n\r\n| 输入方式 | 能力说明 | 使用示例 |\r\n|----------|----------|----------|\r\n| 💬 直接贴文案 | 粘贴笔记文案，一键检测 | `帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了……` |\r\n| 📎 上传文件 | 支持 TXT、DOC、DOCX，自动读取检测 | 直接上传文档，无需手动复制 |\r\n| 🖼️ 上传图片 | 自动提取图中文字进行检测 | 上传笔记截图/海报即可 |\r\n| 🌐 粘贴链接 | 自动抓取网页内容检测 | `帮我检测这个网页：https://example.com/article` |\r\n\r\n### ✨ 特色亮点\r\n\r\n- **⚡ 一站式检测** —— 文本/文件/图片/网页四种输入方式，一次调用完成所有检测\r\n- **🔗 跨平台内容提取** —— 内置 Playwright 无头浏览器，支持 JS 动态渲染的 SPA 页面内容提取\r\n- **🌐 英文误匹配过滤** —— 自动识别英文单词内部子串误判（如 \"Glasswing\" 中的 \"ass\"），无需手动排查\r\n- **🔒 数据安全** —— 检测内容通过加密 HTTPS 发送，不在本地存储\r\n- **📄 一键导出** —— 自动生成纯文本优化文案文件并以卡片形式发送，可直接下载使用\r\n\r\n**限制说明**：平台固定为小红书，无需指定。PDF 不支持，需转为图片或文本文件后上传。\r\n\r\n## 一键安装\r\n\r\n### 前置条件\r\n\r\n- Python 3.8+\r\n- 安装 Python 依赖：\r\n  ```bash\r\n  pip install python-docx==1.1.0 beautifulsoup4==4.12.3 playwright==1.58.0\r\n  ```\r\n- 安装 Chromium 浏览器：\r\n  ```bash\r\n  playwright install chromium\r\n  ```\r\n\r\n### 获取 API Key\r\n\r\n1. 访问 [红狐Hub 官网](https://redfox.hk/) 了解服务详情\r\n2. 前往 [注册页面](https://redfox.hk/login) 注册账号\r\n3. **新注册用户将获赠免费积分**，可立即开始使用 API 服务\r\n4. 注册登录后，在个人中心获取 API Key，格式为 `ak_xxxxxxxx`\r\n\r\n### 配置 API Key\r\n\r\n脚本按以下优先级自动获取密钥：\r\n\r\n| 优先级 | 来源 | 说明 |\r\n|--------|------|------|\r\n| 1 | 环境变量 `REDFOX_API_KEY` | 直接读取当前设备环境变量 |\r\n| 2 | Shell 配置文件 | 自动扫描 `~/.zshrc` `~/.bashrc` `~/.bash_profile` `~/.profile` `~/.zprofile` |\r\n| 3 | 提示配置 | 以上均未找到时，提示用户手动配置 |\r\n\r\n**配置示例**：\r\n\r\n```bash\r\nexport REDFOX_API_KEY=ak_xxxxxxxx\r\n```\r\n\r\n### 环境变量参考\r\n\r\n| 变量名 | 必填 | 说明 |\r\n|--------|------|------|\r\n| `REDFOX_API_KEY` | 是 | 红狐Hub API 访问密钥，格式 `ak_xxxxxxxx` |\r\n| `XHS_SENSITIVE_WORD_API_URL` | 否 | 自定义 API 端点地址（默认使用 红狐Hub 官方） |\r\n| `XHS_SENSITIVE_WORD_VERIFY_SSL` | 否 | SSL 证书校验开关，默认 `1`（开启） |\r\n\r\n## 使用指南\r\n\r\n### 基础使用\r\n\r\n**💬 直接贴文案** —— 把笔记文案发给助手即可检测\r\n\r\n> 用户：帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了，用了三天就白了一个度\r\n>\r\n> 助手输出：🔍 **违禁词检测结果** → 💡 **修改建议** → ✏️ **优化文案** + 纯文本文件卡片\r\n\r\n**📎 上传文件** —— 直接上传 TXT、DOC、DOCX 文件，助手自动提取内容检测\r\n\r\n**🖼️ 上传图片** —— 上传笔记截图或海报，助手提取图中文字后检测（仅提取文字，不分析图片视觉）\r\n\r\n**🌐 粘贴链接** —— 提供网页 URL，助手自动抓取页面文字内容检测\r\n\r\n### 高级使用\r\n\r\n**长文案分批检测**：超过 3000 字符时，助手会暂停并询问（回复 1=单次仅检测前3000字 / 2=分批检测全部 / 3=取消），分批时自动在自然断句处切割\r\n\r\n**仅提取文字预览**：调用脚本 `--extract-only` 参数可仅提取文字不检测，返回文本内容和长度\r\n\r\n**自定义 API 端点**：设置 `XHS_SENSITIVE_WORD_API_URL` 环境变量指向自建检测服务\r\n\r\n### 命令速查\r\n\r\n| 输入形态 | 助手动作 |\r\n|---|---|\r\n| 纯文本 | 计算字数 → 字数闸门 → `--content=\"...\"` → 三板块输出 |\r\n| 上传 TXT/DOC/DOCX | `--file=path --extract-only` 查字数 → 按规则检测 → 三板块输出 |\r\n| 上传图片 | 仅提取图中文字 → 计算字数 → `--content=\"提取文字\"` → 三板块输出 |\r\n| 粘贴 `https://...` | `--url=... --extract-only` 查字数 → 按规则检测 → 三板块输出 |\r\n| 超长文案 | 发出询问语，**收到用户明确回复后再继续** |\r\n\r\n`--content`、`--file`、`--url` 三者互斥。\r\n\r\n> **完整执行规程**（输出模板、格式铁律、示例）详见 [`references/core_workflow.md`](references/core_workflow.md)，调用脚本和格式化输出前必须读取并严格遵循。\r\n\r\n## 使用场景\r\n\r\n### 场景一：小红书创作者发布前自查\r\n\r\n**角色**：小红书博主、内容创作者\r\n\r\n**需求**：种草笔记发布前快速排查违禁词，避免因极限词、禁宣用语被限流或下架\r\n\r\n**使用方式**：\r\n1. 将笔记文案直接粘贴发给助手\r\n2. 查看违禁词检测结果和替换建议\r\n3. 复制优化后文案或下载纯文本文件直接发布\r\n\r\n**预期收益**：一次改对，安心发布，减少反复修改和审核等待时间\r\n\r\n### 场景二：品牌/电商运营批量扫雷\r\n\r\n**角色**：品牌运营、电商运营\r\n\r\n**需求**：活动海报文案、商品详情页、多篇推广文案批量检测\r\n\r\n**使用方式**：\r\n1. 将多段文案整理为 DOC/DOCX 文档上传\r\n2. 助手自动提取内容，分批检测全部文案\r\n3. 获取每批检测结果和汇总优化文件\r\n\r\n**预期收益**：批量扫雷提升效率，避免活动上线后被投诉下架\r\n\r\n### 场景三：投放/营销话术快速过筛\r\n\r\n**角色**：广告投放、营销人员\r\n\r\n**需求**：多条卖点话术、投放文案快速过审\r\n\r\n**使用方式**：\r\n1. 逐条或批量提交投放文案\r\n2. 按助手替换建议修改违禁词\r\n3. 下载优化后文案提交合规审核\r\n\r\n**预期收益**：缩短审核周期，提高投放素材通过率\r\n\r\n### 场景四：内容审核/增长团队抽查\r\n\r\n**角色**：增长运营、内容审核\r\n\r\n**需求**：落地页、H5 页面纯文本内容合规抽查\r\n\r\n**使用方式**：\r\n1. 粘贴落地页或 H5 URL\r\n2. 助手自动抓取页面文字检测\r\n3. 查看检测结果确认是否存在违规\r\n\r\n**预期收益**：快速完成页面合规抽查，降低违规风险\r\n\r\n## 项目架构\r\n\r\n### 目录结构\r\n\r\n```\r\nxiaohongshu-prohibited-word/\r\n├── SKILL.md                          # Skill 主文档（本文件）\r\n├── skill-card.md                     # 技能市场卡片描述\r\n├── _meta.json                        # 元数据\r\n├── scripts/\r\n│   └── check_sensitive_words.py      # 核心检测脚本\r\n│       ├── _get_api_key()            #   API Key 获取（环境变量 → Shell配置 → 提示）\r\n│       ├── _http_request()           #   HTTP 请求（urllib 原生，内置重试）\r\n│       ├── extract_from_file()       #   文件文本提取（DOC/DOCX/TXT/CSV/MD 等）\r\n│       ├── extract_from_web()        #   网页文本提取（Playwright → urllib 回退）\r\n│       └── check_sensitive_words()   #   违禁词检测（API 调用 + 结果解析）\r\n└── references/\r\n    └── core_workflow.md              # 核心工作流（操作步骤、输出模板、格式铁律、示例）\r\n```\r\n\r\n### 技术栈\r\n\r\n| 组件 | 技术 | 说明 |\r\n|------|------|------|\r\n| **运行环境** | Python 3.8+ | 标准 Python 环境 |\r\n| **HTTP 请求** | `urllib.request`（标准库） | 原生 HTTP 请求，内置重试与超时处理 |\r\n| **文档解析** | `python-docx` | Word 文档文本提取 |\r\n| **网页解析** | `beautifulsoup4` + `playwright` | 静态 HTML + JS 动态渲染双引擎 |\r\n| **API 服务** | 红狐Hub 违禁词检测 API | HTTPS POST，JSON 格式，X-API-KEY 鉴权 |\r\n\r\n\r\n## 常见问答\r\n\r\n### 安装相关\r\n\r\n**Q1: 提示\"缺少依赖库\"怎么办？**\r\n\r\nA: 运行以下命令安装：\r\n```bash\r\npip install python-docx==1.1.0 beautifulsoup4==4.12.3 playwright==1.58.0\r\nplaywright install chromium\r\n```\r\n\r\n**Q2: 提示\"缺少凭证配置\"怎么办？**\r\n\r\nA: 请按以下步骤操作：\r\n1. 访问 https://redfox.hk/login 注册获取 API Key（新用户赠免费积分）\r\n2. 配置环境变量：`export REDFOX_API_KEY=ak_xxxxxxxx`\r\n3. 或在 `~/.bashrc` / `~/.zshrc` 中添加后执行 `source ~/.bashrc`\r\n\r\n### 使用相关\r\n\r\n**Q3: 单次能检测多少字？**\r\n\r\nA: 建议单次 3000 字以内效果最佳。3001~10000 字会询问是否分批检测，超过 10000 字暂不支持。\r\n\r\n**Q4: 支持 PDF 文件吗？**\r\n\r\nA: 不支持 PDF。请将 PDF 转为图片或文本文件后重新上传。\r\n\r\n**Q5: 检测结果能保证百分百准确吗？**\r\n\r\nA: 检测结果基于红狐Hub违禁词库，仅供参考。请根据企业经营范围和产品实际效果自行核对，最终以小红书平台审核结果为准。\r\n\r\n### 故障排除\r\n\r\n**Q6: 提示\"检测服务暂时不可用\"？**\r\n\r\nA: 脚本已内置自动重试机制。若持续失败，请检查网络、确认 API Key 未过期、或访问 红狐Hub 官网确认服务状态。\r\n\r\n**Q7: 网页内容提取失败？**\r\n\r\nA: 请检查网址是否可正常访问。部分需登录或有反爬保护的页面可能无法提取，建议改为复制文字后直接粘贴检测。\r\n\r\n**Q8: 图片文字提取不准确？**\r\n\r\nA: 文字提取依赖图片清晰度和字体。建议使用高清晰度截图，避免手写字体和艺术字体。\r\n\r\n### 获取帮助\r\n\r\n- 🌐 红狐Hub 官网：[https://redfox.hk/](https://redfox.hk/)\r\n- 📧 联系邮箱：graves9758@gmail.com\n\nFile v1.0.6:README.md\n\n# 小红书违禁词查询 / xiaohongshu-prohibited-word\r\n\r\n---\r\n\r\n## 简介\r\n\r\n在笔记发布前快速扫描文案中的小红书违禁词，标出风险点并给出可替换的合规表达与优化后全文，降低限流与下架风险。\r\n\r\n**核心价值**\r\n\r\n- **违禁词标记**：原文命中词加粗显示，风险点一目了然。\r\n- **替换建议**：每个违禁词配有结合上下文的替换词与更换理由。\r\n- **优化文案**：直接给出替换后的可发布版本，可复制使用或下载纯文本文件。\r\n- **长文案分批**：超过 3000 字会提醒并支持分批检测后合并结果。\r\n\r\n**适用对象**\r\n\r\n- 📝 **小红书博主 / 创作者** — 发布前自查，减少反复修改与审核等待。\r\n- 🛍️ **品牌 / 电商运营** — 活动文案、商品详情批量扫雷，避免上线后被投诉下架。\r\n- 📣 **投放 / 营销人员** — 多条卖点话术快速过筛，缩短合规审核周期。\r\n- 🔍 **增长运营 / 内容审核** — 落地页、H5 页面文字合规抽查。\r\n\r\n---\r\n\r\n## 功能特性\r\n\r\n### 核心功能\r\n\r\n- **直接贴文案**：粘贴笔记正文即可检测违禁词并给出修改方案。\r\n- **上传文档**：支持 TXT、DOC、DOCX，自动读取内容后检测，无需手动复制。\r\n- **上传图片**：从笔记截图或海报中提取文字后检测（仅识别图中文字）。\r\n- **粘贴链接**：提供网页地址，自动读取页面文字内容后检测。\r\n- **长文案处理**：单次建议 3000 字以内；更长内容可分批检测并汇总优化结果。\r\n- **一键导出**：生成纯文本优化文案文件，便于下载后直接发布。\r\n\r\n---\r\n\r\n## 密钥获取与安全说明\r\n\r\n- 本技能需要使用环境变量：`REDFOX_API_KEY`。\r\n- `REDFOX_API_KEY` 由 [红狐 hub](https://redfox.hk/settings/api-keys?source=clawhub) (`https://redfox.hk`)提供。\r\n- 请前往 [红狐 hub](https://redfox.hk?source=github) 注册账号，获取 `REDFOX_API_KEY`。\r\n- 配置设备环境变量 `REDFOX_API_KEY` 后使用本技能。\r\n- 在提供密钥前，请先确认密钥来源、可用范围、有效期及是否支持重置/撤销。\r\n- 禁止在代码、提示词、日志或输出文件中硬编码/明文暴露密钥。\r\n\r\n---\r\n\r\n## 使用指南\r\n\r\n直接用自然语言描述需求即可，无需记忆固定命令。可说「小红书违禁词」「笔记敏感词」「限流词」「种草文案合规」等触发检测。\r\n\r\n### 常用说法速查\r\n\r\n| 意图         | 示例话术                                                     | 效果                                 |\r\n| ------------ | ------------------------------------------------------------ | ------------------------------------ |\r\n| 检测笔记文案 | 「帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了……」 | 标出违禁词、给出替换建议与优化后文案 |\r\n| 检测上传文档 | 直接上传 TXT、DOC、DOCX 文件                                 | 自动读取文档内容并完成检测           |\r\n| 检测图片文字 | 上传笔记截图或海报                                           | 提取图中文字后检测                   |\r\n| 检测网页内容 | 「帮我检测这个网页：https://example.com/article」            | 自动读取页面文字后检测               |\r\n| 长文案分批   | 提交超过 3000 字的文案后，按提示回复 1 / 2 / 3 选择检测方式  | 单次检测前段、分批检测全部或取消     |\r\n\r\n### 输出示例\r\n\r\n检测完成后，你将依次收到以下三块内容（示意）：\r\n\r\n**🔍 违禁词检测结果**\r\n\r\n- 检测平台：小红书\r\n- 违禁词数量、类型\r\n- 原文中违禁词以加粗标出\r\n\r\n**💡 修改建议**\r\n\r\n| 违禁词 | 替换词 | 更换理由 |\r\n| ------ | ------ | -------- |\r\n| …      | …      | …        |\r\n\r\n**✏️ 建议优化文案**\r\n\r\n仅替换违禁词后的完整文案，已替换处加粗显示；同时提供可下载的纯文本优化文件。\r\n\r\n未检测到违禁词时，将提示「未检测到违禁词，文案内容合规✅」。\r\n\r\n---\r\n\r\n## 使用场景\r\n\r\n| 场景         | 角色            | 示例问法                                       | 收益                                 |\r\n| ------------ | --------------- | ---------------------------------------------- | ------------------------------------ |\r\n| 发布前自查   | 博主 / 创作者   | 粘贴种草笔记全文，询问是否有违禁词             | 一次改对，安心发布                   |\r\n| 批量文案扫雷 | 品牌 / 电商运营 | 上传含多篇推广文案的 Word 文档                 | 批量检测，避免活动上线后违规         |\r\n| 投放话术过筛 | 投放 / 营销人员 | 逐条提交卖点话术或广告文案                     | 按建议修改后提交合规审核，提高通过率 |\r\n| 页面合规抽查 | 增长 / 内容审核 | 提供落地页或 H5 链接，检查页面文字是否含违禁词 | 快速完成页面抽查，降低违规风险       |\r\n\r\n---\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1780630212605\n}\n\nFile v1.0.6:references/core_workflow.md\n\n# 小红书违禁词查询 · 核心工作流\r\n\r\n本文档包含本 Skill 的完整执行规范：**鉴权、数据源说明、任务目标、前置准备、操作步骤、输出模板、格式铁律、示例、脚本说明与注意事项**。处理违禁词检测请求时必须全文遵循，不得删减或改写约束含义。\r\n\r\n## 数据源说明\r\n\r\n本 Skill 的违禁词匹配通过独立后端 API 完成检测。执行脚本时，会将待检测内容通过 HTTPS POST 发往对接服务端（JSON），**不在本地计算词库**。\r\n\r\n| 项目 | 说明 |\r\n|---|---|\r\n| **API 地址** | `https://redfox.hk/story/api/cozeSkill/sensitiveWordSearch` |\r\n| **请求方式** | POST，application/json |\r\n| **请求体字段** | `content`（待检测文案）、`platform`（固定为\"小红书\"）、`source`（来源标识） |\r\n| **凭证机制** | `REDFOX_API_KEY` 环境变量（格式 `ak_xxxxxxxx`），脚本自动从环境变量或 Shell 配置文件读取 |\r\n| **HTTP 库** | `urllib.request`（标准库，内置重试与超时处理） |\r\n\r\n**对话指引**：首次为用户检测前，应用一两句话说明「文案将通过加密连接发送至检测服务」；若用户拒绝外传数据，则不应调用检测脚本。\r\n\r\n## 鉴权\r\n\r\n### 获取 API Key\r\n\r\n1. 访问 [红狐Hub 官网](https://redfox.hk/) 了解服务详情\r\n2. 前往 [注册页面](https://redfox.hk/login) 注册账号\r\n3. **新注册用户将获赠免费积分**，可立即开始使用 API 服务\r\n4. 注册登录后，在个人中心获取 API Key，格式为 `ak_xxxxxxxx`\r\n\r\n### 配置 API Key\r\n\r\n配置 `REDFOX_API_KEY` 环境变量，脚本按以下优先级自动获取：\r\n\r\n1. **环境变量**：直接读取当前设备 `REDFOX_API_KEY` 环境变量\r\n2. **Shell 配置文件回退**：若环境变量未设置，自动扫描以下配置文件查找 `REDFOX_API_KEY` 定义：\r\n   - `~/.zshrc`\r\n   - `~/.bashrc`\r\n   - `~/.bash_profile`\r\n   - `~/.profile`\r\n   - `~/.zprofile`\r\n3. **提示配置**：以上均未找到时，抛出异常提示用户配置\r\n\r\n**配置示例**：\r\n```bash\r\nexport REDFOX_API_KEY=ak_xxxxxxxx\r\n```\r\n\r\n## 任务目标\r\n\r\n- 本 Skill 用于：检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词加粗显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含：支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件：用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n\r\n## 前置准备\r\n\r\n- 依赖说明：脚本依赖 python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行 `playwright install chromium` 安装浏览器）\r\n- 非标准文件/文件夹准备：无\r\n\r\n## 操作步骤\r\n\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **图片文件**：智能体先用 read_image 提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再用 --content 传入；若提取文字超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按3000字符分批检测全部内容，用户回复\"3\"则结束任务\r\n   - **PDF文件**：不支持，提醒用户\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n   - --content、--file、--url 三者互斥，每次调用仅传一个\r\n   - 平台已硬编码为小红书，无需也无法指定其他平台\r\n2. 解析脚本返回的JSON，**严格按下方输出模板呈现结果，禁止偏离**；分批检测时每批均输出三板块结果\r\n3. **【必须执行，不可跳过】** 将纯文本优化文案（移除所有HTML标记）写入文件 `./小红书_优化文案_{随机6位数字}.txt`，写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n\r\n---\r\n\r\n## 输出模板（必须严格照此输出，禁止增减任何板块）\r\n\r\n以下三个板块为完整输出，必须同时出现、顺序固定、标题加粗。占位符用【】标注，替换为实际值。\r\n\r\n🔍 **违禁词检测结果**\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：【word_count】个\r\n- **违禁词类型**：【prohibited_words_type】\r\n\r\n📚 **违禁文案：**\r\n【html_content，原文中违禁词用 `**加粗**` 标记，单独成段展示】\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词 | 替换词 | 更换理由 |\r\n|--------|--------|----------|\r\n| 【违禁词1】 | 【替换词1】 | 【更换理由1】 |\r\n| 【违禁词2】 | 【替换词2】 | 【更换理由2】 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 **加粗文案**表示已替换的文案\r\n\r\n【仅将违禁词替换为对应的安全替换词，替换时必须确保替换词与前后文语境通顺、语法正确、语义自然，如需微调前后助词/连接词以保证通顺则一并调整；所有替换词及微调处用 `**加粗**` 标记；不改变原文语气、排版、用词风格，不添加emoji，不重写文案；该板块不使用代码块包裹，直接输出富文本】\r\n\r\n---\r\n\r\n## 输出格式铁律\r\n\r\n1. **检测结果输出时仅输出上述三个板块**，禁止在该结果中添加开场白、结束语、补充说明、额外标题等任何其他内容；但检测完成并输出结果后，智能体可正常回复用户的后续提问\r\n2. 三个板块标题必须加粗，emoji在加粗标记外：🔍 **违禁词检测结果**、💡 **修改建议**、✏️ **建议优化文案**\r\n3. **✏️建议优化文案**必须确保替换词与前后文语境通顺，整句话语法正确、语义自然，禁止机械替换单词导致语病（如\"回神秘公寓\"→\"回神秘居所\"而非\"回神秘公寓\"）；如需微调前后助词/连接词以保证通顺则一并调整并用加粗标记；不改变原文语气/排版/用词风格，禁止添加emoji，禁止重写文案；所有替换词及微调处必须用 `**加粗**` 标记显示；该板块不使用代码块包裹，直接输出富文本\r\n4. **【不可跳过】三板块输出完成后，智能体必须将纯文本优化文案写入文件** `./小红书_优化文案_{随机6位数字}.txt`，文件内容与\"✏️建议优化文案\"完全一致但移除所有HTML标记，仅保留纯文本。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果按原文顺序汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n5. 脚本返回JSON后，智能体必须解析并填入模板，禁止直接输出原始JSON\r\n6. 未检测到违禁词（word_count=0）时：仅输出\"**🔍 违禁词检测结果**\"板块，内容为\"未检测到违禁词，文案内容合规✅\"，不输出后两个板块，不输出文件\r\n\r\n---\r\n\r\n## 完整输出示例\r\n\r\n用户输入：\"这款美白神器真的太有效了，用了三天就白了一个度\"\r\n\r\n🔍 **违禁词检测结果**\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：2个\r\n- **违禁词类型**：禁用词\r\n\r\n📚 **违禁文案：**\r\n这款美白神器真的太**有效**了，用了三天就**白了一个度**\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词 | 替换词 | 更换理由 |\r\n|--------|--------|----------|\r\n| 有效 | 用着感觉不错 | \"有效\"属禁用词，改为描述使用感受的口语化表达 |\r\n| 白了一个度 | 肤色提亮了不少 | \"白了一个度\"暗示美白功效，改为描述视觉感受的间接表达 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 **加粗文案**表示已替换的文案\r\n\r\n这款美白神器真的太**用着感觉不错**了，用了三天就**肤色提亮了不少**\r\n\r\n（三板块输出完成后，智能体必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，内容与上方一致但无HTML标记。文件必须实际写入磁盘，写入后**必须将文件以卡片形式发送给用户**，禁止仅告知路径而不发送文件卡片）\r\n\r\n---\r\n\r\n## 资源索引\r\n\r\n- 脚本：见 [scripts/check_sensitive_words.py](../scripts/check_sensitive_words.py)（用途与参数：一站式小红书违禁词检测，支持三种输入方式——`--content` 直接传入文案文本，`--file` 传入 TXT/DOC/DOCX 等文本类型文件路径自动提取，`--url` 传入网页地址自动提取（使用 Playwright 无头浏览器渲染JS动态页面，回退到 urllib 静态提取）；`--extract-only` 仅提取文本不检测，返回 content 和 length；平台已硬编码为小红书；API调用需配置 REDFOX_API_KEY 环境变量）\r\n\r\n## 注意事项\r\n\r\n- 文案内容上限为3000字符；**所有输入类型（文本/文件/网页/图片）超过3000字符且不超过10000字符时均必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按自然断句处切割分批检测（每批不超过3000字符），分批检测完成后必须汇总所有批次的替换结果输出一份完整的优化文案文件不可遗漏，用户回复\"3\"则结束任务；**超过10000字符时直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n- 网络请求由 urllib 自动处理重试与超时\r\n- 脚本已内置英文误匹配过滤：API会将英文单词内部子串误标为违禁词（如\"Glasswing\"中的\"ass\"），脚本自动识别并过滤此类误匹配，无需智能体额外处理\r\n- 违禁词用 `**加粗**` 标记；优化文案中替换词用 `**加粗**` 标记\r\n- \"✏️建议优化文案\"仅替换违禁词，替换时必须确保与前后文语境通顺、语法正确，如需微调前后助词/连接词以保证通顺则一并调整并用加粗标记；禁止改变语气/排版/添加emoji/重写文案\r\n- **【不可跳过】**三板块输出完成后必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，其中随机数由智能体每次生成（如用当前时间戳后6位或随机6位数字），确保连续对话中不同次检测的文件名唯一、内容不被覆盖。文件内容与\"✏️建议优化文案\"一致但移除所有HTML标记。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次完成后必须将全部替换结果按原文顺序汇总写入一份完整文件并发送文件卡片，不可遗漏任何批次**\r\n- 图片文件由智能体先用 read_image 提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再以 --content 传入脚本检测\r\n- 不支持PDF文件，若用户上传PDF需提醒\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n- 检测完成并输出结果、写入文件后，智能体可正常回复用户的后续提问（如调整替换词、重新检测、解释违禁规则等），不应因铁律约束而拒绝后续对话\n\nFile v1.0.6:README.en.md\n\n# Xiaohongshu Prohibited Word Check / xiaohongshu-prohibited-word\r\n\r\n---\r\n\r\n## Introduction\r\n\r\nScan your copy for Xiaohongshu (Little Red Book) prohibited terms before publishing, highlight risks, and get compliant replacements plus a ready-to-post revised draft—so you can reduce throttling and takedown risk.\r\n\r\n**Core value**\r\n\r\n- **Flagged terms**: Hits are shown in bold in the original text so risks stand out.\r\n- **Replacement suggestions**: Each hit comes with a context-aware alternative and a short rationale.\r\n- **Optimized copy**: A publishable version with only the necessary swaps, ready to copy or download as plain text.\r\n- **Long-copy batches**: Content over 3,000 characters triggers a reminder and supports batched checks with merged results.\r\n\r\n**Who it’s for**\r\n\r\n- 📝 **Creators / bloggers** — Pre-publish self-checks; fewer rewrites and review cycles.\r\n- 🛍️ **Brand & e-commerce ops** — Batch-check campaigns, product pages, and promos before go-live.\r\n- 📣 **Ads & marketing** — Screen multiple selling points and ad lines faster for compliance review.\r\n- 🔍 **Growth & content review** — Spot-check landing pages and H5 page text for policy risk.\r\n\r\n---\r\n\r\n## Features\r\n\r\n### Core capabilities\r\n\r\n- **Paste copy**: Send note text directly for prohibited-term detection and edit guidance.\r\n- **Upload documents**: TXT, DOC, and DOCX are read automatically—no manual copy-paste.\r\n- **Upload images**: Text is read from note screenshots or posters, then checked (text only, not visual style).\r\n- **Paste a link**: Provide a URL; page text is read automatically, then checked.\r\n- **Long copy**: Best under 3,000 characters per run; longer content can be checked in batches with a combined optimized file.\r\n- **One-click export**: A plain-text optimized draft file for download and direct use.\r\n\r\n---\r\n\r\n## API Key Acquisition & Security\r\n\r\n- This skill requires the environment variable: `REDFOX_API_KEY`.\r\n- `REDFOX_API_KEY` is provided by [RedFoxHub](https://redfox.hk/settings/api-keys?source=clawhub) (`https://redfox.hk`).\r\n- Register at [RedFoxHub](https://redfox.hk?source=github) to obtain `REDFOX_API_KEY`.\r\n- Configure `REDFOX_API_KEY` on your device before using this skill.\r\n- Before sharing a key, confirm its source, scope, validity, and whether it can be reset or revoked.\r\n- Do not hard-code or expose keys in code, prompts, logs, or output files.\r\n\r\n---\r\n\r\n## How to use\r\n\r\nDescribe what you need in plain language—no fixed commands to memorize. You can say things like “Xiaohongshu prohibited words,” “note sensitive words,” “throttling terms,” or “compliant seeding copy.”\r\n\r\n### Quick phrase guide\r\n\r\n| Intent            | Example prompt                                                                | What you get                                    |\r\n| ----------------- | ----------------------------------------------------------------------------- | ----------------------------------------------- |\r\n| Check note copy   | “Check this note for prohibited words: this whitening product works so well…” | Flagged terms, replacements, and optimized copy |\r\n| Check a document  | Upload a TXT, DOC, or DOCX file                                               | Content is read and checked automatically       |\r\n| Check image text  | Upload a note screenshot or poster                                            | Text is extracted from the image, then checked  |\r\n| Check a web page  | “Check this page: https://example.com/article”                                | Page text is read, then checked                 |\r\n| Long copy options | After submitting 3,000+ characters, reply 1 / 2 / 3 per the prompt            | First chunk only, full batch check, or cancel   |\r\n\r\n### Sample output\r\n\r\nAfter a check, you receive three sections in order (illustrative):\r\n\r\n**🔍 Prohibited word check results**\r\n\r\n- Platform: Xiaohongshu\r\n- Count and types of hits\r\n- Original copy with prohibited terms in bold\r\n\r\n**💡 Revision suggestions**\r\n\r\n| Prohibited term | Replacement | Rationale |\r\n| --------------- | ----------- | --------- |\r\n| …               | …           | …         |\r\n\r\n**✏️ Suggested optimized copy**\r\n\r\nFull text with only prohibited terms swapped; replacements shown in bold, plus a downloadable plain-text file.\r\n\r\nIf nothing is flagged, you’ll see: no prohibited words detected—copy looks compliant ✅.\r\n\r\n---\r\n\r\n## Use cases\r\n\r\n| Scenario             | Role                    | Example ask                                          | Benefit                                       |\r\n| -------------------- | ----------------------- | ---------------------------------------------------- | --------------------------------------------- |\r\n| Pre-publish check    | Creator / blogger       | Paste full seeding note and ask for prohibited words | Fix once, publish with more confidence        |\r\n| Batch copy sweep     | Brand / e-commerce ops  | Upload a Word file with multiple promo drafts        | Batch detection; fewer post-launch violations |\r\n| Ad copy screening    | Ads / marketing         | Submit selling points or ad lines one by one         | Faster compliance review and approval         |\r\n| Page compliance spot | Growth / content review | Share a landing or H5 URL to check on-page text      | Quick page audit; lower policy risk           |\r\n\r\n---\n\nFile v1.0.6:skill-card.md\n\n## Description:\n\n检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[if530770](https://clawhub.ai/user/if530770)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal creators, brand and e-commerce operators, marketers, and content review teams use this skill to check Xiaohongshu copy, text documents, image text, or web page text for prohibited terms before publishing.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Checked content is sent to RedFox for prohibited-word detection.\n\nMitigation: Use the skill only with content that is appropriate for external processing.\n\nRisk: The skill can fetch arbitrary URLs from the host network when checking web pages.\n\nMitigation: Avoid checking private, internal, or access-controlled URLs.\n\nRisk: Credential lookup can read shell startup files if REDFOX_API_KEY is not set directly.\n\nMitigation: Set REDFOX_API_KEY explicitly for the session or deployment environment before use.\n\nRisk: Flagged results create a local downloadable text file containing the optimized copy.\n\nMitigation: Handle generated files according to the sensitivity of the submitted content.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/if530770/skills/xhs-prohibited-word)\n- [Core workflow](references/core_workflow.md)\n- [RedFoxHub](https://redfox.hk/)\n- [RedFoxHub API keys](https://redfox.hk/settings/api-keys?source=clawhub)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, files, guidance]\n\n**Output Format:** [Markdown response with tables plus a downloadable plain-text optimized-copy file]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires REDFOX_API_KEY; content over 3,000 characters is gated for batching and content over 10,000 characters is not checked.]\n\n## Skill Version(s):\n\n1.0.6 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.5: 5 files, 14891 bytes\n\nFiles: references/core_workflow.md (15546b), scripts/check_sensitive_words.py (13579b), skill-card.md (2411b), SKILL.md (6176b), _meta.json (138b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: xhs-prohibited-word\ndescription: 基于站长之家官方违禁词库，专攻小红书平台审核规则，支持文案、文件（TXT/DOC/DOCX）、图片、链接多形式输入，快速输出违禁词标记+上下文智能替换建议，帮你一次改对、安心发布笔记。\nversion: 1.0.4\ntags:\n  - xiaohongshu\n  - compliance\n  - sensitive-words\n  - content-safety\ndependency:\n  python:\n    - python-docx==1.1.0\n    - beautifulsoup4==4.12.3\n    - playwright==1.58.0\n  system:\n    - playwright install chromium\n---\n\n# 小红书违禁词检测\n\n> 笔记发不出去、被限流看不见？可能就是一两个词的事。\n\n---\n\n## 你会得到什么\n\n**把你的小红书笔记文案扔进来，快速告诉你哪里踩雷、怎么改才安全。**\n\n🔍 **违禁词标记** —— 原文中命中词用加粗下划线标出，一眼看到风险点\n\n💡 **替换建议表** —— 每个违禁词配一个结合上下文的替换词 + 更换理由，帮你\"改通顺\"而不是机械替换\n\n✏️ **优化文案** —— 直接给你一份替换后的可发布版本，替换词同样加粗下划线标记，复制粘贴就能用\n\n📏 **长文案分批检测** —— 超过 3000 字自动提醒，支持分批检测后合并结果\n\n🔗 **跨平台检测推荐** —— 笔记要分发到其他平台？检测完自动推荐公众号/抖音违禁词检测工具\n\n## 怎么用\n\n四种输入方式，挑你最顺手的：\n\n**💬 直接贴文案**\n> 帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了……\n\n**📎 上传文件**\n> 支持 TXT、DOC、DOCX 文件，直接上传自动读取检测\n\n**🖼️ 上传图片**\n> 上传笔记截图/海报，自动提取图中文字进行检测（仅提取文字，不分析图片内容）\n\n**🌐 粘贴链接**\n> 帮我检测这个网页：https://example.com/article\n\n**注意**：平台固定为小红书，无需指定。PDF 不支持，需转为图片或文本文件后上传。\n\n## 谁适合用\n\n- 📕 **小红书创作者** —— 种草笔记发布前自查，排除极限词、禁宣用语。如：*\"帮我看下这段笔记有没有违禁词\"*\n- 🏷️ **品牌/电商运营** —— 活动海报、商品详情页文案批量扫雷。如：*\"检查这个文档有没有小红书敏感词\"*\n- 💰 **投放/营销** —— 多条卖点话术快速过筛。如：*\"这几段种草文案帮我查一下\"*\n- 📊 **增长/内容审核** —— 落地页、H5 页面纯文本抽查。如：*\"检测这个网页内容有没有违规\"*\n\n## 使用须知\n\n- **内容长度**：建议单次 ≤ 3000 字，效果最佳；超过 3000 字会询问你是否分批；超过 10000 字暂不支持\n- **支持格式**：纯文本、TXT、DOC、DOCX、图片（提取文字）、网页链接\n- **暂不支持**：PDF（请转为图片或文本文件）\n- **数据隐私**：文案将通过加密连接发送至对接检测服务进行匹配，不在本地存储。如不希望外传，请提前告知\n- **英文内容友好**：内置英文误匹配过滤，不会把正常英文单词中的片段误判为违禁词\n- **网络容错**：内置自动重试机制，偶尔网络波动无需手动重试\n\n---\n\n\n> **完整执行规程**：调用脚本、格式化输出前，**必须先读取并严格遵循** [`references/core_workflow.md`](references/core_workflow.md) **全文**。\n\n### 触发条件\n\n满足以下任一即激活本 Skill：\n- 用户提到「小红书违禁词」「笔记敏感词」「小红书审核」「限流词」「种草文案合规」\n- 用户要求检测小红书笔记、种草文案、推广话术等内容安全性\n- 用户上传文件/图片/链接并提到小红书相关的检测需求\n\n### 执行铁律\n\n1. **禁止编造结果** —— 仅以脚本返回 JSON 为准，不得臆造违禁词或替换建议\n2. **禁止输出原始 JSON** —— 必须解析后填入输出模板\n3. **禁止多余寒暄** —— 仅输出四个板块（🔍检测结果、💡修改建议、✏️优化文案、🔗还想查其他平台？），无开场白/结束语\n4. **分批/字数超限必须暂停** —— 发出提示后立即停止，等待用户明确回复 1/2/3 后再继续\n5. **图片仅限文字** —— 禁止获取图片的视觉风格、布局、色彩、人物等任何非文字信息\n6. **不生成文件** —— 四板块输出完成后即任务结束，不生成 HTML 页面和文件包\n\n### 执行流程\n\n完整步骤、话术模板与切割规则详见 [`references/core_workflow.md`](references/core_workflow.md)，速览如下：\n\n1. **识别输入类型** → 文本/文件(TXT/DOC/DOCX)/网页/图片，分别处理\n2. **字数判断** → ≤3000 直接检测；3001~10000 暂停询问（1=单次/2=分批/3=取消）；>10000 中断\n3. **调用脚本** → `python {skill_dir}/scripts/check_sensitive_words.py --content=\"...\"` 或 `--file` 或 `--url`\n4. **模板输出** → 按核心工作流四板块模板排版，违禁词用 `<u>**违禁词**</u>` 标记\n\n#### 命令速查\n\n| 输入形态 | 助手动作 |\n|---|---|\n| 纯文本 | 计算字数 → 字数闸门 → `--content=\"...\"` → 四板块输出 |\n| 上传 TXT/DOC/DOCX | `--file=path --extract-only` 查字数 → 按规则检测 → 四板块输出 |\n| 上传图片 | 仅提取图中文字 → 计算字数 → `--content=\"提取文字\"` → 四板块输出 |\n| 粘贴 `https://...` | `--url=... --extract-only` 查字数 → 按规则检测 → 四板块输出 |\n| 超长文案 | 发出询问语，**收到 1/2/3 后再继续** |\n\n`--content`、`--file`、`--url` 三者互斥。平台已硬编码为小红书。\n\n#### 异常处理\n\n| 异常场景 | 用户话术 |\n|---|---|\n| 文件/网页提取失败 | 「内容提取失败，请检查文件格式或网址是否可访问」 |\n| PDF 文件 | 「不支持 PDF 文件，请转为图片或文本文件后重新上传」 |\n| API 超时或网络异常 | 「检测服务暂时不可用，已自动重试仍失败，请稍后重试」 |\n| API 返回业务错误（code≠2000） | 「检测服务返回异常，请稍后重试」 |\n| 依赖缺失（python-docx/playwright 等） | 提示用户安装对应依赖后重试 |\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1779093858533\n}\n\nFile v1.0.5:references/core_workflow.md\n\n# 小红书违禁词查询 · 核心工作流\r\n\r\n本文档包含本 Skill 的完整执行规范：**任务目标、前置准备、操作步骤、输出模板、格式铁律、示例、脚本说明与注意事项**。处理违禁词检测请求时必须全文遵循，不得删减或改写约束含义。\r\n\r\n## 数据源说明\r\n\r\n本 Skill 的违禁词匹配基于**站长之家官方违禁词库**，通过独立后端 API 完成检测。执行脚本时，会将待检测内容通过 HTTPS POST 发往对接服务端（JSON），**不在本地计算词库**。\r\n\r\n| 项目 | 说明 |\r\n|---|---|\r\n| **数据来源** | 站长之家官方违禁词库 |\r\n| **默认 API** | `https://onetotenvip.com/story/cozeSkill/sensitiveWordSearch` |\r\n| **请求体字段** | `content`（待检测文案）、`platform`（固定为\"小红书\"）、`source`（来源标识） |\r\n| **替代部署** | 可设置环境变量 `XHS_SENSITIVE_WORD_API_URL` 为自建 HTTPS 接口 |\r\n\r\n**对话指引**：首次为用户检测前，应用一两句话说明「文案将通过加密连接发送至检测服务」；若用户拒绝外传数据，则不应调用检测脚本。\r\n\r\n## 任务目标\r\n\r\n- 本 Skill 用于:检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词用加粗下划线标记显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含:支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件:用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n- **输出形式**：结果直接以 Markdown 输出，不生成 HTML 页面和文件包\r\n\r\n## 前置准备\r\n\r\n- 依赖说明:脚本依赖python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行`playwright install chromium`安装浏览器）\r\n- 非标准文件/文件夹准备:无\r\n\r\n## 操作步骤\r\n\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **图片文件**：智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再用 --content 传入；若提取文字超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按3000字符分批检测全部内容，用户回复\"3\"则结束任务\r\n   - **PDF文件**：不支持，提醒用户\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n   - --content、--file、--url 三者互斥，每次调用仅传一个\r\n   - 平台已硬编码为小红书，无需也无法指定其他平台\r\n2. 解析脚本返回的JSON，**严格按下方输出模板呈现结果，禁止偏离**；分批检测时每批均输出四板块结果\r\n3. 输出完成后任务结束，**不生成 HTML 文件和文件包**\r\n\r\n---\r\n\r\n## 输出模板（必须严格照此输出，禁止增减任何板块）\r\n\r\n以下四个板块为完整输出，必须同时出现、顺序固定、标题加粗。占位符用【】标注，替换为实际值。\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：【word_count】个\r\n- **违禁词类型**：【prohibited_words_type】\r\n\r\n📚 **违禁文案：**\r\n【原文中违禁词用加粗下划线标记，格式为 `<u>**违禁词**</u>`，单独成段展示】\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词      | 替换词      | 更换理由      |\r\n| ----------- | ----------- | ------------- |\r\n| 【违禁词1】 | 【替换词1】 | 【更换理由1】 |\r\n| 【违禁词2】 | 【替换词2】 | 【更换理由2】 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <u>**加粗下划线**</u>文案表示已替换的文案\r\n\r\n【仅将违禁词替换为对应的安全替换词，替换时必须确保替换词与前后文语境通顺、语法正确、语义自然，如需微调前后助词/连接词以保证通顺则一并调整；所有替换词及微调处用 `<u>**替换词**</u>` 标记；不改变原文语气、排版、用词风格，不添加emoji，不重写文案；该板块不使用代码块包裹，直接输出 Markdown 文本】\r\n\r\n🔗 **还想查其他平台？**\r\n\r\n文案要在多个平台分发？这几个违禁词检测技能也能帮到你👇\r\n\r\n- 🌐 [多平台违禁词检测](https://skillhub.cn/skills/prohibited-word-query) — 公众号+小红书+抖音三大平台违禁词一站查完，不用来回切换，省时省力\r\n- 🎵 [抖音违禁词检测](https://skillhub.cn/skills/dy-prohibited-word) — 专攻抖音审核规则，文案/视频脚本/评论全覆盖，让你少踩坑多上热门\r\n- 📰 [公众号违禁词检测](https://skillhub.cn/skills/gzh-prohibited-word) — 贴合公众号审核标准，推文/标题/摘要都能检，发推前过一遍更安心\r\n\r\n---\r\n\r\n## 输出格式铁律\r\n\r\n1. **检测结果输出时仅输出上述四个板块**，禁止在该结果中添加开场白、结束语、补充说明、额外标题等任何其他内容；但检测完成并输出结果后，智能体可正常回复用户的后续提问\r\n2. 四个板块标题必须加粗，emoji在加粗标记外：🔍 **违禁词检测结果**、💡 **修改建议**、✏️ **建议优化文案**、🔗 **还想查其他平台？**\r\n3. **✏️建议优化文案**必须确保替换词与前后文语境通顺，整句话语法正确、语义自然，禁止机械替换单词导致语病（如\"回神秘公寓\"→\"回神秘居所\"而非\"回神秘公寓\"）；如需微调前后助词/连接词以保证通顺则一并调整并用加粗下划线标记；不改变原文语气/排版/用词风格，禁止添加emoji，禁止重写文案；所有替换词及微调处必须用 `<u>**替换词**</u>` 标记显示；该板块不使用代码块包裹，直接输出 Markdown 文本\r\n4. 四板块输出完成后即任务结束，**不生成 HTML 文件和文件包**\r\n5. 脚本返回JSON后，智能体必须解析并填入模板，禁止直接输出原始JSON\r\n6. 未检测到违禁词（word_count=0）时：仅输出\"**🔍 违禁词检测结果**\"板块，内容为\"未检测到违禁词，文案内容合规✅\"，不输出后三个板块\r\n\r\n---\r\n\r\n## 完整输出示例\r\n\r\n用户输入：\"这款美白神器真的太有效了，用了三天就白了一个度\"\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：2个\r\n- **违禁词类型**：禁用词\r\n\r\n📚 **违禁文案：**\r\n这款美白神器真的太<u>**有效**</u>了，用了三天就<u>**白了一个度**</u>\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词     | 替换词         | 更换理由                                             |\r\n| ---------- | -------------- | ---------------------------------------------------- |\r\n| 有效       | 用着感觉不错   | \"有效\"属禁用词，改为描述使用感受的口语化表达         |\r\n| 白了一个度 | 肤色提亮了不少 | \"白了一个度\"暗示美白功效，改为描述视觉感受的间接表达 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <u>**加粗下划线**</u>文案表示已替换的文案\r\n\r\n这款美白神器真的太<u>**用着感觉不错**</u>了，用了三天就<u>**肤色提亮了不少**</u>\r\n\r\n🔗 **还想查其他平台？**\r\n\r\n文案要在多个平台分发？这几个违禁词检测技能也能帮到你👇\r\n\r\n- 🌐 [多平台违禁词检测](https://skillhub.cn/skills/prohibited-word-query) — 公众号+小红书+抖音三大平台违禁词一站查完，不用来回切换，省时省力\r\n- 🎵 [抖音违禁词检测](https://skillhub.cn/skills/dy-prohibited-word) — 专攻抖音审核规则，文案/视频脚本/评论全覆盖，让你少踩坑多上热门\r\n- 📰 [公众号违禁词检测](https://skillhub.cn/skills/gzh-prohibited-word) — 贴合公众号审核标准，推文/标题/摘要都能检，发推前过一遍更安心\r\n\r\n（四板块输出完成后即任务结束，不生成 HTML 文件和文件包）\r\n\r\n---\r\n\r\n## 资源索引\r\n\r\n- 脚本:见 [scripts/check_sensitive_words.py](../scripts/check_sensitive_words.py)（用途与参数:一站式小红书违禁词检测，支持三种输入方式——`--content` 直接传入文案文本，`--file` 传入 TXT/DOC/DOCX 等文本类型文件路径自动提取，`--url` 传入网页地址自动提取（优先 Playwright 无头浏览器渲染 JS 动态页面，不可用时回退标准库 urllib 拉取静态 HTML）；`--extract-only` 仅提取文本不检测，返回 content 和 length；平台已硬编码为小红书）\r\n\r\n## 注意事项\r\n\r\n- 文案内容上限为3000字符；**所有输入类型（文本/文件/网页/图片）超过3000字符且不超过10000字符时均必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按自然断句处切割分批检测（每批不超过3000字符），分批检测完成后必须汇总所有批次的替换结果输出完整优化文案不可遗漏，用户回复\"3\"则结束任务；**超过10000字符时直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n- 网络请求自动重试：遇到5xx、超时、连接重置等场景最多重试2次，智能体无需手动重试\r\n- 脚本已内置英文误匹配过滤：API会将英文单词内部子串误标为违禁词（如\"Glasswing\"中的\"ass\"），脚本自动识别并过滤此类误匹配，无需智能体额外处理\r\n- 违禁词用加粗下划线标记（格式 `<u>**违禁词**</u>`）；优化文案中替换词用加粗下划线标记（格式 `<u>**替换词**</u>`）\r\n- \"✏️建议优化文案\"仅替换违禁词，替换时必须确保与前后文语境通顺、语法正确，如需微调前后助词/连接词以保证通顺则一并调整并用加粗下划线标记；禁止改变语气/排版/添加emoji/重写文案\r\n- 四板块输出完成后即任务结束，**不生成 HTML 文件和文件包**，结果直接以 Markdown 输出\r\n- 图片文件由智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再以 --content 传入脚本检测\r\n- 不支持PDF文件，若用户上传PDF需提醒\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n- 检测完成并输出结果后，智能体可正常回复用户的后续提问（如调整替换词、重新检测、解释违禁规则等），不应因铁律约束而拒绝后续对话\n\nFile v1.0.5:skill-card.md\n\n## Description: <br>\n基于站长之家官方违禁词库，专攻小红书平台审核规则，支持文案、文件（TXT/DOC/DOCX）、图片、链接多形式输入，快速输出违禁词标记和上下文智能替换建议。 <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[if530770](https://clawhub.ai/user/if530770) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal creators, brand and e-commerce operators, marketing teams, and content reviewers use this skill to check Xiaohongshu copy, uploaded text documents, images with extracted text, or webpage text for prohibited terms before publishing. It returns flagged terms, replacement suggestions, and an optimized Markdown draft. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Checked copy, extracted file text, or fetched webpage text is sent to an external detection service. <br>\nMitigation: Use only with content that may be shared with that service, or configure a controlled endpoint with XHS_SENSITIVE_WORD_API_URL before handling confidential material. <br>\nRisk: Prohibited-word results and replacement suggestions are advisory and may not fully reflect current Xiaohongshu policy or a publisher's compliance obligations. <br>\nMitigation: Review flagged terms and suggested replacements against the actual product claims, operating scope, and publication policy before posting. <br>\n\n\n## Reference(s): <br>\n- [Core workflow](references/core_workflow.md) <br>\n- [ClawHub skill page](https://clawhub.ai/if530770/xhs-prohibited-word) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Guidance, Shell commands] <br>\n**Output Format:** [Markdown with tables, inline emphasis, and script command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Does not generate files; long inputs are gated at 3000 and 10000 characters; supports extracted text from TXT, DOC, DOCX, images, and webpages.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release metadata; artifact frontmatter states 1.0.4) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.4: 4 files, 13458 bytes\n\nFiles: references/core_workflow.md (15546b), scripts/check_sensitive_words.py (13579b), SKILL.md (6232b), _meta.json (138b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: xhs-prohibited-word\ndescription: 基于站长之家官方违禁词库，专攻小红书平台审核规则，支持文案、文件（TXT/DOC/DOCX）、图片、链接多形式输入，快速输出违禁词标记+上下文智能替换建议，帮你一次改对、安心发布笔记。\nversion: 1.0.4\ntags:\n  - xiaohongshu\n  - compliance\n  - sensitive-words\n  - content-safety\ndependency:\n  python:\n    - python-docx==1.1.0\n    - beautifulsoup4==4.12.3\n    - playwright==1.58.0\n  system:\n    - playwright install chromium\n---\n\n# 小红书违禁词检测\n\n> 笔记发不出去、被限流看不见？可能就是一两个词的事。\n\n---\n\n## 你会得到什么\n\n**把你的小红书笔记文案扔进来，快速告诉你哪里踩雷、怎么改才安全。**\n\n🔍 **违禁词标记** —— 原文中命中词用加粗下划线标出，一眼看到风险点\n\n💡 **替换建议表** —— 每个违禁词配一个结合上下文的替换词 + 更换理由，帮你\"改通顺\"而不是机械替换\n\n✏️ **优化文案** —— 直接给你一份替换后的可发布版本，替换词同样加粗下划线标记，复制粘贴就能用\n\n📏 **长文案分批检测** —— 超过 3000 字自动提醒，支持分批检测后合并结果\n\n🔗 **跨平台检测推荐** —— 笔记要分发到其他平台？检测完自动推荐公众号/抖音违禁词检测工具\n\n## 怎么用\n\n四种输入方式，挑你最顺手的：\n\n**💬 直接贴文案**\n> 帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了……\n\n**📎 上传文件**\n> 支持 TXT、DOC、DOCX 文件，直接上传自动读取检测\n\n**🖼️ 上传图片**\n> 上传笔记截图/海报，自动提取图中文字进行检测（仅提取文字，不分析图片内容）\n\n**🌐 粘贴链接**\n> 帮我检测这个网页：https://example.com/article\n\n**注意**：平台固定为小红书，无需指定。PDF 不支持，需转为图片或文本文件后上传。\n\n## 谁适合用\n\n- 📕 **小红书创作者** —— 种草笔记发布前自查，排除极限词、禁宣用语。如：*\"帮我看下这段笔记有没有违禁词\"*\n- 🏷️ **品牌/电商运营** —— 活动海报、商品详情页文案批量扫雷。如：*\"检查这个文档有没有小红书敏感词\"*\n- 💰 **投放/营销** —— 多条卖点话术快速过筛。如：*\"这几段种草文案帮我查一下\"*\n- 📊 **增长/内容审核** —— 落地页、H5 页面纯文本抽查。如：*\"检测这个网页内容有没有违规\"*\n\n## 使用须知\n\n- **内容长度**：建议单次 ≤ 3000 字，效果最佳；超过 3000 字会询问你是否分批；超过 10000 字暂不支持\n- **支持格式**：纯文本、TXT、DOC、DOCX、图片（提取文字）、网页链接\n- **暂不支持**：PDF（请转为图片或文本文件）\n- **数据隐私**：文案将通过加密连接发送至对接检测服务进行匹配，不在本地存储。如不希望外传，请提前告知\n- **英文内容友好**：内置英文误匹配过滤，不会把正常英文单词中的片段误判为违禁词\n- **网络容错**：内置自动重试机制，偶尔网络波动无需手动重试\n\n---\n\n<!-- 以下为 Agent 执行指令，用户可忽略 -->\n\n> **完整执行规程**：调用脚本、格式化输出前，**必须先读取并严格遵循** [`references/core_workflow.md`](references/core_workflow.md) **全文**。\n\n### 触发条件\n\n满足以下任一即激活本 Skill：\n- 用户提到「小红书违禁词」「笔记敏感词」「小红书审核」「限流词」「种草文案合规」\n- 用户要求检测小红书笔记、种草文案、推广话术等内容安全性\n- 用户上传文件/图片/链接并提到小红书相关的检测需求\n\n### 执行铁律\n\n1. **禁止编造结果** —— 仅以脚本返回 JSON 为准，不得臆造违禁词或替换建议\n2. **禁止输出原始 JSON** —— 必须解析后填入输出模板\n3. **禁止多余寒暄** —— 仅输出四个板块（🔍检测结果、💡修改建议、✏️优化文案、🔗还想查其他平台？），无开场白/结束语\n4. **分批/字数超限必须暂停** —— 发出提示后立即停止，等待用户明确回复 1/2/3 后再继续\n5. **图片仅限文字** —— 禁止获取图片的视觉风格、布局、色彩、人物等任何非文字信息\n6. **不生成文件** —— 四板块输出完成后即任务结束，不生成 HTML 页面和文件包\n\n### 执行流程\n\n完整步骤、话术模板与切割规则详见 [`references/core_workflow.md`](references/core_workflow.md)，速览如下：\n\n1. **识别输入类型** → 文本/文件(TXT/DOC/DOCX)/网页/图片，分别处理\n2. **字数判断** → ≤3000 直接检测；3001~10000 暂停询问（1=单次/2=分批/3=取消）；>10000 中断\n3. **调用脚本** → `python {skill_dir}/scripts/check_sensitive_words.py --content=\"...\"` 或 `--file` 或 `--url`\n4. **模板输出** → 按核心工作流四板块模板排版，违禁词用 `<u>**违禁词**</u>` 标记\n\n#### 命令速查\n\n| 输入形态 | 助手动作 |\n|---|---|\n| 纯文本 | 计算字数 → 字数闸门 → `--content=\"...\"` → 四板块输出 |\n| 上传 TXT/DOC/DOCX | `--file=path --extract-only` 查字数 → 按规则检测 → 四板块输出 |\n| 上传图片 | 仅提取图中文字 → 计算字数 → `--content=\"提取文字\"` → 四板块输出 |\n| 粘贴 `https://...` | `--url=... --extract-only` 查字数 → 按规则检测 → 四板块输出 |\n| 超长文案 | 发出询问语，**收到 1/2/3 后再继续** |\n\n`--content`、`--file`、`--url` 三者互斥。平台已硬编码为小红书。\n\n#### 异常处理\n\n| 异常场景 | 用户话术 |\n|---|---|\n| 文件/网页提取失败 | 「内容提取失败，请检查文件格式或网址是否可访问」 |\n| PDF 文件 | 「不支持 PDF 文件，请转为图片或文本文件后重新上传」 |\n| API 超时或网络异常 | 「检测服务暂时不可用，已自动重试仍失败，请稍后重试」 |\n| API 返回业务错误（code≠2000） | 「检测服务返回异常，请稍后重试」 |\n| 依赖缺失（python-docx/playwright 等） | 提示用户安装对应依赖后重试 |\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1779092768635\n}\n\nFile v1.0.4:references/core_workflow.md\n\n# 小红书违禁词查询 · 核心工作流\r\n\r\n本文档包含本 Skill 的完整执行规范：**任务目标、前置准备、操作步骤、输出模板、格式铁律、示例、脚本说明与注意事项**。处理违禁词检测请求时必须全文遵循，不得删减或改写约束含义。\r\n\r\n## 数据源说明\r\n\r\n本 Skill 的违禁词匹配基于**站长之家官方违禁词库**，通过独立后端 API 完成检测。执行脚本时，会将待检测内容通过 HTTPS POST 发往对接服务端（JSON），**不在本地计算词库**。\r\n\r\n| 项目 | 说明 |\r\n|---|---|\r\n| **数据来源** | 站长之家官方违禁词库 |\r\n| **默认 API** | `https://onetotenvip.com/story/cozeSkill/sensitiveWordSearch` |\r\n| **请求体字段** | `content`（待检测文案）、`platform`（固定为\"小红书\"）、`source`（来源标识） |\r\n| **替代部署** | 可设置环境变量 `XHS_SENSITIVE_WORD_API_URL` 为自建 HTTPS 接口 |\r\n\r\n**对话指引**：首次为用户检测前，应用一两句话说明「文案将通过加密连接发送至检测服务」；若用户拒绝外传数据，则不应调用检测脚本。\r\n\r\n## 任务目标\r\n\r\n- 本 Skill 用于:检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词用加粗下划线标记显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含:支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件:用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n- **输出形式**：结果直接以 Markdown 输出，不生成 HTML 页面和文件包\r\n\r\n## 前置准备\r\n\r\n- 依赖说明:脚本依赖python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行`playwright install chromium`安装浏览器）\r\n- 非标准文件/文件夹准备:无\r\n\r\n## 操作步骤\r\n\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **图片文件**：智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再用 --content 传入；若提取文字超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按3000字符分批检测全部内容，用户回复\"3\"则结束任务\r\n   - **PDF文件**：不支持，提醒用户\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n   - --content、--file、--url 三者互斥，每次调用仅传一个\r\n   - 平台已硬编码为小红书，无需也无法指定其他平台\r\n2. 解析脚本返回的JSON，**严格按下方输出模板呈现结果，禁止偏离**；分批检测时每批均输出四板块结果\r\n3. 输出完成后任务结束，**不生成 HTML 文件和文件包**\r\n\r\n---\r\n\r\n## 输出模板（必须严格照此输出，禁止增减任何板块）\r\n\r\n以下四个板块为完整输出，必须同时出现、顺序固定、标题加粗。占位符用【】标注，替换为实际值。\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：【word_count】个\r\n- **违禁词类型**：【prohibited_words_type】\r\n\r\n📚 **违禁文案：**\r\n【原文中违禁词用加粗下划线标记，格式为 `<u>**违禁词**</u>`，单独成段展示】\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词      | 替换词      | 更换理由      |\r\n| ----------- | ----------- | ------------- |\r\n| 【违禁词1】 | 【替换词1】 | 【更换理由1】 |\r\n| 【违禁词2】 | 【替换词2】 | 【更换理由2】 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <u>**加粗下划线**</u>文案表示已替换的文案\r\n\r\n【仅将违禁词替换为对应的安全替换词，替换时必须确保替换词与前后文语境通顺、语法正确、语义自然，如需微调前后助词/连接词以保证通顺则一并调整；所有替换词及微调处用 `<u>**替换词**</u>` 标记；不改变原文语气、排版、用词风格，不添加emoji，不重写文案；该板块不使用代码块包裹，直接输出 Markdown 文本】\r\n\r\n🔗 **还想查其他平台？**\r\n\r\n文案要在多个平台分发？这几个违禁词检测技能也能帮到你👇\r\n\r\n- 🌐 [多平台违禁词检测](https://skillhub.cn/skills/prohibited-word-query) — 公众号+小红书+抖音三大平台违禁词一站查完，不用来回切换，省时省力\r\n- 🎵 [抖音违禁词检测](https://skillhub.cn/skills/dy-prohibited-word) — 专攻抖音审核规则，文案/视频脚本/评论全覆盖，让你少踩坑多上热门\r\n- 📰 [公众号违禁词检测](https://skillhub.cn/skills/gzh-prohibited-word) — 贴合公众号审核标准，推文/标题/摘要都能检，发推前过一遍更安心\r\n\r\n---\r\n\r\n## 输出格式铁律\r\n\r\n1. **检测结果输出时仅输出上述四个板块**，禁止在该结果中添加开场白、结束语、补充说明、额外标题等任何其他内容；但检测完成并输出结果后，智能体可正常回复用户的后续提问\r\n2. 四个板块标题必须加粗，emoji在加粗标记外：🔍 **违禁词检测结果**、💡 **修改建议**、✏️ **建议优化文案**、🔗 **还想查其他平台？**\r\n3. **✏️建议优化文案**必须确保替换词与前后文语境通顺，整句话语法正确、语义自然，禁止机械替换单词导致语病（如\"回神秘公寓\"→\"回神秘居所\"而非\"回神秘公寓\"）；如需微调前后助词/连接词以保证通顺则一并调整并用加粗下划线标记；不改变原文语气/排版/用词风格，禁止添加emoji，禁止重写文案；所有替换词及微调处必须用 `<u>**替换词**</u>` 标记显示；该板块不使用代码块包裹，直接输出 Markdown 文本\r\n4. 四板块输出完成后即任务结束，**不生成 HTML 文件和文件包**\r\n5. 脚本返回JSON后，智能体必须解析并填入模板，禁止直接输出原始JSON\r\n6. 未检测到违禁词（word_count=0）时：仅输出\"**🔍 违禁词检测结果**\"板块，内容为\"未检测到违禁词，文案内容合规✅\"，不输出后三个板块\r\n\r\n---\r\n\r\n## 完整输出示例\r\n\r\n用户输入：\"这款美白神器真的太有效了，用了三天就白了一个度\"\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：2个\r\n- **违禁词类型**：禁用词\r\n\r\n📚 **违禁文案：**\r\n这款美白神器真的太<u>**有效**</u>了，用了三天就<u>**白了一个度**</u>\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词     | 替换词         | 更换理由                                             |\r\n| ---------- | -------------- | ---------------------------------------------------- |\r\n| 有效       | 用着感觉不错   | \"有效\"属禁用词，改为描述使用感受的口语化表达         |\r\n| 白了一个度 | 肤色提亮了不少 | \"白了一个度\"暗示美白功效，改为描述视觉感受的间接表达 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <u>**加粗下划线**</u>文案表示已替换的文案\r\n\r\n这款美白神器真的太<u>**用着感觉不错**</u>了，用了三天就<u>**肤色提亮了不少**</u>\r\n\r\n🔗 **还想查其他平台？**\r\n\r\n文案要在多个平台分发？这几个违禁词检测技能也能帮到你👇\r\n\r\n- 🌐 [多平台违禁词检测](https://skillhub.cn/skills/prohibited-word-query) — 公众号+小红书+抖音三大平台违禁词一站查完，不用来回切换，省时省力\r\n- 🎵 [抖音违禁词检测](https://skillhub.cn/skills/dy-prohibited-word) — 专攻抖音审核规则，文案/视频脚本/评论全覆盖，让你少踩坑多上热门\r\n- 📰 [公众号违禁词检测](https://skillhub.cn/skills/gzh-prohibited-word) — 贴合公众号审核标准，推文/标题/摘要都能检，发推前过一遍更安心\r\n\r\n（四板块输出完成后即任务结束，不生成 HTML 文件和文件包）\r\n\r\n---\r\n\r\n## 资源索引\r\n\r\n- 脚本:见 [scripts/check_sensitive_words.py](../scripts/check_sensitive_words.py)（用途与参数:一站式小红书违禁词检测，支持三种输入方式——`--content` 直接传入文案文本，`--file` 传入 TXT/DOC/DOCX 等文本类型文件路径自动提取，`--url` 传入网页地址自动提取（优先 Playwright 无头浏览器渲染 JS 动态页面，不可用时回退标准库 urllib 拉取静态 HTML）；`--extract-only` 仅提取文本不检测，返回 content 和 length；平台已硬编码为小红书）\r\n\r\n## 注意事项\r\n\r\n- 文案内容上限为3000字符；**所有输入类型（文本/文件/网页/图片）超过3000字符且不超过10000字符时均必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按自然断句处切割分批检测（每批不超过3000字符），分批检测完成后必须汇总所有批次的替换结果输出完整优化文案不可遗漏，用户回复\"3\"则结束任务；**超过10000字符时直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n- 网络请求自动重试：遇到5xx、超时、连接重置等场景最多重试2次，智能体无需手动重试\r\n- 脚本已内置英文误匹配过滤：API会将英文单词内部子串误标为违禁词（如\"Glasswing\"中的\"ass\"），脚本自动识别并过滤此类误匹配，无需智能体额外处理\r\n- 违禁词用加粗下划线标记（格式 `<u>**违禁词**</u>`）；优化文案中替换词用加粗下划线标记（格式 `<u>**替换词**</u>`）\r\n- \"✏️建议优化文案\"仅替换违禁词，替换时必须确保与前后文语境通顺、语法正确，如需微调前后助词/连接词以保证通顺则一并调整并用加粗下划线标记；禁止改变语气/排版/添加emoji/重写文案\r\n- 四板块输出完成后即任务结束，**不生成 HTML 文件和文件包**，结果直接以 Markdown 输出\r\n- 图片文件由智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再以 --content 传入脚本检测\r\n- 不支持PDF文件，若用户上传PDF需提醒\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n- 检测完成并输出结果后，智能体可正常回复用户的后续提问（如调整替换词、重新检测、解释违禁规则等），不应因铁律约束而拒绝后续对话\n\nArchive v1.0.3: 4 files, 13458 bytes\n\nFiles: references/core_workflow.md (15546b), scripts/check_sensitive_words.py (13579b), SKILL.md (6232b), _meta.json (138b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: xhs-prohibited-word\ndescription: 基于站长之家官方违禁词库，专攻小红书平台审核规则，支持文案、文件（TXT/DOC/DOCX）、图片、链接多形式输入，快速输出违禁词标记+上下文智能替换建议，帮你一次改对、安心发布笔记。\nversion: 1.0.4\ntags:\n  - xiaohongshu\n  - compliance\n  - sensitive-words\n  - content-safety\ndependency:\n  python:\n    - python-docx==1.1.0\n    - beautifulsoup4==4.12.3\n    - playwright==1.58.0\n  system:\n    - playwright install chromium\n---\n\n# 小红书违禁词检测\n\n> 笔记发不出去、被限流看不见？可能就是一两个词的事。\n\n---\n\n## 你会得到什么\n\n**把你的小红书笔记文案扔进来，快速告诉你哪里踩雷、怎么改才安全。**\n\n🔍 **违禁词标记** —— 原文中命中词用加粗下划线标出，一眼看到风险点\n\n💡 **替换建议表** —— 每个违禁词配一个结合上下文的替换词 + 更换理由，帮你\"改通顺\"而不是机械替换\n\n✏️ **优化文案** —— 直接给你一份替换后的可发布版本，替换词同样加粗下划线标记，复制粘贴就能用\n\n📏 **长文案分批检测** —— 超过 3000 字自动提醒，支持分批检测后合并结果\n\n🔗 **跨平台检测推荐** —— 笔记要分发到其他平台？检测完自动推荐公众号/抖音违禁词检测工具\n\n## 怎么用\n\n四种输入方式，挑你最顺手的：\n\n**💬 直接贴文案**\n> 帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了……\n\n**📎 上传文件**\n> 支持 TXT、DOC、DOCX 文件，直接上传自动读取检测\n\n**🖼️ 上传图片**\n> 上传笔记截图/海报，自动提取图中文字进行检测（仅提取文字，不分析图片内容）\n\n**🌐 粘贴链接**\n> 帮我检测这个网页：https://example.com/article\n\n**注意**：平台固定为小红书，无需指定。PDF 不支持，需转为图片或文本文件后上传。\n\n## 谁适合用\n\n- 📕 **小红书创作者** —— 种草笔记发布前自查，排除极限词、禁宣用语。如：*\"帮我看下这段笔记有没有违禁词\"*\n- 🏷️ **品牌/电商运营** —— 活动海报、商品详情页文案批量扫雷。如：*\"检查这个文档有没有小红书敏感词\"*\n- 💰 **投放/营销** —— 多条卖点话术快速过筛。如：*\"这几段种草文案帮我查一下\"*\n- 📊 **增长/内容审核** —— 落地页、H5 页面纯文本抽查。如：*\"检测这个网页内容有没有违规\"*\n\n## 使用须知\n\n- **内容长度**：建议单次 ≤ 3000 字，效果最佳；超过 3000 字会询问你是否分批；超过 10000 字暂不支持\n- **支持格式**：纯文本、TXT、DOC、DOCX、图片（提取文字）、网页链接\n- **暂不支持**：PDF（请转为图片或文本文件）\n- **数据隐私**：文案将通过加密连接发送至对接检测服务进行匹配，不在本地存储。如不希望外传，请提前告知\n- **英文内容友好**：内置英文误匹配过滤，不会把正常英文单词中的片段误判为违禁词\n- **网络容错**：内置自动重试机制，偶尔网络波动无需手动重试\n\n---\n\n<!-- 以下为 Agent 执行指令，用户可忽略 -->\n\n> **完整执行规程**：调用脚本、格式化输出前，**必须先读取并严格遵循** [`references/core_workflow.md`](references/core_workflow.md) **全文**。\n\n### 触发条件\n\n满足以下任一即激活本 Skill：\n- 用户提到「小红书违禁词」「笔记敏感词」「小红书审核」「限流词」「种草文案合规」\n- 用户要求检测小红书笔记、种草文案、推广话术等内容安全性\n- 用户上传文件/图片/链接并提到小红书相关的检测需求\n\n### 执行铁律\n\n1. **禁止编造结果** —— 仅以脚本返回 JSON 为准，不得臆造违禁词或替换建议\n2. **禁止输出原始 JSON** —— 必须解析后填入输出模板\n3. **禁止多余寒暄** —— 仅输出四个板块（🔍检测结果、💡修改建议、✏️优化文案、🔗还想查其他平台？），无开场白/结束语\n4. **分批/字数超限必须暂停** —— 发出提示后立即停止，等待用户明确回复 1/2/3 后再继续\n5. **图片仅限文字** —— 禁止获取图片的视觉风格、布局、色彩、人物等任何非文字信息\n6. **不生成文件** —— 四板块输出完成后即任务结束，不生成 HTML 页面和文件包\n\n### 执行流程\n\n完整步骤、话术模板与切割规则详见 [`references/core_workflow.md`](references/core_workflow.md)，速览如下：\n\n1. **识别输入类型** → 文本/文件(TXT/DOC/DOCX)/网页/图片，分别处理\n2. **字数判断** → ≤3000 直接检测；3001~10000 暂停询问（1=单次/2=分批/3=取消）；>10000 中断\n3. **调用脚本** → `python {skill_dir}/scripts/check_sensitive_words.py --content=\"...\"` 或 `--file` 或 `--url`\n4. **模板输出** → 按核心工作流四板块模板排版，违禁词用 `<u>**违禁词**</u>` 标记\n\n#### 命令速查\n\n| 输入形态 | 助手动作 |\n|---|---|\n| 纯文本 | 计算字数 → 字数闸门 → `--content=\"...\"` → 四板块输出 |\n| 上传 TXT/DOC/DOCX | `--file=path --extract-only` 查字数 → 按规则检测 → 四板块输出 |\n| 上传图片 | 仅提取图中文字 → 计算字数 → `--content=\"提取文字\"` → 四板块输出 |\n| 粘贴 `https://...` | `--url=... --extract-only` 查字数 → 按规则检测 → 四板块输出 |\n| 超长文案 | 发出询问语，**收到 1/2/3 后再继续** |\n\n`--content`、`--file`、`--url` 三者互斥。平台已硬编码为小红书。\n\n#### 异常处理\n\n| 异常场景 | 用户话术 |\n|---|---|\n| 文件/网页提取失败 | 「内容提取失败，请检查文件格式或网址是否可访问」 |\n| PDF 文件 | 「不支持 PDF 文件，请转为图片或文本文件后重新上传」 |\n| API 超时或网络异常 | 「检测服务暂时不可用，已自动重试仍失败，请稍后重试」 |\n| API 返回业务错误（code≠2000） | 「检测服务返回异常，请稍后重试」 |\n| 依赖缺失（python-docx/playwright 等） | 提示用户安装对应依赖后重试 |\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1779092298439\n}\n\nFile v1.0.3:references/core_workflow.md\n\n# 小红书违禁词查询 · 核心工作流\r\n\r\n本文档包含本 Skill 的完整执行规范：**任务目标、前置准备、操作步骤、输出模板、格式铁律、示例、脚本说明与注意事项**。处理违禁词检测请求时必须全文遵循，不得删减或改写约束含义。\r\n\r\n## 数据源说明\r\n\r\n本 Skill 的违禁词匹配基于**站长之家官方违禁词库**，通过独立后端 API 完成检测。执行脚本时，会将待检测内容通过 HTTPS POST 发往对接服务端（JSON），**不在本地计算词库**。\r\n\r\n| 项目 | 说明 |\r\n|---|---|\r\n| **数据来源** | 站长之家官方违禁词库 |\r\n| **默认 API** | `https://onetotenvip.com/story/cozeSkill/sensitiveWordSearch` |\r\n| **请求体字段** | `content`（待检测文案）、`platform`（固定为\"小红书\"）、`source`（来源标识） |\r\n| **替代部署** | 可设置环境变量 `XHS_SENSITIVE_WORD_API_URL` 为自建 HTTPS 接口 |\r\n\r\n**对话指引**：首次为用户检测前，应用一两句话说明「文案将通过加密连接发送至检测服务」；若用户拒绝外传数据，则不应调用检测脚本。\r\n\r\n## 任务目标\r\n\r\n- 本 Skill 用于:检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词用加粗下划线标记显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含:支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件:用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n- **输出形式**：结果直接以 Markdown 输出，不生成 HTML 页面和文件包\r\n\r\n## 前置准备\r\n\r\n- 依赖说明:脚本依赖python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行`playwright install chromium`安装浏览器）\r\n- 非标准文件/文件夹准备:无\r\n\r\n## 操作步骤\r\n\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **图片文件**：智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再用 --content 传入；若提取文字超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按3000字符分批检测全部内容，用户回复\"3\"则结束任务\r\n   - **PDF文件**：不支持，提醒用户\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n   - --content、--file、--url 三者互斥，每次调用仅传一个\r\n   - 平台已硬编码为小红书，无需也无法指定其他平台\r\n2. 解析脚本返回的JSON，**严格按下方输出模板呈现结果，禁止偏离**；分批检测时每批均输出四板块结果\r\n3. 输出完成后任务结束，**不生成 HTML 文件和文件包**\r\n\r\n---\r\n\r\n## 输出模板（必须严格照此输出，禁止增减任何板块）\r\n\r\n以下四个板块为完整输出，必须同时出现、顺序固定、标题加粗。占位符用【】标注，替换为实际值。\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：【word_count】个\r\n- **违禁词类型**：【prohibited_words_type】\r\n\r\n📚 **违禁文案：**\r\n【原文中违禁词用加粗下划线标记，格式为 `<u>**违禁词**</u>`，单独成段展示】\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词      | 替换词      | 更换理由      |\r\n| ----------- | ----------- | ------------- |\r\n| 【违禁词1】 | 【替换词1】 | 【更换理由1】 |\r\n| 【违禁词2】 | 【替换词2】 | 【更换理由2】 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <u>**加粗下划线**</u>文案表示已替换的文案\r\n\r\n【仅将违禁词替换为对应的安全替换词，替换时必须确保替换词与前后文语境通顺、语法正确、语义自然，如需微调前后助词/连接词以保证通顺则一并调整；所有替换词及微调处用 `<u>**替换词**</u>` 标记；不改变原文语气、排版、用词风格，不添加emoji，不重写文案；该板块不使用代码块包裹，直接输出 Markdown 文本】\r\n\r\n🔗 **还想查其他平台？**\r\n\r\n文案要在多个平台分发？这几个违禁词检测技能也能帮到你👇\r\n\r\n- 🌐 [多平台违禁词检测](https://skillhub.cn/skills/prohibited-word-query) — 公众号+小红书+抖音三大平台违禁词一站查完，不用来回切换，省时省力\r\n- 🎵 [抖音违禁词检测](https://skillhub.cn/skills/dy-prohibited-word) — 专攻抖音审核规则，文案/视频脚本/评论全覆盖，让你少踩坑多上热门\r\n- 📰 [公众号违禁词检测](https://skillhub.cn/skills/gzh-prohibited-word) — 贴合公众号审核标准，推文/标题/摘要都能检，发推前过一遍更安心\r\n\r\n---\r\n\r\n## 输出格式铁律\r\n\r\n1. **检测结果输出时仅输出上述四个板块**，禁止在该结果中添加开场白、结束语、补充说明、额外标题等任何其他内容；但检测完成并输出结果后，智能体可正常回复用户的后续提问\r\n2. 四个板块标题必须加粗，emoji在加粗标记外：🔍 **违禁词检测结果**、💡 **修改建议**、✏️ **建议优化文案**、🔗 **还想查其他平台？**\r\n3. **✏️建议优化文案**必须确保替换词与前后文语境通顺，整句话语法正确、语义自然，禁止机械替换单词导致语病（如\"回神秘公寓\"→\"回神秘居所\"而非\"回神秘公寓\"）；如需微调前后助词/连接词以保证通顺则一并调整并用加粗下划线标记；不改变原文语气/排版/用词风格，禁止添加emoji，禁止重写文案；所有替换词及微调处必须用 `<u>**替换词**</u>` 标记显示；该板块不使用代码块包裹，直接输出 Markdown 文本\r\n4. 四板块输出完成后即任务结束，**不生成 HTML 文件和文件包**\r\n5. 脚本返回JSON后，智能体必须解析并填入模板，禁止直接输出原始JSON\r\n6. 未检测到违禁词（word_count=0）时：仅输出\"**🔍 违禁词检测结果**\"板块，内容为\"未检测到违禁词，文案内容合规✅\"，不输出后三个板块\r\n\r\n---\r\n\r\n## 完整输出示例\r\n\r\n用户输入：\"这款美白神器真的太有效了，用了三天就白了一个度\"\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：2个\r\n- **违禁词类型**：禁用词\r\n\r\n📚 **违禁文案：**\r\n这款美白神器真的太<u>**有效**</u>了，用了三天就<u>**白了一个度**</u>\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词     | 替换词         | 更换理由                                             |\r\n| ---------- | -------------- | ---------------------------------------------------- |\r\n| 有效       | 用着感觉不错   | \"有效\"属禁用词，改为描述使用感受的口语化表达         |\r\n| 白了一个度 | 肤色提亮了不少 | \"白了一个度\"暗示美白功效，改为描述视觉感受的间接表达 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <u>**加粗下划线**</u>文案表示已替换的文案\r\n\r\n这款美白神器真的太<u>**用着感觉不错**</u>了，用了三天就<u>**肤色提亮了不少**</u>\r\n\r\n🔗 **还想查其他平台？**\r\n\r\n文案要在多个平台分发？这几个违禁词检测技能也能帮到你👇\r\n\r\n- 🌐 [多平台违禁词检测](https://skillhub.cn/skills/prohibited-word-query) — 公众号+小红书+抖音三大平台违禁词一站查完，不用来回切换，省时省力\r\n- 🎵 [抖音违禁词检测](https://skillhub.cn/skills/dy-prohibited-word) — 专攻抖音审核规则，文案/视频脚本/评论全覆盖，让你少踩坑多上热门\r\n- 📰 [公众号违禁词检测](https://skillhub.cn/skills/gzh-prohibited-word) — 贴合公众号审核标准，推文/标题/摘要都能检，发推前过一遍更安心\r\n\r\n（四板块输出完成后即任务结束，不生成 HTML 文件和文件包）\r\n\r\n---\r\n\r\n## 资源索引\r\n\r\n- 脚本:见 [scripts/check_sensitive_words.py](../scripts/check_sensitive_words.py)（用途与参数:一站式小红书违禁词检测，支持三种输入方式——`--content` 直接传入文案文本，`--file` 传入 TXT/DOC/DOCX 等文本类型文件路径自动提取，`--url` 传入网页地址自动提取（优先 Playwright 无头浏览器渲染 JS 动态页面，不可用时回退标准库 urllib 拉取静态 HTML）；`--extract-only` 仅提取文本不检测，返回 content 和 length；平台已硬编码为小红书）\r\n\r\n## 注意事项\r\n\r\n- 文案内容上限为3000字符；**所有输入类型（文本/文件/网页/图片）超过3000字符且不超过10000字符时均必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按自然断句处切割分批检测（每批不超过3000字符），分批检测完成后必须汇总所有批次的替换结果输出完整优化文案不可遗漏，用户回复\"3\"则结束任务；**超过10000字符时直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n- 网络请求自动重试：遇到5xx、超时、连接重置等场景最多重试2次，智能体无需手动重试\r\n- 脚本已内置英文误匹配过滤：API会将英文单词内部子串误标为违禁词（如\"Glasswing\"中的\"ass\"），脚本自动识别并过滤此类误匹配，无需智能体额外处理\r\n- 违禁词用加粗下划线标记（格式 `<u>**违禁词**</u>`）；优化文案中替换词用加粗下划线标记（格式 `<u>**替换词**</u>`）\r\n- \"✏️建议优化文案\"仅替换违禁词，替换时必须确保与前后文语境通顺、语法正确，如需微调前后助词/连接词以保证通顺则一并调整并用加粗下划线标记；禁止改变语气/排版/添加emoji/重写文案\r\n- 四板块输出完成后即任务结束，**不生成 HTML 文件和文件包**，结果直接以 Markdown 输出\r\n- 图片文件由智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再以 --content 传入脚本检测\r\n- 不支持PDF文件，若用户上传PDF需提醒\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n- 检测完成并输出结果后，智能体可正常回复用户的后续提问（如调整替换词、重新检测、解释违禁规则等），不应因铁律约束而拒绝后续对话\n\nArchive v1.0.2: 4 files, 13498 bytes\n\nFiles: references/core_workflow.md (15547b), scripts/check_sensitive_words.py (13579b), SKILL.md (7683b), _meta.json (138b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: xhs-prohibited-word\ndescription: 当用户需要查询小红书平台违禁词、检查笔记或推广文案是否含敏感词、限流词，或希望获得标红结果、安全替换词与「仅替换违禁词后的优化文案」时使用；能力摘要：文本 / 文件 / 网页多路输入（图片需先 OCR 成文本），脚本检测与固定三板块输出，并按规范写入可下载的纯文本优化文案文件。\nversion: 1.0.0\ntags:\n  - xiaohongshu\n  - compliance\n  - sensitive-words\n  - content-safety\ndependency:\n  python:\n    - python-docx==1.1.0\n    - beautifulsoup4==4.12.3\n    - playwright==1.58.0\n  system:\n    - playwright install chromium\n---\n\n# 小红书违禁词检测\n\n需要执行完整流程（字数分界、分批询问、输出模板、文件写入与卡片发送等）时，**必须先读取并严格遵守** [references/core_workflow.md](references/core_workflow.md)；本页为提纲与入口说明，**不可替代**该文档中的全部约束。\n\n## 简介\n\n面向在小红书发布种草笔记、活动海报、商品详情与私域话术的**创作者、品牌运营与营销同学**，在投稿前快速发现平台侧敏感/违禁表述，并拿到可执行的改稿建议。\n\n通过本 Skill，你可以：\n\n- **定向审核**：针对小红书规则做违禁词与敏感表达检测，区别于泛化的「广告法」套话\n- **多源输入**：直接粘贴文案、上传 TXT/DOC/DOCX、给网页链接；图片需由对话侧先提取文字再送检\n- **可交付改稿**：除标红与替换表格外，按规范输出建议优化文案，并生成可下载的纯文本文件\n\n运行依赖见 frontmatter 中的 `dependency`；具体脚本参数、输出铁律与异常处理以 [references/core_workflow.md](references/core_workflow.md) 为准。\n\n## 功能特性\n\n### 核心功能\n\n- **多路送检**：`--content` 直传文案、`--file` 读本地文本类文件、`--url` 拉取网页正文（Playwright 优先，失败回退 urllib 静态 HTML）\n- **篇幅控制**：脚本单次检测上限 **3000 字符**；超长内容须按核心文档暂停询问或分批，**>10000 字符**按文档直接中止检测流程\n- **结构化结果**：违禁词数量与类型、标红 HTML、逐词替换建议表、建议优化文案（富文本规则见核心文档）\n- **交付物**：检出违禁词时须写入 `./小红书_优化文案_{随机6位数字}.txt` 并以卡片发送（详见核心文档，含分批汇总要求）\n\n### 特色亮点\n\n- **英文误匹配过滤**：脚本侧对已知的英文子串误判做过滤，减轻「单词内含敏感片段」类噪声（详见核心文档说明）\n- **网络容错**：脚本对 5xx、超时等具备自动重试（次数见核心文档），主 Agent 无需重复手动重试请求\n\n## 使用指南\n\n### 执行前（必读）\n\n**加载核心工作流**\n\n打开 [references/core_workflow.md](references/core_workflow.md)，对其中的任务目标、操作步骤、输出模板、格式铁律与注意事项**全文生效**，不得以「只读过 SKILL.md」为由省略分批追问、三板块格式或文件卡片发送。\n\n### 基础使用（3 步）\n\n#### 第 1 步：识别输入类型并提取字数\n\n判断用户给的是纯文本、文件路径、URL 还是图片。\n文件 / URL 先用 `--extract-only` 取正文与 `length`（命令见下表）；图片先用对话工具提取文字，再按字数规则决定是否追问分批。**PDF 不支持**，引导用户转为图片或文本。\n\n#### 第 2 步：按字数规则调用脚本\n\n- ≤3000 字符：直接检测。\n- 3000～10000：**必须先按核心文档原文暂停询问**，根据用户选择单次截断或分批（每批 ≤3000，自然断句）。\n- \\>10000：**按核心文档提示并中断**，不执行检测。\n\n#### 第 3 步：解析 JSON 并按模板输出\n\n严格使用核心文档中的**三板块模板**呈现；`word_count=0` 时仅输出第一板块且不写文件。有违禁词时完成优化文案文件写入与卡片发送。\n\n### 对话示例\n\n> **用户**：帮我看下这段笔记有没有违禁词：「这款美白神器真的太有效了……」\n> **助手**：已统计字数（≤3000），调用 `check_sensitive_words.py --content=\"...\"`；随后仅输出三板块结果，并在有需要时写入 txt 并以卡片发送。\n\n> **用户**：这是我的稿子文件 `/path/note.docx`，检查一下。\n> **助手**：先 `--file=... --extract-only` 查看 length，再按核心文档决定是直接检测还是暂停询问分批。\n\n### 常用命令速查\n\n| 命令示例                                                                           | 功能                                                       |\n| ---------------------------------------------------------------------------------- | ---------------------------------------------------------- |\n| `python scripts/check_sensitive_words.py --content=\"文案\"`                         | 直接检测（单次 ≤3000 字符由脚本侧校验）                    |\n| `python scripts/check_sensitive_words.py --file=/path/a.txt --extract-only`        | 仅从文件提取全文与字数                                     |\n| `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` | 仅从网页提取正文与字数                                     |\n| `python scripts/check_sensitive_words.py --file=/path/a.docx`                      | 从文件读入并检测（通常建议仍先 extract-only 再走字数流程） |\n\n`--content`、`--file`、`--url` **三者互斥**；平台固定为小红书，无需也不支持切换平台。更多说明见核心文档「资源索引」。\n\n## 使用场景\n\n| 场景             | 角色        | 需求描述                                 | 使用方式                                                                   |\n| ---------------- | ----------- | ---------------------------------------- | -------------------------------------------------------------------------- |\n| 笔记发布前自检   | 创作者      | 担心文案触发审核或限流，需要具体词级提示 | 粘贴正文或上传 DOCX；按字数规则调用脚本；输出标红与替换表                  |\n| 营销物料合规     | 品牌运营    | 活动页、海报字多且来源杂，需统一过一遍   | 文件或 URL 提取 → 字数判断 → 分批或单次检测；汇总优化文案文件              |\n| 投放脚本批量改稿 | 效果投放    | 多条卖点话术需快速扫雷并给可替换说法     | 分批 `--content`；每批三板块；最终合并一份 txt 随卡片下发                  |\n| 网页落地页抽查   | 增长 / 运营 | 需检查线上 H5/文章纯文本是否含敏感表述   | `--url --extract-only` 再检测；动态页依赖 Playwright，失败则静态 HTML 回退 |\n\n## 注意事项与边界\n\n- **结果来源**：检出结论以脚本返回 JSON 为准；脚本报错或网络失败时，向用户说明原因并**禁止编造**违禁词列表或替换词。\n- **合规与免责**：输出中的数据说明语须按核心文档保留；本工具为辅助参考，不替代法务或平台最终判定。\n- **隐私**：不要在无关场合复述用户全文；按平台要求最小化展示必要片段。\n- **能力边界**：不支持 PDF；图片必经 OCR；网页极端反爬或脚本环境缺依赖时，提取可能失败——应如实告知并建议换输入方式。\n- **正文约束**：所有字数分界、输出铁律、文件命名与「必须发送文件卡片」等细节，一律以 [references/core_workflow.md](references/core_workflow.md) 为最终依据。\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1778315759090\n}\n\nFile v1.0.2:references/core_workflow.md\n\n# 小红书违禁词查询 · 核心工作流\r\n\r\n本文档包含本 Skill 的完整执行规范：**任务目标、前置准备、操作步骤、输出模板、格式铁律、示例、脚本说明与注意事项**。处理违禁词检测请求时必须全文遵循，不得删减或改写约束含义。\r\n\r\n## 任务目标\r\n\r\n- 本 Skill 用于:检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词标红显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含:支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件:用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n\r\n## 前置准备\r\n\r\n- 依赖说明:脚本依赖python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行`playwright install chromium`安装浏览器）\r\n- 非标准文件/文件夹准备:无\r\n\r\n## 操作步骤\r\n\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **图片文件**：智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再用 --content 传入；若提取文字超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按3000字符分批检测全部内容，用户回复\"3\"则结束任务\r\n   - **PDF文件**：不支持，提醒用户\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n   - --content、--file、--url 三者互斥，每次调用仅传一个\r\n   - 平台已硬编码为小红书，无需也无法指定其他平台\r\n2. 解析脚本返回的JSON，**严格按下方输出模板呈现结果，禁止偏离**；分批检测时每批均输出三板块结果\r\n3. **【必须执行，不可跳过】** 将纯文本优化文案（移除所有HTML标记）写入文件 `./小红书_优化文案_{随机6位数字}.txt`，写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n\r\n---\r\n\r\n## 输出模板（必须严格照此输出，禁止增减任何板块）\r\n\r\n以下三个板块为完整输出，必须同时出现、顺序固定、标题加粗。占位符用【】标注，替换为实际值。\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：【word_count】个\r\n- **违禁词类型**：【prohibited_words_type】\r\n\r\n📚 **违禁文案：**\r\n【html_content，原文中违禁词用<span style=\"color:red\">标红，单独成段展示确保渲染生效】\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词      | 替换词      | 更换理由      |\r\n| ----------- | ----------- | ------------- |\r\n| 【违禁词1】 | 【替换词1】 | 【更换理由1】 |\r\n| 【违禁词2】 | 【替换词2】 | 【更换理由2】 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <span style=\"color:blue\">蓝色文案</span>表示已替换的文案\r\n\r\n【仅将违禁词替换为对应的安全替换词，替换时必须确保替换词与前后文语境通顺、语法正确、语义自然，如需微调前后助词/连接词以保证通顺则一并调整；所有替换词及微调处用\\<span style=\"color:blue\"\\>标蓝；不改变原文语气、排版、用词风格，不添加emoji，不重写文案；该板块不使用代码块包裹，直接输出富文本】\r\n\r\n---\r\n\r\n## 输出格式铁律\r\n\r\n1. **检测结果输出时仅输出上述三个板块**，禁止在该结果中添加开场白、结束语、补充说明、额外标题等任何其他内容；但检测完成并输出结果后，智能体可正常回复用户的后续提问\r\n2. 三个板块标题必须加粗，emoji在加粗标记外：🔍 **违禁词检测结果**、💡 **修改建议**、✏️ **建议优化文案**\r\n3. **✏️建议优化文案**必须确保替换词与前后文语境通顺，整句话语法正确、语义自然，禁止机械替换单词导致语病（如\"回神秘公寓\"→\"回神秘居所\"而非\"回神秘公寓\"）；如需微调前后助词/连接词以保证通顺则一并调整并用蓝色标记；不改变原文语气/排版/用词风格，禁止添加emoji，禁止重写文案；所有替换词及微调处必须用\\<span style=\"color:blue\"\\>标蓝显示；该板块不使用代码块包裹，直接输出富文本\r\n4. **【不可跳过】三板块输出完成后，智能体必须将纯文本优化文案写入文件** `./小红书_优化文案_{随机6位数字}.txt`，文件内容与\"✏️建议优化文案\"完全一致但移除所有HTML标记，仅保留纯文本。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果按原文顺序汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n5. 脚本返回JSON后，智能体必须解析并填入模板，禁止直接输出原始JSON\r\n6. 未检测到违禁词（word_count=0）时：仅输出\"**🔍 违禁词检测结果**\"板块，内容为\"未检测到违禁词，文案内容合规✅\"，不输出后两个板块，不输出文件\r\n\r\n---\r\n\r\n## 完整输出示例\r\n\r\n用户输入：\"这款美白神器真的太有效了，用了三天就白了一个度\"\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：2个\r\n- **违禁词类型**：禁用词\r\n\r\n📚 **违禁文案：**\r\n这款美白神器真的太<span style=\"color:red\">有效</span>了，用了三天就<span style=\"color:red\">白了一个度</span>\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词     | 替换词         | 更换理由                                             |\r\n| ---------- | -------------- | ---------------------------------------------------- |\r\n| 有效       | 用着感觉不错   | \"有效\"属禁用词，改为描述使用感受的口语化表达         |\r\n| 白了一个度 | 肤色提亮了不少 | \"白了一个度\"暗示美白功效，改为描述视觉感受的间接表达 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <span style=\"color:blue\">蓝色文案</span>表示已替换的文案\r\n\r\n这款美白神器真的太<span style=\"color:blue\">用着感觉不错</span>了，用了三天就<span style=\"color:blue\">肤色提亮了不少</span>\r\n\r\n（三板块输出完成后，智能体必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，内容与上方一致但无HTML标记。文件必须实际写入磁盘，写入后**必须将文件以卡片形式发送给用户**，禁止仅告知路径而不发送文件卡片）\r\n\r\n---\r\n\r\n## 资源索引\r\n\r\n- 脚本:见 [scripts/check_sensitive_words.py](../scripts/check_sensitive_words.py)（用途与参数:一站式小红书违禁词检测，支持三种输入方式——`--content` 直接传入文案文本，`--file` 传入 TXT/DOC/DOCX 等文本类型文件路径自动提取，`--url` 传入网页地址自动提取（优先 Playwright 无头浏览器渲染 JS 动态页面，不可用时回退标准库 urllib 拉取静态 HTML）；`--extract-only` 仅提取文本不检测，返回 content 和 length；平台已硬编码为小红书）\r\n\r\n## 注意事项\r\n\r\n- 文案内容上限为3000字符；**所有输入类型（文本/文件/网页/图片）超过3000字符且不超过10000字符时均必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按自然断句处切割分批检测（每批不超过3000字符），分批检测完成后必须汇总所有批次的替换结果输出一份完整的优化文案文件不可遗漏，用户回复\"3\"则结束任务；**超过10000字符时直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n- 网络请求自动重试：遇到5xx、超时、连接重置等场景最多重试2次，智能体无需手动重试\r\n- 脚本已内置英文误匹配过滤：API会将英文单词内部子串误标为违禁词（如\"Glasswing\"中的\"ass\"），脚本自动识别并过滤此类误匹配，无需智能体额外处理\r\n- 违禁词用HTML <span style=\"color:red\"> 标记（渲染红色）；优化文案中替换词用 <span style=\"color:blue\"> 标记（渲染蓝色）\r\n- \"✏️建议优化文案\"仅替换违禁词，替换时必须确保与前后文语境通顺、语法正确，如需微调前后助词/连接词以保证通顺则一并调整并用蓝色标记；禁止改变语气/排版/添加emoji/重写文案\r\n- **【不可跳过】**三板块输出完成后必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，其中随机数由智能体每次生成（如用当前时间戳后6位或随机6位数字），确保连续对话中不同次检测的文件名唯一、内容不被覆盖。文件内容与\"✏️建议优化文案\"一致但移除所有HTML标记。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次完成后必须将全部替换结果按原文顺序汇总写入一份完整文件并发送文件卡片，不可遗漏任何批次**\r\n- 图片文件由智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再以 --content 传入脚本检测\r\n- 不支持PDF文件，若用户上传PDF需提醒\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n- 检测完成并输出结果、写入文件后，智能体可正常回复用户的后续提问（如调整替换词、重新检测、解释违禁规则等），不应因铁律约束而拒绝后续对话\n\nArchive v1.0.1: 4 files, 13501 bytes\n\nFiles: references/core_workflow.md (15547b), scripts/check_sensitive_words.py (13579b), SKILL.md (7694b), _meta.json (138b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: xhs-prohibited-word\ndescription:\n  当用户需要查询小红书平台违禁词、检查笔记或推广文案是否含敏感词、限流词，\n  或希望获得标红结果、安全替换词与「仅替换违禁词后的优化文案」时使用；\n  能力摘要：文本 / 文件 / 网页多路输入（图片需先 OCR 成文本），脚本检测与固定三板块输出，\n  并按规范写入可下载的纯文本优化文案文件。\nversion: 1.0.0\ntags:\n  - xiaohongshu\n  - compliance\n  - sensitive-words\n  - content-safety\ndependency:\n  python:\n    - python-docx==1.1.0\n    - beautifulsoup4==4.12.3\n    - playwright==1.58.0\n  system:\n    - playwright install chromium\n---\n\n# 小红书违禁词查询\n\n需要执行完整流程（字数分界、分批询问、输出模板、文件写入与卡片发送等）时，**必须先读取并严格遵守** [references/core_workflow.md](references/core_workflow.md)；本页为提纲与入口说明，**不可替代**该文档中的全部约束。\n\n## 简介\n\n面向在小红书发布种草笔记、活动海报、商品详情与私域话术的**创作者、品牌运营与营销同学**，在投稿前快速发现平台侧敏感/违禁表述，并拿到可执行的改稿建议。\n\n通过本 Skill，你可以：\n\n- **定向审核**：针对小红书规则做违禁词与敏感表达检测，区别于泛化的「广告法」套话\n- **多源输入**：直接粘贴文案、上传 TXT/DOC/DOCX、给网页链接；图片需由对话侧先提取文字再送检\n- **可交付改稿**：除标红与替换表格外，按规范输出建议优化文案，并生成可下载的纯文本文件\n\n运行依赖见 frontmatter 中的 `dependency`；具体脚本参数、输出铁律与异常处理以 [references/core_workflow.md](references/core_workflow.md) 为准。\n\n## 功能特性\n\n### 核心功能\n\n- **多路送检**：`--content` 直传文案、`--file` 读本地文本类文件、`--url` 拉取网页正文（Playwright 优先，失败回退 urllib 静态 HTML）\n- **篇幅控制**：脚本单次检测上限 **3000 字符**；超长内容须按核心文档暂停询问或分批，**>10000 字符**按文档直接中止检测流程\n- **结构化结果**：违禁词数量与类型、标红 HTML、逐词替换建议表、建议优化文案（富文本规则见核心文档）\n- **交付物**：检出违禁词时须写入 `./小红书_优化文案_{随机6位数字}.txt` 并以卡片发送（详见核心文档，含分批汇总要求）\n\n### 特色亮点\n\n- **英文误匹配过滤**：脚本侧对已知的英文子串误判做过滤，减轻「单词内含敏感片段」类噪声（详见核心文档说明）\n- **网络容错**：脚本对 5xx、超时等具备自动重试（次数见核心文档），主 Agent 无需重复手动重试请求\n\n## 使用指南\n\n### 执行前（必读）\n\n**加载核心工作流**\n\n打开 [references/core_workflow.md](references/core_workflow.md)，对其中的任务目标、操作步骤、输出模板、格式铁律与注意事项**全文生效**，不得以「只读过 SKILL.md」为由省略分批追问、三板块格式或文件卡片发送。\n\n### 基础使用（3 步）\n\n#### 第 1 步：识别输入类型并提取字数\n\n判断用户给的是纯文本、文件路径、URL 还是图片。\n文件 / URL 先用 `--extract-only` 取正文与 `length`（命令见下表）；图片先用对话工具提取文字，再按字数规则决定是否追问分批。**PDF 不支持**，引导用户转为图片或文本。\n\n#### 第 2 步：按字数规则调用脚本\n\n- ≤3000 字符：直接检测。\n- 3000～10000：**必须先按核心文档原文暂停询问**，根据用户选择单次截断或分批（每批 ≤3000，自然断句）。\n- \\>10000：**按核心文档提示并中断**，不执行检测。\n\n#### 第 3 步：解析 JSON 并按模板输出\n\n严格使用核心文档中的**三板块模板**呈现；`word_count=0` 时仅输出第一板块且不写文件。有违禁词时完成优化文案文件写入与卡片发送。\n\n### 对话示例\n\n> **用户**：帮我看下这段笔记有没有违禁词：「这款美白神器真的太有效了……」\n> **助手**：已统计字数（≤3000），调用 `check_sensitive_words.py --content=\"...\"`；随后仅输出三板块结果，并在有需要时写入 txt 并以卡片发送。\n\n> **用户**：这是我的稿子文件 `/path/note.docx`，检查一下。\n> **助手**：先 `--file=... --extract-only` 查看 length，再按核心文档决定是直接检测还是暂停询问分批。\n\n### 常用命令速查\n\n| 命令示例                                                                           | 功能                                                       |\n| ---------------------------------------------------------------------------------- | ---------------------------------------------------------- |\n| `python scripts/check_sensitive_words.py --content=\"文案\"`                         | 直接检测（单次 ≤3000 字符由脚本侧校验）                    |\n| `python scripts/check_sensitive_words.py --file=/path/a.txt --extract-only`        | 仅从文件提取全文与字数                                     |\n| `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` | 仅从网页提取正文与字数                                     |\n| `python scripts/check_sensitive_words.py --file=/path/a.docx`                      | 从文件读入并检测（通常建议仍先 extract-only 再走字数流程） |\n\n`--content`、`--file`、`--url` **三者互斥**；平台固定为小红书，无需也不支持切换平台。更多说明见核心文档「资源索引」。\n\n## 使用场景\n\n| 场景             | 角色        | 需求描述                                 | 使用方式                                                                   |\n| ---------------- | ----------- | ---------------------------------------- | -------------------------------------------------------------------------- |\n| 笔记发布前自检   | 创作者      | 担心文案触发审核或限流，需要具体词级提示 | 粘贴正文或上传 DOCX；按字数规则调用脚本；输出标红与替换表                  |\n| 营销物料合规     | 品牌运营    | 活动页、海报字多且来源杂，需统一过一遍   | 文件或 URL 提取 → 字数判断 → 分批或单次检测；汇总优化文案文件              |\n| 投放脚本批量改稿 | 效果投放    | 多条卖点话术需快速扫雷并给可替换说法     | 分批 `--content`；每批三板块；最终合并一份 txt 随卡片下发                  |\n| 网页落地页抽查   | 增长 / 运营 | 需检查线上 H5/文章纯文本是否含敏感表述   | `--url --extract-only` 再检测；动态页依赖 Playwright，失败则静态 HTML 回退 |\n\n## 注意事项与边界\n\n- **结果来源**：检出结论以脚本返回 JSON 为准；脚本报错或网络失败时，向用户说明原因并**禁止编造**违禁词列表或替换词。\n- **合规与免责**：输出中的数据说明语须按核心文档保留；本工具为辅助参考，不替代法务或平台最终判定。\n- **隐私**：不要在无关场合复述用户全文；按平台要求最小化展示必要片段。\n- **能力边界**：不支持 PDF；图片必经 OCR；网页极端反爬或脚本环境缺依赖时，提取可能失败——应如实告知并建议换输入方式。\n- **正文约束**：所有字数分界、输出铁律、文件命名与「必须发送文件卡片」等细节，一律以 [references/core_workflow.md](references/core_workflow.md) 为最终依据。\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1778310739136\n}\n\nFile v1.0.1:references/core_workflow.md\n\n# 小红书违禁词查询 · 核心工作流\r\n\r\n本文档包含本 Skill 的完整执行规范：**任务目标、前置准备、操作步骤、输出模板、格式铁律、示例、脚本说明与注意事项**。处理违禁词检测请求时必须全文遵循，不得删减或改写约束含义。\r\n\r\n## 任务目标\r\n\r\n- 本 Skill 用于:检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词标红显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含:支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件:用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n\r\n## 前置准备\r\n\r\n- 依赖说明:脚本依赖python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行`playwright install chromium`安装浏览器）\r\n- 非标准文件/文件夹准备:无\r\n\r\n## 操作步骤\r\n\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **图片文件**：智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再用 --content 传入；若提取文字超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按3000字符分批检测全部内容，用户回复\"3\"则结束任务\r\n   - **PDF文件**：不支持，提醒用户\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n   - --content、--file、--url 三者互斥，每次调用仅传一个\r\n   - 平台已硬编码为小红书，无需也无法指定其他平台\r\n2. 解析脚本返回的JSON，**严格按下方输出模板呈现结果，禁止偏离**；分批检测时每批均输出三板块结果\r\n3. **【必须执行，不可跳过】** 将纯文本优化文案（移除所有HTML标记）写入文件 `./小红书_优化文案_{随机6位数字}.txt`，写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n\r\n---\r\n\r\n## 输出模板（必须严格照此输出，禁止增减任何板块）\r\n\r\n以下三个板块为完整输出，必须同时出现、顺序固定、标题加粗。占位符用【】标注，替换为实际值。\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：【word_count】个\r\n- **违禁词类型**：【prohibited_words_type】\r\n\r\n📚 **违禁文案：**\r\n【html_content，原文中违禁词用<span style=\"color:red\">标红，单独成段展示确保渲染生效】\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词      | 替换词      | 更换理由      |\r\n| ----------- | ----------- | ------------- |\r\n| 【违禁词1】 | 【替换词1】 | 【更换理由1】 |\r\n| 【违禁词2】 | 【替换词2】 | 【更换理由2】 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <span style=\"color:blue\">蓝色文案</span>表示已替换的文案\r\n\r\n【仅将违禁词替换为对应的安全替换词，替换时必须确保替换词与前后文语境通顺、语法正确、语义自然，如需微调前后助词/连接词以保证通顺则一并调整；所有替换词及微调处用\\<span style=\"color:blue\"\\>标蓝；不改变原文语气、排版、用词风格，不添加emoji，不重写文案；该板块不使用代码块包裹，直接输出富文本】\r\n\r\n---\r\n\r\n## 输出格式铁律\r\n\r\n1. **检测结果输出时仅输出上述三个板块**，禁止在该结果中添加开场白、结束语、补充说明、额外标题等任何其他内容；但检测完成并输出结果后，智能体可正常回复用户的后续提问\r\n2. 三个板块标题必须加粗，emoji在加粗标记外：🔍 **违禁词检测结果**、💡 **修改建议**、✏️ **建议优化文案**\r\n3. **✏️建议优化文案**必须确保替换词与前后文语境通顺，整句话语法正确、语义自然，禁止机械替换单词导致语病（如\"回神秘公寓\"→\"回神秘居所\"而非\"回神秘公寓\"）；如需微调前后助词/连接词以保证通顺则一并调整并用蓝色标记；不改变原文语气/排版/用词风格，禁止添加emoji，禁止重写文案；所有替换词及微调处必须用\\<span style=\"color:blue\"\\>标蓝显示；该板块不使用代码块包裹，直接输出富文本\r\n4. **【不可跳过】三板块输出完成后，智能体必须将纯文本优化文案写入文件** `./小红书_优化文案_{随机6位数字}.txt`，文件内容与\"✏️建议优化文案\"完全一致但移除所有HTML标记，仅保留纯文本。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果按原文顺序汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n5. 脚本返回JSON后，智能体必须解析并填入模板，禁止直接输出原始JSON\r\n6. 未检测到违禁词（word_count=0）时：仅输出\"**🔍 违禁词检测结果**\"板块，内容为\"未检测到违禁词，文案内容合规✅\"，不输出后两个板块，不输出文件\r\n\r\n---\r\n\r\n## 完整输出示例\r\n\r\n用户输入：\"这款美白神器真的太有效了，用了三天就白了一个度\"\r\n\r\n🔍 **违禁词检测结果**\r\n\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：2个\r\n- **违禁词类型**：禁用词\r\n\r\n📚 **违禁文案：**\r\n这款美白神器真的太<span style=\"color:red\">有效</span>了，用了三天就<span style=\"color:red\">白了一个度</span>\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词     | 替换词         | 更换理由                                             |\r\n| ---------- | -------------- | ---------------------------------------------------- |\r\n| 有效       | 用着感觉不错   | \"有效\"属禁用词，改为描述使用感受的口语化表达         |\r\n| 白了一个度 | 肤色提亮了不少 | \"白了一个度\"暗示美白功效，改为描述视觉感受的间接表达 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <span style=\"color:blue\">蓝色文案</span>表示已替换的文案\r\n\r\n这款美白神器真的太<span style=\"color:blue\">用着感觉不错</span>了，用了三天就<span style=\"color:blue\">肤色提亮了不少</span>\r\n\r\n（三板块输出完成后，智能体必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，内容与上方一致但无HTML标记。文件必须实际写入磁盘，写入后**必须将文件以卡片形式发送给用户**，禁止仅告知路径而不发送文件卡片）\r\n\r\n---\r\n\r\n## 资源索引\r\n\r\n- 脚本:见 [scripts/check_sensitive_words.py](../scripts/check_sensitive_words.py)（用途与参数:一站式小红书违禁词检测，支持三种输入方式——`--content` 直接传入文案文本，`--file` 传入 TXT/DOC/DOCX 等文本类型文件路径自动提取，`--url` 传入网页地址自动提取（优先 Playwright 无头浏览器渲染 JS 动态页面，不可用时回退标准库 urllib 拉取静态 HTML）；`--extract-only` 仅提取文本不检测，返回 content 和 length；平台已硬编码为小红书）\r\n\r\n## 注意事项\r\n\r\n- 文案内容上限为3000字符；**所有输入类型（文本/文件/网页/图片）超过3000字符且不超过10000字符时均必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按自然断句处切割分批检测（每批不超过3000字符），分批检测完成后必须汇总所有批次的替换结果输出一份完整的优化文案文件不可遗漏，用户回复\"3\"则结束任务；**超过10000字符时直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n- 网络请求自动重试：遇到5xx、超时、连接重置等场景最多重试2次，智能体无需手动重试\r\n- 脚本已内置英文误匹配过滤：API会将英文单词内部子串误标为违禁词（如\"Glasswing\"中的\"ass\"），脚本自动识别并过滤此类误匹配，无需智能体额外处理\r\n- 违禁词用HTML <span style=\"color:red\"> 标记（渲染红色）；优化文案中替换词用 <span style=\"color:blue\"> 标记（渲染蓝色）\r\n- \"✏️建议优化文案\"仅替换违禁词，替换时必须确保与前后文语境通顺、语法正确，如需微调前后助词/连接词以保证通顺则一并调整并用蓝色标记；禁止改变语气/排版/添加emoji/重写文案\r\n- **【不可跳过】**三板块输出完成后必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，其中随机数由智能体每次生成（如用当前时间戳后6位或随机6位数字），确保连续对话中不同次检测的文件名唯一、内容不被覆盖。文件内容与\"✏️建议优化文案\"一致但移除所有HTML标记。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次完成后必须将全部替换结果按原文顺序汇总写入一份完整文件并发送文件卡片，不可遗漏任何批次**\r\n- 图片文件由智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再以 --content 传入脚本检测\r\n- 不支持PDF文件，若用户上传PDF需提醒\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n- 检测完成并输出结果、写入文件后，智能体可正常回复用户的后续提问（如调整替换词、重新检测、解释违禁规则等），不应因铁律约束而拒绝后续对话\n\nArchive v1.0.0: 4 files, 14678 bytes\n\nFiles: references/core_workflow.md (14641b), scripts/check_sensitive_words.py (16581b), SKILL.md (8431b), _meta.json (138b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: xhs-prohibited-word\ndescription: 小红书违禁词库，区别于通用广告法检测，覆盖平台特有的敏感词、限流词、隐形违规词，支持文本/文件/网页三种输入方式，10秒内输出违禁词标红+替换建议+优化文案，避开限流删风险。\nversion: 1.0.0\ntags:\n  - xiaohongshu\n  - compliance\n  - content-safety\ndependency:\n  python:\n    - python-docx==1.1.0\n    - beautifulsoup4==4.12.3\n    - playwright==1.58.0\n  system:\n    - playwright install chromium\n---\n\n# 小红书违禁词合规检测\n\n1. 小红书专属违禁词库：区别于通用广告法检测，词库针对小红书审核规则专项优化，覆盖平台特有的敏感词、限流词、隐形违规词\n\n2. 实时同步审核规则：小红书审核标准频繁调整，词库持续更新，确保与最新规则对齐，不会拿过时的词库糊弄你\n\n3. 智能语义过滤：自动识别英文误匹配，减少误判干扰，结果更精准\n\n4. 三种输入方式一站式检测：支持文本直接输入、文件上传（TXT/DOC/DOCX/图片）、网页URL检测，不需要多次切换工具\n\n5. 替换建议+优化文案输出：提供上下文适配的替换词，保持文案节奏和流畅度，不是简单删掉导致语句不通\n\n正式跑检测与输出前，须先打开并严格执行同目录 [references/core_workflow.md](references/core_workflow.md)（字数阈值、分批追问话术、三板块输出模板、优化稿落盘与文件卡片等均以该文件为唯一细则）。\n\n## 简介\n\n面向在小红书生态内产出图文、商品详情与营销物料的团队与个人，在发布前做一次**平台向**的违禁词扫描，降低删稿、限流与审核驳回带来的返工成本。\n\n通过本 Skill，你可以：\n\n- **定位风险用语**：在原文语境中标出疑似违禁片段，避免只看「词表」却忽略上下文。\n- **拿到可执行的改法**：每张表给出替换词与简要理由；正文级输出只做「必要的词级替换」，不整段改写语气。\n- **沉淀可投递版本**：除对话内富文本外，另生成去除 HTML 的纯文本优化稿文件，便于同步给设计、投放或法务留档。\n\n适用于品牌小红书运营、电商详情文案、MCN 审稿、独立创作者自查等角色。运行依赖 Python 环境与脚本所列包；网页抓取侧需本机已安装 Chromium（见 frontmatter `dependency`）。\n\n## 功能特性\n\n### 核心能力\n\n- **多形态输入**：直接粘贴正文；上传 TXT / DOC / DOCX；提供 URL 拉取页面正文；图片先 OCR 再送检（流程见核心工作流）。\n- **检测结果结构化输出**：平台固定为小红书；给出命中数量、类型汇总；违禁片段在原文中高亮标红。\n- **替换级改写**：表格列出「违禁词 → 替换词 → 理由」；优化正文仅替换命中部分并可做最小限度的连接词润色，保持原有口吻与版式意图。\n- **交付物闭环**：检出违禁词时，按规范写入 `./小红书_优化文案_{随机六位}.txt` 并以文件卡片交付用户。\n\n### 规则要点（与执行脚本一致）\n\n- 单次建议篇幅 **≤3000 字**；3001–10000 字须按核心工作流向用户确认「仅检前 3000 / 分批全检 / 取消」；**>10000 字**默认中止自动检测并提示用户自行拆分。\n- **`--content` / `--file` / `--url` 每次仅择一**；平台不可切换。\n- **不支持 PDF**：需用户转为图片或可复制文本后再检。\n\n## 使用指南\n\n### 基础路径\n\n#### 加载细则\n\n打开 [references/core_workflow.md](references/core_workflow.md)，按其中「操作步骤—输出模板—输出格式铁律—注意事项」逐项执行。**禁止用本 SKILL 的摘要代替该文件全文。**\n\n#### 第 1 步：确认输入形态\n\n判断用户给出的是纯文本、本地文本类文件、网页链接还是图片。缺文件路径、链接无效或图片无法识别文字时，说明缺口并请用户补齐；勿臆造正文。\n\n#### 第 2 步：提取与字数判定\n\n- 文本：先统计字符数，再决定是否直接调用脚本或进入分批询问。\n- 文件 / URL：先用 `--extract-only` 取全文与 `length`，再按阈值分支。\n- 图片：仅提取图中文字（不做画面描述），再等同文本流程处理字数。\n\n#### 第 3 步：调用检测脚本\n\n在工作区根目录执行（路径按用户实际文件替换）：\n\n```bash\npython scripts/check_sensitive_words.py --content=\"……\"\npython scripts/check_sensitive_words.py --file=/path/to/doc.docx\npython scripts/check_sensitive_words.py --url=https://example.com --extract-only\n```\n\n完整参数语义与互斥关系见下文「脚本与参数速查」。\n\n#### 第 4 步：解析 JSON 并按模板回复\n\n严格使用 `core_workflow.md` 中的三板块模板；`word_count=0` 时的精简输出规则亦以该文件为准。分批检测时，每批按模板输出，最终在一份汇总优化稿文件中合并全文顺序。\n\n### 对话示例\n\n> **用户**：帮我看下这段笔记有没有违禁词：「……」\n> **助手**：已按小红书规则送检；以下为检测结果 / 替换建议 / 建议优化文案（结构固定）。随后附上纯文本优化稿文件卡片。\n\n> **用户**：这个 Word 里的文案能检吗？（上传 `brief.docx`）\n> **助手**：先 `--extract-only` 抽取字数；若在 3001–10000 区间，会先发送标准分批询问话术，待你选择 1/2/3 后再继续。\n\n### 脚本与参数速查\n\n| 用法                   | 说明                                                        |\n| ---------------------- | ----------------------------------------------------------- |\n| `--content=\"...\"`      | 直接传入待检正文（与 `--file`、`--url` 互斥）               |\n| `--file=/path/to/file` | 从 TXT/DOC/DOCX 抽取正文再检                                |\n| `--url=https://…`      | 拉取网页正文再检；动态页优先 Playwright，失败则回退静态抓取 |\n| `--extract-only`       | 仅返回正文与 `length`，不触发违禁词接口；用于字数分支判断   |\n\n**失败或不宜继续时**：超过 10000 字、用户选取消、PDF 上传、或脚本/网络连续不可用——按 `core_workflow.md` 中的固定提示文案中止或降级，不得伪造检测结果或 JSON。\n\n## 使用场景\n\n| 场景           | 角色            | 需求描述                                 | 使用方式                                             |\n| -------------- | --------------- | ---------------------------------------- | ---------------------------------------------------- |\n| 发稿前风控     | 品牌/账号运营   | 笔记已形成初稿，需在发布前快速扫违禁表述 | 粘贴正文或上传 DOCX；按输出取替换表与优化稿文件      |\n| 电商详情与买点 | 电商文案        | 商品卖点密集，担心功效类措辞触线         | 文件或 URL 抽取全文；超长则走分批确认                |\n| 批量审稿       | MCN 审稿 / 主编 | 统一口径审核多篇口径相似的稿件           | 逐篇走脚本；汇总优化稿按批次合并规则执行             |\n| 竞品落地页扒稿 | 增长 / 市场     | 参考外链文案写法同时评估合规风险         | `--url` 抽取后检测；注意仅作合规参考，勿照搬侵权内容 |\n| 海报/截图文案  | 设计协作        | 图片内小字需 OCR 后检查                  | 先 OCR 再 `--content`；字数逻辑与正文相同            |\n\n## 注意事项与边界\n\n- **效力声明**：结果为接口与规则集的静态映射，仅供参考；是否违规以小红书当日审核与账号画像为准，不作为法律意见。\n- **隐私**：避免在公共日志中粘贴用户未同意外传的全文；长文本优先本地脚本处理。\n- **平台范围**：脚本内平台写死为小红书，不提供切换其他社区的对照检测。\n- **主 Agent 约束**：本 Skill 仅在主会话执行，避免子任务上下文残缺导致漏读 `core_workflow.md` 或漏发文件卡片。\n- **细则全文**：字数分段话术、三板块 HTML 规则、蓝色替换标记、`word_count=0` 特例、文件命名与卡片发送等，一律以 [references/core_workflow.md](references/core_workflow.md) 为准。\n\n## 资源索引\n\n- **检测脚本**：[scripts/check_sensitive_words.py](scripts/check_sensitive_words.py)\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1778298206562\n}\n\nFile v1.0.0:references/core_workflow.md\n\n# 小红书违禁词查询 · 核心工作流\r\n\r\n下文为 Skill 的完整执行规范；智能体须逐条落实，不得删减。\r\n\r\n## 任务目标\r\n- 本 Skill 用于:检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词标红显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含:支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件:用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n\r\n## 前置准备\r\n- 依赖说明:脚本依赖python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行`playwright install chromium`安装浏览器）\r\n- 非标准文件/文件夹准备:无\r\n\r\n## 操作步骤\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **图片文件**：智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再用 --content 传入；若提取文字超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按3000字符分批检测全部内容，用户回复\"3\"则结束任务\r\n   - **PDF文件**：不支持，提醒用户\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n   - --content、--file、--url 三者互斥，每次调用仅传一个\r\n   - 平台已硬编码为小红书，无需也无法指定其他平台\r\n2. 解析脚本返回的JSON，**严格按下方输出模板呈现结果，禁止偏离**；分批检测时每批均输出三板块结果\r\n3. **【必须执行，不可跳过】** 将纯文本优化文案（移除所有HTML标记）写入文件 `./小红书_优化文案_{随机6位数字}.txt`，写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n\r\n---\r\n\r\n## 输出模板（必须严格照此输出，禁止增减任何板块）\r\n\r\n以下三个板块为完整输出，必须同时出现、顺序固定、标题加粗。占位符用【】标注，替换为实际值。\r\n\r\n🔍 **违禁词检测结果**\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：【word_count】个\r\n- **违禁词类型**：【prohibited_words_type】\r\n\r\n📚 **违禁文案：**\r\n【html_content，原文中违禁词用<span style=\"color:red\">标红，单独成段展示确保渲染生效】\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词 | 替换词 | 更换理由 |\r\n|--------|--------|----------|\r\n| 【违禁词1】 | 【替换词1】 | 【更换理由1】 |\r\n| 【违禁词2】 | 【替换词2】 | 【更换理由2】 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <span style=\"color:blue\">蓝色文案</span>表示已替换的文案\r\n\r\n【仅将违禁词替换为对应的安全替换词，替换时必须确保替换词与前后文语境通顺、语法正确、语义自然，如需微调前后助词/连接词以保证通顺则一并调整；所有替换词及微调处用\\<span style=\"color:blue\"\\>标蓝；不改变原文语气、排版、用词风格，不添加emoji，不重写文案；该板块不使用代码块包裹，直接输出富文本】\r\n\r\n---\r\n\r\n## 输出格式铁律\r\n\r\n1. **检测结果输出时仅输出上述三个板块**，禁止在该结果中添加开场白、结束语、补充说明、额外标题等任何其他内容；但检测完成并输出结果后，智能体可正常回复用户的后续提问\r\n2. 三个板块标题必须加粗，emoji在加粗标记外：🔍 **违禁词检测结果**、💡 **修改建议**、✏️ **建议优化文案**\r\n3. **✏️建议优化文案**必须确保替换词与前后文语境通顺，整句话语法正确、语义自然，禁止机械替换单词导致语病（如\"回神秘公寓\"→\"回神秘居所\"而非\"回神秘公寓\"）；如需微调前后助词/连接词以保证通顺则一并调整并用蓝色标记；不改变原文语气/排版/用词风格，禁止添加emoji，禁止重写文案；所有替换词及微调处必须用\\<span style=\"color:blue\"\\>标蓝显示；该板块不使用代码块包裹，直接输出富文本\r\n4. **【不可跳过】三板块输出完成后，智能体必须将纯文本优化文案写入文件** `./小红书_优化文案_{随机6位数字}.txt`，文件内容与\"✏️建议优化文案\"完全一致但移除所有HTML标记，仅保留纯文本。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略不输出、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次检测完成后，必须将全部批次的替换结果按原文顺序汇总为一份完整的优化文案写入文件并发送文件卡片，不可遗漏任何批次的内容**\r\n5. 脚本返回JSON后，智能体必须解析并填入模板，禁止直接输出原始JSON\r\n6. 未检测到违禁词（word_count=0）时：仅输出\"**🔍 违禁词检测结果**\"板块，内容为\"未检测到违禁词，文案内容合规✅\"，不输出后两个板块，不输出文件\r\n\r\n---\r\n\r\n## 完整输出示例\r\n\r\n用户输入：\"这款美白神器真的太有效了，用了三天就白了一个度\"\r\n\r\n🔍 **违禁词检测结果**\r\n- ☁️**检测平台**：小红书\r\n- **违禁词数量**：2个\r\n- **违禁词类型**：禁用词\r\n\r\n📚 **违禁文案：**\r\n这款美白神器真的太<span style=\"color:red\">有效</span>了，用了三天就<span style=\"color:red\">白了一个度</span>\r\n\r\n> ⚠️ 数据说明：以上查询结果仅供参考，请您根据企业经营范围和产品实际效果或功效，自行核对。\r\n\r\n💡 **修改建议**\r\n\r\n针对每个违禁词，提供安全的替换表达。\r\n\r\n| 违禁词 | 替换词 | 更换理由 |\r\n|--------|--------|----------|\r\n| 有效 | 用着感觉不错 | \"有效\"属禁用词，改为描述使用感受的口语化表达 |\r\n| 白了一个度 | 肤色提亮了不少 | \"白了一个度\"暗示美白功效，改为描述视觉感受的间接表达 |\r\n\r\n✏️ **建议优化文案**\r\n\r\n> 💡 <span style=\"color:blue\">蓝色文案</span>表示已替换的文案\r\n\r\n这款美白神器真的太<span style=\"color:blue\">用着感觉不错</span>了，用了三天就<span style=\"color:blue\">肤色提亮了不少</span>\r\n\r\n（三板块输出完成后，智能体必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，内容与上方一致但无HTML标记。文件必须实际写入磁盘，写入后**必须将文件以卡片形式发送给用户**，禁止仅告知路径而不发送文件卡片）\r\n\r\n---\r\n\r\n## 注意事项\r\n- 文案内容上限为3000字符；**所有输入类型（文本/文件/网页/图片）超过3000字符且不超过10000字符时均必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅检测前3000字符，用户回复\"2\"则按自然断句处切割分批检测（每批不超过3000字符），分批检测完成后必须汇总所有批次的替换结果输出一份完整的优化文案文件不可遗漏，用户回复\"3\"则结束任务；**超过10000字符时直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n- 网络请求自动重试：遇到5xx、超时、连接重置等场景最多重试2次，智能体无需手动重试\r\n- 脚本已内置英文误匹配过滤：API会将英文单词内部子串误标为违禁词（如\"Glasswing\"中的\"ass\"），脚本自动识别并过滤此类误匹配，无需智能体额外处理\r\n- 违禁词用HTML <span style=\"color:red\"> 标记（渲染红色）；优化文案中替换词用 <span style=\"color:blue\"> 标记（渲染蓝色）\r\n- \"✏️建议优化文案\"仅替换违禁词，替换时必须确保与前后文语境通顺、语法正确，如需微调前后助词/连接词以保证通顺则一并调整并用蓝色标记；禁止改变语气/排版/添加emoji/重写文案\r\n- **【不可跳过】**三板块输出完成后必须将纯文本优化文案写入 `./小红书_优化文案_{随机6位数字}.txt`，其中随机数由智能体每次生成（如用当前时间戳后6位或随机6位数字），确保连续对话中不同次检测的文件名唯一、内容不被覆盖。文件内容与\"✏️建议优化文案\"一致但移除所有HTML标记。写入后**必须将文件以卡片形式发送给用户**，让用户可以直接点击下载，禁止仅告知文件路径而不发送文件卡片。**该文件必须实际写入磁盘，禁止省略、禁止仅提示文件名而不写入内容、禁止不发送文件卡片**。**分批检测时，所有批次完成后必须将全部替换结果按原文顺序汇总写入一份完整文件并发送文件卡片，不可遗漏任何批次**\r\n- 图片文件由智能体先用read_image提取文字（仅提取图片中的文字内容，禁止识别图片的视觉风格描述），再以 --content 传入脚本检测\r\n- 不支持PDF文件，若用户上传PDF需提醒\"不支持PDF文件，请将PDF转为图片或文本类型文件后重新上传\"\r\n- 检测完成并输出结果、写入文件后，智能体可正常回复用户的后续提问（如调整替换词、重新检测、解释违禁规则等），不应因铁律约束而拒绝后续对话","readmeExcerpt":"Skill: 小红书违禁词检测 Owner: if530770 Summary: 检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。 Tags: latest:1.0.6, xiaohongshu check hot:1.0.3 Version history: v1.0.6 | 2026-06-05T03:30:12.605Z | user **Changelog for version 1.0.6:** - Added English and Chinese README files (README.md, README.en.md) for improved documentation and user guidance. - Enhanced skill documentati","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python scripts/check_sensitive_words.py --content=\"……\"\npython scripts/check_sensitive_words.py --file=/path/to/doc.docx\npython scripts/check_sensitive_words.py --url=https://example.com --extract-only"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: xiaohongshu-prohibited-word\r\ndescription: 检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。\r\ndependency:\r\n  python:\r\n    - python-docx==1.1.0\r\n    - beautifulsoup4==4.12.3\r\n    - playwright==1.58.0\r\n  system:\r\n    - playwright install chromium\r\n---\r\n\r\n# 小红书违禁词查询\r\n\r\n## 简介\r\n\r\n小红书违禁词查询是一款专为小红书内容创作者、品牌运营和营销人员设计的智能违禁词检测工具，基于 红狐Hub 违禁词检测 API，在笔记发布前快速扫描文案中的敏感词并提供上下文智能替换建议。\r\n\r\n通过简单的文案输入，你可以：\r\n- 🔍 **违禁词标记** —— 原文中命中词用加粗标出，一眼看到风险点\r\n- 💡 **替换建议** —— 每个违禁词配一个结合上下文的替换词 + 更换理由\r\n- ✏️ **优化文案** —— 直接给出一份替换后的可发布版本，复制粘贴就能用\r\n- 📏 **长文案分批检测** —— 超过 3000 字自动提醒，支持分批检测后合并结果\r\n\r\n触发关键词：`小红书违禁词` `笔记敏感词` `小红书审核` `限流词` `种草文案合规`\r\n\r\n## 功能特性\r\n\r\n### 🎯 核心功能\r\n\r\n| 输入方式 | 能力说明 | 使用示例 |\r\n|----------|----------|----------|\r\n| 💬 直接贴文案 | 粘贴笔记文案，一键检测 | `帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了……` |\r\n| 📎 上传文件 | 支持 TXT、DOC、DOCX，自动读取检测 | 直接上传文档，无需手动复制 |\r\n| 🖼️ 上传图片 | 自动提取图中文字进行检测 | 上传笔记截图/海报即可 |\r\n| 🌐 粘贴链接 | 自动抓取网页内容检测 | `帮我检测这个网页：https://example.com/article` |\r\n\r\n### ✨ 特色亮点\r\n\r\n- **⚡ 一站式检测** —— 文本/文件/图片/网页四种输入方式，一次调用完成所有检测\r\n- **🔗 跨平台内容提取** —— 内置 Playwright 无头浏览器，支持 JS 动态渲染的 SPA 页面内容提取\r\n- **🌐 英文误匹配过滤** —— 自动识别英文单词内部子串误判（如 \"Glasswing\" 中的 \"ass\"），无需手动排查\r\n- **🔒 数据安全** —— 检测内容通过加密 HTTPS 发送，不在本地存储\r\n- **📄 一键导出** —— 自动生成纯文本优化文案文件并以卡片形式发送，可直接下载使用\r\n\r\n**限制说明**：平台固定为小红书，无需指定。PDF 不支持，需转为图片或文本文件后上传。\r\n\r\n## 一键安装\r\n\r\n### 前置条件\r\n\r\n- Python 3.8+\r\n- 安装 Python 依赖：\r\n  ```bash\r\n  pip install python-docx==1.1.0 beautifulsoup4==4.12.3 playwright==1.58.0\r\n  ```\r\n- 安装 Chromium 浏览器：\r\n  ```bash\r\n  playwright install chromium\r\n  ```\r\n\r\n### 获取 API Key\r\n\r\n1. 访问 [红狐Hub 官网](https://redfox.hk/) 了解服务详情\r\n2. 前往 [注册页面](https://redfox.hk/login) 注册账号\r\n3. **新注册用户将获赠免费积分**，可立即开始使用 API 服务\r\n4. 注册登录后，在个人中心获取 API Key，格式为 `ak_xxxxxxxx`\r\n\r\n### 配置 API Key\r\n\r\n脚本按以下优先级自动获取密钥：\r\n\r\n| 优先级 | 来源 | 说明 |\r\n|--------|------|------|\r\n| 1 | 环境变量 `REDFOX_API_KEY` | 直接读取当前设备环境变量 |\r\n| 2 | Shell 配置文件 | 自动扫描 `~/.zshrc` `~/.bashrc` `~/.bash_profile` `~/.profile` `~/.zprofile` |\r\n| 3 | 提示配置 | 以上均未找到时，提示用户手动配置 |\r\n\r\n**配置示例**：\r\n\r\n```bash\r\nexport REDFOX_API_KEY=ak_xxxxxxxx\r\n```\r\n\r\n### 环境变量参考\r\n\r\n| 变量名 | 必填 | 说明 |\r\n|--------|------|------|\r\n| `REDFOX_API_KEY` | 是 | 红狐Hub API 访问密钥，格式 `ak_xxxxxxxx` |\r\n| `XHS_SENSITIVE_WORD_API_URL` | 否 | 自定义 API 端点地址（默认使用 红狐Hub 官方） |\r\n| `XHS_SENSITIVE_WORD_VERIFY_SSL` | 否 | SSL 证书校验开关，默认 `1`（开启） |\r\n\r\n## 使用指南\r\n\r\n### 基础使用\r\n\r\n**💬 直接贴文案** —— 把笔记文案发给助手即可检测\r\n\r\n> 用户：帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了，用了三天就白了一个度\r\n>\r\n> 助手输出：🔍 **违禁词检测结果** → 💡 **修改建议** → ✏️ **优化文案** + 纯文本文件卡片\r\n\r\n**📎 上传文件** —— 直接上传 TXT、DOC、DOCX 文件，助手自动提取内容检测\r\n\r\n**🖼️ 上传图片** —— 上传笔记截图或海报，助手提取图中文字后检测（仅提取文字，不分析图片视觉）\r\n\r\n**🌐 粘贴链接** —— 提供网页 URL，助手自动抓取页面文字内容检测\r\n\r\n### 高级使用\r\n\r\n**长文案分批检测**：超过 3000 字符时，助手会暂停并询问（回复 1=单次仅检测前3000字 / 2=分批检测全部 / 3=取消），分批时自动在自然断句处切割\r\n\r\n**仅提取文字预览**：调用脚本 `--extract-only` 参数可仅提取文字不检测，返回文本内容和长度\r\n\r\n**自定义 API 端点**：设置 `XHS_SENSITIVE_WORD_API_URL` 环境变量指向自建检测服务\r\n\r\n### 命令速查\r\n\r\n| 输入形态 | 助手动作 |\r\n|---|---|\r\n| 纯文本 | 计算字数 → 字数闸门 → `--content=\"...\"` → 三板块输出 |\r\n| 上传 TXT/DOC/DOCX | `--file=path --extract-only` 查字数 → 按规则检测 → 三板块输出 |\r"},{"path":"README.md","content":"# 小红书违禁词查询 / xiaohongshu-prohibited-word\r\n\r\n---\r\n\r\n## 简介\r\n\r\n在笔记发布前快速扫描文案中的小红书违禁词，标出风险点并给出可替换的合规表达与优化后全文，降低限流与下架风险。\r\n\r\n**核心价值**\r\n\r\n- **违禁词标记**：原文命中词加粗显示，风险点一目了然。\r\n- **替换建议**：每个违禁词配有结合上下文的替换词与更换理由。\r\n- **优化文案**：直接给出替换后的可发布版本，可复制使用或下载纯文本文件。\r\n- **长文案分批**：超过 3000 字会提醒并支持分批检测后合并结果。\r\n\r\n**适用对象**\r\n\r\n- 📝 **小红书博主 / 创作者** — 发布前自查，减少反复修改与审核等待。\r\n- 🛍️ **品牌 / 电商运营** — 活动文案、商品详情批量扫雷，避免上线后被投诉下架。\r\n- 📣 **投放 / 营销人员** — 多条卖点话术快速过筛，缩短合规审核周期。\r\n- 🔍 **增长运营 / 内容审核** — 落地页、H5 页面文字合规抽查。\r\n\r\n---\r\n\r\n## 功能特性\r\n\r\n### 核心功能\r\n\r\n- **直接贴文案**：粘贴笔记正文即可检测违禁词并给出修改方案。\r\n- **上传文档**：支持 TXT、DOC、DOCX，自动读取内容后检测，无需手动复制。\r\n- **上传图片**：从笔记截图或海报中提取文字后检测（仅识别图中文字）。\r\n- **粘贴链接**：提供网页地址，自动读取页面文字内容后检测。\r\n- **长文案处理**：单次建议 3000 字以内；更长内容可分批检测并汇总优化结果。\r\n- **一键导出**：生成纯文本优化文案文件，便于下载后直接发布。\r\n\r\n---\r\n\r\n## 密钥获取与安全说明\r\n\r\n- 本技能需要使用环境变量：`REDFOX_API_KEY`。\r\n- `REDFOX_API_KEY` 由 [红狐 hub](https://redfox.hk/settings/api-keys?source=clawhub) (`https://redfox.hk`)提供。\r\n- 请前往 [红狐 hub](https://redfox.hk?source=github) 注册账号，获取 `REDFOX_API_KEY`。\r\n- 配置设备环境变量 `REDFOX_API_KEY` 后使用本技能。\r\n- 在提供密钥前，请先确认密钥来源、可用范围、有效期及是否支持重置/撤销。\r\n- 禁止在代码、提示词、日志或输出文件中硬编码/明文暴露密钥。\r\n\r\n---\r\n\r\n## 使用指南\r\n\r\n直接用自然语言描述需求即可，无需记忆固定命令。可说「小红书违禁词」「笔记敏感词」「限流词」「种草文案合规」等触发检测。\r\n\r\n### 常用说法速查\r\n\r\n| 意图         | 示例话术                                                     | 效果                                 |\r\n| ------------ | ------------------------------------------------------------ | ------------------------------------ |\r\n| 检测笔记文案 | 「帮我看下这段笔记有没有违禁词：这款美白神器真的太有效了……」 | 标出违禁词、给出替换建议与优化后文案 |\r\n| 检测上传文档 | 直接上传 TXT、DOC、DOCX 文件                                 | 自动读取文档内容并完成检测           |\r\n| 检测图片文字 | 上传笔记截图或海报                                           | 提取图中文字后检测                   |\r\n| 检测网页内容 | 「帮我检测这个网页：https://example.com/article」            | 自动读取页面文字后检测               |\r\n| 长文案分批   | 提交超过 3000 字的文案后，按提示回复 1 / 2 / 3 选择检测方式  | 单次检测前段、分批检测全部或取消     |\r\n\r\n### 输出示例\r\n\r\n检测完成后，你将依次收到以下三块内容（示意）：\r\n\r\n**🔍 违禁词检测结果**\r\n\r\n- 检测平台：小红书\r\n- 违禁词数量、类型\r\n- 原文中违禁词以加粗标出\r\n\r\n**💡 修改建议**\r\n\r\n| 违禁词 | 替换词 | 更换理由 |\r\n| ------ | ------ | -------- |\r\n| …      | …      | …        |\r\n\r\n**✏️ 建议优化文案**\r\n\r\n仅替换违禁词后的完整文案，已替换处加粗显示；同时提供可下载的纯文本优化文件。\r\n\r\n未检测到违禁词时，将提示「未检测到违禁词，文案内容合规✅」。\r\n\r\n---\r\n\r\n## 使用场景\r\n\r\n| 场景         | 角色            | 示例问法                                       | 收益                                 |\r\n| ------------ | --------------- | ---------------------------------------------- | ------------------------------------ |\r\n| 发布前自查   | 博主 / 创作者   | 粘贴种草笔记全文，询问是否有违禁词             | 一次改对，安心发布                   |\r\n| 批量文案扫雷 | 品牌 / 电商运营 | 上传含多篇推广文案的 Word 文档                 | 批量检测，避免活动上线后违规         |\r\n| 投放话术过筛 | 投放 / 营销人员 | 逐条提交卖点话术或广告文案                     | 按建议修改后提交合规审核，提高通过率 |\r\n| 页面合规抽查 | 增长 / 内容审核 | 提供落地页或 H5 链接，检查页面文字是否含违禁词 | 快速完成页面抽查，降低违规风险       |\r\n\r\n---"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7bbcfey44zzvtyay8yqzq0r584h3zz\",\n  \"slug\": \"xhs-prohibited-word\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1780630212605\n}"},{"path":"references/core_workflow.md","content":"# 小红书违禁词查询 · 核心工作流\r\n\r\n本文档包含本 Skill 的完整执行规范：**鉴权、数据源说明、任务目标、前置准备、操作步骤、输出模板、格式铁律、示例、脚本说明与注意事项**。处理违禁词检测请求时必须全文遵循，不得删减或改写约束含义。\r\n\r\n## 数据源说明\r\n\r\n本 Skill 的违禁词匹配通过独立后端 API 完成检测。执行脚本时，会将待检测内容通过 HTTPS POST 发往对接服务端（JSON），**不在本地计算词库**。\r\n\r\n| 项目 | 说明 |\r\n|---|---|\r\n| **API 地址** | `https://redfox.hk/story/api/cozeSkill/sensitiveWordSearch` |\r\n| **请求方式** | POST，application/json |\r\n| **请求体字段** | `content`（待检测文案）、`platform`（固定为\"小红书\"）、`source`（来源标识） |\r\n| **凭证机制** | `REDFOX_API_KEY` 环境变量（格式 `ak_xxxxxxxx`），脚本自动从环境变量或 Shell 配置文件读取 |\r\n| **HTTP 库** | `urllib.request`（标准库，内置重试与超时处理） |\r\n\r\n**对话指引**：首次为用户检测前，应用一两句话说明「文案将通过加密连接发送至检测服务」；若用户拒绝外传数据，则不应调用检测脚本。\r\n\r\n## 鉴权\r\n\r\n### 获取 API Key\r\n\r\n1. 访问 [红狐Hub 官网](https://redfox.hk/) 了解服务详情\r\n2. 前往 [注册页面](https://redfox.hk/login) 注册账号\r\n3. **新注册用户将获赠免费积分**，可立即开始使用 API 服务\r\n4. 注册登录后，在个人中心获取 API Key，格式为 `ak_xxxxxxxx`\r\n\r\n### 配置 API Key\r\n\r\n配置 `REDFOX_API_KEY` 环境变量，脚本按以下优先级自动获取：\r\n\r\n1. **环境变量**：直接读取当前设备 `REDFOX_API_KEY` 环境变量\r\n2. **Shell 配置文件回退**：若环境变量未设置，自动扫描以下配置文件查找 `REDFOX_API_KEY` 定义：\r\n   - `~/.zshrc`\r\n   - `~/.bashrc`\r\n   - `~/.bash_profile`\r\n   - `~/.profile`\r\n   - `~/.zprofile`\r\n3. **提示配置**：以上均未找到时，抛出异常提示用户配置\r\n\r\n**配置示例**：\r\n```bash\r\nexport REDFOX_API_KEY=ak_xxxxxxxx\r\n```\r\n\r\n## 任务目标\r\n\r\n- 本 Skill 用于：检测用户输入的文案、上传的文件（图片/TXT/DOC/DOCX等文本类型文件）或网页地址中是否包含小红书违禁词，将违禁词加粗显示，提供替换建议和仅替换违禁词后的文案\r\n- 能力包含：支持文本、文件、网页三种输入方式的小红书违禁词查询，一站式检测无需多次调用脚本\r\n- 触发条件：用户输入文案内容、上传文件、提供网页地址，需要检测小红书违禁词\r\n\r\n## 前置准备\r\n\r\n- 依赖说明：脚本依赖 python-docx（Word文档提取）、beautifulsoup4（网页内容提取）、playwright（无头浏览器渲染JS动态网页，需执行 `playwright install chromium` 安装浏览器）\r\n- 非标准文件/文件夹准备：无\r\n\r\n## 操作步骤\r\n\r\n1. 智能体识别用户输入类型（文本/文件/网页），执行对应流程\r\n   - **文本输入**：\r\n     1. **先判断文案字数**：智能体必须先计算用户输入文案的字符数\r\n     2. 若不超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测\r\n     3. 若超过3000字符且不超过10000字符，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"文案内容\"` 检测全部内容（分批时在自然断句处切割，避免截断句子），用户回复\"3\"则结束任务\r\n     4. 若超过10000字符，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**\r\n   - **文本类型文件（TXT/DOC/DOCX等）**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --file=/path/to/file.txt --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000，**必须暂停并询问用户**\"⚠ 单次查询内容字数建议不超过3000字，现在已超过单次执行字数是否进行分批查询？\\n回复1：执行单次查询（仅检测前3000字符）\\n回复2：执行分批查询（检测全部内容）\\n回复3：取消执行\"**——必须等待用户回答后再继续，禁止未等用户回复就自行执行后续流程**——用户回复\"1\"则仅取前3000字符调用脚本检测，用户回复\"2\"则按3000字符分批调用 `python scripts/check_sensitive_words.py --content=\"...\"` 检测全部内容，用户回复\"3\"则结束任务；若未超过3000字符，直接调用 `python scripts/check_sensitive_words.py --content=\"提取的内容\"` 检测\r\n   - **网页地址**：\r\n     1. 先调用 `python scripts/check_sensitive_words.py --url=https://example.com --extract-only` 提取全部文字内容\r\n     2. 若返回的 length 超过10000，**直接提示用户**\"⚠ 当前内容字数超过10000字，查询将会消耗过多的时间和积分，强烈建议手动分批查询。\"**并中断后续逻辑，不执行任何检测**；若超过3000且不超过10000"},{"path":"README.en.md","content":"# Xiaohongshu Prohibited Word Check / xiaohongshu-prohibited-word\r\n\r\n---\r\n\r\n## Introduction\r\n\r\nScan your copy for Xiaohongshu (Little Red Book) prohibited terms before publishing, highlight risks, and get compliant replacements plus a ready-to-post revised draft—so you can reduce throttling and takedown risk.\r\n\r\n**Core value**\r\n\r\n- **Flagged terms**: Hits are shown in bold in the original text so risks stand out.\r\n- **Replacement suggestions**: Each hit comes with a context-aware alternative and a short rationale.\r\n- **Optimized copy**: A publishable version with only the necessary swaps, ready to copy or download as plain text.\r\n- **Long-copy batches**: Content over 3,000 characters triggers a reminder and supports batched checks with merged results.\r\n\r\n**Who it’s for**\r\n\r\n- 📝 **Creators / bloggers** — Pre-publish self-checks; fewer rewrites and review cycles.\r\n- 🛍️ **Brand & e-commerce ops** — Batch-check campaigns, product pages, and promos before go-live.\r\n- 📣 **Ads & marketing** — Screen multiple selling points and ad lines faster for compliance review.\r\n- 🔍 **Growth & content review** — Spot-check landing pages and H5 page text for policy risk.\r\n\r\n---\r\n\r\n## Features\r\n\r\n### Core capabilities\r\n\r\n- **Paste copy**: Send note text directly for prohibited-term detection and edit guidance.\r\n- **Upload documents**: TXT, DOC, and DOCX are read automatically—no manual copy-paste.\r\n- **Upload images**: Text is read from note screenshots or posters, then checked (text only, not visual style).\r\n- **Paste a link**: Provide a URL; page text is read automatically, then checked.\r\n- **Long copy**: Best under 3,000 characters per run; longer content can be checked in batches with a combined optimized file.\r\n- **One-click export**: A plain-text optimized draft file for download and direct use.\r\n\r\n---\r\n\r\n## API Key Acquisition & Security\r\n\r\n- This skill requires the environment variable: `REDFOX_API_KEY`.\r\n- `REDFOX_API_KEY` is provided by [RedFoxHub](https://redfox.hk/settings/api-keys?source=clawhub) (`https://redfox.hk`).\r\n- Register at [RedFoxHub](https://redfox.hk?source=github) to obtain `REDFOX_API_KEY`.\r\n- Configure `REDFOX_API_KEY` on your device before using this skill.\r\n- Before sharing a key, confirm its source, scope, validity, and whether it can be reset or revoked.\r\n- Do not hard-code or expose keys in code, prompts, logs, or output files.\r\n\r\n---\r\n\r\n## How to use\r\n\r\nDescribe what you need in plain language—no fixed commands to memorize. You can say things like “Xiaohongshu prohibited words,” “note sensitive words,” “throttling terms,” or “compliant seeding copy.”\r\n\r\n### Quick phrase guide\r\n\r\n| Intent            | Example prompt                                                                | What you get                                    |\r\n| ----------------- | ----------------------------------------------------------------------------- | ----------------------------------------------- |\r\n| Check note copy   | “Check this note for prohibit"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。 Skill: 小红书违禁词检测 Owner: if530770 Summary: 检测文案、文件或网页中的小红书违禁词并加粗显示，提供违禁词替换建议和仅替换违禁词后的文案；当用户需要查询小红书平台违禁词、检查小红书笔记文案是否包含敏感词、或希望获得安全替换词和修改后文案时使用。 Tags: latest:1.0.6, xiaohongshu check hot:1.0.3 Version history: v1.0.6 | 2026-06-05T03:30:12.605Z | user **Changelog for version 1.0.6:** - Added English and Chinese README files (README.md, README.en.md) for improved documentation and user guidance. - Enhanced skill documentati","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1293,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:42:19.695Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T11:42:19.695Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T14:15:59.674Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}