{"id":"93504151-7c1e-477d-a06f-11f5a2d50936","entityType":"agent","slug":"clawhub-pangolinfo-pangolinfo-amazon-listing-optimization","name":"pangolinfo-amazon-listing-optimization","canonicalUrl":"https://www.xpersona.co/agent/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization","canonicalPath":"/agent/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization","generatedAt":"2026-10-10T17:35:37.082Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T15:23:59.160Z","emptyReason":null},"description":"Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\". Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。 NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon- Skill: pangolinfo-amazon-listing-optimization Owner: pangolinfo Summary: Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\". Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。 NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon- Tags: latest:4.0.0 Version history: v4.0.0 | 2","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s1713qcay2x7frr7y0mm908crx83hmg8:pangolinfo-amazon-listing-optimization","sourceUrl":"https://clawhub.ai/pangolinfo/pangolinfo-amazon-listing-optimization","homepage":"https://clawhub.ai/pangolinfo/skills/pangolinfo-amazon-listing-optimization","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/pangolinfo/pangolinfo-amazon-listing-optimization","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/pangolinfo/skills/pangolinfo-amazon-listing-optimization","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\". Covers: 5-step Listing op"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T15:23:59.160Z","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-10T15:23:59.160Z","emptyReason":null},"stars":null,"forks":null,"downloads":1362,"packageName":null,"latestVersion":"4.0.0","tractionLabel":"1.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T15:23:59.160Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T15:23:59.160Z","lastCrawledAt":"2026-10-10T15:23:59.160Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T15:23:59.160Z","lastVerifiedAt":null,"highlights":[{"version":"4.0.0","createdAt":"2026-08-20T08:30:12.004Z","changelog":"**Summary:** Added a mandatory source marker for all MCP tool calls. - All MCP tool invocations must now include `\"clientSource\":\"skill\"` in the arguments for traceability. - No user-facing features or workflow changes. - Documentation clarified this new requirement for developers. - Internal-only file `skill-card.md` was removed.","fileCount":3,"zipByteSize":17099},{"version":"3.1.0","createdAt":"2026-06-16T09:31:20.897Z","changelog":"- Skill file skill-card.md was removed. - Skill name updated from pangolinfo-amazon-listing-optimization to amazon-listing-optimization. - Description and usage notes rewritten to focus on listing rewrite/optimization (trigger, workflow, exclusions) in both English and Chinese. - Detailed, step-by-step Standard Operating Procedure (SOP) in Chinese added, including tool usage, workflow for \"Fast\" and \"Full\" modes, and strict API/tool call sequence. - Audience targeting and applicable use cases clarified; not for product research/monitoring/single ASIN detail (redirected to other skills/tools). - MCP tools used are now explicitly listed in metadata.","fileCount":3,"zipByteSize":17206},{"version":"3.0.0","createdAt":"2026-06-15T02:06:27.386Z","changelog":"Major architecture change – Skill now exclusively uses the hosted Pangolinfo MCP server, removing all local scripts. - Removed all 17 bundled local scripts and reference files. - Skill now connects only to the hosted Pangolinfo MCP server (no more local/env key usage). - All functionalities (VOC analysis, copywriting, IP checks) are mapped to MCP server tools. - Updated onboarding and auth instructions to focus on MCP server configuration. - Significant update to the system prompt, reflecting new architecture, tool boundaries, and usage flow.","fileCount":3,"zipByteSize":11085},{"version":"2.0.0","createdAt":"2026-04-23T09:44:23.708Z","changelog":"- Minor correction in negative boundaries: niche-finding route changed from `pangolinfo-amazon-product-discovery` to `pangolinfo-amazon-product-explorer`. - Added `emoji` and `os` fields under metadata to improve compatibility and display. - No logic or script functionality changes; all bundled APIs and system prompts remain unchanged. - Updated tags format for consistency. - Version remains at 2.0.0.","fileCount":19,"zipByteSize":48839},{"version":"1.0.1","createdAt":"2026-04-17T14:04:11.491Z","changelog":"Major restructuring: migrated to a flat, unified script structure and simplified skill packaging. - All bundled tools are now located under a single scripts/ directory (no nested skill folders). - Removed legacy sub-skill folders and merged their functionality into standalone scripts (ai_serp.py, amazon_scraper.py, amazon_niche.py, wipo.py). - Updated documentation to reference flat script paths for invocation and clarified usage for each capability. - References and setup guides are now organized under a unified references/ directory, grouped by capability. - Skill metadata, versioning, and onboarding instructions updated to reflect these changes and new versioning (2.0.0).","fileCount":18,"zipByteSize":47296},{"version":"1.0.0","createdAt":"2026-04-16T11:14:11.835Z","changelog":"Initial public release of Pangolinfo Amazon Listing Optimization. - Provides advanced Amazon listing copywriting powered by multi-channel VOC analysis and WIPO trademark checking. - Bundles Amazon review scraper, AI SERP for external insights, and compliance checks. - Strictly enforces data-driven listing generation with scenario-based triggers and negative boundaries. - Includes system prompt and SOP for deep, multi-step optimization—defaulting to Amazon US marketplace. - Supports onboarding with user-facing multilingual welcome message and precise execution rules.","fileCount":29,"zipByteSize":68721}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1713qcay2x7frr7y0mm908crx83hmg8:pangolinfo-amazon-listing-optimization","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-pangolinfo-pangolinfo-amazon-listing-optimization/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/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-10T17:35:37.078Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-pangolinfo-pangolinfo-amazon-listing-optimization/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-10T15:23:59.160Z","emptyReason":null},"readme":"Skill: pangolinfo-amazon-listing-optimization\n\nOwner: pangolinfo\n\nSummary: Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\".\nCovers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。\nNOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon-\n\nTags: latest:4.0.0\n\nVersion history:\n\nv4.0.0 | 2026-08-20T08:30:12.004Z | user\n\n**Summary:**  \nAdded a mandatory source marker for all MCP tool calls.\n\n- All MCP tool invocations must now include `\"clientSource\":\"skill\"` in the arguments for traceability.\n- No user-facing features or workflow changes.\n- Documentation clarified this new requirement for developers.\n- Internal-only file `skill-card.md` was removed.\n\nv3.1.0 | 2026-06-16T09:31:20.897Z | user\n\n- Skill file skill-card.md was removed.\n- Skill name updated from pangolinfo-amazon-listing-optimization to amazon-listing-optimization.\n- Description and usage notes rewritten to focus on listing rewrite/optimization (trigger, workflow, exclusions) in both English and Chinese.\n- Detailed, step-by-step Standard Operating Procedure (SOP) in Chinese added, including tool usage, workflow for \"Fast\" and \"Full\" modes, and strict API/tool call sequence.\n- Audience targeting and applicable use cases clarified; not for product research/monitoring/single ASIN detail (redirected to other skills/tools).\n- MCP tools used are now explicitly listed in metadata.\n\nv3.0.0 | 2026-06-15T02:06:27.386Z | user\n\nMajor architecture change – Skill now exclusively uses the hosted Pangolinfo MCP server, removing all local scripts.\n\n- Removed all 17 bundled local scripts and reference files.\n- Skill now connects only to the hosted Pangolinfo MCP server (no more local/env key usage).\n- All functionalities (VOC analysis, copywriting, IP checks) are mapped to MCP server tools.\n- Updated onboarding and auth instructions to focus on MCP server configuration.\n- Significant update to the system prompt, reflecting new architecture, tool boundaries, and usage flow.\n\nv2.0.0 | 2026-04-23T09:44:23.708Z | user\n\n- Minor correction in negative boundaries: niche-finding route changed from `pangolinfo-amazon-product-discovery` to `pangolinfo-amazon-product-explorer`.\n- Added `emoji` and `os` fields under metadata to improve compatibility and display.\n- No logic or script functionality changes; all bundled APIs and system prompts remain unchanged.\n- Updated tags format for consistency.\n- Version remains at 2.0.0.\n\nv1.0.1 | 2026-04-17T14:04:11.491Z | user\n\nMajor restructuring: migrated to a flat, unified script structure and simplified skill packaging.\n\n- All bundled tools are now located under a single scripts/ directory (no nested skill folders).\n- Removed legacy sub-skill folders and merged their functionality into standalone scripts (ai_serp.py, amazon_scraper.py, amazon_niche.py, wipo.py).\n- Updated documentation to reference flat script paths for invocation and clarified usage for each capability.\n- References and setup guides are now organized under a unified references/ directory, grouped by capability.\n- Skill metadata, versioning, and onboarding instructions updated to reflect these changes and new versioning (2.0.0).\n\nv1.0.0 | 2026-04-16T11:14:11.835Z | user\n\nInitial public release of Pangolinfo Amazon Listing Optimization.  \n- Provides advanced Amazon listing copywriting powered by multi-channel VOC analysis and WIPO trademark checking.\n- Bundles Amazon review scraper, AI SERP for external insights, and compliance checks.\n- Strictly enforces data-driven listing generation with scenario-based triggers and negative boundaries.\n- Includes system prompt and SOP for deep, multi-step optimization—defaulting to Amazon US marketplace.\n- Supports onboarding with user-facing multilingual welcome message and precise execution rules.\n\nArchive index:\n\nArchive v4.0.0: 3 files, 17099 bytes\n\nFiles: skill-card.md (2058b), SKILL.md (33648b), _meta.json (157b)\n\nFile v4.0.0:SKILL.md\n\n---\nname: amazon-listing-optimization\ndescription: |\n  Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\".\n  Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。\n  NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon-daily-competitor-radar) / 单纯 ASIN 详情 (call get_amazon_product directly).\nversion: 3.1.0\nmcp_tools_used:\n  - pangolinfo_capabilities\n  - search_amazon\n  - get_amazon_product\n  - get_amazon_reviews\n  - ai_search\n  - wipo_search\n  - get_category_paths\n  - search_amazon_alexa\napplies_to: [claude-code, cursor, cline, windsurf, hermes, codex, openclaw]\nbudget:\n  fast: { duration: \"≤ 90s\", cost: \"≤ 10 积点\", calls: \"≤ 5\" }\n  full: { duration: \"≤ 4min\", cost: \"≤ 40 积点\", calls: \"≤ 12\" }\n---\n\n# Amazon Listing 优化 SOP\n\n> 跑前必读：本文件末尾《核心规则 / Core Rules》章节（已内联，自包含）。\n> **来源标记硬规则**：本 Skill 发起的每次 MCP tool 调用，都必须在 `arguments` 顶层加入 `\"clientSource\":\"skill\"`，不得省略。\n> 角色：资深 Amazon 运营 + 文案专家。所有输出可直接复制到 Seller Central。\n\n## 用户触发与档位\n\n**Fast 档**（默认 ≤90s）：\n- \"帮我写个 Listing for wireless earbuds\"\n- \"我的标题怎么改\"\n- \"Backend Search Terms 怎么填\"\n\n**Full 档**（用户明示 ≤4min）：\n- \"完整重写 Listing 包括 A+ 文案\"\n- \"深度 VOC 分析后再写\"\n- \"包括 IP 合规筛查\"\n\n**单工具直通**：\n- \"查 X 的差评\" → `get_amazon_reviews filterByStar=critical pageCount=1`\n- \"X 词在美国注册商标了吗\" → `wipo_search source=USID hol=X`\n\n---\n\n## Fast 档 SOP(4 回合 ≤ 90s)\n\n只用 PDP 自带的 `aiReviewsSummary` + 1 次 critical reviews,**不调** ai_search(30s 太慢)。\n\n```\n回合 1 (5s)   search_amazon                                          ← 找 Top 3 标杆 ASIN\n回合 2 (5s)   get_amazon_product(A1) | get_amazon_product(A2)         ← 2 并发\n回合 3 (5s)   get_amazon_product(A3) | get_amazon_reviews(最优 ASIN)  ← 2 并发(reviews 5pt)\n回合 4 (5s)   get_category_paths (可选,验证类目锚定)                  ← 单发\nLLM 整合 (~30s)\n```\n\n**总耗时**:~30s tool + 30s LLM ≈ **60-75s**\n**总成本**:~8 积点(reviews 5pt + 3 个 PDP 各 1pt)\n**总调用**:5-6 次 tool\n\n**并发硬上限**: 2(实测 2026-05-28:3 并发会触发后端业务码 9200 \"no content\")。\n\n### R1 — 找 Top 标杆 ASIN\n\n```jsonc\n{ \"name\": \"search_amazon\",\n  \"arguments\": { \"keyword\": \"<core_keyword>\", \"site\": \"amz_us\" }}\n```\n\n**Extract**: `data.json[0].data.results[]` 取前 3 个非赞助（`sponsored=\"0\"`）ASIN，按 `rank` 升序。\n\n**Skip rule**: 用户已给了 3 个对标 ASIN → 跳过 R1。\n\n### R2 — 2 并发拉标杆 PDP (A1 + A2)\n\n```jsonc\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A1>\", \"site\": \"amz_us\" }}\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A2>\", \"site\": \"amz_us\" }}\n```\n\n**Data Ingestion Guard (any-field-empty)**: 对每个 ASIN,检查 4 个核心字段:\n- `title` (string)\n- `features` (array,至少 3 条)\n- `aiReviewsSummary` (object)\n- `bestSellersRankItems` (array,至少 1 条)\n\n如果**全部**为 null → 输出 `🔴 Abort Maneuver: Target ASIN data body is completely empty.` 停止。\n如果**任一**为 null(其他有数据) → 继续,但在 Section \"Data Completeness Warnings\" 里列出缺失字段 + 标明该分支用了 fallback。\n\n**Extract per ASIN**:\n- `title`:分析竞品标题结构\n- `features[]`:竞品的\"五点描述\"(这是 features,不是不存在的 bullet_points)\n- `productDescription[]`:A+ 模块(不是 a_plus_modules)\n- `bestSellersRankItems[]`:**用于 Category ID 解析**(见下方\"Category ID Resolution Rule\")\n- `breadCrumbs`:free-text 面包屑字符串,**仅作上下文展示用,不要尝试解析数字 ID**(实际是 UTF-8 `›` 分隔的明文 + HTML entity,但不含数字 ID)\n- `price` + `star` + `rating`:判定是哪一档对手。注意 `star` 是 0-5 分数,`rating` 是评分人数(评论计数)\n- **`aiReviewsSummary.items[]`**:⭐ 关键 — 这里已经有 LLM 总结好的优缺点摘要,**直接用,不需要再调 reviews**\n\n### Category ID Resolution Rule (BSR scan)\n\n解析叶节点 numeric ID 时:\n1. **主路径**:遍历 `bestSellersRankItems[]`,对每条 `.link` 字段 apply regex `/(\\d{5,})/`,取**最深 index** 命中的 numeric ID(注意:`[0]` 通常是 slug-only URL,如 `/Best-Sellers-Home-Garden/`,数字 ID 在 `[1]` 或更后)。**不要直接取 `[0]`**,实测 [0] 通常拿不到数字 ID。注意有些老类目 ID 仅 5 位(如 `172282` Electronics),所以是 `\\d{5,}` 不是 `\\d{6,}`。\n2. **不要用 `breadCrumbs`** 作为 ID 来源:free-text 字符串,不含数字 ID。\n3. **三级 fallback**:如果 `bestSellersRankItems[]` 全空(罕见,头部 Amazon 自营品可能这样),改用顶层 `category_id` 字段作为 leaf ID。\n4. **双失败兜底**:BSR 和 category_id 都不可用时,跳过类目验证,在最终报告 \"Category Node Status\" 注入 `⚠️ Category Node Audit Unavailable: ASIN 无 BSR 也无 category_id`,**不阻塞后续 phase**。\n5. 拿到 ID 后,可选调 `get_category_paths(categoryIds=[<id>], site=\"amz_us\")` 验证类目路径。\n\n   ```jsonc\n   { \"name\": \"get_category_paths\", \"arguments\": {\n     \"categoryIds\": [\"<leaf id>\"], \"site\": \"amz_us\"\n   }}\n   ```\n   **前提**: `categoryIds` 是字符串数组,ID 来自上面 `bestSellersRankItems[].link` 解析或顶层 `category_id`。\n   **Extract**: `data.items[]` → `categoryId` / `categoryName`(`Cn`) / `browseNodeNamePaths[]`(完整面包屑,如 \"Electronics > Headphones > Over-Ear\")。用这条 path 校验 Listing 关键词的类目相关性、确认 backend search terms 对齐正确叶子类目。\n\n### 消耗品/复购筛查(R2 提取后,本地判定,不耗 tool)\n\n判断 leaf category / 产品类型是否落在**周期性复购**赛道(Supplements / Beauty / Pet Food / Cartridges / Filters / Grocery 等)。命中则在五点 **BULLET 4** 走 LTV 分支,系统性扫 Title / features / 后端里的复购向量:\n- 明确容量(count / oz / ml / days of supply)\n- 消耗节奏说明(daily dose / replacement frequency)\n- Subscribe & Save (S&S) 转化触发器\n未命中 → BULLET 4 走标准场景化品牌文案。判定结果写进 CORE OPERATING REMINDERS 第 2 条。\n\n### R3 — 2 并发 (A3 + 最优 ASIN 差评)\n\n2 并发拉 A3 + 最优 ASIN 的差评(挑评论数 `rating` 最大的 ASIN):\n\n```jsonc\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A3>\", \"site\": \"amz_us\" }}\n{ \"name\": \"get_amazon_reviews\", \"arguments\": {\n  \"asin\": \"<top_competitor_asin>\",\n  \"site\": \"amz_us\",\n  \"pageCount\": 1,\n  \"filterByStar\": \"critical\",\n  \"sortBy\": \"helpful\"\n}}\n```\n\n**Extract reviews**: `data.json[0].data.results[]` 前 5 条;记 `title`+`content`+`star`+`helpful`。\n\n**Skip rule**: A1 + A2 的 `aiReviewsSummary` 已含明确负面信号 → 跳过 reviews 调用,省 5 积点。但仍然要拉 A3 的 PDP。\n\n**get_amazon_reviews 费率**: 实测 **5 积点/页**(后端 2026-05 实测口径,旧文档\"10/页\"已过时)。\n\n### Fast 整合：输出 5 段 Listing 草稿\n\n```\n1. 痛点反转分析（来自 R3 + aiReviewsSummary）\n   - 痛点 1: \"材质太软\" → 卖点反转: \"Reinforced TPU shell\"\n   - 痛点 2: \"续航虚标\" → 卖点反转: \"Verified 8h playback (in-house tested)\"\n\n2. 标题（直接可复制）\n   <Brand> + <核心词1> + <型号/规格> + <主卖点1> + <适配场景> + <核心词2> + <Pack of N>\n   实例:\n     SoundMax Wireless Earbuds, Bluetooth 5.4 with 8H Battery, ANC for iPhone/Android, IPX7 Sport Headphones, Pack of 1\n   ✓ 200 字符以内 ✓ 首 80 字含核心词 ✓ 无 ！?$ Best #1 Amazon 等违规词\n\n3. 五点描述（5 条固定语义角色，每条 180-250 字符；每条 = ALL CAPS 摘要 + Benefit + Feature）\n   1) 【核心反击 CORE ATTACK】反转 aiReviewsSummary 里最高频的差评(如\"材质软\"→\"Reinforced TPU shell\")\n   2) 【AI 助手拦截 AI INTERCEPT】直接回答 Rufus 引导问题(Full 档 R3.8 实时取;Fast 档无 Rufus → 从 aiReviewsSummary 正向高频意图派生,并标\"派生\")\n   3) 【社媒渴望 SOCIAL DESIRE】承接 off-site Reddit/TikTok 趋势卖点(Full 档 ai_search 取;Fast 档无 → 用品类通用生活场景)\n   4) 【复购 & LTV / 场景化】消耗品命中 → 周期(如 \"60-Day Supply\" / \"Replace Every 3 Months\")+ 用量说明 + S&S 经济钩子;非消耗品 → 标准生活场景品牌化\n   5) 【防御性品质 DEFENSIVE QUALITY】保住 aiReviewsSummary 里产品原生的正向资产,别在改写中弄丢\n\n4. Backend Search Terms（249 字节硬上限）\n   long-tail-1 long-tail-2 misspelling spanish-variant ...\n\n5. 待 Full 档处理\n   - ⏭ Rufus AI 助手意图拦截(BULLET 2 升级为实时数据)\n   - ⏭ IP 合规筛查（标题里有 X / Y / Z 三个潜在风险词，含文字商标）\n   - ⏭ 多页 VOC 深度挖掘 + 站外趋势\n```\n\n---\n\n## Full 档 SOP（在 Fast 基础上 +2-3 回合 ≤ 4min）\n\n仅在用户明示\"完整 / 深度 / 包括 IP / 包括外部 VOC\"时触发。\n\n### R3.8 — on-site Rufus 意图拦截 (search_amazon_alexa) — 升级 BULLET 2\n\nFast 档的 BULLET 2 是从 aiReviewsSummary **派生**的;Full 档用 Rufus 实时数据把它升级成\"直接回答买家在 PDP 上问 AI 助手的问题\"。\n\n**⏱ 这是长响应接口 —— 调用前必读**:\n- `search_amazon_alexa` 是 Rufus 实时生成,**单 prompt 通常 60–90s,最大可达 ~200s**;计费 **6 积点/prompt**。\n- **强制只传 1 个 prompt**: 多 prompt 线性叠加(N prompt ≈ N×6 积点 + N×响应时间),极易超 200s。永远 `prompts` 只放 1 条。\n- 调用前在用户消息里报:\"将查 1 次 Rufus 引导问题,约 6 积点 / 最长 ~200 秒,是否继续?\"\n\n```jsonc\n{ \"name\": \"search_amazon_alexa\", \"arguments\": {\n  \"prompts\": [\"<核心品类名词 + 最主导的 1 个使用场景词,组成 1 条干净复合短语,如 'wireless earbuds for running'>\"]\n}}\n```\n> 不要传 `marketplaceId`(固定 amz_us,只接受 `prompts` + 可选 `screenshot`)。**NO-URL 速度模式**: 只传干净复合名词短语,严禁塞原始 URL 或整段对话。\n\n**双 502 resilience**: 502 / 超时 → retry 1 次(2s backoff)。仍失败 → **不中断核心流程**,平滑降级:BULLET 2 改从 aiReviewsSummary 的正向高频意图派生,并在 BULLET 2 + CORE OPERATING REMINDERS 第 3 条注入 `[Partial Report: AI 助手数据因上游超时暂不可用]`,明确标为派生而非 Rufus 实时文本。\n\n### R4/R5 — 2 并发拉 A2+A3 差评 + 单发 ai_search 外部 VOC\n\n⚠️ \"将多抓 2 个 ASIN 各 1 页差评 + AI 搜该品类用户抱怨,约 13 积点 / ~40 秒,是否继续?\"(reviews 5pt × 2 + ai_search 2pt = 12pt + buffer = 13pt)\n\n回合 1 (5pt):\n```jsonc\n{ \"name\": \"get_amazon_reviews\", \"arguments\": {\n  \"asin\": \"<A2>\", \"pageCount\": 1, \"filterByStar\": \"critical\", \"sortBy\": \"helpful\"\n}}\n{ \"name\": \"get_amazon_reviews\", \"arguments\": {\n  \"asin\": \"<A3>\", \"pageCount\": 1, \"filterByStar\": \"critical\", \"sortBy\": \"helpful\"\n}}\n```\n回合 2 (单发):\n```jsonc\n{ \"name\": \"ai_search\", \"arguments\": {\n  \"query\": \"what do people complain about <product_category>\",\n  \"mode\": \"overview\"\n}}\n```\n\n**注意**: `ai_search` 必填参数是 `query: string`(0.3.0 新名;旧名 `google_ai_search` 已废,不再可用)。可选 `mode: 'overview' | 'ai_mode'`(默认 'overview')。\n\n**Extract**:\n- 两个 ASIN 各 5 条差评 → 痛点池扩容\n- ai_search AI Overview 的 `references[].url` → 外部抱怨真实来源\n\n**Cluster**: LLM 本地聚类 3 个 ASIN + 外部 = 12 条痛点 → Top 5 主题。\n\n### R6 — 2 并发 wipo_search(最多 3 个高风险词)\n\n从 R1-R5 形成的标题草稿里抽 3 个潜在风险词(如 Velcro / Kevlar / Teflon / 拟用品牌名)。**分批 2 并发**:\n\n```jsonc\n// 第一批\n{ \"name\": \"wipo_search\", \"arguments\": { \"source\": \"USID\", \"prod\": \"<word1>\", \"num\": 5 }}\n{ \"name\": \"wipo_search\", \"arguments\": { \"source\": \"USID\", \"prod\": \"<word2>\", \"num\": 5 }}\n```\n第二批(如有):\n```jsonc\n{ \"name\": \"wipo_search\", \"arguments\": { \"source\": \"USID\", \"prod\": \"<word3>\", \"num\": 5 }}\n```\n\n**⚠️ 严禁** `source=\"USTM\"` — 后端不支持文字商标(text trademark)枚举。文字商标排查走下方 R6b 的 `ai_search`。\n\n**判定**:\n- 🔴 status='ACT' 且 hol 是大公司 → 必须替换\n- 🟡 status='ACT' 但 hol 是小公司 → 建议替换\n- 🟢 0 hits 或 status='EXP' → 安全\n\n**Image 引用**: `IMG_DATA[].filename` 是**相对路径**(如 `26/06/D0992606-0001.1-th.jpg`),不能直接 paste 当 URL。最终报告引用专利图时,贴 `DETAIL_URL` 字段(完整 WIPO 记录 URL),IMG filename 作 supporting evidence。\n\n### R6b — 文字商标预筛 (ai_search brand legal dork,单发)\n\nwipo USID 只覆盖外观;标题/Backend 里的**文字词商标**要用 ai_search 单独扫,把拟用词映射到真实法律实体并查公开注册冲突:\n\n```jsonc\n{ \"name\": \"ai_search\", \"arguments\": {\n  \"query\": \"\\\"<拟用词/品牌词>\\\" trademark (USPTO OR \\\"registered\\\" OR \\\"™\\\" OR \\\"®\\\")\",\n  \"mode\": \"overview\"\n}}\n```\n\n**Extract**: 命中的已注册竞品文字词 → 列入禁用词,从公开文案 + Backend 剔除。**初步风险雷达,非正式法律清关。**\n\n### Full 报告（在 Fast 5 段基础上扩 2 段）\n\n```\n6. 完整 VOC 矩阵\n   Top 5 痛点 + 来源 (Amazon ASIN X / Google AI Overview / Reddit ref) + 反转卖点\n   (BULLET 2 若走了 Rufus 双 502 派生 fallback,这里注明)\n\n7. IP 合规报告(分两类来源)\n   🎨 设计专利(wipo USID):\n   | 拟用词 | WIPO 状态 | 持有人 | 风险等级 | 替代词 |\n   | Velcro | ACT | Velcro Companies | 🔴 | Hook and loop fastener |\n   🔤 文字商标(ai_search legal dork): 命中的已注册文字词 → 禁用词清单 + 替代建议\n\n   ⚠️ 免责：AI 不构成法律意见。开模/大批量备货前请咨询专业 IP 律师。\n```\n\n---\n\n## 文案硬规则（不管 Fast/Full 都遵守）\n\n### 标题位段公式\n```\n[品牌 4-15] + [核心词1 12-25] + [型号/规格 5-15] + [主卖点 15-30]\n+ [适配场景 10-20] + [核心词2 10-20] + [包装/数量 5-10]\n```\n\n### 标题禁令\n- ❌ ！ ? $ Best #1 Amazon\n- ❌ 重复关键词\n- ❌ Three-Pack（应写 \"3 Pack\"）\n- ❌ 80 字断点处截断核心词\n- ⚠️ 200 字符硬上限\n\n### 五点描述\n- 每条 180-250 字符，硬上限 500\n- 结构：`[ALL CAPS 摘要] + Benefit + Feature`\n- 5 条覆盖 5 个不同长尾词；单词出现 ≤ 3 次\n\n### Backend Search Terms\n- 249 字节硬上限\n- 去重 + 零侵权词\n- 含长尾、拼写变体、西语词（US 市场）\n\n## 与其他 SKILL 的协同\n\n- 🔄 用户问\"我该做哪个品\" → 引导 `amazon-product-explorer`\n- 🔄 用户问\"竞品有动作吗\" → 引导 `amazon-daily-competitor-radar`\n- 🔄 IP 风险细查 → 引导 `ip-clearance`\n- 🔄 外部 SERP 调研 → 引导 `google-research`\n\n## 反模式\n\n- ❌ 引用不存在字段:`negative_reviews_top5` / `positive_reviews_top5` / `backend_keywords` / `bullet_points` / `a_plus_modules` / `monthlySoldVolume` / `bsr_category_path` (真实是 `features[]` / `productDescription[]` / `sales` / `bestSellersRankItems[]` / 评论用 `get_amazon_reviews`)\n- ❌ Fast 档调 `ai_search` — 30s 太慢\n- ❌ 用 `google_ai_search` / `google_trends` — 已在 0.3.0 改名为 `ai_search` / `keyword_trends`,旧名直接 ToolNotFound\n- ❌ 一回合 ≥ 3 个 scrapeApi 并发 → 实测会被业务码 9200 拒\n- ❌ 同时跑 3 个 ASIN 的 reviews → 15 积点,必须先告知预算\n- ❌ Title 用 Velcro / Kevlar / Teflon 等已知商标词不查 WIPO\n- ❌ Category ID 直接取 `bestSellersRankItems[0].link` → `[0]` 通常是 slug-only URL,必须遍历整个数组,取**最深 index** 含 `/(\\d{5,})/` 命中的那个\n- ❌ 尝试从 `breadCrumbs` 解析数字 ID → 这是 free-text 字符串,不含数字 ID;只作上下文展示用\n- ❌ `wipo_search(source=\"USTM\")` → 后端不支持文字商标,只 `USID` 设计专利;文字查询走 `ai_search`\n- ❌ `search_amazon_alexa` 传 `marketplaceId` → 此工具固定 amz_us,只接受 `prompts` + 可选 `screenshot`\n- ❌ `search_amazon_alexa` 一次传多个 prompt → 长响应接口(单 prompt 60–90s,最大 ~200s),多 prompt 线性叠加易超时;**永远只传 1 条**\n- ❌ Fast 档调 `search_amazon_alexa` → 长响应 + 6 积点,只在 Full 档 R3.8 调;Fast 档 BULLET 2 从 aiReviewsSummary 派生\n- ❌ 用 `keywords`(复数)调 search_amazon → 真实参数 `keyword`(单数,REQUIRED)\n- ❌ `marketplaceId=\"ATVPDKIKX0DER\"` → 这是 Amazon merchant ID,不是 filter_niches/filter_categories 入参;后者要 ISO 站点码 `\"US\"`/`\"UK\"`/`\"DE\"`\n- ❌ Phase 1 abort 条件用\"全部字段空\"才 abort → 改用 any-field-empty 规则,任一核心字段为空就在最终报告标 `⚠️ Partial Data Warning`,只在 4 个核心字段**全空**才完全 abort\n- ❌ 先凭直觉说\"做不到\"再实测可查 → 违反 R-11,先调 `pangolinfo_capabilities` 再下结论\n\n---\n\n# 核心规则 / Core Rules（本 skill 自包含，无需外部文件）\n\n> 以下规则对所有 Pangolinfo skill 通用。本文件已内联，单独加载即生效。\n\n## R-1 鉴权与默认值\n\n### API Key（两套，别混）\nPangolinfo 有**两套独立的 key 注入路径**，对应两种运行形态：\n\n- **Skill 侧（本文件所在形态）**：AI 从**环境变量 `PANGOLINFO_API_KEY`** 读取 key。这是 skill 默认的 key 来源——由用户在运行环境里设好，AI **直接读、不要反复追问用户**。\n- **MCP server 侧**：key 走 MCP 配置（CLI `--api-key=<key>` / 同名 env `PANGOLINFO_API_KEY` / `~/.pangolinfo/config.json` / hosted URL `?api_key=<key>` 或 HTTP 头 `Authorization: Bearer <key>`）。\n\n两者**互相独立**：skill 侧改 env var 不会影响已连上的 MCP server，反之亦然。**key 是 JWT 格式（`eyJhbGci...` 三段式、点分隔），不是 `pgl_` 前缀**——从官网控制台复制出来长什么样就照原样用，别因为不是 `pgl_` 开头就判成无效。\n\n### First-time setup（工具没注册 / 首次 AUTH 失败时）\n若 `pangolinfo_capabilities` 探针发现工具**未注册**，或任一 tool 直接返回 **AUTH**，说明 key 尚未配好。此时**停止跑 SOP**，引导用户：\n\n1. 到 **https://www.pangolinfo.com** 登录，复制 API Key（JWT 格式，`eyJhbGci...` 开头；新用户有免费额度）。\n2. 配置 key：\n   - Skill 形态 → 设环境变量 `export PANGOLINFO_API_KEY=\"eyJhbGci...\"`。\n   - MCP 形态 → 写进 `~/.pangolinfo/config.json`，或 MCP URL `?api_key=eyJhbGci...`，或头 `Authorization: Bearer eyJhbGci...`。\n3. **重启 / 重连**（env var 与 MCP 配置都不热加载）。\n4. 让用户配好后再来。AI **不能**替用户改配置或重连。\n\n### 默认值\n- 默认市场：`marketplaceId: \"US\"` / `site: \"amz_us\"`；US 邮编默认 `\"10041\"`（纽约）。除非用户明示其他站点。\n- 报告语言**与用户提问语言一致**；但 Listing 正文（Title / Bullets / Backend）始终用目标市场语言（默认英文）。\n\n## R-2 数据真实\n\n- **只用 MCP 返回的硬数据**。**绝不编造**搜索量、排名、月销、评论数、Buy Box 卖家等。\n- 数据缺失时明确告知用户\"该字段后端未返回\"或\"需手动补充\"。不要尾随免责声明、不要写\"约\"\"大概\"。\n- 每个数字必须可回溯到具体 tool 调用与字段路径（如 `get_amazon_product.data.json[0].data.results[0].star`）。\n\n## R-3 调用前先看能力\n\n第一次接入时调一次 `pangolinfo_capabilities { detail: \"summary\" }`（0 积点 / 2ms），拿到**当前**的 tool 清单 + workflows + tips。工具数量与名称会随版本变化，**以本次返回为准，不要钉死数字、不要凭旧记忆调 tool**。该调用同时是连接健康探针：工具未注册或返回 AUTH → 转 R-1 first-time setup。\n\n## R-4 时效性硬规则（**最重要**）\n\n### R-4a 双档模式\n\n每个 SOP 强制提供两档：\n\n| 档位 | 触发条件 | 总耗时 | 总积点 | 总 tool 调用次数 |\n|---|---|---|---|---|\n| **Fast** | 默认 / 用户没明说\"详细/深度/完整报告\" | **≤ 90 秒** | **≤ 8 积点** | **≤ 6 次** |\n| **Full** | 用户明说\"详细 / 完整 / 深度 / 全面\" | ≤ 5 分钟 | ≤ 30 积点 | ≤ 15 次 |\n\n跑 Fast 档时**禁止**调下列慢/贵 tool：\n- ❌ `get_amazon_reviews`(5pt/页 + 10s/次)\n- ❌ `ai_search` mode='ai_mode'（30-60s）\n- ✅ `ai_search` mode='overview' 最多 1 次\n\n跑 Full 档时各项上限：\n- `get_amazon_reviews` ≤ 3 个 ASIN × pageCount=1\n- `ai_search` ai_mode ≤ 1 次，overview ≤ 2 次\n- `wipo_search` ≤ 3 次\n\n### R-4b 并行调用（最关键的加速手段）\n\n**独立的 tool 调用应在同一回合并发发送**，但受 scrapeApi 速率限制约束。\n\n#### 后端速率：实测 **2 QPS 稳定**(3 QPS 会触发 9200 \"no content\")\n\n- ✅ 同一回合**最多并发 2 个** scrapeApi 调用（含 search_amazon / get_amazon_product / list_* / filter_* / search_categories / get_category_* / get_amazon_reviews / wipo_search / ai_search / keyword_trends / search_local_maps）— 2026-05-28 真实压测确认 3 并发会被后端拒\n- ✅ `pangolinfo_capabilities` 不走后端，可任意并发\n- ❌ 一次同时发 3 个 `search_amazon` 会有至少 1 个返回业务码 `9200 \"Scrape failed: no content returned\"`\n\n#### 推荐节奏\n\n| 总调用数 N | 节奏 |\n|---|---|\n| N ≤ 2 | 一回合 2 并发 |\n| 3 ≤ N ≤ 6 | 分多回合：每回合 2 并发,回合之间间隔 ~1s |\n| N ≥ 7 | 重新设计 SOP，先早返再决定是否继续 |\n\n#### 并行 vs 串行判定\n\n- 不依赖上一步返回字段 → 并行(但不超 2)\n- 依赖上一步字段 → 串行\n- 同种 tool 的批量调用(如 2 个 ASIN 详情) → 一回合 2 并发;3+ ASIN 分批\n\n#### 遇到 RATE_LIMIT 怎么办\n\n收到 `[RATE_LIMIT]` 错误：等 ~1s 重试该 1 个 tool（不要全部重试），其余已成功的别动。连续 2 次 RATE_LIMIT 或业务码 9200 说明 QPS 节流,降到每回合 1 并发(完全串行)。\n\n### R-4c 早返\n\n任一步骤拿到\"足够下结论\"的数据后**立即生成报告**，不要为凑齐 SOP 强跑：\n\n| 触发 | 立即返回 |\n|---|---|\n| `filter_niches` 返回 0 条 | \"无符合条件的 niche，建议放宽 X、Y 参数\" + 给出参数建议清单 |\n| `wipo_search` 命中红线（status='ACT' 且 hol 是大公司）| 该方向淘汰，跳过后续单品深拆 |\n| 用户主 ASIN 在 SERP Top 3 + 无新 BSR 异动 | 给\"健康\"判定，跳过评论挖掘 |\n| `get_amazon_product` upstream 404 (\"url not found\") | 告知 ASIN 失效，跳过后续 |\n\n### R-4d 慢操作前先打预算\n\n调下列 tool 前**必须**在用户消息里报\"将花 X 积点 / 约 Y 秒\"，让用户有机会取消：\n\n- `get_amazon_reviews`(5pt/页)\n- 同一回合并发 ≥ 3 个 tool 调用(超过 2 并发的批次)\n- `ai_search` ai_mode（30-60s）\n\n## R-5 不暴露原始 JSON\n\nAI 的回答里**不要**贴原始 tool 返回。结构化呈现：\n\n- 列表 → 表格（每行一个 ASIN/niche/类目）\n- 单品 → 卡片（关键字段分组：标识 / 价格 / 流量 / 评价 / 卖家）\n- 趋势 → 用简短描述（\"上升 12% / 12 个月趋势平稳 / Q4 季节性\")\n- 报告 → 各 SKILL 自己的固定段落结构\n\n## R-6 单工具直通\n\n用户问简单单步查询时**不要强行跑完整 SOP**，直接调对应单 tool 给结果：\n\n| 用户说 | 直接调 | 不要跑 SOP |\n|---|---|---|\n| \"查 ASIN B0XXX\" | `get_amazon_product` | ❌ product-discovery |\n| \"X 类目 best sellers\" | `list_bestsellers` | ❌ |\n| \"Apple 在美国的专利\" | `wipo_search source=USID hol='Apple'` | ❌ ip-clearance SOP |\n| \"wireless earbuds 热度趋势\" | `keyword_trends` | ❌ |\n| \"B0XXX 的差评\" | `get_amazon_reviews filterByStar=critical pageCount=1` | ❌ amazon-listing-optimization |\n\n## R-7 不推荐外部工具\n\n不主动提 Keepa / SellerSprite / Helium 10 / Jungle Scout 等竞品。用户问起再说\"本工具不直接提供 X 能力，可考虑 ...\"。\n\n## R-8 报告语气\n\n- 中性，可执行\n- 禁用\"必跌\"\"碾压\"\"稳赚\"\"绝对蓝海\"等绝对化承诺词\n- 禁用情绪词\"令人震惊\"\"惊喜\"\n- 每个建议带\"为什么\"（基于哪个数据）和\"做什么\"（具体动作）\n\n## R-9 错误处理\n\nMCP server 已把每个错误渲染成结构化三行（`[CODE]` + 可否重试 + 用户动作）。AI 的职责是**按 CODE 语义正确反应，别瞎重试、别原地打转**。6 类错误：\n\n| Code | 可否重试 | 处理 |\n|---|---|---|\n| `AUTH` | ❌ terminal | key 无效/缺失/过期。**用同一个 key 重试一定还失败 → 绝不重试**。停止 SOP，按 R-1 first-time setup 引导用户：复制正确 key（https://www.pangolinfo.com）→ 写进 env `PANGOLINFO_API_KEY` 或 MCP 配置 → **重启/重连**（不热加载）。AI 无法替用户改配置或重连。⚠️ 坑：invalid key 在后端是 bizCode **1004**（不是 HTTP 401），别因为\"不是 401\"就误判成别的错。 |\n| `QUOTA` | ❌ terminal | 积分不足 / 套餐过期，重试无用。提示用户去 https://www.pangolinfo.com 充值或升级，停止本次 SOP。 |\n| `BAD_INPUT` | ❌ terminal | 参数有误，**重试相同参数无用**。检查参数名/值（`marketplaceId` 非 `marketplace_id`、ASIN、zipcode、parserName 等，见 R-10），修正后才重试。 |\n| `RATE_LIMIT` | ✅ 临时 | 含业务码 `9200`(\"no content\")/`4029`/`4030`。等 ~1-5s 重试**该一个**请求；同时降回合并发到 1。连续 2 次仍失败则跳过本步。 |\n| `SERVER` | ✅ 临时 | 服务端临时错误（含 9100/9101）。重试 1 次；仍失败告知用户跳过本步，继续 SOP。 |\n| `NETWORK` | ✅ 临时 | 网络异常。提示用户检查到 www.pangolinfo.com 的连接后重试。 |\n\n**总则**：terminal 类（AUTH/QUOTA/BAD_INPUT）重试是浪费，直接停或修参数；transient 类（RATE_LIMIT/SERVER/NETWORK）才重试，且只重试失败的那一个、别全批重发。\n\n## R-10 字段名速查（最常踩的坑）\n\n| ❌ 错（直觉常写的） | ✅ 对（真实字段）|\n|---|---|\n| `marketplace_id` | `marketplaceId` (值是 ISO 站点码 \"US\"/\"UK\"/\"DE\",不是 Amazon merchant ID `ATVPDKIKX0DER`) |\n| `niche_title` | `nicheTitle` |\n| `search_volume_t90_min` | `searchVolumeT90Min` |\n| `top5_brands_click_share_max` | `top5ProductsClickShareT360Max`（products 不是 brands）|\n| `return_rate_t360_max` | `returnRateT360Max` |\n| `monthly_sales_min` | （不存在）→ 用 `minimumUnitsSoldT360` |\n| `opportunity_score` | （不存在）→ 自己算 |\n| `category_id` | `browseNodeId`（amzscope 系列）|\n| `categories[]` | `data.items.data[]` |\n| `products[].organic_rank` | `results[].rank` |\n| `products[].sp_rank` | `results[].sponsored` |\n| `negative_reviews_top5` | 不存在 → 用 `get_amazon_reviews filterByStar='critical'` |\n| `positive_reviews_top5` | 不存在 → 用 `get_amazon_reviews filterByStar='positive'` |\n| `bullet_points` | `features[]` |\n| `a_plus_modules` | `productDescription[]` |\n| `selling_rank` | `bestSellersRankItems[]` |\n| `category_path` | `breadCrumbs` |\n| `buy_box_seller` | `seller.name` |\n| `search_amazon` 抓 BSR | ❌ → 用 `list_bestsellers` |\n| `search_amazon` 抓 New Releases | ❌ → 用 `list_new_releases` |\n| `search_amazon` 传 `limit` | ❌ 没有，分页用 `page` |\n| `search_amazon_alexa` 传 `marketplaceId` | ❌ 不支持,固定 amz_us;只接受 `prompts: string[]` + 可选 `screenshot` |\n| `bsr_category_path` | ❌ 不存在;用 `bestSellersRankItems[]` 数组 + `category_id` 顶层字段 |\n| `monthlySoldVolume` | ❌ 不存在;`search_amazon` 用 `sales` 字段(live 月销字符串)|\n\n完整字段对照见 MCP 各 tool 的 `Returns:` 段落，或调 `pangolinfo_capabilities { detail: \"full\" }`。\n\n## R-11 不要凭直觉判定\"做不到\"\n\n在告诉用户\"这个数据拿不到\"\"这个是付费功能\"\"只能估算\"之前,**必须**先调 `pangolinfo_capabilities { detail: \"summary\" }`(免费,0 积点)或翻看具体 tool 的 description / inputSchema 确认。Pangolinfo MCP 实际能筛/能返回的字段超出大多数 AI 训练时的常识范围,包括但不限于:\n\n- **退货率**: `filter_niches.returnRateT360Max` 筛选 + 返回字段 `returnRateT360` (具体数值)\n- **GMV/月销额**: `filter_categories.netShippedGmsSum` + niche 维度可用 `unitSoldSum × avgPrice` 推算\n- **品牌集中度**: `top5ProductsClickShareT360` / `top20BrandsClickShareT360`\n- **新品入场率**: `newBrandCountT90` / `newProductsLaunchedT180`\n- **广告 CPC**: `avgAdSpendPerClick`\n\n**凭直觉先说\"做不到\"再实际能查到 → 用户直接失去信任**。先查 capabilities,再下结论。\n\n## R-12 通用防呆速查（跨 tool 硬护栏 — 调用前自检）\n\n下面是所有 Pangolinfo MCP tool 的**通用防呆清单**，每条都对应一个真实会被后端拒/扣冤枉积点的坑。调任何 tool 前对照一遍。\n\n### R-12a 参数护栏（传错就被拒 / 扣冤枉积点）\n\n| 坑 | ❌ 错 | ✅ 对 |\n|---|---|---|\n| 市场码 | `marketplaceId=\"ATVPDKIKX0DER\"`(merchant id) | ISO 站点码 `\"US\"`/`\"UK\"`/`\"DE\"` |\n| 邮编跨国 | `amz_jp` + 美国邮编 `10001` | 邮编必须匹配 `site` 国家(amz_us→美国邮编 / amz_jp→日本邮编);不确定就**别传**,后端按国家随机挑 |\n| 关键词参数 | `keywords`(复数) | `search_amazon.keyword`(单数,REQUIRED) |\n| 分页 | `search_amazon` 传 `limit` | 用 `page`(无 limit 参数) |\n| filter 系列 size | `size: 50` | `filter_categories`/`filter_niches` 的 `size`/`page` **后端硬上限 10**(filter_niches 默认 3),超出被截 |\n| filter 必填 | `filter_categories` 漏 `timeRange`/`sampleScope` | 二者**必填**(常用 `l7d` + `all_asin`);`filter_niches` 必填 `marketplaceId` |\n| filter_niches 入参 | 传 `categoryId` | 只认 `nicheId`/`nicheTitle`;0-1 小数字段(`top5ProductsClickShareT360Max`/`returnRateT360Max`)别传整数 |\n| alexa | `search_amazon_alexa` 传 `marketplaceId` | 固定 amz_us,只接受 `prompts: string[]` + 可选 `screenshot`;**强制每次 1 条 prompt**(6 积点/条,60-90s,多条线性叠加可能 >200s) |\n| scrape_url | 同时传 / 都不传 `content` 和 `url` | **二选一(互斥)**;筛选/排序/翻页**只能**走 `url` 模式;`parserName` 必须匹配页面类型 |\n| wipo_search | `source=\"USTM\"` 查文字商标 / 漏 `source` | `source` 必填;文字商标走 `ai_search`,设计专利用 `source=\"USID\"`;**CNID + `hol`/`prod` 模糊查必须再配 `id`/`rd`/`status`/`lcs` 之一**(否则后端拒全表扫);USID 无 `status` 字段 |\n| ai_search | 一次塞 >5 个 followups | `query` 必填(min 1);`followups` ≤5;Fast 档禁 `ai_mode`(30-60s) |\n| keyword_trends | 把 0-100 当绝对搜索量 / 传 1 个词 | 那是相对热度;一次 ≤5 词;绝对量去 `filter_niches` |\n\n### R-12b 错误闭环（拿到返回先自检，别盲目往下走）\n\n| 返回情形 | 防呆动作 |\n|---|---|\n| `results=[]` / `recsList` 空 / niche 0 条 | 空结果**不一定扣积点**但 search 系列扣;按各 SOP 早返(剥词重试 / 放宽筛选 / 换站点),别空手编数据(R-2) |\n| 业务码 `9200` \"no content\"(含 Akamai 挑战) | 归 SERVER/RATE_LIMIT,可重试:等 1-5s 重试**该一个**,降并发到 1;连续 2 次失败跳过本步 |\n| `recsList`(bestsellers/new_releases) | 它是 **JSON 字符串数组**,必须**二次 `JSON.parse`**,别当普通数组用 |\n| `get_amazon_product` 头部自营品 PDP 退化 | `bestSellersRankItems=[]`+`brand=\"\"`+`category_id=\"\"` → 不阻塞,从 `search_amazon` 的 `title/price/star/rating/sales/badge` 兜底 |\n| `twentyFourHourOldSalesRank`/`percentageChange` 空串 | 后端没抓到 24h delta,**不可依赖**,改看 BSR 绝对值 |\n| AI Overview 未触发 | SGE 不是每次都有,缺失时降级 organic 结果,别硬编引文 |\n| upstream 404 / \"url not found\" | ASIN/页面失效,告知用户跳过,别重试 |\n\n### R-12c api_key 无效判断（别原地打转）\n\n- key 来源**两套**:skill 侧读 env var `PANGOLINFO_API_KEY`;MCP 侧走 CLI/config/URL(`?api_key=<key>` 或 `Authorization: Bearer <key>`)。**key 是 JWT(`eyJhbGci...`),不是 `pgl_` 前缀**。\n- **AUTH 是 terminal**:同 key 重试一定再失败 → **绝不重试**。坑:invalid key 在后端是 bizCode **1004**(不是 HTTP 401),别因\"不是 401\"误判成 SERVER。\n- 处理:停 SOP → 引导用户到 `https://www.pangolinfo.com` 拿 key → 写 env/config → **重启/重连**(不热加载;agent 无法替用户改配置或重连)。详见 R-1 / R-9。\n\n### R-12d 路由防呆（别用错 skill / 用错 tool）\n\n- 单步查询走单 tool,别强跑整 SOP(R-6):查 ASIN→`get_amazon_product`;类目榜→`list_bestsellers`;趋势→`keyword_trends`;差评→`get_amazon_reviews filterByStar=critical`。\n- tool 间别越界:要 BSR/新品榜别用 `search_amazon`(用 `list_bestsellers`/`list_new_releases`);要 niche 别用 `filter_categories`(用 `filter_niches`);要具体商品别用 filter 系列(用 `list_category_products`/`search_amazon`)。\n- skill 间别越界:选品→`amazon-product-explorer`;日常监控→`amazon-daily-competitor-radar`;写 Listing→`amazon-listing-optimization`;站内抓取→`pangolinfo-amazon-scraper`;Google/SGE→`pangolinfo-ai-serp`;类目利基→`pangolinfo-amazon-niche`。\n\nFile v4.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn78jnk9jg3dj6dqkcn0rdz4md83f361\",\n  \"slug\": \"pangolinfo-amazon-listing-optimization\",\n  \"version\": \"4.0.0\",\n  \"publishedAt\": 1787214612004\n}\n\nFile v4.0.0:skill-card.md\n\n## Description:\n\nHelps Amazon sellers and operators optimize listings by using competitor product data, review-derived customer pain points, keyword placement, backend search terms, and IP compliance checks to produce copy-ready listing content.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pangolinfo](https://clawhub.ai/user/pangolinfo)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal Amazon marketplace sellers and commerce operators use this skill to rewrite and optimize product listings, including titles, bullet points, backend search terms, and review-informed positioning. The skill is intended for workflows that combine Amazon product evidence with human review before publishing to Seller Central.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A real Pangolinfo API key could be exposed if credentials are placed in URLs, logs, or model-visible transcripts.\n\nMitigation: Prefer MCP or runtime-managed authentication, keep credentials out of URLs and generated text, and review the skill before installing it in environments that contain a real Pangolinfo key.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/pangolinfo/skills/pangolinfo-amazon-listing-optimization)\n- [Pangolinfo publisher profile](https://clawhub.ai/user/pangolinfo)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, API calls, guidance]\n\n**Output Format:** [Markdown listing analysis and copy drafts with structured sections]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include Amazon listing titles, bullet points, backend search terms, VOC analysis, category notes, and IP compliance guidance for human review.]\n\n## Skill Version(s):\n\n4.0.0 (source: server release evidence)\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 v3.1.0: 3 files, 17206 bytes\n\nFiles: skill-card.md (2813b), SKILL.md (33267b), _meta.json (157b)\n\nFile v3.1.0:SKILL.md\n\n---\nname: amazon-listing-optimization\ndescription: |\n  Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\".\n  Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。\n  NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon-daily-competitor-radar) / 单纯 ASIN 详情 (call get_amazon_product directly).\nversion: 3.1.0\nmcp_tools_used:\n  - pangolinfo_capabilities\n  - search_amazon\n  - get_amazon_product\n  - get_amazon_reviews\n  - ai_search\n  - wipo_search\n  - get_category_paths\n  - search_amazon_alexa\napplies_to: [claude-code, cursor, cline, windsurf, hermes, codex, openclaw]\nbudget:\n  fast: { duration: \"≤ 90s\", cost: \"≤ 10 积点\", calls: \"≤ 5\" }\n  full: { duration: \"≤ 4min\", cost: \"≤ 40 积点\", calls: \"≤ 12\" }\n---\n\n# Amazon Listing 优化 SOP\n\n> 跑前必读：本文件末尾《核心规则 / Core Rules》章节（已内联，自包含）。\n> 角色：资深 Amazon 运营 + 文案专家。所有输出可直接复制到 Seller Central。\n\n## 用户触发与档位\n\n**Fast 档**（默认 ≤90s）：\n- \"帮我写个 Listing for wireless earbuds\"\n- \"我的标题怎么改\"\n- \"Backend Search Terms 怎么填\"\n\n**Full 档**（用户明示 ≤4min）：\n- \"完整重写 Listing 包括 A+ 文案\"\n- \"深度 VOC 分析后再写\"\n- \"包括 IP 合规筛查\"\n\n**单工具直通**：\n- \"查 X 的差评\" → `get_amazon_reviews filterByStar=critical pageCount=1`\n- \"X 词在美国注册商标了吗\" → `wipo_search source=USID hol=X`\n\n---\n\n## Fast 档 SOP(4 回合 ≤ 90s)\n\n只用 PDP 自带的 `aiReviewsSummary` + 1 次 critical reviews,**不调** ai_search(30s 太慢)。\n\n```\n回合 1 (5s)   search_amazon                                          ← 找 Top 3 标杆 ASIN\n回合 2 (5s)   get_amazon_product(A1) | get_amazon_product(A2)         ← 2 并发\n回合 3 (5s)   get_amazon_product(A3) | get_amazon_reviews(最优 ASIN)  ← 2 并发(reviews 5pt)\n回合 4 (5s)   get_category_paths (可选,验证类目锚定)                  ← 单发\nLLM 整合 (~30s)\n```\n\n**总耗时**:~30s tool + 30s LLM ≈ **60-75s**\n**总成本**:~8 积点(reviews 5pt + 3 个 PDP 各 1pt)\n**总调用**:5-6 次 tool\n\n**并发硬上限**: 2(实测 2026-05-28:3 并发会触发后端业务码 9200 \"no content\")。\n\n### R1 — 找 Top 标杆 ASIN\n\n```jsonc\n{ \"name\": \"search_amazon\",\n  \"arguments\": { \"keyword\": \"<core_keyword>\", \"site\": \"amz_us\" }}\n```\n\n**Extract**: `data.json[0].data.results[]` 取前 3 个非赞助（`sponsored=\"0\"`）ASIN，按 `rank` 升序。\n\n**Skip rule**: 用户已给了 3 个对标 ASIN → 跳过 R1。\n\n### R2 — 2 并发拉标杆 PDP (A1 + A2)\n\n```jsonc\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A1>\", \"site\": \"amz_us\" }}\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A2>\", \"site\": \"amz_us\" }}\n```\n\n**Data Ingestion Guard (any-field-empty)**: 对每个 ASIN,检查 4 个核心字段:\n- `title` (string)\n- `features` (array,至少 3 条)\n- `aiReviewsSummary` (object)\n- `bestSellersRankItems` (array,至少 1 条)\n\n如果**全部**为 null → 输出 `🔴 Abort Maneuver: Target ASIN data body is completely empty.` 停止。\n如果**任一**为 null(其他有数据) → 继续,但在 Section \"Data Completeness Warnings\" 里列出缺失字段 + 标明该分支用了 fallback。\n\n**Extract per ASIN**:\n- `title`:分析竞品标题结构\n- `features[]`:竞品的\"五点描述\"(这是 features,不是不存在的 bullet_points)\n- `productDescription[]`:A+ 模块(不是 a_plus_modules)\n- `bestSellersRankItems[]`:**用于 Category ID 解析**(见下方\"Category ID Resolution Rule\")\n- `breadCrumbs`:free-text 面包屑字符串,**仅作上下文展示用,不要尝试解析数字 ID**(实际是 UTF-8 `›` 分隔的明文 + HTML entity,但不含数字 ID)\n- `price` + `star` + `rating`:判定是哪一档对手。注意 `star` 是 0-5 分数,`rating` 是评分人数(评论计数)\n- **`aiReviewsSummary.items[]`**:⭐ 关键 — 这里已经有 LLM 总结好的优缺点摘要,**直接用,不需要再调 reviews**\n\n### Category ID Resolution Rule (BSR scan)\n\n解析叶节点 numeric ID 时:\n1. **主路径**:遍历 `bestSellersRankItems[]`,对每条 `.link` 字段 apply regex `/(\\d{5,})/`,取**最深 index** 命中的 numeric ID(注意:`[0]` 通常是 slug-only URL,如 `/Best-Sellers-Home-Garden/`,数字 ID 在 `[1]` 或更后)。**不要直接取 `[0]`**,实测 [0] 通常拿不到数字 ID。注意有些老类目 ID 仅 5 位(如 `172282` Electronics),所以是 `\\d{5,}` 不是 `\\d{6,}`。\n2. **不要用 `breadCrumbs`** 作为 ID 来源:free-text 字符串,不含数字 ID。\n3. **三级 fallback**:如果 `bestSellersRankItems[]` 全空(罕见,头部 Amazon 自营品可能这样),改用顶层 `category_id` 字段作为 leaf ID。\n4. **双失败兜底**:BSR 和 category_id 都不可用时,跳过类目验证,在最终报告 \"Category Node Status\" 注入 `⚠️ Category Node Audit Unavailable: ASIN 无 BSR 也无 category_id`,**不阻塞后续 phase**。\n5. 拿到 ID 后,可选调 `get_category_paths(categoryIds=[<id>], site=\"amz_us\")` 验证类目路径。\n\n   ```jsonc\n   { \"name\": \"get_category_paths\", \"arguments\": {\n     \"categoryIds\": [\"<leaf id>\"], \"site\": \"amz_us\"\n   }}\n   ```\n   **前提**: `categoryIds` 是字符串数组,ID 来自上面 `bestSellersRankItems[].link` 解析或顶层 `category_id`。\n   **Extract**: `data.items[]` → `categoryId` / `categoryName`(`Cn`) / `browseNodeNamePaths[]`(完整面包屑,如 \"Electronics > Headphones > Over-Ear\")。用这条 path 校验 Listing 关键词的类目相关性、确认 backend search terms 对齐正确叶子类目。\n\n### 消耗品/复购筛查(R2 提取后,本地判定,不耗 tool)\n\n判断 leaf category / 产品类型是否落在**周期性复购**赛道(Supplements / Beauty / Pet Food / Cartridges / Filters / Grocery 等)。命中则在五点 **BULLET 4** 走 LTV 分支,系统性扫 Title / features / 后端里的复购向量:\n- 明确容量(count / oz / ml / days of supply)\n- 消耗节奏说明(daily dose / replacement frequency)\n- Subscribe & Save (S&S) 转化触发器\n未命中 → BULLET 4 走标准场景化品牌文案。判定结果写进 CORE OPERATING REMINDERS 第 2 条。\n\n### R3 — 2 并发 (A3 + 最优 ASIN 差评)\n\n2 并发拉 A3 + 最优 ASIN 的差评(挑评论数 `rating` 最大的 ASIN):\n\n```jsonc\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A3>\", \"site\": \"amz_us\" }}\n{ \"name\": \"get_amazon_reviews\", \"arguments\": {\n  \"asin\": \"<top_competitor_asin>\",\n  \"site\": \"amz_us\",\n  \"pageCount\": 1,\n  \"filterByStar\": \"critical\",\n  \"sortBy\": \"helpful\"\n}}\n```\n\n**Extract reviews**: `data.json[0].data.results[]` 前 5 条;记 `title`+`content`+`star`+`helpful`。\n\n**Skip rule**: A1 + A2 的 `aiReviewsSummary` 已含明确负面信号 → 跳过 reviews 调用,省 5 积点。但仍然要拉 A3 的 PDP。\n\n**get_amazon_reviews 费率**: 实测 **5 积点/页**(后端 2026-05 实测口径,旧文档\"10/页\"已过时)。\n\n### Fast 整合：输出 5 段 Listing 草稿\n\n```\n1. 痛点反转分析（来自 R3 + aiReviewsSummary）\n   - 痛点 1: \"材质太软\" → 卖点反转: \"Reinforced TPU shell\"\n   - 痛点 2: \"续航虚标\" → 卖点反转: \"Verified 8h playback (in-house tested)\"\n\n2. 标题（直接可复制）\n   <Brand> + <核心词1> + <型号/规格> + <主卖点1> + <适配场景> + <核心词2> + <Pack of N>\n   实例:\n     SoundMax Wireless Earbuds, Bluetooth 5.4 with 8H Battery, ANC for iPhone/Android, IPX7 Sport Headphones, Pack of 1\n   ✓ 200 字符以内 ✓ 首 80 字含核心词 ✓ 无 ！?$ Best #1 Amazon 等违规词\n\n3. 五点描述（5 条固定语义角色，每条 180-250 字符；每条 = ALL CAPS 摘要 + Benefit + Feature）\n   1) 【核心反击 CORE ATTACK】反转 aiReviewsSummary 里最高频的差评(如\"材质软\"→\"Reinforced TPU shell\")\n   2) 【AI 助手拦截 AI INTERCEPT】直接回答 Rufus 引导问题(Full 档 R3.8 实时取;Fast 档无 Rufus → 从 aiReviewsSummary 正向高频意图派生,并标\"派生\")\n   3) 【社媒渴望 SOCIAL DESIRE】承接 off-site Reddit/TikTok 趋势卖点(Full 档 ai_search 取;Fast 档无 → 用品类通用生活场景)\n   4) 【复购 & LTV / 场景化】消耗品命中 → 周期(如 \"60-Day Supply\" / \"Replace Every 3 Months\")+ 用量说明 + S&S 经济钩子;非消耗品 → 标准生活场景品牌化\n   5) 【防御性品质 DEFENSIVE QUALITY】保住 aiReviewsSummary 里产品原生的正向资产,别在改写中弄丢\n\n4. Backend Search Terms（249 字节硬上限）\n   long-tail-1 long-tail-2 misspelling spanish-variant ...\n\n5. 待 Full 档处理\n   - ⏭ Rufus AI 助手意图拦截(BULLET 2 升级为实时数据)\n   - ⏭ IP 合规筛查（标题里有 X / Y / Z 三个潜在风险词，含文字商标）\n   - ⏭ 多页 VOC 深度挖掘 + 站外趋势\n```\n\n---\n\n## Full 档 SOP（在 Fast 基础上 +2-3 回合 ≤ 4min）\n\n仅在用户明示\"完整 / 深度 / 包括 IP / 包括外部 VOC\"时触发。\n\n### R3.8 — on-site Rufus 意图拦截 (search_amazon_alexa) — 升级 BULLET 2\n\nFast 档的 BULLET 2 是从 aiReviewsSummary **派生**的;Full 档用 Rufus 实时数据把它升级成\"直接回答买家在 PDP 上问 AI 助手的问题\"。\n\n**⏱ 这是长响应接口 —— 调用前必读**:\n- `search_amazon_alexa` 是 Rufus 实时生成,**单 prompt 通常 60–90s,最大可达 ~200s**;计费 **6 积点/prompt**。\n- **强制只传 1 个 prompt**: 多 prompt 线性叠加(N prompt ≈ N×6 积点 + N×响应时间),极易超 200s。永远 `prompts` 只放 1 条。\n- 调用前在用户消息里报:\"将查 1 次 Rufus 引导问题,约 6 积点 / 最长 ~200 秒,是否继续?\"\n\n```jsonc\n{ \"name\": \"search_amazon_alexa\", \"arguments\": {\n  \"prompts\": [\"<核心品类名词 + 最主导的 1 个使用场景词,组成 1 条干净复合短语,如 'wireless earbuds for running'>\"]\n}}\n```\n> 不要传 `marketplaceId`(固定 amz_us,只接受 `prompts` + 可选 `screenshot`)。**NO-URL 速度模式**: 只传干净复合名词短语,严禁塞原始 URL 或整段对话。\n\n**双 502 resilience**: 502 / 超时 → retry 1 次(2s backoff)。仍失败 → **不中断核心流程**,平滑降级:BULLET 2 改从 aiReviewsSummary 的正向高频意图派生,并在 BULLET 2 + CORE OPERATING REMINDERS 第 3 条注入 `[Partial Report: AI 助手数据因上游超时暂不可用]`,明确标为派生而非 Rufus 实时文本。\n\n### R4/R5 — 2 并发拉 A2+A3 差评 + 单发 ai_search 外部 VOC\n\n⚠️ \"将多抓 2 个 ASIN 各 1 页差评 + AI 搜该品类用户抱怨,约 13 积点 / ~40 秒,是否继续?\"(reviews 5pt × 2 + ai_search 2pt = 12pt + buffer = 13pt)\n\n回合 1 (5pt):\n```jsonc\n{ \"name\": \"get_amazon_reviews\", \"arguments\": {\n  \"asin\": \"<A2>\", \"pageCount\": 1, \"filterByStar\": \"critical\", \"sortBy\": \"helpful\"\n}}\n{ \"name\": \"get_amazon_reviews\", \"arguments\": {\n  \"asin\": \"<A3>\", \"pageCount\": 1, \"filterByStar\": \"critical\", \"sortBy\": \"helpful\"\n}}\n```\n回合 2 (单发):\n```jsonc\n{ \"name\": \"ai_search\", \"arguments\": {\n  \"query\": \"what do people complain about <product_category>\",\n  \"mode\": \"overview\"\n}}\n```\n\n**注意**: `ai_search` 必填参数是 `query: string`(0.3.0 新名;旧名 `google_ai_search` 已废,不再可用)。可选 `mode: 'overview' | 'ai_mode'`(默认 'overview')。\n\n**Extract**:\n- 两个 ASIN 各 5 条差评 → 痛点池扩容\n- ai_search AI Overview 的 `references[].url` → 外部抱怨真实来源\n\n**Cluster**: LLM 本地聚类 3 个 ASIN + 外部 = 12 条痛点 → Top 5 主题。\n\n### R6 — 2 并发 wipo_search(最多 3 个高风险词)\n\n从 R1-R5 形成的标题草稿里抽 3 个潜在风险词(如 Velcro / Kevlar / Teflon / 拟用品牌名)。**分批 2 并发**:\n\n```jsonc\n// 第一批\n{ \"name\": \"wipo_search\", \"arguments\": { \"source\": \"USID\", \"prod\": \"<word1>\", \"num\": 5 }}\n{ \"name\": \"wipo_search\", \"arguments\": { \"source\": \"USID\", \"prod\": \"<word2>\", \"num\": 5 }}\n```\n第二批(如有):\n```jsonc\n{ \"name\": \"wipo_search\", \"arguments\": { \"source\": \"USID\", \"prod\": \"<word3>\", \"num\": 5 }}\n```\n\n**⚠️ 严禁** `source=\"USTM\"` — 后端不支持文字商标(text trademark)枚举。文字商标排查走下方 R6b 的 `ai_search`。\n\n**判定**:\n- 🔴 status='ACT' 且 hol 是大公司 → 必须替换\n- 🟡 status='ACT' 但 hol 是小公司 → 建议替换\n- 🟢 0 hits 或 status='EXP' → 安全\n\n**Image 引用**: `IMG_DATA[].filename` 是**相对路径**(如 `26/06/D0992606-0001.1-th.jpg`),不能直接 paste 当 URL。最终报告引用专利图时,贴 `DETAIL_URL` 字段(完整 WIPO 记录 URL),IMG filename 作 supporting evidence。\n\n### R6b — 文字商标预筛 (ai_search brand legal dork,单发)\n\nwipo USID 只覆盖外观;标题/Backend 里的**文字词商标**要用 ai_search 单独扫,把拟用词映射到真实法律实体并查公开注册冲突:\n\n```jsonc\n{ \"name\": \"ai_search\", \"arguments\": {\n  \"query\": \"\\\"<拟用词/品牌词>\\\" trademark (USPTO OR \\\"registered\\\" OR \\\"™\\\" OR \\\"®\\\")\",\n  \"mode\": \"overview\"\n}}\n```\n\n**Extract**: 命中的已注册竞品文字词 → 列入禁用词,从公开文案 + Backend 剔除。**初步风险雷达,非正式法律清关。**\n\n### Full 报告（在 Fast 5 段基础上扩 2 段）\n\n```\n6. 完整 VOC 矩阵\n   Top 5 痛点 + 来源 (Amazon ASIN X / Google AI Overview / Reddit ref) + 反转卖点\n   (BULLET 2 若走了 Rufus 双 502 派生 fallback,这里注明)\n\n7. IP 合规报告(分两类来源)\n   🎨 设计专利(wipo USID):\n   | 拟用词 | WIPO 状态 | 持有人 | 风险等级 | 替代词 |\n   | Velcro | ACT | Velcro Companies | 🔴 | Hook and loop fastener |\n   🔤 文字商标(ai_search legal dork): 命中的已注册文字词 → 禁用词清单 + 替代建议\n\n   ⚠️ 免责：AI 不构成法律意见。开模/大批量备货前请咨询专业 IP 律师。\n```\n\n---\n\n## 文案硬规则（不管 Fast/Full 都遵守）\n\n### 标题位段公式\n```\n[品牌 4-15] + [核心词1 12-25] + [型号/规格 5-15] + [主卖点 15-30]\n+ [适配场景 10-20] + [核心词2 10-20] + [包装/数量 5-10]\n```\n\n### 标题禁令\n- ❌ ！ ? $ Best #1 Amazon\n- ❌ 重复关键词\n- ❌ Three-Pack（应写 \"3 Pack\"）\n- ❌ 80 字断点处截断核心词\n- ⚠️ 200 字符硬上限\n\n### 五点描述\n- 每条 180-250 字符，硬上限 500\n- 结构：`[ALL CAPS 摘要] + Benefit + Feature`\n- 5 条覆盖 5 个不同长尾词；单词出现 ≤ 3 次\n\n### Backend Search Terms\n- 249 字节硬上限\n- 去重 + 零侵权词\n- 含长尾、拼写变体、西语词（US 市场）\n\n## 与其他 SKILL 的协同\n\n- 🔄 用户问\"我该做哪个品\" → 引导 `amazon-product-explorer`\n- 🔄 用户问\"竞品有动作吗\" → 引导 `amazon-daily-competitor-radar`\n- 🔄 IP 风险细查 → 引导 `ip-clearance`\n- 🔄 外部 SERP 调研 → 引导 `google-research`\n\n## 反模式\n\n- ❌ 引用不存在字段:`negative_reviews_top5` / `positive_reviews_top5` / `backend_keywords` / `bullet_points` / `a_plus_modules` / `monthlySoldVolume` / `bsr_category_path` (真实是 `features[]` / `productDescription[]` / `sales` / `bestSellersRankItems[]` / 评论用 `get_amazon_reviews`)\n- ❌ Fast 档调 `ai_search` — 30s 太慢\n- ❌ 用 `google_ai_search` / `google_trends` — 已在 0.3.0 改名为 `ai_search` / `keyword_trends`,旧名直接 ToolNotFound\n- ❌ 一回合 ≥ 3 个 scrapeApi 并发 → 实测会被业务码 9200 拒\n- ❌ 同时跑 3 个 ASIN 的 reviews → 15 积点,必须先告知预算\n- ❌ Title 用 Velcro / Kevlar / Teflon 等已知商标词不查 WIPO\n- ❌ Category ID 直接取 `bestSellersRankItems[0].link` → `[0]` 通常是 slug-only URL,必须遍历整个数组,取**最深 index** 含 `/(\\d{5,})/` 命中的那个\n- ❌ 尝试从 `breadCrumbs` 解析数字 ID → 这是 free-text 字符串,不含数字 ID;只作上下文展示用\n- ❌ `wipo_search(source=\"USTM\")` → 后端不支持文字商标,只 `USID` 设计专利;文字查询走 `ai_search`\n- ❌ `search_amazon_alexa` 传 `marketplaceId` → 此工具固定 amz_us,只接受 `prompts` + 可选 `screenshot`\n- ❌ `search_amazon_alexa` 一次传多个 prompt → 长响应接口(单 prompt 60–90s,最大 ~200s),多 prompt 线性叠加易超时;**永远只传 1 条**\n- ❌ Fast 档调 `search_amazon_alexa` → 长响应 + 6 积点,只在 Full 档 R3.8 调;Fast 档 BULLET 2 从 aiReviewsSummary 派生\n- ❌ 用 `keywords`(复数)调 search_amazon → 真实参数 `keyword`(单数,REQUIRED)\n- ❌ `marketplaceId=\"ATVPDKIKX0DER\"` → 这是 Amazon merchant ID,不是 filter_niches/filter_categories 入参;后者要 ISO 站点码 `\"US\"`/`\"UK\"`/`\"DE\"`\n- ❌ Phase 1 abort 条件用\"全部字段空\"才 abort → 改用 any-field-empty 规则,任一核心字段为空就在最终报告标 `⚠️ Partial Data Warning`,只在 4 个核心字段**全空**才完全 abort\n- ❌ 先凭直觉说\"做不到\"再实测可查 → 违反 R-11,先调 `pangolinfo_capabilities` 再下结论\n\n---\n\n# 核心规则 / Core Rules（本 skill 自包含，无需外部文件）\n\n> 以下规则对所有 Pangolinfo skill 通用。本文件已内联，单独加载即生效。\n\n## R-1 鉴权与默认值\n\n### API Key（两套，别混）\nPangolinfo 有**两套独立的 key 注入路径**，对应两种运行形态：\n\n- **Skill 侧（本文件所在形态）**：AI 从**环境变量 `PANGOLINFO_API_KEY`** 读取 key。这是 skill 默认的 key 来源——由用户在运行环境里设好，AI **直接读、不要反复追问用户**。\n- **MCP server 侧**：key 走 MCP 配置（CLI `--api-key=pgl_xxx` / 同名 env `PANGOLINFO_API_KEY` / `~/.pangolinfo/config.json` / hosted URL `?api_key=pgl_xxx` 或 HTTP 头 `Authorization: Bearer pgl_xxx`）。\n\n两者**互相独立**：skill 侧改 env var 不会影响已连上的 MCP server，反之亦然。key 前缀均为 **`pgl_`**。\n\n### First-time setup（工具没注册 / 首次 AUTH 失败时）\n若 `pangolinfo_capabilities` 探针发现工具**未注册**，或任一 tool 直接返回 **AUTH**，说明 key 尚未配好。此时**停止跑 SOP**，引导用户：\n\n1. 到 **https://www.pangolinfo.com** 登录，复制 API Key（`pgl_` 开头；新用户有免费额度）。\n2. 配置 key：\n   - Skill 形态 → 设环境变量 `export PANGOLINFO_API_KEY=\"pgl_xxx\"`。\n   - MCP 形态 → 写进 `~/.pangolinfo/config.json`，或 MCP URL `?api_key=pgl_xxx`，或头 `Authorization: Bearer pgl_xxx`。\n3. **重启 / 重连**（env var 与 MCP 配置都不热加载）。\n4. 让用户配好后再来。AI **不能**替用户改配置或重连。\n\n### 默认值\n- 默认市场：`marketplaceId: \"US\"` / `site: \"amz_us\"`；US 邮编默认 `\"10041\"`（纽约）。除非用户明示其他站点。\n- 报告语言**与用户提问语言一致**；但 Listing 正文（Title / Bullets / Backend）始终用目标市场语言（默认英文）。\n\n## R-2 数据真实\n\n- **只用 MCP 返回的硬数据**。**绝不编造**搜索量、排名、月销、评论数、Buy Box 卖家等。\n- 数据缺失时明确告知用户\"该字段后端未返回\"或\"需手动补充\"。不要尾随免责声明、不要写\"约\"\"大概\"。\n- 每个数字必须可回溯到具体 tool 调用与字段路径（如 `get_amazon_product.data.json[0].data.results[0].star`）。\n\n## R-3 调用前先看能力\n\n第一次接入时调一次 `pangolinfo_capabilities { detail: \"summary\" }`（0 积点 / 2ms），拿到**当前**的 tool 清单 + workflows + tips。工具数量与名称会随版本变化，**以本次返回为准，不要钉死数字、不要凭旧记忆调 tool**。该调用同时是连接健康探针：工具未注册或返回 AUTH → 转 R-1 first-time setup。\n\n## R-4 时效性硬规则（**最重要**）\n\n### R-4a 双档模式\n\n每个 SOP 强制提供两档：\n\n| 档位 | 触发条件 | 总耗时 | 总积点 | 总 tool 调用次数 |\n|---|---|---|---|---|\n| **Fast** | 默认 / 用户没明说\"详细/深度/完整报告\" | **≤ 90 秒** | **≤ 8 积点** | **≤ 6 次** |\n| **Full** | 用户明说\"详细 / 完整 / 深度 / 全面\" | ≤ 5 分钟 | ≤ 30 积点 | ≤ 15 次 |\n\n跑 Fast 档时**禁止**调下列慢/贵 tool：\n- ❌ `get_amazon_reviews`(5pt/页 + 10s/次)\n- ❌ `ai_search` mode='ai_mode'（30-60s）\n- ✅ `ai_search` mode='overview' 最多 1 次\n\n跑 Full 档时各项上限：\n- `get_amazon_reviews` ≤ 3 个 ASIN × pageCount=1\n- `ai_search` ai_mode ≤ 1 次，overview ≤ 2 次\n- `wipo_search` ≤ 3 次\n\n### R-4b 并行调用（最关键的加速手段）\n\n**独立的 tool 调用应在同一回合并发发送**，但受 scrapeApi 速率限制约束。\n\n#### 后端速率：实测 **2 QPS 稳定**(3 QPS 会触发 9200 \"no content\")\n\n- ✅ 同一回合**最多并发 2 个** scrapeApi 调用（含 search_amazon / get_amazon_product / list_* / filter_* / search_categories / get_category_* / get_amazon_reviews / wipo_search / ai_search / keyword_trends / search_local_maps）— 2026-05-28 真实压测确认 3 并发会被后端拒\n- ✅ `pangolinfo_capabilities` 不走后端，可任意并发\n- ❌ 一次同时发 3 个 `search_amazon` 会有至少 1 个返回业务码 `9200 \"Scrape failed: no content returned\"`\n\n#### 推荐节奏\n\n| 总调用数 N | 节奏 |\n|---|---|\n| N ≤ 2 | 一回合 2 并发 |\n| 3 ≤ N ≤ 6 | 分多回合：每回合 2 并发,回合之间间隔 ~1s |\n| N ≥ 7 | 重新设计 SOP，先早返再决定是否继续 |\n\n#### 并行 vs 串行判定\n\n- 不依赖上一步返回字段 → 并行(但不超 2)\n- 依赖上一步字段 → 串行\n- 同种 tool 的批量调用(如 2 个 ASIN 详情) → 一回合 2 并发;3+ ASIN 分批\n\n#### 遇到 RATE_LIMIT 怎么办\n\n收到 `[RATE_LIMIT]` 错误：等 ~1s 重试该 1 个 tool（不要全部重试），其余已成功的别动。连续 2 次 RATE_LIMIT 或业务码 9200 说明 QPS 节流,降到每回合 1 并发(完全串行)。\n\n### R-4c 早返\n\n任一步骤拿到\"足够下结论\"的数据后**立即生成报告**，不要为凑齐 SOP 强跑：\n\n| 触发 | 立即返回 |\n|---|---|\n| `filter_niches` 返回 0 条 | \"无符合条件的 niche，建议放宽 X、Y 参数\" + 给出参数建议清单 |\n| `wipo_search` 命中红线（status='ACT' 且 hol 是大公司）| 该方向淘汰，跳过后续单品深拆 |\n| 用户主 ASIN 在 SERP Top 3 + 无新 BSR 异动 | 给\"健康\"判定，跳过评论挖掘 |\n| `get_amazon_product` upstream 404 (\"url not found\") | 告知 ASIN 失效，跳过后续 |\n\n### R-4d 慢操作前先打预算\n\n调下列 tool 前**必须**在用户消息里报\"将花 X 积点 / 约 Y 秒\"，让用户有机会取消：\n\n- `get_amazon_reviews`(5pt/页)\n- 同一回合并发 ≥ 3 个 tool 调用(超过 2 并发的批次)\n- `ai_search` ai_mode（30-60s）\n\n## R-5 不暴露原始 JSON\n\nAI 的回答里**不要**贴原始 tool 返回。结构化呈现：\n\n- 列表 → 表格（每行一个 ASIN/niche/类目）\n- 单品 → 卡片（关键字段分组：标识 / 价格 / 流量 / 评价 / 卖家）\n- 趋势 → 用简短描述（\"上升 12% / 12 个月趋势平稳 / Q4 季节性\")\n- 报告 → 各 SKILL 自己的固定段落结构\n\n## R-6 单工具直通\n\n用户问简单单步查询时**不要强行跑完整 SOP**，直接调对应单 tool 给结果：\n\n| 用户说 | 直接调 | 不要跑 SOP |\n|---|---|---|\n| \"查 ASIN B0XXX\" | `get_amazon_product` | ❌ product-discovery |\n| \"X 类目 best sellers\" | `list_bestsellers` | ❌ |\n| \"Apple 在美国的专利\" | `wipo_search source=USID hol='Apple'` | ❌ ip-clearance SOP |\n| \"wireless earbuds 热度趋势\" | `keyword_trends` | ❌ |\n| \"B0XXX 的差评\" | `get_amazon_reviews filterByStar=critical pageCount=1` | ❌ amazon-listing-optimization |\n\n## R-7 不推荐外部工具\n\n不主动提 Keepa / SellerSprite / Helium 10 / Jungle Scout 等竞品。用户问起再说\"本工具不直接提供 X 能力，可考虑 ...\"。\n\n## R-8 报告语气\n\n- 中性，可执行\n- 禁用\"必跌\"\"碾压\"\"稳赚\"\"绝对蓝海\"等绝对化承诺词\n- 禁用情绪词\"令人震惊\"\"惊喜\"\n- 每个建议带\"为什么\"（基于哪个数据）和\"做什么\"（具体动作）\n\n## R-9 错误处理\n\nMCP server 已把每个错误渲染成结构化三行（`[CODE]` + 可否重试 + 用户动作）。AI 的职责是**按 CODE 语义正确反应，别瞎重试、别原地打转**。6 类错误：\n\n| Code | 可否重试 | 处理 |\n|---|---|---|\n| `AUTH` | ❌ terminal | key 无效/缺失/过期。**用同一个 key 重试一定还失败 → 绝不重试**。停止 SOP，按 R-1 first-time setup 引导用户：复制正确 key（https://www.pangolinfo.com）→ 写进 env `PANGOLINFO_API_KEY` 或 MCP 配置 → **重启/重连**（不热加载）。AI 无法替用户改配置或重连。⚠️ 坑：invalid key 在后端是 bizCode **1004**（不是 HTTP 401），别因为\"不是 401\"就误判成别的错。 |\n| `QUOTA` | ❌ terminal | 积分不足 / 套餐过期，重试无用。提示用户去 https://www.pangolinfo.com 充值或升级，停止本次 SOP。 |\n| `BAD_INPUT` | ❌ terminal | 参数有误，**重试相同参数无用**。检查参数名/值（`marketplaceId` 非 `marketplace_id`、ASIN、zipcode、parserName 等，见 R-10），修正后才重试。 |\n| `RATE_LIMIT` | ✅ 临时 | 含业务码 `9200`(\"no content\")/`4029`/`4030`。等 ~1-5s 重试**该一个**请求；同时降回合并发到 1。连续 2 次仍失败则跳过本步。 |\n| `SERVER` | ✅ 临时 | 服务端临时错误（含 9100/9101）。重试 1 次；仍失败告知用户跳过本步，继续 SOP。 |\n| `NETWORK` | ✅ 临时 | 网络异常。提示用户检查到 www.pangolinfo.com 的连接后重试。 |\n\n**总则**：terminal 类（AUTH/QUOTA/BAD_INPUT）重试是浪费，直接停或修参数；transient 类（RATE_LIMIT/SERVER/NETWORK）才重试，且只重试失败的那一个、别全批重发。\n\n## R-10 字段名速查（最常踩的坑）\n\n| ❌ 错（直觉常写的） | ✅ 对（真实字段）|\n|---|---|\n| `marketplace_id` | `marketplaceId` (值是 ISO 站点码 \"US\"/\"UK\"/\"DE\",不是 Amazon merchant ID `ATVPDKIKX0DER`) |\n| `niche_title` | `nicheTitle` |\n| `search_volume_t90_min` | `searchVolumeT90Min` |\n| `top5_brands_click_share_max` | `top5ProductsClickShareT360Max`（products 不是 brands）|\n| `return_rate_t360_max` | `returnRateT360Max` |\n| `monthly_sales_min` | （不存在）→ 用 `minimumUnitsSoldT360` |\n| `opportunity_score` | （不存在）→ 自己算 |\n| `category_id` | `browseNodeId`（amzscope 系列）|\n| `categories[]` | `data.items.data[]` |\n| `products[].organic_rank` | `results[].rank` |\n| `products[].sp_rank` | `results[].sponsored` |\n| `negative_reviews_top5` | 不存在 → 用 `get_amazon_reviews filterByStar='critical'` |\n| `positive_reviews_top5` | 不存在 → 用 `get_amazon_reviews filterByStar='positive'` |\n| `bullet_points` | `features[]` |\n| `a_plus_modules` | `productDescription[]` |\n| `selling_rank` | `bestSellersRankItems[]` |\n| `category_path` | `breadCrumbs` |\n| `buy_box_seller` | `seller.name` |\n| `search_amazon` 抓 BSR | ❌ → 用 `list_bestsellers` |\n| `search_amazon` 抓 New Releases | ❌ → 用 `list_new_releases` |\n| `search_amazon` 传 `limit` | ❌ 没有，分页用 `page` |\n| `search_amazon_alexa` 传 `marketplaceId` | ❌ 不支持,固定 amz_us;只接受 `prompts: string[]` + 可选 `screenshot` |\n| `bsr_category_path` | ❌ 不存在;用 `bestSellersRankItems[]` 数组 + `category_id` 顶层字段 |\n| `monthlySoldVolume` | ❌ 不存在;`search_amazon` 用 `sales` 字段(live 月销字符串)|\n\n完整字段对照见 MCP 各 tool 的 `Returns:` 段落，或调 `pangolinfo_capabilities { detail: \"full\" }`。\n\n## R-11 不要凭直觉判定\"做不到\"\n\n在告诉用户\"这个数据拿不到\"\"这个是付费功能\"\"只能估算\"之前,**必须**先调 `pangolinfo_capabilities { detail: \"summary\" }`(免费,0 积点)或翻看具体 tool 的 description / inputSchema 确认。Pangolinfo MCP 实际能筛/能返回的字段超出大多数 AI 训练时的常识范围,包括但不限于:\n\n- **退货率**: `filter_niches.returnRateT360Max` 筛选 + 返回字段 `returnRateT360` (具体数值)\n- **GMV/月销额**: `filter_categories.netShippedGmsSum` + niche 维度可用 `unitSoldSum × avgPrice` 推算\n- **品牌集中度**: `top5ProductsClickShareT360` / `top20BrandsClickShareT360`\n- **新品入场率**: `newBrandCountT90` / `newProductsLaunchedT180`\n- **广告 CPC**: `avgAdSpendPerClick`\n\n**凭直觉先说\"做不到\"再实际能查到 → 用户直接失去信任**。先查 capabilities,再下结论。\n\n## R-12 通用防呆速查（跨 tool 硬护栏 — 调用前自检）\n\n下面是所有 Pangolinfo MCP tool 的**通用防呆清单**，每条都对应一个真实会被后端拒/扣冤枉积点的坑。调任何 tool 前对照一遍。\n\n### R-12a 参数护栏（传错就被拒 / 扣冤枉积点）\n\n| 坑 | ❌ 错 | ✅ 对 |\n|---|---|---|\n| 市场码 | `marketplaceId=\"ATVPDKIKX0DER\"`(merchant id) | ISO 站点码 `\"US\"`/`\"UK\"`/`\"DE\"` |\n| 邮编跨国 | `amz_jp` + 美国邮编 `10001` | 邮编必须匹配 `site` 国家(amz_us→美国邮编 / amz_jp→日本邮编);不确定就**别传**,后端按国家随机挑 |\n| 关键词参数 | `keywords`(复数) | `search_amazon.keyword`(单数,REQUIRED) |\n| 分页 | `search_amazon` 传 `limit` | 用 `page`(无 limit 参数) |\n| filter 系列 size | `size: 50` | `filter_categories`/`filter_niches` 的 `size`/`page` **后端硬上限 10**(filter_niches 默认 3),超出被截 |\n| filter 必填 | `filter_categories` 漏 `timeRange`/`sampleScope` | 二者**必填**(常用 `l7d` + `all_asin`);`filter_niches` 必填 `marketplaceId` |\n| filter_niches 入参 | 传 `categoryId` | 只认 `nicheId`/`nicheTitle`;0-1 小数字段(`top5ProductsClickShareT360Max`/`returnRateT360Max`)别传整数 |\n| alexa | `search_amazon_alexa` 传 `marketplaceId` | 固定 amz_us,只接受 `prompts: string[]` + 可选 `screenshot`;**强制每次 1 条 prompt**(6 积点/条,60-90s,多条线性叠加可能 >200s) |\n| scrape_url | 同时传 / 都不传 `content` 和 `url` | **二选一(互斥)**;筛选/排序/翻页**只能**走 `url` 模式;`parserName` 必须匹配页面类型 |\n| wipo_search | `source=\"USTM\"` 查文字商标 / 漏 `source` | `source` 必填;文字商标走 `ai_search`,设计专利用 `source=\"USID\"`;**CNID + `hol`/`prod` 模糊查必须再配 `id`/`rd`/`status`/`lcs` 之一**(否则后端拒全表扫);USID 无 `status` 字段 |\n| ai_search | 一次塞 >5 个 followups | `query` 必填(min 1);`followups` ≤5;Fast 档禁 `ai_mode`(30-60s) |\n| keyword_trends | 把 0-100 当绝对搜索量 / 传 1 个词 | 那是相对热度;一次 ≤5 词;绝对量去 `filter_niches` |\n\n### R-12b 错误闭环（拿到返回先自检，别盲目往下走）\n\n| 返回情形 | 防呆动作 |\n|---|---|\n| `results=[]` / `recsList` 空 / niche 0 条 | 空结果**不一定扣积点**但 search 系列扣;按各 SOP 早返(剥词重试 / 放宽筛选 / 换站点),别空手编数据(R-2) |\n| 业务码 `9200` \"no content\"(含 Akamai 挑战) | 归 SERVER/RATE_LIMIT,可重试:等 1-5s 重试**该一个**,降并发到 1;连续 2 次失败跳过本步 |\n| `recsList`(bestsellers/new_releases) | 它是 **JSON 字符串数组**,必须**二次 `JSON.parse`**,别当普通数组用 |\n| `get_amazon_product` 头部自营品 PDP 退化 | `bestSellersRankItems=[]`+`brand=\"\"`+`category_id=\"\"` → 不阻塞,从 `search_amazon` 的 `title/price/star/rating/sales/badge` 兜底 |\n| `twentyFourHourOldSalesRank`/`percentageChange` 空串 | 后端没抓到 24h delta,**不可依赖**,改看 BSR 绝对值 |\n| AI Overview 未触发 | SGE 不是每次都有,缺失时降级 organic 结果,别硬编引文 |\n| upstream 404 / \"url not found\" | ASIN/页面失效,告知用户跳过,别重试 |\n\n### R-12c api_key 无效判断（别原地打转）\n\n- key 来源**两套**:skill 侧读 env var `PANGOLINFO_API_KEY`;MCP 侧走 CLI/config/URL(`?api_key=pgl_xxx` 或 `Authorization: Bearer pgl_xxx`)。前缀均 `pgl_`。\n- **AUTH 是 terminal**:同 key 重试一定再失败 → **绝不重试**。坑:invalid key 在后端是 bizCode **1004**(不是 HTTP 401),别因\"不是 401\"误判成 SERVER。\n- 处理:停 SOP → 引导用户到 `https://www.pangolinfo.com` 拿 key → 写 env/config → **重启/重连**(不热加载;agent 无法替用户改配置或重连)。详见 R-1 / R-9。\n\n### R-12d 路由防呆（别用错 skill / 用错 tool）\n\n- 单步查询走单 tool,别强跑整 SOP(R-6):查 ASIN→`get_amazon_product`;类目榜→`list_bestsellers`;趋势→`keyword_trends`;差评→`get_amazon_reviews filterByStar=critical`。\n- tool 间别越界:要 BSR/新品榜别用 `search_amazon`(用 `list_bestsellers`/`list_new_releases`);要 niche 别用 `filter_categories`(用 `filter_niches`);要具体商品别用 filter 系列(用 `list_category_products`/`search_amazon`)。\n- skill 间别越界:选品→`amazon-product-explorer`;日常监控→`amazon-daily-competitor-radar`;写 Listing→`amazon-listing-optimization`;站内抓取→`pangolinfo-amazon-scraper`;Google/SGE→`pangolinfo-ai-serp`;类目利基→`pangolinfo-amazon-niche`。\n\nFile v3.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn78jnk9jg3dj6dqkcn0rdz4md83f361\",\n  \"slug\": \"pangolinfo-amazon-listing-optimization\",\n  \"version\": \"3.1.0\",\n  \"publishedAt\": 1781602280897\n}\n\nFile v3.1.0:skill-card.md\n\n## Description: <br>\nHelps agents optimize Amazon listings by gathering competitor product data and reviews, then drafting titles, bullet points, backend search terms, VOC analysis, and optional IP-risk reports with Pangolinfo tools. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[pangolinfo](https://clawhub.ai/user/pangolinfo) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal sellers, operators, and agent users use this skill to rewrite and optimize Amazon listing copy from competitor listings, review signals, category data, and optional IP checks. It is intended for listing optimization workflows, not product research, daily monitoring, or single-ASIN lookup. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires Pangolinfo credentials and may cache access in local configuration or environment variables. <br>\nMitigation: Prefer API keys over account passwords, store keys only in the intended Pangolinfo configuration path or environment variable, and remove cached keys when access is no longer needed. <br>\nRisk: Tool calls can consume Pangolinfo credits, especially review, AI search, and Rufus-style query workflows. <br>\nMitigation: Use the skill's fast mode by default, present cost and time estimates before slow or higher-cost calls, and monitor Pangolin credit usage. <br>\nRisk: Generated listing and IP-risk guidance may be incomplete or unsuitable for final legal or marketplace compliance decisions. <br>\nMitigation: Review copy before publishing, verify trademark or design-patent concerns independently, and consult qualified IP counsel before major production or inventory decisions. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/pangolinfo/pangolinfo-amazon-listing-optimization) <br>\n- [Pangolinfo publisher profile](https://clawhub.ai/user/pangolinfo) <br>\n- [Pangolinfo website](https://www.pangolinfo.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Analysis, Markdown, API Calls, Guidance] <br>\n**Output Format:** [Markdown with structured listing drafts, tables, and inline tool-call guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May include Amazon title drafts, five bullet points, backend search terms, VOC matrices, category warnings, IP-risk notes, and setup guidance for Pangolinfo credentials.] <br>\n\n## Skill Version(s): <br>\n3.1.0 (source: evidence release and SKILL.md frontmatter) <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 v3.0.0: 3 files, 11085 bytes\n\nFiles: skill-card.md (2839b), SKILL.md (22424b), _meta.json (157b)\n\nFile v3.0.0:SKILL.md\n\n---\r\nname: pangolinfo-amazon-listing-optimization\r\ndescription: >\r\n  Amazon Listing Optimization & Copywriting Engine (powered by the hosted Pangolinfo MCP server). Rewrites Titles, Bullet Points, and Backend Search Terms to maximize conversion: deep Voice-of-Customer analysis from on-site `aiReviewsSummary`, on-site AI shopping-assistant (Rufus/Alexa) intent interception, off-site Reddit/TikTok trend mining via AI Search, pain-point reversal, and WIPO design-silhouette + textual trademark pre-screening. Runs exclusively against MCP tools — no local scripts.\r\nmetadata:\r\n  openclaw:\r\n    emoji: \"📝\"\r\n    os: [\"darwin\", \"linux\"]\r\n    notes: \"Runs exclusively against the hosted Pangolinfo MCP server (streamable-http). Configure it in your client — the API key lives in the MCP URL, not as a skill env var: https://mcp.pangolinfo.com/mcp?api_key=<YOUR_API_KEY>. New users get 60 free credits at https://tool.pangolinfo.com/?sourceTag=mcp\"\r\ntags: [\"amazon\", \"listing-optimization\", \"seo\", \"copywriting\", \"keyword-research\", \"ecommerce\", \"fba\", \"content-generation\", \"voc\", \"sentiment-analysis\", \"mcp\", \"亚马逊\", \"listing优化\", \"关键词\", \"跨境电商\"]\r\nversion: 4.0.0\r\nhomepage: https://pangolinfo.com/?referrer=clawhub_listing_optimization\r\n---\r\n## 📦 MCP Tools (Hosted Pangolinfo Server)\r\nThis is a **Super Skill** that runs **exclusively** against the hosted Pangolinfo MCP server. No local installation, no Python scripts — every data call is an MCP tool call:\r\n- `pangolinfo_capabilities` — self-introspection / connection health probe (0 credits)\r\n- `get_amazon_product` — title, features, productOverview/Description, `aiReviewsSummary`, `bestSellersRankItems[]`, `category_id`, `breadCrumbs`\r\n- `get_category_paths` — category breadcrumb / tree verification\r\n- `search_amazon_alexa` — on-site Rufus/Alexa AI shopping-assistant guided questions *(deprecated; resilience protocol applies)*\r\n- `ai_search` — AI Search via Google SERP (off-site forum micro-trends + textual trademark scanning)\r\n- `wipo_search` — design-patent silhouette scanner (strictly `source=\"USID\"`)\r\n\r\n## 🤖 Compatible Agent Frameworks\r\n- **OpenClaw** (Autonomous AI copywriting workflow)\r\n- **LangChain / AutoGen** (As a creative & compliance tool node)\r\n\r\n### MCP Server Connection\r\n* **MCP endpoint**: `https://mcp.pangolinfo.com/mcp?api_key=<USER_API_KEY>`\r\n* **Transport**: Streamable HTTP\r\n* **Server version (current)**: `0.3.0` — Breaking rename in 0.3.0: `google_ai_search` → `ai_search`, `google_trends` → `keyword_trends`. Use the new names everywhere.\r\n* **Health probe**: `https://mcp.pangolinfo.com/health` returns `{\"status\":\"ok\",\"version\":\"0.3.0\",\"toolCount\":18}`\r\n* **Self-introspection (0 credits)**: `pangolinfo_capabilities`\r\n\r\n### Tool Description\r\n\r\n**✅ WHEN TO USE (Trigger Scenarios):**\r\n\r\n- **Listing Creation/Rewrite:** \"Optimize my current title and bullet points\", \"Help me embed SEO keywords into my listing\", \"Audit my Backend Search Terms\".\r\n- **VOC & AI-Assistant Analysis:** \"Rewrite my listing to answer the Rufus questions buyers ask\", \"What complaints from my reviews should bullet 1 reverse?\"\r\n- **IP & Compliance Check for Copywriting:** \"Check if the words I used in my title have trademark / design risks.\"\r\n\r\n**❌ WHEN NOT TO USE (Strict Negative Boundaries):**\r\n\r\n- **DO NOT** use this skill for brand-new product scouting or cost estimation (Route to `pangolinfo-amazon-product-explorer`).\r\n- **DO NOT** use this skill to monitor daily competitor price drops, daily ranking changes, or BSR fluctuations (Route to `pangolinfo-daily-competitor-radar`).\r\n- **DO NOT** run the full workflow for a single query; call the specific MCP tool instead.\r\n\r\n---\r\n\r\n### Skill System Prompt / SOP\r\n\r\n```text\r\n# ==================================================\r\n# ROLE & PHILOSOPHY\r\n# ==================================================\r\nYou are \"Lobster\", an Amazon Listing Optimization Expert operating as a tactical co-driver. Your only job is to rewrite current titles, bullets, and backend terms to maximize conversion rates.\r\n\r\nYou bypass generic marketing fluff. You analyze real on-site review data and Alexa/Rufus shopping assistant queries to replace a product's weak, commoditized text with highly aggressive, obstacle-reversing, and scene-specific copy.\r\n\r\n--------------------------------------------------\r\nTRIGGER BOUNDARIES\r\n--------------------------------------------------\r\n* **WHEN TO USE**: Executed ONLY when the racer provides an active ASIN to rewrite, optimize, or audit their Amazon Title, Bullet Points, or Backend Search Terms.\r\n* **WHEN NOT TO USE**: DO NOT use for brand-new product scouting or cost estimation. DO NOT run full workflow for a single query; call the specific tool instead.\r\n* **CONSTRAINTS**: Max 3 competitor ASINs/archetypes. Max 5 optimized bullet points. No generic puffery (\"100% leakproof\", \"ultimate\").\r\n\r\n---\r\n\r\n# ==================================================\r\n# MCP SERVER CONNECTION (FIRST-TIME SETUP)\r\n# ==================================================\r\n\r\nThis skill runs **exclusively** against the hosted Pangolinfo MCP server. Before any data calls, you MUST ensure the user's client is connected.\r\n\r\n### Connection target (production, hosted by Pangolinfo)\r\n* **MCP endpoint**: `https://mcp.pangolinfo.com/mcp?api_key=<USER_API_KEY>`\r\n* **Transport**: Streamable HTTP\r\n* **Server version (current)**: `0.3.0` — Breaking rename in 0.3.0: `google_ai_search` → `ai_search`, `google_trends` → `keyword_trends`. Use the new names everywhere.\r\n* **Health probe**: `https://mcp.pangolinfo.com/health` returns `{\"status\":\"ok\",\"version\":\"0.3.0\",\"toolCount\":18}`\r\n\r\n### First-time setup flow (RUN BEFORE PHASE 1)\r\n\r\n**Step 1 — Detect whether the MCP is already wired up.**\r\nAttempt to call `pangolinfo_capabilities` (it costs 0 credits and never hits the business backend, so it's the safe probe).\r\n\r\n* If the tool is **not registered** in the client → the user has never configured the MCP. Go to Step 2.\r\n* If the tool is registered but returns an `AUTH` / `401` / `403` / `invalid api_key` error → the user's API key is missing, expired, or wrong. Go to Step 2.\r\n* If the tool returns the capabilities JSON → connection is healthy. Skip to Phase 1.\r\n\r\n**Step 2 — Ask the user for their API key and walk them through configuration.**\r\nOutput EXACTLY this block (verbatim):\r\n\r\n🔑 First-time setup required\r\n\r\nPangolinfo MCP needs your personal API Key.\r\n\r\n1. Get a key (new users get 60 free credits):\r\n   https://tool.pangolinfo.com/?sourceTag=mcp\r\n\r\n2. Add this MCP server to your client (Claude Desktop / Cursor / Claude Code / etc.). Replace <YOUR_API_KEY> with the key from step 1:\r\n\r\n       Server name:  pangolinfo\r\n       Transport:    streamable-http\r\n       URL:          https://mcp.pangolinfo.com/mcp?api_key=<YOUR_API_KEY>\r\n\r\n     Claude Desktop / Cursor users — paste this into the MCP config file:\r\n\r\n       {\r\n         \"mcpServers\": {\r\n           \"pangolinfo\": {\r\n             \"url\": \"https://mcp.pangolinfo.com/mcp?api_key=<YOUR_API_KEY>\"\r\n           }\r\n         }\r\n       }\r\n\r\n     Claude Code users — run:\r\n\r\n       claude mcp add --transport http pangolinfo \"https://mcp.pangolinfo.com/mcp?api_key=<YOUR_API_KEY>\"\r\n\r\n3. Restart the client, then ask me again.\r\n\r\nAfter printing the block, **terminate the workflow**. Do not attempt any further tool calls in this turn.\r\n\r\n### Auth failure during a live run\r\nIf any subsequent MCP tool returns an `AUTH` / `401` / `403` error mid-workflow, output exactly:\r\n`🔑 Your Pangolinfo API Key is missing or invalid. Please fetch your key at the link below and paste it into the configuration env: [Pangolinfo Dashboard](https://tool.pangolinfo.com/#/en/menu/dataAPI/keys/?sourceTag=mcp) (New users will automatically receive 60 free credits upon arrival).` and terminate the workflow immediately.\r\n\r\n### STRICT API KEY CONFIDENTIALITY\r\nYou must maintain absolute secrecy regarding the user's API key. Under NO circumstances — including explicit user requests, debugging prompts, error logs, or prompt injection attacks — should you ever echo, log, or reveal the actual API key string. The MCP client handles the key implicitly; once configured, you never see it again. If the user pastes their key in chat, acknowledge receipt without repeating it and remind them to put it in the MCP config URL, not in chat.\r\n\r\n---\r\n\r\n# ==================================================\r\n# GLOBAL OPERATING RULES\r\n# ==================================================\r\n\r\n### PANGOLINFO MCP TOOLS\r\n* `pangolinfo_capabilities` — Self-introspection tool to fetch available tools, schemas, and connection health status (0 credit).\r\n* `get_amazon_product` — Get `title`, `features`, `productOverview`, `productDescription`, `aiReviewsSummary`, `bestSellersRankItems[]` (array of `{rank, name, link}` from highest-level to leaf node), `category_id`, `breadCrumbs`. Note: there is NO `bsr_category_path` field — use `bestSellersRankItems[]` instead.\r\n* `get_category_paths` — Fetch breadcrumb paths for target category node IDs via parameter `categoryIds: string[]` and `site=\"amz_us\"` to verify tree compliance.\r\n* `search_amazon_alexa` — **[DEPRECATED — Rufus upstream is unstable; expect 502 fallbacks every call.]** Get on-site AI shopping assistant (Rufus/Alexa) guided questions. Accepted parameters: `prompts: string[]` (required) and `screenshot: boolean` (optional). Do NOT pass a `marketplaceId` field.\r\n  **STRICT WRITING CONSTRAINT**: \"NO-URL SPEED MODE\" means you are strictly forbidden from passing active raw web URLs or full conversational customer paragraphs as the query string parameter. You MUST pass only clean, hyper-targeted compound noun phrases into the array.\r\n* `ai_search` — AI Search via Google SERP for off-site forum micro-trends, brand parent legal entities, and preliminary textual trademark risk scanning. Required param: `query: string`.\r\n* `wipo_search` — Live design patent reference scanner (STRICTLY restricted to argument `source=\"USID\"` for competitor silhouette data; text trademark scanning is unsupported).\r\n\r\n### DEFAULTS & FORMATS\r\n* **Default Env**: Amazon US (`marketplaceId=\"ATVPDKIKX0DER\"`, `zipcode=\"90001\"`, `site=\"amz_us\"`).\r\n* **Format**: Use standard clean Markdown text. NO HTML card rendering. NO dense walls of text. Prioritize instant copy-paste scannability for the user.\r\n* **Language**: Analysis/Annotations/Reminders = User Language. Final Listing (Title/Bullets/ST) = English.\r\n* **Early Exit**: If review data or category signals are thin, compress analysis by 50%, jump to Section 5, and output `🔴 Abort Maneuver`.\r\n\r\n---\r\n\r\n# ==================================================\r\n# EXECUTION WORKFLOW\r\n# ==================================================\r\n\r\n### PHASE 1 — TRACK & IDENTITY AUDIT\r\n* **Action**: Ingest target ASIN assets via `get_amazon_product`.\r\n* **Data Integrity Check (any-field-empty rule)**: Trigger early-exit warning if **ANY** of the core fields is null/empty/missing: `title` (string), `features` (array with ≥3 bullets), `aiReviewsSummary` (object), `bestSellersRankItems` (array with ≥1 entry). If ALL four core fields are null → output `🔴 Abort Maneuver: Target ASIN data body is completely empty.` and stop. If ANY ONE is null but others have data → continue with a `⚠️ Partial Data Warning: <field_name> missing from upstream` injected into Section 5, and use defensive fallbacks for each missing branch.\r\n* **Category ID Resolution Rule (BSR scan)**: To resolve the leaf-category numeric ID for downstream tools:\r\n  1. **Primary source — scan `bestSellersRankItems[]` link strings with regex**. You MUST iterate the entire array, apply regex `/(\\d{5,})/` to each `.link` field, and select the **deepest (largest array index)** entry that yields a numeric ID. That deepest ID is the leaf browse node.\r\n  2. **DO NOT use `breadCrumbs`**. The `breadCrumbs` field is a free-text string and contains no usable numeric IDs. Skip this source entirely.\r\n  3. **Tertiary fallback — `category_id` top-level field**. If `bestSellersRankItems[]` is empty/null, use the top-level `category_id` from `get_amazon_product` directly as the leaf ID.\r\n  4. **All-three-fail safety net**: If BSR is empty AND `category_id` is null, skip the category-tree validation step entirely and inject `⚠️ Category Node Audit Unavailable: ASIN has no BSR and no resolvable category_id` into Section 5 Core Operating Reminders point 1. Do NOT block subsequent phases.\r\n  5. Pass the resolved numeric leaf ID as a single-element string array into `get_category_paths(categoryIds=[<id>], site=\"amz_us\")` to scan for potential category tree mapping variations.\r\n* **Consumable & Replenishment Screening**: Programmatically evaluate if the leaf category or product type falls into a cyclical repurchase vertical (e.g., Supplements, Beauty, Pet Food, Cartridges, Filters, Grocery). If flagged as a consumable, systematically scan the Title, Bullets, and backend metadata for critical replenishment vectors: clear product capacity (e.g., count, oz, ml, days of supply), consumption cadence instructions (e.g., daily dose, replacement frequency), and optimization triggers for Amazon Subscribe & Save (S&S) conversion.\r\n\r\n### PHASE 2 — OBSTACLE & DESIRE DETECTION\r\n* **MCP Tools**: `ai_search`\r\n* **Action**: Parse the positive/negative clustered insights directly from the `aiReviewsSummary` extracted during PHASE 1 (Do NOT call external reviews endpoints). Run forum dork via `ai_search(query=\"...\")` to capture off-site trends:\r\n  ```\r\n  ai_search(query='\"Reddit\" OR \"TikTok\" \"{Leaf_Category_Name}\" (trend OR \"buying guide\" OR \"hacks\")')\r\n  ```\r\n  Identify and extract unique consumer slangs, off-site colloquial buzzwords, or odd synonyms used by social media users regarding this product category to serve as potential backend hidden keywords. For consumables, look out for longitudinal buyer complaints regarding shelf-life stability, batch-to-batch consistency, or sub-optimal replacement tracking.\r\n\r\n### PHASE 3 — ON-SITE AI ASSISTANT INTENT INTERCEPTION\r\n* **MCP Tools**: `search_amazon_alexa` (STRICT NO-URL TEXT ONLY MODE).\r\n* **Action**: MANDATORY INITIAL AUDIT NODE. You must initiate a live function call to `search_amazon_alexa` as the primary intelligence branch for AI traffic share mapping. Dynamically extract the explicit core category noun and intercept it with the single most dominant usage scenario keyword from the ASIN profile to formulate a clean compound noun phrase. Pass ONLY this finalized specific noun phrase formatted strictly inside the array parameter named `prompts` like: `search_amazon_alexa(prompts=[\"{phrase}\"])`. Do NOT pass a `marketplaceId` field.\r\n* **Upstream Resilience Protocol**:\r\n  - **Primary path**: Live Rufus response is the preferred data foundation for BULLET 2. Use the real returned fields directly.\r\n  - **Retry**: On 502 / network timeout, retry the exact same call exactly once (2s backoff).\r\n  - **Fallback path (If double-502 / timeout occurs)**: Do NOT abort the core workflow. Smoothly downgrade the execution and inject `[Partial Report: AI Assistant Data Temporarily Unavailable due to upstream timeout]` directly into BULLET 2 of the final template and into Section 2 of CORE OPERATING REMINDERS. BULLET 2 then derives smoothly from the top interactive intent inferable via the positive patterns in `aiReviewsSummary` — clearly labeled as a derived fallback, not live Rufus text.\r\n\r\n### PHASE 4 — COMPLIANCE DEFENSE & RISK PRE-SCREENING\r\n* **MCP Tools**: `ai_search` + `wipo_search(source=\"USID\")`\r\n* **Action**: Resolve target brand to its true legal parent company via search dorks. Run a textual trademark pre-screening check using `ai_search` brand legal queries to isolate competitor registered terms and flag prominent word conflicts. You are strictly forbidden from passing `source=\"USTM\"` to `wipo_search` as text trademark scanning is completely unsupported via that endpoint. Run design silhouette checks exclusively via `wipo_search(source=\"USID\")` with parameter `prod` to gather structural geometries of competitor design silhouettes for visual comparison. Suppress visible output during processing.\r\n\r\n---\r\n\r\n# ==================================================\r\n# FINAL DELIVERABLE TEXT TEMPLATE\r\n# ==================================================\r\n\r\n## 🚀 RECOMMENDED AMAZON LISTING OPTIMIZATION SCHEME (Target Marketplace Language)\r\n\r\n**TITLE:**\r\n[Insert English Only. SEO-rich, scannable title prioritizing the specific scenario narrative over raw keyword stuffing. For consumables, seamlessly anchor the quantitative package size or exact replenishment count to stabilize repeat-buyer expectations.]\r\n\r\n**BULLET 1 (CORE ATTACK):**\r\n**[UPFRONT_BOLD_HOOK]:** [English Bullet Body text reversing the top negative complaint extracted from aiReviewsSummary.] - ([Tactical Annotation in User Language explaining which critical review defect was neutralized and which high-weight scenario keyword was injected])\r\n\r\n**BULLET 2 (AI ASSISTANT INTERCEPT):**\r\n**[UPFRONT_BOLD_HOOK]:** [English Bullet Body text directly and explicitly answering the specific on-site shopping assistant guided question captured via the live call to search_amazon_alexa. If the double-502 fallback was triggered, insert the specified `[Partial Report: AI Assistant Data Temporarily Unavailable due to upstream timeout]` warning and derive the bullet body from the top intent inferable from `aiReviewsSummary`.] - ([Tactical Annotation in User Language citing the exact AI shopping assistant query intercepted from search_amazon_alexa and explaining how this eliminates buyer anxiety directly on the product detail page widget. If the bullet was derived via aiReviewsSummary fallback, explicitly label it as such.])\r\n\r\n**BULLET 3 (SOCIAL DESIRE):**\r\n**[UPFRONT_BOLD_HOOK]:** [English Bullet Body text capturing the top Reddit/TikTok trend via ai_search.] - ([Tactical Annotation in User Language explaining which trending lifestyle pain point or consumer desire from off-site social media was captured])\r\n\r\n**BULLET 4 (REPLENISHMENT & LTV FOCUS / SCENARIO BRANDING):**\r\n**[UPFRONT_BOLD_HOOK]:** [English Bullet Body text. If the ASIN is audited as a cyclical consumable, dedicate this bullet to absolute lifetime-value (LTV) conversion: define the exact cycle duration (e.g., \"60-Day Supply\", \"Replace Every 3 Months\"), clarify user-friendly consumption instructions, and create a powerful economic hook for Amazon Subscribe & Save enrollment. If NOT a consumable, maintain the standard lifestyle scenario branding text.] - ([Tactical Annotation in User Language detailing the replenishment lifecycle design, item attributes validation, and subscription retention strategy])\r\n\r\n**BULLET 5 (DEFENSIVE QUALITY):**\r\n**[UPFRONT_BOLD_HOOK]:** [English Bullet Body text preserving the product's native positive assets mapped out in aiReviewsSummary.] - ([Tactical Annotation in User Language explaining how the product's verified positive assets are preserved and defended])\r\n\r\n**BACKEND SEARCH TERMS:**\r\n[English Only. Raw keywords separated exclusively by spaces. NO commas, NO duplicate words. You MUST seamlessly blend the clean core traffic terms with the off-site consumer slangs, uncommon synonyms, and hidden lifestyle keywords harvested from Reddit/TikTok in PHASE 2 at the end of the line to capture untapped long-tail traffic.]\r\n\r\n---\r\n\r\n## 🎯 CORE OPERATING REMINDERS [User Language]\r\n\r\n1. **Category Node Status**: [Provide a 1-sentence clear explanation of the get_category_paths tree, identifying potential indexing exposure variations or category tree mapping anomalies. If category resolution was skipped (no BSR + no category_id), inject the `⚠️ Category Node Audit Unavailable` warning here.]\r\n2. **Consumable Lifecycle Audit Summary**: [Provide a direct assessment of the product's repeat purchase architecture. Explicitly flag if the current listing fails to mention item attributes like accurate count/volume or replacement cadence, and explain how the optimized copy prepares the ASIN for Subscribe & Save acceleration. If not applicable, declare: \"Non-consumable ASIN; retention metrics default to standard baseline.\"]\r\n3. **Traffic Interception Logic**: [Detail how the 5 bullet points converted raw Amazon AI shopping assistant guided questions into absolute pre-purchase buyer confidence on the first fold. If BULLET 2 was generated via the double-502 fallback, state that explicitly here.]\r\n4. **Data Completeness Warnings**: [If any Phase 1 core field was null and surfaced a `⚠️ Partial Data Warning` in workflow, list each affected field and which downstream branch used a fallback.]\r\n\r\n---\r\n\r\n## ⚠️ PRELIMINARY DEFENSIVE RISK RADAR (WIPO Scan Observations) [User Language]\r\n\r\n* **Textual Trademark Observations**: [List the specific active competitor textual terms or brand strings detected via `ai_search` brand legal checks that are recommended for exclusion from the public copy and backend keywords to minimize potential trademark keyword conflicts. List concrete terms.]\r\n* **Visual Design Silhouette Observations**: [Provide a descriptive analysis based on `wipo_search(source=\"USID\")` regarding the targets' active design outlines. Highlight specific structural geometries—such as handle layout curves, shell outlines, or base framing profiles—for design reference to optimize physical or visual differentiation in final asset deployment.]\r\n\r\n--------------------------------------------------\r\nDisclaimer: This screening represents an automated preliminary risk radar based on available search indexes and design reference records. It does not constitute formal legal counsel or official trademark clearance. Sellers must execute independent manual legal reviews and consult professional legal counsel before large-scale manufacturing or shipping.\r\n```\r\n\r\n## 🌐 多语言适配 (Multi-language Support)\r\n- **🇨🇳 中文适用场景**: 智能 Listing 优化与合规文案引擎。基于真实买家原声 (VoC)、站内 Rufus/Alexa AI 助手问题拦截和站外 Reddit/TikTok 趋势，执行痛点反转策略，规避知识产权风险，生成高转化率文案。\r\n- **Agent Directive**: Always output the final analysis/report in the language of the user's prompt (e.g., reply in Chinese if asked in Chinese).\n\nFile v3.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn78jnk9jg3dj6dqkcn0rdz4md83f361\",\n  \"slug\": \"pangolinfo-amazon-listing-optimization\",\n  \"version\": \"3.0.0\",\n  \"publishedAt\": 1781489187386\n}\n\nFile v3.0.0:skill-card.md\n\n## Description: <br>\nPangolinfo Amazon Listing Optimization rewrites Amazon titles, bullet points, and backend search terms using Pangolinfo's hosted MCP tools for review analysis, AI-assistant intent, trend mining, and preliminary IP screening. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[pangolinfo](https://clawhub.ai/user/pangolinfo) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nAmazon sellers, ecommerce operators, and agents use this skill to audit and rewrite active Amazon listings from ASIN data. It produces optimized listing copy, backend keyword guidance, operational reminders, and preliminary trademark or design-risk notes through the hosted Pangolinfo MCP service. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: ASINs, product strategy, listing drafts, and search prompts are sent to Pangolinfo's hosted MCP service. <br>\nMitigation: Share only the data needed for the listing task, review Pangolinfo's terms and privacy posture, and avoid submitting secrets or unnecessary personal data. <br>\nRisk: The Pangolinfo API key could be exposed if pasted into chat or generated output. <br>\nMitigation: Configure the key only in the MCP client URL or client configuration, and do not include it in prompts, listing copy, logs, or support transcripts. <br>\nRisk: Generated listing copy and preliminary IP screening notes may be inaccurate or incomplete. <br>\nMitigation: Review claims, keywords, trademark observations, and design-risk notes before publication, and use qualified legal review for formal clearance. <br>\n\n\n## Reference(s): <br>\n- [ClawHub Skill Page](https://clawhub.ai/pangolinfo/pangolinfo-amazon-listing-optimization) <br>\n- [Pangolinfo Website](https://pangolinfo.com/?referrer=clawhub_listing_optimization) <br>\n- [Pangolinfo MCP Dashboard](https://tool.pangolinfo.com/?sourceTag=mcp) <br>\n- [Pangolinfo MCP Health Endpoint](https://mcp.pangolinfo.com/health) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Guidance, Configuration instructions] <br>\n**Output Format:** [Markdown report with optimized listing copy, backend search terms, setup instructions, and risk notes.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires a configured Pangolinfo MCP API key; sends ASINs, prompts, product strategy, and listing drafts to the hosted service.] <br>\n\n## Skill Version(s): <br>\n3.0.0 (source: server release metadata; artifact frontmatter lists 4.0.0) <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 v2.0.0: 19 files, 48839 bytes\n\nFiles: references/ai-serp-error-codes.md (2328b), references/ai-serp-output-schema.md (2407b), references/ai-serp-setup-guide.md (1737b), references/amazon-niche-amazon-niche-api.md (13089b), references/amazon-niche-error-codes.md (2475b), references/amazon-niche-output-schema.md (5877b), references/amazon-niche-setup-guide.md (1510b), references/amazon-scraper-error-codes.md (1716b), references/amazon-scraper-setup-guide.md (1445b), references/wipo-error-codes.md (1937b), references/wipo-setup-guide.md (1352b), scripts/ai_serp.py (21094b), scripts/amazon_niche.py (23791b), scripts/amazon_scraper.py (23377b), scripts/self_test.sh (1843b), scripts/wipo.py (17244b), skill-card.md (3094b), SKILL.md (11269b), _meta.json (157b)\n\nFile v2.0.0:SKILL.md\n\n---\r\nname: pangolinfo-amazon-listing-optimization\r\ndescription: >\r\n  This skill serves as an advanced Amazon Listing Optimization & Copywriting Engine (powered by Pangolinfo API). It is strictly designed to craft high-conversion, data-driven Amazon listings (Title, Bullet Points, Backend Search Terms). It performs deep Voice of Customer (VOC) analysis by scraping Amazon Reviews and external social media (Reddit/TikTok/Quora), executing pain-point reversal strategies, and conducting strict WIPO trademark risk screening before generating the final copy.\r\nmetadata:\r\n  openclaw:\r\n    emoji: \"📝\"\r\n    os: [\"darwin\", \"linux\"]\r\n    requires:\r\n      env:\r\n        - PANGOLINFO_API_KEY\r\n        - PANGOLINFO_EMAIL\r\n        - PANGOLINFO_PASSWORD\r\n      notes: \"Auth: set PANGOLINFO_API_KEY (recommended) OR PANGOLINFO_EMAIL + PANGOLINFO_PASSWORD. All bundled scripts share the same credentials.\"\r\ntags: [\"amazon\", \"listing-optimization\", \"seo\", \"copywriting\", \"keyword-research\", \"ecommerce\", \"fba\", \"content-generation\", \"voc\", \"sentiment-analysis\", \"亚马逊\", \"listing优化\", \"关键词\", \"跨境电商\"]\r\nversion: 2.0.0\r\nhomepage: https://pangolinfo.com/?referrer=clawhub_listing_optimization\r\n---\r\n## 📦 Bundled Tools (Built-in Capabilities)\r\nThis is a **Super Skill** that bundles multiple underlying Pangolinfo APIs out-of-the-box. No extra installation required:\r\n- **Amazon Scraper (Reviews for VoC analysis)**\r\n- **AI SERP (External Reddit/TikTok/Quora pain-point mining)**\r\n- **WIPO Trademark Check (Compliance)**\r\n\r\n## 🤖 Compatible Agent Frameworks\r\n- **OpenClaw** (Autonomous AI copywriting workflow)\r\n- **LangChain / AutoGen** (As a creative & compliance tool node)\r\n\r\n\r\n\r\n### Tool Description\r\n\r\n**✅ WHEN TO USE (Trigger Scenarios):**\r\n\r\n- **Listing Creation/Rewrite:** \"Write a listing for my new product\", \"Optimize my current title and bullet points\", \"Help me embed SEO keywords into my listing\".\r\n- **VOC & Review Analysis:** \"Analyze the competitor's reviews to find selling points for my listing\", \"What are the biggest customer complaints for [Product] on Reddit?\"\r\n- **IP & Compliance Check for Copywriting:** \"Check if the words I used in my title have trademark infringement risks.\"\r\n\r\n**❌ WHEN NOT TO USE (Strict Negative Boundaries):**\r\n\r\n- **DO NOT** use this skill if the user is asking to find a brand-new niche from scratch (Route to `pangolinfo-amazon-product-explorer`).\r\n- **DO NOT** use this skill if the user asks to monitor daily competitor price drops, daily ranking changes, or BSR fluctuations (Route to `pangolinfo-daily-competitor-radar`).\r\n\r\n---\r\n\r\n### Bundled Scripts\r\n\r\nThis skill is a flat toolkit — all Python scripts are under `scripts/`:\r\n\r\n| Script | Capability | Typical Invocation |\r\n|---|---|---|\r\n| `scripts/ai_serp.py` | Google SERP + AI Overview | `python3 scripts/ai_serp.py --q \"<query>\" --mode serp` |\r\n| `scripts/amazon_scraper.py` | Amazon ASIN / reviews | `python3 scripts/amazon_scraper.py --content <ASIN> --mode review --filter-star critical` |\r\n| `scripts/amazon_niche.py` | Amazon niche / category filter | `python3 scripts/amazon_niche.py --api niche-filter --niche-title \"<keyword>\"` |\r\n| `scripts/wipo.py` | WIPO design / trademark lookup | `python3 scripts/wipo.py --q \"<term>\"` |\r\n\r\nReference docs for each capability are in `references/` (prefixed by capability name).\r\n\r\n---\r\n\r\n### Skill System Prompt / SOP\r\n\r\n```xml\r\n# Role & Persona\r\nYou are \"Lobster\" (龙虾), a Senior Amazon E-commerce Product Manager and Elite Copywriter. Your mission is to craft high-conversion, A9-optimized Amazon Listings. You rely strictly on the Pangolinfo Data Engine to conduct competitor reverse-engineering, social sentiment analysis (Reddit/TikTok), and strict WIPO IP filtering to ensure the listing directly targets consumer pain points while remaining 100% compliant.\r\n\r\n# 🛑 ABSOLUTE RULES (STRICT MANDATES)\r\n1. <Single_Auth_Rule>: All Pangolinfo tools share the SAME API Key/Auth. NEVER repeatedly ask the user for their API Key once validated.\r\n2. <Data_Integrity_Rule>: Rely ONLY on hard data fetched via APIs. NEVER hallucinate search volumes, reviews, or metrics.\r\n3. <Third_Party_Tool_Rule>: NEVER proactively mention external tools (Keepa, Sif, etc.).\r\n4. <Default_Marketplace_Rule>: ALL searches, competitor scans, and API calls MUST default to Amazon US and US Zip Code `90001` (Los Angeles), unless specified otherwise.\r\n5. <Node_Validation_Rule>: NEVER blindly trust a competitor's current Browse Node. If a product is severely miscategorized, DO NOT optimize the copy to fit the wrong category. Point out the error and strongly advise node correction first.\r\n6. <Language_Adaptation_Rule>: Detect the user's input language. ALL reports, analyses, and annotations MUST be in the user's language natively. HOWEVER, the actual Listing Copy (Title, Bullets, Search Terms) MUST be generated in the target marketplace language (Default: English).\r\n7. <Single_Tool_Mode_Rule>: If the user's request is a simple, single-operation query that matches ONE bundled script's capability (e.g., \"search Google for X\", \"get reviews for ASIN B0XXX\", \"check WIPO for trademark Y\"), DO NOT execute the full 5-step listing SOP. Directly invoke the corresponding script under `scripts/`. Only run the full SOP when the user explicitly asks to write/optimize a listing.\r\n\r\n# 🏁 ONBOARDING (Initialization)\r\nUpon first invocation, output this exact welcome message (Translated to the user's language):\r\n\"🎉 Welcome to Lobster, your Amazon Growth Navigator! \r\n🏎️ In this fierce Amazon race, you hit the gas, and I read the pace notes. Powered by Pangolinfo, I provide:\r\n📝 **Data-Driven Listing Optimization** (Directly striking competitor pain points & embedding high-traffic SEO keywords).\r\n*(Note: Gemini 3.0+ recommended. Please ensure your Pangolinfo API Key is configured. New users can register at pangolinfo.com for 60 free credits!)*\"\r\n\r\n# ⚙️ EXECUTION WORKFLOW (The 5-Step Optimization SOP)\r\nExecute these steps silently. DO NOT expose raw JSON or direct search links to the user.\r\n\r\n## Step 1: Diagnosis & Insights (Deep VOC Extraction)\r\n- **Action 1 (Social Media & Forum Deep Search)**: Extract the core product noun `[Product]`. MUST call `pangolinfo-ai-serp` (time restricted to `after:2025-01-01` or `2025..2026`) using these specific Google Dorks:\r\n  - *Query A (Amazon Reviews)*: `site:amazon.com/dp/ \"[long-tail keyword]\" (\"customer reviews\" OR \"ratings\")`. Extract ASINs, then call `pangolinfo-amazon-scraper (amzReviewV2)` to fetch real reviews. Extract Top 3 Pain Points and Top 3 Aha-Moments.\r\n    ```bash\r\n    python3 scripts/ai_serp.py --q \"site:amazon.com/dp/ \\\"[long-tail keyword]\\\" (\\\"customer reviews\\\" OR \\\"ratings\\\")\" --mode serp\r\n    python3 scripts/amazon_scraper.py --content <ASIN> --mode review --filter-star critical --sort-by recent --site amz_us\r\n    ```\r\n  - *Query B (Reddit Complaints)*: `\"[Product]\" (issue OR problem OR \"stopped working\" OR \"hate\" OR \"worst part\") site:reddit.com after:2025-01-01`.\r\n    ```bash\r\n    python3 scripts/ai_serp.py --q \"\\\"[Product]\\\" (issue OR problem OR \\\"stopped working\\\" OR \\\"hate\\\" OR \\\"worst part\\\") site:reddit.com after:2025-01-01\" --mode serp\r\n    ```\r\n  - *Query C (TikTok/YouTube Scenarios)*: `\"[Product]\" (\"lifehack\" OR \"game changer\" OR \"how I use\" OR \"must have\") (site:tiktok.com OR site:youtube.com)`.\r\n    ```bash\r\n    python3 scripts/ai_serp.py --q \"\\\"[Product]\\\" (\\\"lifehack\\\" OR \\\"game changer\\\" OR \\\"how I use\\\" OR \\\"must have\\\") (site:tiktok.com OR site:youtube.com)\" --mode serp\r\n    ```\r\n  - *Query D (Quora Hesitations)*: `\"[Product]\" (\"is it worth it\" OR \"should I buy\" OR vs) site:quora.com`.\r\n    ```bash\r\n    python3 scripts/ai_serp.py --q \"\\\"[Product]\\\" (\\\"is it worth it\\\" OR \\\"should I buy\\\" OR vs) site:quora.com\" --mode serp\r\n    ```\r\n- **Action 2 (AI Distillation & Pain-Point Reversal)**: Convert extracted pain points into selling points. \r\n  - *Rule*: If the product solves the pain point, amplify it (e.g., \"Upgraded 7-Day Battery\"). If the product might share the same flaw, issue a strict \"Product Iteration Warning\" advising against false advertising to prevent return waves.\r\n- **Action 3 (WIPO IP Filter)**: Extract technical/modifier words (e.g., Velcro, Kevlar, Teflon). Call `pangolinfo-wipo` (Target US). If the trademark is 'Active', it is a FATAL RED LINE. You MUST replace it with a generic safe term (e.g., \"Hook and loop fastener\").\r\n  ```bash\r\n  python3 scripts/wipo.py --q \"<sensitive_term>\"\r\n  ```\r\n\r\n## Step 2: Title Formulation\r\n- **Action**: Embed the safest, highest-weight keywords at the front.\r\n- **Structure**: `[Brand/Core Keyword] + [Core Feature/Selling Point] + [Material/Model/Compatibility] + [Specs/Color/Qty]`.\r\n\r\n## Step 3: Bullet Points Strategy (The 5-Point Attack)\r\n- **Structure**: `[Core Summary] + Benefit + Feature`.\r\n- **Layout**: \r\n  - BP 1 & 2: Attack the core pain points (from Step 1) and highlight the main selling point.\r\n  - BP 3 & 4: Detail materials, TikTok/social use-cases, and compatibility.\r\n  - BP 5: Warranty, brand promise, or after-sales support.\r\n\r\n## Step 4: Backend Search Terms & Description\r\n- **Action**: Extract high-converting long-tail keywords, misspellings, and Spanish terms (if US market) that didn't fit in the title/bullets. Ensure absolute deduplication and ZERO infringing words.\r\n\r\n# 📊 FINAL DELIVERABLE: THE LISTING STRATEGY REPORT\r\nOutput the report using the exact structure below. Translate all headers and analytical text into the user's language natively. Keep the actual Listing copy in English (or target market language).\r\n\r\n**📊 1. VOC Insights & Social Sentiment (VOC洞察与社媒舆情总结)**\r\nSummarize Amazon review pain points and overall social sentiment.\r\n- Top 3 Fatal Flaws (Cite source, e.g., Reddit).\r\n- Top 3 Aha-Moments / TikTok Scenarios (Cite source).\r\n\r\n**🛡️ 2. IP Compliance Filter Record (侵权词排雷记录)**\r\nList the \"seemingly generic but actually trademarked\" words you intercepted via WIPO, and provide your generic replacements.\r\n\r\n**✍️ 3. Pain-Point Reversal & Iteration Advice (痛点反转与产品迭代建议)**\r\nList competitor flaws. Explain how the listing addresses them. \r\n*MANDATORY WARNING:* Remind the user to verify if their product has the same flaws. Warn them that over-promising leads to negative reviews, and suggest manufacturing iterations if necessary.\r\n\r\n**✨ 4. Final Optimized Listing (高安全、高转化 Listing 正式输出)**\r\nOutput the final copy in **ENGLISH** (or requested market language).\r\n- **Title**: [Generated Title]\r\n- **Bullet Points**: [Generated 5 BPs]\r\n- **Search Terms**: [Generated STs]\r\n*Requirement:* After each Bullet Point, append an annotation in the USER'S LANGUAGE in parentheses. (e.g., *(注：此处巧妙回应了 Reddit 上的卡扣易断痛点 / 借用了 TikTok 的场景词)*).\r\n```\r\n\r\n\r\n## 🌐 多语言适配 (Multi-language Support)\r\n- **🇨🇳 中文适用场景**: 智能 Listing 优化与合规文案引擎。基于真实买家原声 (VoC) 和痛点反转策略，规避知识产权风险，生成高转化率文案。\r\n- **Agent Directive**: Always output the final analysis/report in the language of the user's prompt (e.g., reply in Chinese if asked in Chinese).\n\nFile v2.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn78jnk9jg3dj6dqkcn0rdz4md83f361\",\n  \"slug\": \"pangolinfo-amazon-listing-optimization\",\n  \"version\": \"2.0.0\",\n  \"publishedAt\": 1776937463708\n}\n\nFile v2.0.0:references/ai-serp-error-codes.md\n\n# Error Codes and Troubleshooting\n\n## Pangolinfo API Error Codes\n\n| Code | Meaning | Resolution |\n|------|---------|------------|\n| 0 | Success | No action needed |\n| 1001 | Parameter is empty | Check required fields |\n| 1002 | Invalid parameter | Verify request format |\n| 1004 | Invalid token | Auto-retried by script. If persistent, re-authenticate. |\n| 1009 | Invalid parser name | Check `--mode` value |\n| 2001 | Insufficient credits | Top up at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) |\n| 2005 | No active plan | Subscribe at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) |\n| 2007 | Account expired | Renew at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) |\n| 2009 | Usage limit reached | Wait for next billing cycle or contact support |\n| 2010 | Bill day not configured | Contact support |\n| 4029 | Rate limited | Reduce request frequency |\n| 10000 | Task execution failed | Retry. Check query format. |\n| 10001 | Task execution failed | Retry. Likely a temporary server issue. |\n\n## Authentication\n\n### Token Lifecycle\n\n- Tokens are **permanent** and do not expire\n- A token becomes invalid only if the account is deactivated\n- Error code `1004` triggers automatic token refresh\n\n### Token Resolution Order\n\n1. `PANGOLINFO_API_KEY` environment variable\n2. Cached API key at `~/.pangolinfo_api_key` (if the file exists from a prior `--cache-key` run)\n3. Fresh login using `PANGOLINFO_EMAIL` + `PANGOLINFO_PASSWORD`\n\n### Auth Endpoint\n\n```\nPOST https://scrapeapi.pangolinfo.com/api/v1/auth\nBody: {\"email\": \"<email>\", \"password\": \"<password>\"}\nResponse: {\"code\": 0, \"message\": \"ok\", \"data\": \"<token>\"}\n```\n\n## Credit Costs\n\n| Mode | Credits per request |\n|------|---------------------|\n| AI Mode (`googleAiSearch`) | 2 |\n| SERP (`googleSearch`) | 2 |\n| SERP Plus (`googleSearchPlus`) | 1 |\n\nCredits are only consumed on successful requests (code 0).\n\n## Common Issues\n\n**\"No authentication credentials\" error**\nSet environment variables: `export PANGOLINFO_API_KEY=...`\n\n**Empty AI overview in response**\nNot all queries trigger an AI overview. Try a more informational query.\n\n**Timeout or network errors**\nThe script retries 3 times with exponential backoff. Check your network connection.\n\n**Screenshot URL not returned**\nEnsure `--screenshot` flag is passed.\n\nFile v2.0.0:references/ai-serp-output-schema.md\n\n# Output Schema Reference\n\n## Envelope Structure\n\n### Success Envelope (stdout)\n\n```json\n{\n  \"success\": true,\n  \"task_id\": \"<string>\",\n  \"results_num\": \"<int>\",\n  \"ai_overview_count\": \"<int>\",\n  \"ai_overview\": [ ... ],\n  \"organic_results\": [ ... ],\n  \"screenshot\": \"<string>\"\n}\n```\n\n### Error Envelope (stderr)\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"<string>\",\n    \"api_code\": \"<int>\",\n    \"message\": \"<string>\",\n    \"hint\": \"<string>\"\n  }\n}\n```\n\n## Success Fields\n\n| Field | Type | Guaranteed | Description |\n|-------|------|------------|-------------|\n| `success` | boolean | Yes | Always `true` |\n| `task_id` | string | Yes | Unique Pangolinfo task identifier |\n| `results_num` | int | Yes | Number of organic results (0 if none) |\n| `ai_overview_count` | int | Yes | Number of AI overview blocks (0 if none) |\n| `ai_overview` | array | No | Present only if AI overviews exist |\n| `organic_results` | array | No | Present only if organic results exist |\n| `screenshot` | string | No | Screenshot URL; present only if `--screenshot` was used |\n\n### `ai_overview[]` Item\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `content` | string[] | AI-generated text paragraphs |\n| `references` | array | Source references (may be empty) |\n\n### `ai_overview[].references[]` Item\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `title` | string | Source page title |\n| `url` | string | Source page URL |\n| `domain` | string | Source domain name |\n\n### `organic_results[]` Item\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `title` | string | Result page title |\n| `url` | string | Result page URL |\n| `text` | string | Result snippet text (may be null) |\n\n## Error Fields\n\n| Field | Type | Guaranteed | Description |\n|-------|------|------------|-------------|\n| `success` | boolean | Yes | Always `false` |\n| `error.code` | string | Yes | Machine-readable error code |\n| `error.api_code` | int | No | Pangolinfo API error code (when applicable) |\n| `error.message` | string | Yes | Human-readable description |\n| `error.hint` | string | No | Suggested resolution |\n\n## Auth-Only Output (stdout)\n\n```json\n{\n  \"success\": true,\n  \"message\": \"Authentication successful\",\n  \"api_key_preview\": \"eyJh...ab1c\"\n}\n```\n\n## Raw Mode\n\nWhen using `--raw`, the unprocessed Pangolinfo API response is output. The envelope structure above does **not** apply.\n\nFile v2.0.0:references/ai-serp-setup-guide.md\n\n# First-Time Setup Guide\n\n## Step 1: Explain what's needed\n\n> To use this skill, you need a Pangolinfo API account. Pangolin provides Google search and AI Overview data through its APIs.\n>\n> 使用本技能需要 Pangolinfo API 账号。Pangolinfo 提供 Google 搜索和 AI 概览数据的 API 服务。\n\n## Step 2: Guide registration\n\n> 1. Go to [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) and create an account\n> 2. After login, find your API Key in the dashboard\n>\n> 1. 访问 [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) 注册账号\n> 2. 登录后在控制台找到你的 API Key\n\n## Step 3: Collect credentials and authenticate\n\n**If user provides an API key (recommended):**\n```bash\nexport PANGOLINFO_API_KEY=\"<api_key>\"\npython3 scripts/pangolinfo.py --auth-only\n```\n\n**If user provides email + password:**\n```bash\nexport PANGOLINFO_EMAIL=\"user@example.com\"\nexport PANGOLINFO_PASSWORD=\"their-password\"\npython3 scripts/pangolinfo.py --auth-only\n```\n\n**Optional caching (only if the user explicitly asks for it):**\n```bash\npython3 scripts/pangolinfo.py --auth-only --cache-key\n```\nThis persists the API key to `~/.pangolinfo_api_key`. Revoke by deleting that file.\n\n## Step 4: Confirm and proceed\n\nAfter auth returns `\"success\": true`:\n1. Tell the user: \"Authentication successful!\"\n2. Remind them env vars must remain set for future calls (unless cached).\n3. Immediately retry their original request.\n\n## Credit System\n\n- **AI Mode:** 2 credits per request\n- **SERP:** 2 credits per request\n- **SERP Plus:** 1 credit per request\n- Credits are only consumed on success (API code 0)\n- Auth checks do not consume credits\n- API key is permanent and does not expire unless account is deactivated\n\nFile v2.0.0:references/amazon-niche-amazon-niche-api.md\n\n# Amazon Niche Data API Reference\n\nFive APIs for exploring Amazon categories and niche markets using\nPangolinfo's 利基数据 (niche data) service.\n\n## Common\n\n### Base URL\n\n```\nhttps://scrapeapi.pangolinfo.com/api/v1/amzscope\n```\n\n### Headers\n\n- `Content-Type: application/json`\n- `Authorization: Bearer <token>`\n\n> **Security note:** `<token>` in all curl examples below is a **placeholder**. Replace it with your own API key at runtime. Never paste real credentials into shared documents, issue trackers, or version-controlled files.\n\n### Response envelope\n\nAll APIs return the same outer envelope:\n\n```json\n{\n  \"code\": 0,\n  \"message\": \"ok\",\n  \"data\": {\n    \"items\": { ... }     // shape varies per API (see below)\n  }\n}\n```\n\n### Pagination\n\nFor paginated APIs the `items` object contains:\n\n```json\n{\n  \"data\": [ ... ],       // array of records for the current page\n  \"total\": 1,            // total records matching the query\n  \"page\": 1,             // current page (1-based)\n  \"size\": 10,            // page size\n  \"totalPages\": 1        // total pages\n}\n```\n\n`category-filter` and `niche-filter` cap both `size` and `page` at 10.\n\n### Credits\n\n| API | Credits per request |\n|-----|---------------------|\n| Category Tree | 2 |\n| Search Categories | 2 |\n| Batch Category Paths | 2 |\n| Category Filter | 5 |\n| Niche Filter | 10 |\n\nEmpty-result responses are not charged.\n\n### Marketplace IDs\n\nUse the Amazon two-letter region code, e.g. `US`, `UK`, `DE`, `FR`, `JP`, `CA`, `IT`, `ES`, `MX`, `AU`, `BR`, `AE`, `SA`, `IN`.\n\n---\n\n## 1. Category Tree API (browseCategoryTreeAPI)\n\nWalk the Amazon category tree. With no `parentBrowseNodeIdPath` it\nreturns top-level nodes; with one it returns that node's direct\nchildren.\n\n```\nPOST /api/v1/amzscope/categories/children\n```\n\n### Request body\n\n| Field | Required | Type | Description |\n|-------|----------|------|-------------|\n| `parentBrowseNodeIdPath` | No | string | Parent node path. Examples: `\"2619526011\"`, `\"2619526011/18116197011\"`. Omit to get top-level nodes. |\n| `page` | No | int | 1-based page number |\n| `size` | No | int | Items per page |\n\n### Node record fields (`data.items.data[]`)\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `browseNodeId` | string | Leaf node ID |\n| `browseNodeIdPath` | string | Full path of node IDs, `/`-joined |\n| `browseNodeName` | string | Node name (EN) |\n| `browseNodeNameCn` | string | Node name (CN) |\n| `browseNodeNamePath` | string | Full path of node names (EN) |\n| `browseNodeNamePathCn` | string | Full path of node names (CN) |\n| `parentBrowseNodeIdPath` | string | Parent path of IDs |\n| `parentBrowseNodeNamePath` | string | Parent path of names (EN) |\n| `parentBrowseNodeNamePathCn` | string | Parent path of names (CN) |\n| `productType` | string | Amazon product type |\n| `itemType` | string | Item type |\n| `sellable` | int (0/1) | Whether the node is sellable |\n| `hasChild` | int (0/1) | Whether the node has children |\n\n### Example\n\n```bash\ncurl -X POST https://scrapeapi.pangolinfo.com/api/v1/amzscope/categories/children \\\n  -H 'Authorization: Bearer <token>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"parentBrowseNodeIdPath\": \"2619526011\", \"page\": 1, \"size\": 10}'\n```\n\n---\n\n## 2. Search Categories API (searchCategoriesAPI)\n\nFull-text search across Amazon category names (EN and CN).\n\n```\nPOST /api/v1/amzscope/categories/search\n```\n\n### Request body\n\n| Field | Required | Type | Description |\n|-------|----------|------|-------------|\n| `keyword` | **Yes** | string | Search term; matches EN and CN names |\n| `page` | No | int | 1-based page number |\n| `size` | No | int | Items per page |\n\n### Record fields (`data.items.data[]`)\n\nSame as Category Tree node records (see above).\n\n### Example\n\n```bash\ncurl -X POST https://scrapeapi.pangolinfo.com/api/v1/amzscope/categories/search \\\n  -H 'Authorization: Bearer <token>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"keyword\": \"headphones\", \"page\": 1, \"size\": 10}'\n```\n\n### Errors\n\n- `1002 Invalid Parameter: keyword is required` — missing or blank keyword.\n\n---\n\n## 3. Batch Category Paths API (batchCategoryPathsAPI)\n\nResolve one or more category IDs to their full hierarchy paths in a\nsingle call.\n\n```\nPOST /api/v1/amzscope/categories/paths\n```\n\n### Request body\n\n| Field | Required | Type | Description |\n|-------|----------|------|-------------|\n| `categoryIds` | **Yes** | string[] | Non-empty list of category IDs |\n\n### Response shape\n\nUnlike the other APIs, this one returns a flat `items` **array**:\n\n```json\n{\n  \"code\": 0,\n  \"message\": \"ok\",\n  \"data\": {\n    \"items\": [\n      {\n        \"categoryId\": \"2619526011\",\n        \"categoryName\": \"Cell Phones & Accessories\",\n        \"categoryNameCn\": \"手机及配件\",\n        \"browseNodeNamePaths\":   [\"Electronics\", \"Cell Phones & Accessories\"],\n        \"browseNodeNamePathCns\": [\"电子产品\", \"手机及配件\"]\n      }\n    ]\n  }\n}\n```\n\n### Record fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `categoryId` | string | Category ID (echo of input) |\n| `categoryName` | string | English category name |\n| `categoryNameCn` | string | Chinese category name |\n| `browseNodeNamePaths` | string[] | EN name path, root → leaf |\n| `browseNodeNamePathCns` | string[] | CN name path, root → leaf |\n\n### Example\n\n```bash\ncurl -X POST https://scrapeapi.pangolinfo.com/api/v1/amzscope/categories/paths \\\n  -H 'Authorization: Bearer <token>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"categoryIds\": [\"2619526011\", \"172282\"]}'\n```\n\n### Errors\n\n- `1002 Invalid Parameter: categoryIds is required` — missing or empty array.\n\n---\n\n## 4. Category Filter API (categoryFilterAPI)\n\nFilter Amazon categories by a large set of business metrics\n(units sold, search volume, returns, price tiers, trends, etc.).\nReturns aggregated metrics per category.\n\n```\nPOST /api/v1/amzscope/categories/filter\n```\n\n### Required fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `marketplaceId` | string | Amazon marketplace (`US`, `UK`, `DE`, ...) |\n| `timeRange` | string | Aggregation time range (e.g. `l7d`, `l30d`, `l90d`) |\n| `sampleScope` | string | Sample scope (e.g. `all_asin`) |\n\n### Optional scalar fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `categoryId` | string | Single-category detail (returns 1 record) |\n| `page` | int | Page number (**max 10**) |\n| `size` | int | Records per page (**max 10**) |\n| `sortField` | string | Any response field name |\n| `sortOrder` | string | `asc` or `desc` |\n\n### Numeric range filters\n\nAll support `*Min` and `*Max` variants, e.g. `buyBoxPriceAvgMin: 5000`.\n\nAvailable prefixes:\n\n`unitSoldSum`, `glanceViewsSum`, `searchVolumeSum`,\n`netShippedGmsSum`, `buyBoxPriceAvg`, `searchToPurchaseRatio`,\n`returnRatio`, `asinCount`, `offersPerAsin`, `newAsinCount`,\n`newBrandCount`, `avgAdSpendPerClick`\n\n### Tier / level filters\n\nArray fields — send the allowed tokens for values you want to keep:\n\n| Field | Allowed values |\n|-------|----------------|\n| `buyBoxPriceTiers` | `budget`, `mainstream`, `premium`, `luxury` |\n| `searchToPurchaseRatioLevels` | `to_improve`, `average`, `excellent` |\n| `returnRatioLevels` | `excellent`, `average`, `risk` |\n| `asinCountLevels` | `<P25`, `P25-P50`, `P50-P75`, `>P75` |\n| `offersPerAsinLevels` | `<P25`, `P25-P50`, `P50-P75`, `>P75` |\n| `newAsinCountLevels` | `<P25`, `P25-P50`, `P50-P75`, `>P75` |\n| `newBrandCountLevels` | `<P25`, `P25-P50`, `P50-P75`, `>P75` |\n| `avgAdSpendPerClickLevels` | `<P25`, `P25-P50`, `P50-P75`, `>P75` |\n\n### Trend filters\n\nApply to the metrics `unitSold`, `glanceViews`, `searchVolume`,\n`netShippedGms`. Pattern:\n`{metric}TrendDirections`, `{metric}VolatilityLevels`,\n`{metric}ChangeRateBuckets`, `{metric}LastVsSelfAvgBuckets`.\n\n| Filter type | Allowed values |\n|-------------|----------------|\n| TrendDirections | `strong_up`, `up`, `stable`, `down`, `strong_down` |\n| VolatilityLevels | `low`, `medium`, `high` |\n| ChangeRateBuckets | `high_growth`, `medium_growth`, `low_growth`, `stable`, `low_decline`, `medium_decline`, `high_decline` |\n| LastVsSelfAvgBuckets | `above_baseline`, `around_baseline`, `below_baseline` |\n\n### Quantile bucket filters\n\n| Field | Allowed values |\n|-------|----------------|\n| `unitSoldQuantileBuckets` | `<P25`, `P25-P50`, `P50-P75`, `>P75` |\n| `glanceViewsQuantileBuckets` | (same) |\n| `searchVolumeQuantileBuckets` | (same) |\n| `netShippedGmsQuantileBuckets` | (same) |\n\n### Response record fields (partial)\n\nEach record in `data.items.data[]` aggregates metrics for a category.\nKey fields:\n\n- **Identity:** `id`, `categoryId`, `marketplaceId`, `timeRange`, `sampleScope`, `snapshotDate`\n- **Volume sums:** `unitSoldSum`, `glanceViewsSum`, `searchVolumeSum`, `clickCountSum`, `netShippedGmsSum`\n- **Period counts:** `*PeriodCount` variants of the above\n- **Price:** `buyBoxPriceAvg`, `buyBoxPriceTier`\n- **Ratios:** `searchToPurchaseRatio`, `returnRatio`, `searchToPurchaseRatioLevel`, `returnRatioLevel`\n- **Supply side:** `asinCount`, `offersPerAsin`, `newAsinCount`, `newBrandCount`, plus `*Level` variants\n- **Ads:** `avgAdSpendPerClick`, `medianAdSpendPerClick`, plus `*Level` variants\n- **Keyword reach:** `maxKeywordSearchVolume`\n- **Quantile buckets:** `{metric}QuantileBucket`\n- **Trend block (per metric):**\n  `{metric}TrendDirection`,\n  `{metric}VolatilityLevel`,\n  `{metric}ChangeRateBucket`,\n  `{metric}SelfAvg`,\n  `{metric}LastVsSelfAvgPct`,\n  `{metric}LastVsSelfAvgBucket`\n\n  applied to: `unitSold`, `glanceViews`, `searchVolume`, `clickCount`,\n  `netShippedGms`, `buyBoxPrice`.\n\n### Example\n\n```bash\ncurl -X POST https://scrapeapi.pangolinfo.com/api/v1/amzscope/categories/filter \\\n  -H 'Authorization: Bearer <token>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"marketplaceId\": \"US\",\n    \"timeRange\": \"l7d\",\n    \"sampleScope\": \"all_asin\",\n    \"categoryId\": \"979832011\",\n    \"page\": 1,\n    \"size\": 10\n  }'\n```\n\n### Errors\n\n- `1002 Invalid Parameter: timeRange and sampleScope are required`\n- `1002 Invalid Parameter: pageSize must be less than 10` — when `pageSize > 10`\n- `9101 Data source temporarily unavailable`\n\n---\n\n## 5. Niche Filter API (nicheFilterAPI)\n\nFilter Amazon **niches** (curated product clusters) by a wide range of\nbusiness metrics. Same envelope shape as the category filter, but\noperates over niches rather than categories.\n\n```\nPOST /api/v1/amzscope/niches/filter\n```\n\n### Required fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `marketplaceId` | string | Amazon marketplace |\n\n### Optional scalar fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `nicheId` | string | Specific niche ID for detailed report |\n| `nicheTitle` | string | Keyword match on niche title |\n| `page` | int | Page number (**max 10**) |\n| `size` | int | Records per page (**max 10**) |\n| `sortField` | string | Any response field name |\n| `sortOrder` | string | `asc` or `desc` |\n\n### Numeric range filters\n\nAll support `*Min` / `*Max` variants, e.g. `searchVolumeT90Min: 1000`.\n\nAvailable prefixes:\n\n- **Search volume:** `searchVolumeT90`, `searchVolumeT360`,\n  `searchVolumeGrowthT90`, `searchVolumeGrowthT180`, `searchVolumeGrowthT360`\n- **Units sold:** `minimumUnitsSoldT360`, `maximumUnitsSoldT360`,\n  `minimumAverageUnitsSoldT360`, `maximumAverageUnitsSoldT360`\n- **Price:** `minimumPrice`, `maximumPrice`, `avgProductPrice`\n- **Quality / reviews:** `avgReviewCount`, `avgReviewRating`,\n  `avgDetailPageQuality`, `avgBestSellerRank`\n- **Catalog:** `productCount`, `brandCount`, `sellingPartnerCountT360`,\n  `avgBrandAgeT360`, `avgSellingPartnerAge`\n- **Share / concentration:** `top5ProductsClickShareT360`,\n  `top20ProductsClickShareT360`, `top5BrandsClickShare`, `top20BrandsClickShare`\n- **Ad/Prime mix:** `sponsoredProductsPercentageT360`, `primeProductsPercentageT360`\n- **Operations:** `returnRateT360`, `avgOosRateT360`\n- **Launch activity:** `successfulLaunchesT90`, `successfulLaunchesT180`,\n  `successfulLaunchesT360`, `newProductsLaunchedT180`, `newProductsLaunchedT360`\n\n### Response record fields (partial)\n\nEach record in `data.items.data[]`:\n\n- **Identity:** `id`, `nicheId`, `nicheTitle`\n- **Volume:** `searchVolumeT90`, `searchVolumeT360`, `avgPrice`\n- **Catalog counts:** `productCount`, `brandCount`, `sellingPartnerCountT360`\n- All metric prefixes listed above are returned as response fields.\n\n### Example\n\n```bash\ncurl -X POST https://scrapeapi.pangolinfo.com/api/v1/amzscope/niches/filter \\\n  -H 'Authorization: Bearer <token>' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"marketplaceId\": \"US\",\n    \"nicheTitle\": \"yoga mat\",\n    \"page\": 1,\n    \"size\": 10\n  }'\n```\n\n### Errors\n\n- `1002 Invalid Parameter: pageSize must be less than 10` — when `pageSize > 10`\n- `9101 Data source temporarily unavailable`\n\n---\n\n## Notes\n\n- Average response time for these APIs is about 5–10 seconds.\n- The `items` field is returned as an **object** (with pagination) for\n  tree / search / filter APIs, and as a **flat array** for\n  `categories/paths`. The included Python client normalizes both\n  shapes when `--raw` is not used.\n\nFile v2.0.0:references/amazon-niche-error-codes.md\n\n# Error Codes and Troubleshooting\r\n\r\n## Pangolinfo API Error Codes\r\n\r\n| Code | Meaning | Resolution |\r\n|------|---------|------------|\r\n| 0 | Success | No action needed |\r\n| 1002 | Invalid parameter | Check required fields for the specific API |\r\n| 1004 | Invalid token | Auto-retried by script |\r\n| 2001 | Insufficient credits | Top up at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_niche) |\r\n| 2005 | No active plan | Subscribe at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_niche) |\r\n| 2007 | Account expired | Renew at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_niche) |\r\n| 2009 | Usage limit reached | Wait for next billing cycle or contact support |\r\n| 4029 | Rate limited | Reduce request frequency |\r\n| 9100 | Service disabled | AmzScope service temporarily disabled. Retry later. |\r\n| 9101 | Data source unavailable | Upstream niche data source is down. Retry later. |\r\n| 9102 | Quota exceeded | Provider-level quota hit. Contact support. |\r\n\r\n## Authentication\r\n\r\n- API keys are **permanent** (don't expire unless account deactivated)\r\n- Error code `1004` triggers automatic key refresh\r\n- Resolution order: `PANGOLINFO_API_KEY` env > `~/.pangolinfo_api_key` cache > fresh login\r\n\r\n## Per-API Required Fields\r\n\r\n| API | Required | On violation |\r\n|-----|----------|--------------|\r\n| `category-tree` | -- | -- |\r\n| `category-search` | `keyword` | `1002 keyword is required` |\r\n| `category-paths` | `categoryIds` (non-empty array) | `1002 categoryIds is required` |\r\n| `category-filter` | `timeRange`, `sampleScope` | `1002 timeRange and sampleScope are required` |\r\n| `niche-filter` | `marketplaceId` | `1002` from upstream |\r\n\r\n**Page size cap:** `category-filter` and `niche-filter` enforce `size <= 10`. Exceeding returns `1002 pageSize must be less than 10`.\r\n\r\n## Credit Costs\r\n\r\n| API | Credits |\r\n|-----|---------|\r\n| Category Tree | 2 |\r\n| Category Search | 2 |\r\n| Category Paths | 2 |\r\n| Category Filter | 5 |\r\n| Niche Filter | 10 |\r\n\r\nCredits consumed on success (code 0) only. Empty results are not charged.\r\n\r\n## Common Issues\r\n\r\n**\"No authentication credentials\" error** -- Set `PANGOLINFO_API_KEY` env var.\r\n\r\n**Empty items array** -- Filters may be too narrow. Loosen `*Min`/`*Max` bounds or broaden `timeRange`.\r\n\r\n**Timeout errors** -- Script retries 3x with exponential backoff. Check network.\r\n\r\n**`9101 Data source temporarily unavailable`** -- Upstream provider is down. Not related to your account.\n\nFile v2.0.0:references/amazon-niche-output-schema.md\n\n# Output Schema Reference\r\n\r\n## Envelope Structure\r\n\r\n### Success Envelope (stdout)\r\n\r\n```json\r\n{\r\n  \"success\": true,\r\n  \"api\": \"<string>\",\r\n  \"items\": [ ... ],\r\n  \"total\": \"<int>\",\r\n  \"page\": \"<int>\",\r\n  \"size\": \"<int>\",\r\n  \"totalPages\": \"<int>\",\r\n  \"results_count\": \"<int>\"\r\n}\r\n```\r\n\r\n### Error Envelope (stderr)\r\n\r\n```json\r\n{\r\n  \"success\": false,\r\n  \"error\": {\r\n    \"code\": \"<string>\",\r\n    \"api_code\": \"<int>\",\r\n    \"message\": \"<string>\",\r\n    \"hint\": \"<string>\"\r\n  }\r\n}\r\n```\r\n\r\n## Success Fields\r\n\r\n| Field | Type | Guaranteed | Description |\r\n|-------|------|------------|-------------|\r\n| `success` | boolean | Yes | Always `true` |\r\n| `api` | string | Yes | API label (e.g. `browseCategoryTreeAPI`) |\r\n| `items` | array | Yes | Data records for this page |\r\n| `results_count` | int | Yes | Number of items in current page |\r\n| `total` | int | No | Total matching records (paginated APIs only) |\r\n| `page` | int | No | Current page number (paginated APIs only) |\r\n| `size` | int | No | Page size (paginated APIs only) |\r\n| `totalPages` | int | No | Total pages (paginated APIs only) |\r\n\r\n## Per-API Item Fields\r\n\r\n### Category Tree / Category Search (`items[]`)\r\n\r\n| Field | Type | Description |\r\n|-------|------|-------------|\r\n| `browseNodeId` | string | Node ID |\r\n| `browseNodeIdPath` | string | Full path of node IDs (`/`-joined) |\r\n| `browseNodeName` | string | Node name (EN) |\r\n| `browseNodeNameCn` | string | Node name (CN) |\r\n| `browseNodeNamePath` | string | Full name path (EN) |\r\n| `browseNodeNamePathCn` | string | Full name path (CN) |\r\n| `parentBrowseNodeIdPath` | string | Parent node ID path |\r\n| `parentBrowseNodeNamePath` | string | Parent name path (EN) |\r\n| `parentBrowseNodeNamePathCn` | string | Parent name path (CN) |\r\n| `productType` | string | Amazon product type |\r\n| `itemType` | string | Item type |\r\n| `sellable` | int (0/1) | Whether sellable |\r\n| `hasChild` | int (0/1) | Whether has children |\r\n\r\n### Category Paths (`items[]`)\r\n\r\n| Field | Type | Description |\r\n|-------|------|-------------|\r\n| `categoryId` | string | Category ID (echo of input) |\r\n| `categoryName` | string | English category name |\r\n| `categoryNameCn` | string | Chinese category name |\r\n| `browseNodeNamePaths` | string[] | EN name path, root to leaf |\r\n| `browseNodeNamePathCns` | string[] | CN name path, root to leaf |\r\n\r\nNote: Category Paths returns a flat array without pagination metadata (`total`, `page`, `size`, `totalPages` are absent).\r\n\r\n### Category Filter (`items[]`)\r\n\r\nKey fields (partial -- full response has 70+ fields):\r\n\r\n| Field | Type | Description |\r\n|-------|------|-------------|\r\n| `id` | int | Record ID |\r\n| `categoryId` | string | Amazon category ID |\r\n| `marketplaceId` | string | Marketplace code |\r\n| `timeRange` | string | Aggregation time range |\r\n| `sampleScope` | string | Sample scope |\r\n| `snapshotDate` | string | Data snapshot date |\r\n| `unitSoldSum` | float | Total units sold |\r\n| `glanceViewsSum` | float | Total glance views |\r\n| `searchVolumeSum` | float | Total search volume |\r\n| `netShippedGmsSum` | float | Total net shipped GMS |\r\n| `buyBoxPriceAvg` | float | Average buy box price |\r\n| `buyBoxPriceTier` | string | Price tier: `budget`, `mainstream`, `premium`, `luxury` |\r\n| `searchToPurchaseRatio` | float | Search-to-purchase ratio |\r\n| `returnRatio` | float | Return ratio |\r\n| `asinCount` | float | ASIN count |\r\n| `newAsinCount` | float | New ASIN count |\r\n| `newBrandCount` | float | New brand count |\r\n| `{metric}TrendDirection` | string | Trend: `strong_up`, `up`, `stable`, `down`, `strong_down` |\r\n| `{metric}VolatilityLevel` | string | Volatility: `low`, `medium`, `high` |\r\n| `{metric}ChangeRateBucket` | string | Change: `high_growth` ... `high_decline` |\r\n| `{metric}LastVsSelfAvgBucket` | string | vs baseline: `above_baseline`, `around_baseline`, `below_baseline` |\r\n| `{metric}QuantileBucket` | string | Quantile: `<P25`, `P25-P50`, `P50-P75`, `>P75` |\r\n\r\nMetrics with trend blocks: `unitSold`, `glanceViews`, `searchVolume`, `clickCount`, `netShippedGms`, `buyBoxPrice`.\r\n\r\n### Niche Filter (`items[]`)\r\n\r\nKey fields (partial -- full response has 100+ fields):\r\n\r\n| Field | Type | Description |\r\n|-------|------|-------------|\r\n| `id` | int | Record ID |\r\n| `nicheId` | string | Unique niche identifier |\r\n| `nicheTitle` | string | Niche title |\r\n| `searchVolumeT90` | float | 90-day search volume |\r\n| `searchVolumeT360` | float | 360-day search volume |\r\n| `searchVolumeGrowthT90` | float | 90-day search volume growth rate |\r\n| `avgPrice` | float | Average product price |\r\n| `productCount` | int | Product count |\r\n| `brandCount` | int | Brand count |\r\n| `sellingPartnerCountT360` | int | Selling partner count (360d) |\r\n| `returnRateT360` | float | Return rate (360d) |\r\n| `sponsoredProductsPercentageT360` | float | Sponsored products % (360d) |\r\n| `primeProductsPercentageT360` | float | Prime products % (360d) |\r\n| `top5ProductsClickShareT360` | float | Top 5 products click share (360d) |\r\n| `top5BrandsClickShare` | float | Top 5 brands click share |\r\n| `referenceAsinImageUrl` | string | Reference ASIN image URL |\r\n| `currency` | string | Currency code (e.g. USD) |\r\n\r\n## Error Fields\r\n\r\n| Field | Type | Guaranteed | Description |\r\n|-------|------|------------|-------------|\r\n| `success` | boolean | Yes | Always `false` |\r\n| `error.code` | string | Yes | Machine-readable error code |\r\n| `error.api_code` | int | No | Pangolinfo API error code (when applicable) |\r\n| `error.message` | string | Yes | Human-readable description |\r\n| `error.hint` | string | No | Suggested resolution |\r\n\r\n## Auth-Only Output (stdout)\r\n\r\n```json\r\n{\r\n  \"success\": true,\r\n  \"message\": \"Authentication successful\",\r\n  \"api_key_preview\": \"eyJh...ab1c\"\r\n}\r\n```\r\n\r\n## Raw Mode\r\n\r\nWhen using `--raw`, the unprocessed Pangolinfo API response is output. The envelope structure above does **not** apply.\n\nFile v2.0.0:references/amazon-niche-setup-guide.md\n\n# First-Time Setup Guide\r\n\r\nWhen authentication fails (error code `MISSING_ENV`), walk the user through setup interactively.\r\n\r\n## Step 1: Explain\r\n\r\n> To use this skill, you need a Pangolinfo API account for Amazon niche/category data.\r\n>\r\n> 使用本技能需要 Pangolinfo API 账号，用于获取亚马逊利基/类目数据。\r\n\r\n## Step 2: Register\r\n\r\n> 1. Go to [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_niche) and create an account\r\n> 2. Find your API Key in the dashboard\r\n>\r\n> 1. 访问 [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_niche) 注册账号\r\n> 2. 在控制台找到你的 API Key\r\n\r\n## Step 3: Authenticate\r\n\r\n**API key (recommended):**\r\n```bash\r\nexport PANGOLINFO_API_KEY=\"<api_key>\"\r\npython3 scripts/pangolinfo.py --auth-only\r\n```\r\n\r\n**Email + password:**\r\n```bash\r\nexport PANGOLINFO_EMAIL=\"user@example.com\"\r\nexport PANGOLINFO_PASSWORD=\"their-password\"\r\npython3 scripts/pangolinfo.py --auth-only\r\n```\r\n\r\n**Optional caching (user must opt in):**\r\n```bash\r\npython3 scripts/pangolinfo.py --auth-only --cache-key\r\n```\r\n\r\n## Step 4: Confirm\r\n\r\nAfter `\"success\": true`:\r\n1. Tell the user authentication succeeded\r\n2. Remind them env vars must remain set (unless cached)\r\n3. Retry their original request\r\n\r\n## Credit System\r\n\r\n| API | Credits |\r\n|---|---|\r\n| Category Tree | 2 |\r\n| Category Search | 2 |\r\n| Category Paths | 2 |\r\n| Category Filter | 5 |\r\n| Niche Filter | 10 |\r\n\r\nAPI key is permanent. Credits consumed on success only. Empty results not charged.\n\nFile v2.0.0:references/amazon-scraper-error-codes.md\n\n# Error Codes and Troubleshooting\n\n## Pangolinfo API Error Codes\n\n| Code | Meaning | Resolution |\n|------|---------|------------|\n| 0 | Success | No action needed |\n| 1004 | Invalid token | Auto-retried by script |\n| 1009 | Invalid parser name | Check `--parser` value |\n| 2001 | Insufficient credits | Top up at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_amz) |\n| 2005 | No active plan | Subscribe at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_amz) |\n| 2007 | Account expired | Renew at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_amz) |\n| 2009 | Usage limit reached | Wait for next billing cycle or contact support |\n| 2010 | Bill day not configured | Contact support |\n| 4029 | Rate limited | Reduce request frequency |\n| 10000 | Task execution failed | Retry. Check query/URL format. |\n| 10001 | Task execution failed | Retry. Likely transient. |\n\n## Authentication\n\n- Tokens are **permanent** (don't expire unless account deactivated)\n- Error code `1004` triggers automatic token refresh\n- Resolution order: `PANGOLINFO_API_KEY` env > `~/.pangolinfo_api_key` cache > fresh login\n\n## Credit Costs\n\n| Operation | Credits |\n|---|---|\n| Amazon scrape (json) | 1 |\n| Amazon scrape (rawHtml/markdown) | 0.75 |\n| Follow Seller | 1 |\n| Variant ASIN | 1 |\n| Review page | 5 per page |\n\nCredits consumed on success (code 0) only.\n\n## Common Issues\n\n**\"No authentication credentials\" error** -- Set `PANGOLINFO_API_KEY` env var.\n\n**Empty results** -- Check ASIN/keyword spelling, try different region.\n\n**Timeout errors** -- Script retries 3x with exponential backoff. Check network.\n\n**Reviews returning empty** -- Not all products have reviews. Try `--filter-star all_stars`.\n\nFile v2.0.0:references/amazon-scraper-setup-guide.md\n\n# First-Time Setup Guide\n\nWhen authentication fails (error code `MISSING_ENV`), walk the user through setup interactively.\n\n## Step 1: Explain\n\n> To use this skill, you need a Pangolinfo API account for Amazon product data.\n>\n> 使用本技能需要 Pangolinfo API 账号，用于获取亚马逊商品数据。\n\n## Step 2: Register\n\n> 1. Go to [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_amz) and create an account\n> 2. Find your API Key in the dashboard\n>\n> 1. 访问 [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_amz) 注册账号\n> 2. 在控制台找到你的 API Key\n\n## Step 3: Authenticate\n\n**API key (recommended):**\n```bash\nexport PANGOLINFO_API_KEY=\"<api_key>\"\npython3 scripts/pangolinfo.py --auth-only\n```\n\n**Email + password:**\n```bash\nexport PANGOLINFO_EMAIL=\"user@example.com\"\nexport PANGOLINFO_PASSWORD=\"their-password\"\npython3 scripts/pangolinfo.py --auth-only\n```\n\n**Optional caching (user must opt in):**\n```bash\npython3 scripts/pangolinfo.py --auth-only --cache-key\n```\n\n## Step 4: Confirm\n\nAfter `\"success\": true`:\n1. Tell the user authentication succeeded\n2. Remind them env vars must remain set (unless cached)\n3. Retry their original request\n\n## Credit System\n\n| Operation | Credits |\n|---|---|\n| Amazon scrape (json) | 1 |\n| Amazon scrape (rawHtml/markdown) | 0.75 |\n| Follow Seller | 1 |\n| Variant ASIN | 1 |\n| Review page | 5 per page |\n\nAPI key is permanent. Credits consumed on success only.\n\nFile v2.0.0:references/wipo-error-codes.md\n\n# Error Codes and Troubleshooting\n\n## Script Error Codes\n\n| Code | Meaning | Resolution |\n|------|---------|------------|\n| `MISSING_ENV` | No credentials | Set `PANGOLINFO_API_KEY`, or `PANGOLINFO_EMAIL` + `PANGOLINFO_PASSWORD` |\n| `AUTH_FAILED` | Wrong credentials | Verify email and password |\n| `RATE_LIMIT` | Too many requests | Wait and retry |\n| `NETWORK` | Connection issue | Check internet / firewall |\n| `SSL_CERT` | Certificate error | macOS: run Install Certificates.command |\n| `API_ERROR` | Pangolinfo API error | Check parameters and `hint` field |\n| `PARSE_ERROR` | Invalid API response | Retry; may be transient |\n\n## Pangolinfo API Error Codes\n\n| Code | Meaning | Resolution |\n|------|---------|------------|\n| 0 | Success | No action needed |\n| 1004 | Invalid token | Auto-retried by script |\n| 2001 | Insufficient credits | Top up at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_wipo) |\n| 2005 | No active plan | Subscribe at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_wipo) |\n| 2007 | Account expired | Renew at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_wipo) |\n| 2009 | Usage limit reached | Wait for next billing cycle or contact support |\n| 2010 | Bill day not configured | Contact support |\n| 4029 | Rate limited | Reduce request frequency |\n\n## Authentication\n\n- Tokens are **permanent** (don't expire unless account deactivated)\n- Error code `1004` triggers automatic token refresh\n- Resolution order: `PANGOLINFO_API_KEY` env > `~/.pangolinfo_api_key` cache > fresh login\n\n## Credit Costs\n\n| Operation | Credits |\n|---|---|\n| WIPO search request | 2 |\n\nCredits consumed on success (code 0) only.\n\n## Common Issues\n\n**\"No authentication credentials\" error** -- Set `PANGOLINFO_API_KEY` env var.\n\n**Empty results** -- Check IRN, holder name spelling, or try broader search parameters.\n\n**Timeout errors** -- Script retries 3x with exponential backoff. Check network.\n\nArchive v1.0.1: 18 files, 47296 bytes\n\nFiles: references/ai-serp-error-codes.md (2328b), references/ai-serp-output-schema.md (2407b), references/ai-serp-setup-guide.md (1737b), references/amazon-niche-amazon-niche-api.md (13089b), references/amazon-niche-error-codes.md (2475b), references/amazon-niche-output-schema.md (5877b), references/amazon-niche-setup-guide.md (1510b), references/amazon-scraper-error-codes.md (1716b), references/amazon-scraper-setup-guide.md (1445b), references/wipo-error-codes.md (1937b), references/wipo-setup-guide.md (1352b), scripts/ai_serp.py (21094b), scripts/amazon_niche.py (23791b), scripts/amazon_scraper.py (23377b), scripts/self_test.sh (1843b), scripts/wipo.py (17244b), SKILL.md (11038b), _meta.json (157b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: pangolinfo-listing-optimization\ndescription: >\n  This skill serves as an advanced Amazon Listing Optimization & Copywriting Engine (powered by Pangolinfo API). It is strictly designed to craft high-conversion, data-driven Amazon listings (Title, Bullet Points, Backend Search Terms). It performs deep Voice of Customer (VOC) analysis by scraping Amazon Reviews and external social media (Reddit/TikTok/Quora), executing pain-point reversal strategies, and conducting strict WIPO trademark risk screening before generating the final copy.\nmetadata:\n  openclaw:\n    requires:\n      env:\n        - PANGOLINFO_API_KEY\n        - PANGOLINFO_EMAIL\n        - PANGOLINFO_PASSWORD\n      notes: \"Auth: set PANGOLINFO_API_KEY (recommended) OR PANGOLINFO_EMAIL + PANGOLINFO_PASSWORD. All bundled scripts share the same credentials.\"\ntags: [amazon, listing-optimization, seo, copywriting, keyword-research, ecommerce, fba, content-generation, voc, sentiment-analysis, 亚马逊, listing优化, 关键词, 跨境电商]\nversion: 2.0.0\nhomepage: https://pangolinfo.com/?referrer=clawhub_listing_optimization\n---\n## 📦 Bundled Tools (Built-in Capabilities)\nThis is a **Super Skill** that bundles multiple underlying Pangolinfo APIs out-of-the-box. No extra installation required:\n- **Amazon Scraper (Reviews for VoC analysis)**\n- **AI SERP (External Reddit/TikTok/Quora pain-point mining)**\n- **WIPO Trademark Check (Compliance)**\n\n## 🤖 Compatible Agent Frameworks\n- **OpenClaw** (Autonomous AI copywriting workflow)\n- **LangChain / AutoGen** (As a creative & compliance tool node)\n\n\n\n### Tool Description\n\n**✅ WHEN TO USE (Trigger Scenarios):**\n\n- **Listing Creation/Rewrite:** \"Write a listing for my new product\", \"Optimize my current title and bullet points\", \"Help me embed SEO keywords into my listing\".\n- **VOC & Review Analysis:** \"Analyze the competitor's reviews to find selling points for my listing\", \"What are the biggest customer complaints for [Product] on Reddit?\"\n- **IP & Compliance Check for Copywriting:** \"Check if the words I used in my title have trademark infringement risks.\"\n\n**❌ WHEN NOT TO USE (Strict Negative Boundaries):**\n\n- **DO NOT** use this skill if the user is asking to find a brand-new niche from scratch (Route to `pangolinfo-amazon-product-discovery`).\n- **DO NOT** use this skill if the user asks to monitor daily competitor price drops, daily ranking changes, or BSR fluctuations (Route to `pangolinfo-daily-competitor-radar`).\n\n---\n\n### Bundled Scripts\n\nThis skill is a flat toolkit — all Python scripts are under `scripts/`:\n\n| Script | Capability | Typical Invocation |\n|---|---|---|\n| `scripts/ai_serp.py` | Google SERP + AI Overview | `python3 scripts/ai_serp.py --q \"<query>\" --mode serp` |\n| `scripts/amazon_scraper.py` | Amazon ASIN / reviews | `python3 scripts/amazon_scraper.py --content <ASIN> --mode review --filter-star critical` |\n| `scripts/amazon_niche.py` | Amazon niche / category filter | `python3 scripts/amazon_niche.py --api niche-filter --niche-title \"<keyword>\"` |\n| `scripts/wipo.py` | WIPO design / trademark lookup | `python3 scripts/wipo.py --q \"<term>\"` |\n\nReference docs for each capability are in `references/` (prefixed by capability name).\n\n---\n\n### Skill System Prompt / SOP\n\n```xml\n# Role & Persona\nYou are \"Lobster\" (龙虾), a Senior Amazon E-commerce Product Manager and Elite Copywriter. Your mission is to craft high-conversion, A9-optimized Amazon Listings. You rely strictly on the Pangolinfo Data Engine to conduct competitor reverse-engineering, social sentiment analysis (Reddit/TikTok), and strict WIPO IP filtering to ensure the listing directly targets consumer pain points while remaining 100% compliant.\n\n# 🛑 ABSOLUTE RULES (STRICT MANDATES)\n1. <Single_Auth_Rule>: All Pangolinfo tools share the SAME API Key/Auth. NEVER repeatedly ask the user for their API Key once validated.\n2. <Data_Integrity_Rule>: Rely ONLY on hard data fetched via APIs. NEVER hallucinate search volumes, reviews, or metrics.\n3. <Third_Party_Tool_Rule>: NEVER proactively mention external tools (Keepa, Sif, etc.).\n4. <Default_Marketplace_Rule>: ALL searches, competitor scans, and API calls MUST default to Amazon US and US Zip Code `90001` (Los Angeles), unless specified otherwise.\n5. <Node_Validation_Rule>: NEVER blindly trust a competitor's current Browse Node. If a product is severely miscategorized, DO NOT optimize the copy to fit the wrong category. Point out the error and strongly advise node correction first.\n6. <Language_Adaptation_Rule>: Detect the user's input language. ALL reports, analyses, and annotations MUST be in the user's language natively. HOWEVER, the actual Listing Copy (Title, Bullets, Search Terms) MUST be generated in the target marketplace language (Default: English).\n7. <Single_Tool_Mode_Rule>: If the user's request is a simple, single-operation query that matches ONE bundled script's capability (e.g., \"search Google for X\", \"get reviews for ASIN B0XXX\", \"check WIPO for trademark Y\"), DO NOT execute the full 5-step listing SOP. Directly invoke the corresponding script under `scripts/`. Only run the full SOP when the user explicitly asks to write/optimize a listing.\n\n# 🏁 ONBOARDING (Initialization)\nUpon first invocation, output this exact welcome message (Translated to the user's language):\n\"🎉 Welcome to Lobster, your Amazon Growth Navigator! \n🏎️ In this fierce Amazon race, you hit the gas, and I read the pace notes. Powered by Pangolinfo, I provide:\n📝 **Data-Driven Listing Optimization** (Directly striking competitor pain points & embedding high-traffic SEO keywords).\n*(Note: Gemini 3.0+ recommended. Please ensure your Pangolinfo API Key is configured. New users can register at pangolinfo.com for 60 free credits!)*\"\n\n# ⚙️ EXECUTION WORKFLOW (The 5-Step Optimization SOP)\nExecute these steps silently. DO NOT expose raw JSON or direct search links to the user.\n\n## Step 1: Diagnosis & Insights (Deep VOC Extraction)\n- **Action 1 (Social Media & Forum Deep Search)**: Extract the core product noun `[Product]`. MUST call `pangolinfo-ai-serp` (time restricted to `after:2025-01-01` or `2025..2026`) using these specific Google Dorks:\n  - *Query A (Amazon Reviews)*: `site:amazon.com/dp/ \"[long-tail keyword]\" (\"customer reviews\" OR \"ratings\")`. Extract ASINs, then call `pangolinfo-amazon-scraper (amzReviewV2)` to fetch real reviews. Extract Top 3 Pain Points and Top 3 Aha-Moments.\n    ```bash\n    python3 scripts/ai_serp.py --q \"site:amazon.com/dp/ \\\"[long-tail keyword]\\\" (\\\"customer reviews\\\" OR \\\"ratings\\\")\" --mode serp\n    python3 scripts/amazon_scraper.py --content <ASIN> --mode review --filter-star critical --sort-by recent --site amz_us\n    ```\n  - *Query B (Reddit Complaints)*: `\"[Product]\" (issue OR problem OR \"stopped working\" OR \"hate\" OR \"worst part\") site:reddit.com after:2025-01-01`.\n    ```bash\n    python3 scripts/ai_serp.py --q \"\\\"[Product]\\\" (issue OR problem OR \\\"stopped working\\\" OR \\\"hate\\\" OR \\\"worst part\\\") site:reddit.com after:2025-01-01\" --mode serp\n    ```\n  - *Query C (TikTok/YouTube Scenarios)*: `\"[Product]\" (\"lifehack\" OR \"game changer\" OR \"how I use\" OR \"must have\") (site:tiktok.com OR site:youtube.com)`.\n    ```bash\n    python3 scripts/ai_serp.py --q \"\\\"[Product]\\\" (\\\"lifehack\\\" OR \\\"game changer\\\" OR \\\"how I use\\\" OR \\\"must have\\\") (site:tiktok.com OR site:youtube.com)\" --mode serp\n    ```\n  - *Query D (Quora Hesitations)*: `\"[Product]\" (\"is it worth it\" OR \"should I buy\" OR vs) site:quora.com`.\n    ```bash\n    python3 scripts/ai_serp.py --q \"\\\"[Product]\\\" (\\\"is it worth it\\\" OR \\\"should I buy\\\" OR vs) site:quora.com\" --mode serp\n    ```\n- **Action 2 (AI Distillation & Pain-Point Reversal)**: Convert extracted pain points into selling points. \n  - *Rule*: If the product solves the pain point, amplify it (e.g., \"Upgraded 7-Day Battery\"). If the product might share the same flaw, issue a strict \"Product Iteration Warning\" advising against false advertising to prevent return waves.\n- **Action 3 (WIPO IP Filter)**: Extract technical/modifier words (e.g., Velcro, Kevlar, Teflon). Call `pangolinfo-wipo` (Target US). If the trademark is 'Active', it is a FATAL RED LINE. You MUST replace it with a generic safe term (e.g., \"Hook and loop fastener\").\n  ```bash\n  python3 scripts/wipo.py --q \"<sensitive_term>\"\n  ```\n\n## Step 2: Title Formulation\n- **Action**: Embed the safest, highest-weight keywords at the front.\n- **Structure**: `[Brand/Core Keyword] + [Core Feature/Selling Point] + [Material/Model/Compatibility] + [Specs/Color/Qty]`.\n\n## Step 3: Bullet Points Strategy (The 5-Point Attack)\n- **Structure**: `[Core Summary] + Benefit + Feature`.\n- **Layout**: \n  - BP 1 & 2: Attack the core pain points (from Step 1) and highlight the main selling point.\n  - BP 3 & 4: Detail materials, TikTok/social use-cases, and compatibility.\n  - BP 5: Warranty, brand promise, or after-sales support.\n\n## Step 4: Backend Search Terms & Description\n- **Action**: Extract high-converting long-tail keywords, misspellings, and Spanish terms (if US market) that didn't fit in the title/bullets. Ensure absolute deduplication and ZERO infringing words.\n\n# 📊 FINAL DELIVERABLE: THE LISTING STRATEGY REPORT\nOutput the report using the exact structure below. Translate all headers and analytical text into the user's language natively. Keep the actual Listing copy in English (or target market language).\n\n**📊 1. VOC Insights & Social Sentiment (VOC洞察与社媒舆情总结)**\nSummarize Amazon review pain points and overall social sentiment.\n- Top 3 Fatal Flaws (Cite source, e.g., Reddit).\n- Top 3 Aha-Moments / TikTok Scenarios (Cite source).\n\n**🛡️ 2. IP Compliance Filter Record (侵权词排雷记录)**\nList the \"seemingly generic but actually trademarked\" words you intercepted via WIPO, and provide your generic replacements.\n\n**✍️ 3. Pain-Point Reversal & Iteration Advice (痛点反转与产品迭代建议)**\nList competitor flaws. Explain how the listing addresses them. \n*MANDATORY WARNING:* Remind the user to verify if their product has the same flaws. Warn them that over-promising leads to negative reviews, and suggest manufacturing iterations if necessary.\n\n**✨ 4. Final Optimized Listing (高安全、高转化 Listing 正式输出)**\nOutput the final copy in **ENGLISH** (or requested market language).\n- **Title**: [Generated Title]\n- **Bullet Points**: [Generated 5 BPs]\n- **Search Terms**: [Generated STs]\n*Requirement:* After each Bullet Point, append an annotation in the USER'S LANGUAGE in parentheses. (e.g., *(注：此处巧妙回应了 Reddit 上的卡扣易断痛点 / 借用了 TikTok 的场景词)*).\n```\n\n\n## 🌐 多语言适配 (Multi-language Support)\n- **🇨🇳 中文适用场景**: 智能 Listing 优化与合规文案引擎。基于真实买家原声 (VoC) 和痛点反转策略，规避知识产权风险，生成高转化率文案。\n- **Agent Directive**: Always output the final analysis/report in the language of the user's prompt (e.g., reply in Chinese if asked in Chinese).\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn78jnk9jg3dj6dqkcn0rdz4md83f361\",\n  \"slug\": \"pangolinfo-amazon-listing-optimization\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1776434651491\n}\n\nFile v1.0.1:references/ai-serp-error-codes.md\n\n# Error Codes and Troubleshooting\n\n## Pangolinfo API Error Codes\n\n| Code | Meaning | Resolution |\n|------|---------|------------|\n| 0 | Success | No action needed |\n| 1001 | Parameter is empty | Check required fields |\n| 1002 | Invalid parameter | Verify request format |\n| 1004 | Invalid token | Auto-retried by script. If persistent, re-authenticate. |\n| 1009 | Invalid parser name | Check `--mode` value |\n| 2001 | Insufficient credits | Top up at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) |\n| 2005 | No active plan | Subscribe at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) |\n| 2007 | Account expired | Renew at [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) |\n| 2009 | Usage limit reached | Wait for next billing cycle or contact support |\n| 2010 | Bill day not configured | Contact support |\n| 4029 | Rate limited | Reduce request frequency |\n| 10000 | Task execution failed | Retry. Check query format. |\n| 10001 | Task execution failed | Retry. Likely a temporary server issue. |\n\n## Authentication\n\n### Token Lifecycle\n\n- Tokens are **permanent** and do not expire\n- A token becomes invalid only if the account is deactivated\n- Error code `1004` triggers automatic token refresh\n\n### Token Resolution Order\n\n1. `PANGOLINFO_API_KEY` environment variable\n2. Cached API key at `~/.pangolinfo_api_key` (if the file exists from a prior `--cache-key` run)\n3. Fresh login using `PANGOLINFO_EMAIL` + `PANGOLINFO_PASSWORD`\n\n### Auth Endpoint\n\n```\nPOST https://scrapeapi.pangolinfo.com/api/v1/auth\nBody: {\"email\": \"<email>\", \"password\": \"<password>\"}\nResponse: {\"code\": 0, \"message\": \"ok\", \"data\": \"<token>\"}\n```\n\n## Credit Costs\n\n| Mode | Credits per request |\n|------|---------------------|\n| AI Mode (`googleAiSearch`) | 2 |\n| SERP (`googleSearch`) | 2 |\n| SERP Plus (`googleSearchPlus`) | 1 |\n\nCredits are only consumed on successful requests (code 0).\n\n## Common Issues\n\n**\"No authentication credentials\" error**\nSet environment variables: `export PANGOLINFO_API_KEY=...`\n\n**Empty AI overview in response**\nNot all queries trigger an AI overview. Try a more informational query.\n\n**Timeout or network errors**\nThe script retries 3 times with exponential backoff. Check your network connection.\n\n**Screenshot URL not returned**\nEnsure `--screenshot` flag is passed.\n\nFile v1.0.1:references/ai-serp-output-schema.md\n\n# Output Schema Reference\n\n## Envelope Structure\n\n### Success Envelope (stdout)\n\n```json\n{\n  \"success\": true,\n  \"task_id\": \"<string>\",\n  \"results_num\": \"<int>\",\n  \"ai_overview_count\": \"<int>\",\n  \"ai_overview\": [ ... ],\n  \"organic_results\": [ ... ],\n  \"screenshot\": \"<string>\"\n}\n```\n\n### Error Envelope (stderr)\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"<string>\",\n    \"api_code\": \"<int>\",\n    \"message\": \"<string>\",\n    \"hint\": \"<string>\"\n  }\n}\n```\n\n## Success Fields\n\n| Field | Type | Guaranteed | Description |\n|-------|------|------------|-------------|\n| `success` | boolean | Yes | Always `true` |\n| `task_id` | string | Yes | Unique Pangolinfo task identifier |\n| `results_num` | int | Yes | Number of organic results (0 if none) |\n| `ai_overview_count` | int | Yes | Number of AI overview blocks (0 if none) |\n| `ai_overview` | array | No | Present only if AI overviews exist |\n| `organic_results` | array | No | Present only if organic results exist |\n| `screenshot` | string | No | Screenshot URL; present only if `--screenshot` was used |\n\n### `ai_overview[]` Item\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `content` | string[] | AI-generated text paragraphs |\n| `references` | array | Source references (may be empty) |\n\n### `ai_overview[].references[]` Item\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `title` | string | Source page title |\n| `url` | string | Source page URL |\n| `domain` | string | Source domain name |\n\n### `organic_results[]` Item\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `title` | string | Result page title |\n| `url` | string | Result page URL |\n| `text` | string | Result snippet text (may be null) |\n\n## Error Fields\n\n| Field | Type | Guaranteed | Description |\n|-------|------|------------|-------------|\n| `success` | boolean | Yes | Always `false` |\n| `error.code` | string | Yes | Machine-readable error code |\n| `error.api_code` | int | No | Pangolinfo API error code (when applicable) |\n| `error.message` | string | Yes | Human-readable description |\n| `error.hint` | string | No | Suggested resolution |\n\n## Auth-Only Output (stdout)\n\n```json\n{\n  \"success\": true,\n  \"message\": \"Authentication successful\",\n  \"api_key_preview\": \"eyJh...ab1c\"\n}\n```\n\n## Raw Mode\n\nWhen using `--raw`, the unprocessed Pangolinfo API response is output. The envelope structure above does **not** apply.\n\nFile v1.0.1:references/ai-serp-setup-guide.md\n\n# First-Time Setup Guide\n\n## Step 1: Explain what's needed\n\n> To use this skill, you need a Pangolinfo API account. Pangolin provides Google search and AI Overview data through its APIs.\n>\n> 使用本技能需要 Pangolinfo API 账号。Pangolinfo 提供 Google 搜索和 AI 概览数据的 API 服务。\n\n## Step 2: Guide registration\n\n> 1. Go to [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) and create an account\n> 2. After login, find your API Key in the dashboard\n>\n> 1. 访问 [pangolinfo.com](https://pangolinfo.com/?referrer=clawhub_serp) 注册账号\n> 2. 登录后在控制台找到你的 API Key\n\n## Step 3: Collect credentials and authenticate\n\n**If user provides an API key (recommended):**\n```bash\nexport PANGOLINFO_API_KEY=\"<api_key>\"\npython3 scripts/pangolinfo.py --auth-only\n```\n\n**If user provides email + password:**\n```bash\nexport PANGOLINFO_EMAIL=\"user@example.com\"\nexport PANGOLINFO_PASSWORD=\"their-password\"\npython3 scripts/pangolinfo.py --auth-only\n```\n\n**Optional caching (only if the user explicitly asks for it):**\n```bash\npython3 scripts/pangolinfo.py --auth-only --cache-key\n```\nThis persists the API key to `~/.pangolinfo_api_key`. Revoke by deleting that file.\n\n## Step 4: Confirm and proceed\n\nAfter auth returns `\"success\": true`:\n1. Tell the user: \"Authentication successful!\"\n2. Remind them env vars must remain set for future calls (unless cached).\n3. Immediately retry their original request.\n\n## Credit System\n\n- **AI Mode:** 2 credits per request\n- **SERP:** 2 credits per request\n- **SERP Plus:** 1 credit per request\n- Credits are only consumed on success (API code 0)\n- Auth checks do not consume credits\n- API key is permanent and does not expire unless account is deactivated\n\nFile v1.0.1:references/amazon-niche-amazon-niche-api.md\n\n# Amazon Niche Data API Reference\n\nFive APIs for exploring Amazon categories and niche markets using\nPangolinfo's 利基数据 (niche data) service.\n\n## Common\n\n### Base URL\n\n```\nhttps://scrapeapi.pangolinfo.com/api/v1/amzscope\n```\n\n### Headers\n\n- `Content-Type: application/json`\n- `Authorization: Bearer <token>`\n\n> **Security note:** `<token>` in all curl examples below is a **placeholder**. Replace it with your own API key at runtime. Never paste real credentials into shared documents, issue trackers, or version-controlled files.\n\n### Response envelope\n\nAll APIs return the same outer envelope:\n\n```json\n{\n  \"code\": 0,\n  \"message\": \"ok\",\n  \"data\": {\n    \"items\": { ... }     // shape varies per API (see below)\n  }\n}\n```\n\n\nArchive v1.0.0: 29 files, 68721 bytes\n\nFiles: SKILL.md (11386b), skills/pangolinfo-ai-serp/_meta.json (138b), skills/pangolinfo-ai-serp/references/error-codes.md (2328b), skills/pangolinfo-ai-serp/references/output-schema.md (2407b), skills/pangolinfo-ai-serp/references/setup-guide.md (1737b), skills/pangolinfo-ai-serp/scripts/pangolinfo.py (21094b), skills/pangolinfo-ai-serp/scripts/self_test.sh (1929b), skills/pangolinfo-ai-serp/SKILL.md (8053b), skills/pangolinfo-amazon-niche/_meta.json (143b), skills/pangolinfo-amazon-niche/references/amazon-niche-api.md (13089b), skills/pangolinfo-amazon-niche/references/error-codes.md (2475b), skills/pangolinfo-amazon-niche/references/output-schema.md (5877b), skills/pangolinfo-amazon-niche/references/setup-guide.md (1510b), skills/pangolinfo-amazon-niche/scripts/pangolinfo.py (23791b), skills/pangolinfo-amazon-niche/scripts/self_test.sh (2430b), skills/pangolinfo-amazon-niche/SKILL.md (11571b), skills/pangolinfo-amazon-scraper/_meta.json (145b), skills/pangolinfo-amazon-scraper/references/error-codes.md (1716b), skills/pangolinfo-amazon-scraper/references/setup-guide.md (1445b), skills/pangolinfo-amazon-scraper/scripts/pangolinfo.py (23377b), skills/pangolinfo-amazon-scraper/scripts/self_test.sh (2648b), skills/pangolinfo-amazon-scraper/SKILL.md (10648b), skills/pangolinfo-wipo/_meta.json (135b), skills/pangolinfo-wipo/references/error-codes.md (1937b), skills/pangolinfo-wipo/references/setup-guide.md (1352b), skills/pangolinfo-wipo/scripts/pangolinfo.py (17244b), skills/pangolinfo-wipo/scripts/self_test.sh (1752b), skills/pangolinfo-wipo/SKILL.md (7395b), _meta.json (157b)","readmeExcerpt":"Skill: pangolinfo-amazon-listing-optimization Owner: pangolinfo Summary: Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\". Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。 NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon- Tags: latest:4.0.0 Version history: v4.0.0 | 2","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"回合 1 (5s)   search_amazon                                          ← 找 Top 3 标杆 ASIN\n回合 2 (5s)   get_amazon_product(A1) | get_amazon_product(A2)         ← 2 并发\n回合 3 (5s)   get_amazon_product(A3) | get_amazon_reviews(最优 ASIN)  ← 2 并发(reviews 5pt)\n回合 4 (5s)   get_category_paths (可选,验证类目锚定)                  ← 单发\nLLM 整合 (~30s)"},{"language":"jsonc","snippet":"{ \"name\": \"search_amazon\",\n  \"arguments\": { \"keyword\": \"<core_keyword>\", \"site\": \"amz_us\" }}"},{"language":"jsonc","snippet":"{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A1>\", \"site\": \"amz_us\" }}\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A2>\", \"site\": \"amz_us\" }}"},{"language":"jsonc","snippet":"{ \"name\": \"get_category_paths\", \"arguments\": {\n     \"categoryIds\": [\"<leaf id>\"], \"site\": \"amz_us\"\n   }}"},{"language":"jsonc","snippet":"{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A3>\", \"site\": \"amz_us\" }}\n{ \"name\": \"get_amazon_reviews\", \"arguments\": {\n  \"asin\": \"<top_competitor_asin>\",\n  \"site\": \"amz_us\",\n  \"pageCount\": 1,\n  \"filterByStar\": \"critical\",\n  \"sortBy\": \"helpful\"\n}}"},{"language":"text","snippet":"1. 痛点反转分析（来自 R3 + aiReviewsSummary）\n   - 痛点 1: \"材质太软\" → 卖点反转: \"Reinforced TPU shell\"\n   - 痛点 2: \"续航虚标\" → 卖点反转: \"Verified 8h playback (in-house tested)\"\n\n2. 标题（直接可复制）\n   <Brand> + <核心词1> + <型号/规格> + <主卖点1> + <适配场景> + <核心词2> + <Pack of N>\n   实例:\n     SoundMax Wireless Earbuds, Bluetooth 5.4 with 8H Battery, ANC for iPhone/Android, IPX7 Sport Headphones, Pack of 1\n   ✓ 200 字符以内 ✓ 首 80 字含核心词 ✓ 无 ！?$ Best #1 Amazon 等违规词\n\n3. 五点描述（5 条固定语义角色，每条 180-250 字符；每条 = ALL CAPS 摘要 + Benefit + Feature）\n   1) 【核心反击 CORE ATTACK】反转 aiReviewsSummary 里最高频的差评(如\"材质软\"→\"Reinforced TPU shell\")\n   2) 【AI 助手拦截 AI INTERCEPT】直接回答 Rufus 引导问题(Full 档 R3.8 实时取;Fast 档无 Rufus → 从 aiReviewsSummary 正向高频意图派生,并标\"派生\")\n   3) 【社媒渴望 SOCIAL DESIRE】承接 off-site Reddit/TikTok 趋势卖点(Full 档 ai_search 取;Fast 档无 → 用品类通用生活场景)\n   4) 【复购 & LTV / 场景化】消耗品命中 → 周期(如 \"60-Day Supply\" / \"Replace Every 3 Months\")+ 用量说明 + S&S 经济钩子;非消耗品 → 标准生活场景品牌化\n   5) 【防御性品质 DEFENSIVE QUALITY】保住 aiReviewsSummary 里产品原生的正向资产,别在改写中弄丢\n\n4. Backend Search Terms（249 字节硬上限）\n   long-tail-1 long-tail-2 misspelling spanish-variant ...\n\n5. 待 Full 档处理\n   - ⏭ Rufus AI 助手意图拦截(BULLET 2 升级为实时数据)\n   - ⏭ IP 合规筛查（标题里有 X / Y / Z 三个潜在风险词，含文字商标）\n   - ⏭ 多页 VOC 深度挖掘 + 站外趋势"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: amazon-listing-optimization\ndescription: |\n  Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\".\n  Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。\n  NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon-daily-competitor-radar) / 单纯 ASIN 详情 (call get_amazon_product directly).\nversion: 3.1.0\nmcp_tools_used:\n  - pangolinfo_capabilities\n  - search_amazon\n  - get_amazon_product\n  - get_amazon_reviews\n  - ai_search\n  - wipo_search\n  - get_category_paths\n  - search_amazon_alexa\napplies_to: [claude-code, cursor, cline, windsurf, hermes, codex, openclaw]\nbudget:\n  fast: { duration: \"≤ 90s\", cost: \"≤ 10 积点\", calls: \"≤ 5\" }\n  full: { duration: \"≤ 4min\", cost: \"≤ 40 积点\", calls: \"≤ 12\" }\n---\n\n# Amazon Listing 优化 SOP\n\n> 跑前必读：本文件末尾《核心规则 / Core Rules》章节（已内联，自包含）。\n> **来源标记硬规则**：本 Skill 发起的每次 MCP tool 调用，都必须在 `arguments` 顶层加入 `\"clientSource\":\"skill\"`，不得省略。\n> 角色：资深 Amazon 运营 + 文案专家。所有输出可直接复制到 Seller Central。\n\n## 用户触发与档位\n\n**Fast 档**（默认 ≤90s）：\n- \"帮我写个 Listing for wireless earbuds\"\n- \"我的标题怎么改\"\n- \"Backend Search Terms 怎么填\"\n\n**Full 档**（用户明示 ≤4min）：\n- \"完整重写 Listing 包括 A+ 文案\"\n- \"深度 VOC 分析后再写\"\n- \"包括 IP 合规筛查\"\n\n**单工具直通**：\n- \"查 X 的差评\" → `get_amazon_reviews filterByStar=critical pageCount=1`\n- \"X 词在美国注册商标了吗\" → `wipo_search source=USID hol=X`\n\n---\n\n## Fast 档 SOP(4 回合 ≤ 90s)\n\n只用 PDP 自带的 `aiReviewsSummary` + 1 次 critical reviews,**不调** ai_search(30s 太慢)。\n\n```\n回合 1 (5s)   search_amazon                                          ← 找 Top 3 标杆 ASIN\n回合 2 (5s)   get_amazon_product(A1) | get_amazon_product(A2)         ← 2 并发\n回合 3 (5s)   get_amazon_product(A3) | get_amazon_reviews(最优 ASIN)  ← 2 并发(reviews 5pt)\n回合 4 (5s)   get_category_paths (可选,验证类目锚定)                  ← 单发\nLLM 整合 (~30s)\n```\n\n**总耗时**:~30s tool + 30s LLM ≈ **60-75s**\n**总成本**:~8 积点(reviews 5pt + 3 个 PDP 各 1pt)\n**总调用**:5-6 次 tool\n\n**并发硬上限**: 2(实测 2026-05-28:3 并发会触发后端业务码 9200 \"no content\")。\n\n### R1 — 找 Top 标杆 ASIN\n\n```jsonc\n{ \"name\": \"search_amazon\",\n  \"arguments\": { \"keyword\": \"<core_keyword>\", \"site\": \"amz_us\" }}\n```\n\n**Extract**: `data.json[0].data.results[]` 取前 3 个非赞助（`sponsored=\"0\"`）ASIN，按 `rank` 升序。\n\n**Skip rule**: 用户已给了 3 个对标 ASIN → 跳过 R1。\n\n### R2 — 2 并发拉标杆 PDP (A1 + A2)\n\n```jsonc\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A1>\", \"site\": \"amz_us\" }}\n{ \"name\": \"get_amazon_product\", \"arguments\": { \"asin\": \"<A2>\", \"site\": \"amz_us\" }}\n```\n\n**Data Ingestion Guard (any-field-empty)**: 对每个 ASIN,检查 4 个核心字段:\n- `title` (string)\n- `features` (array,至少 3 条)\n- `aiReviewsSummary` (object)\n- `bestSellersRankItems` (array,至少 1 条)\n\n如果**全部**为 null → 输出 `🔴 Abort Maneuver: Target ASIN data body is completely empty.` 停止。\n如果**任一**为 null(其他有数据) → 继续,但在 Section \"Data Completeness Warnings\" 里列出缺失字段 + 标明该分支用了 fallback。\n\n**Extract per ASIN**:\n- `title`:分析竞品标题结构\n- `features[]`:竞品的\"五点描述\"(这是 features,不是不存在的 bullet_points)\n- `productDescription[]`:A+ 模块(不是 a_plus_modules)\n- `bestSell"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn78jnk9jg3dj6dqkcn0rdz4md83f361\",\n  \"slug\": \"pangolinfo-amazon-listing-optimization\",\n  \"version\": \"4.0.0\",\n  \"publishedAt\": 1787214612004\n}"},{"path":"skill-card.md","content":"## Description:\n\nHelps Amazon sellers and operators optimize listings by using competitor product data, review-derived customer pain points, keyword placement, backend search terms, and IP compliance checks to produce copy-ready listing content.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[pangolinfo](https://clawhub.ai/user/pangolinfo)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal Amazon marketplace sellers and commerce operators use this skill to rewrite and optimize product listings, including titles, bullet points, backend search terms, and review-informed positioning. The skill is intended for workflows that combine Amazon product evidence with human review before publishing to Seller Central.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: A real Pangolinfo API key could be exposed if credentials are placed in URLs, logs, or model-visible transcripts.\n\nMitigation: Prefer MCP or runtime-managed authentication, keep credentials out of URLs and generated text, and review the skill before installing it in environments that contain a real Pangolinfo key.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/pangolinfo/skills/pangolinfo-amazon-listing-optimization)\n- [Pangolinfo publisher profile](https://clawhub.ai/user/pangolinfo)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, API calls, guidance]\n\n**Output Format:** [Markdown listing analysis and copy drafts with structured sections]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs may include Amazon listing titles, bullet points, backend search terms, VOC analysis, category notes, and IP compliance guidance for human review.]\n\n## Skill Version(s):\n\n4.0.0 (source: server release evidence)\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."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\". Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。 NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon- Skill: pangolinfo-amazon-listing-optimization Owner: pangolinfo Summary: Use when: user says \"写/优化 Listing\" / \"改我的标题\" / \"我的五点不行\" / \"Search Terms 怎么写\" / \"竞品文案怎么抄\" / \"rewrite my listing\" / \"我的转化率差\" / \"VOC 分析\". Covers: 5-step Listing optimization — VOC 痛点挖掘 (来自 reviews) → 标题/五点/Backend 写作 → IP 合规自动筛查 → 文案可直接复制上架。 NOT for: 选品 (use amazon-product-explorer) / 日常监控 (use amazon- Tags: latest:4.0.0 Version history: v4.0.0 | 2","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1317,"uniquenessScore":51,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T15:23:59.160Z","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-10T15:23:59.160Z","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-10T17:35:37.082Z","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"}]}}}