Files
market/skills/multi-source-sentiment/SKILL.md
joy1129-com c83f917901 feat(skills): add 6 due-diligence data-source skills (#111)
## Summary

Adds six enterprise due-diligence data-source skills as local built-in
skills (SKILL.md + SKILL.zh-CN.md + catalog-metadata sidecar), per
ADR-038.

| Skill | Category | Risk | Source |
|---|---|---|---|
| baidu-poi-search | data | low | Baidu Map Place API (REST) |
| tianyancha-risk | business | low | Tianyancha risk API (REST) |
| ccgp-gov-procurement | business | medium | ccgp.gov.cn (WebBridge) |
| cnipa-patent-search | business | medium | CNIPA pss-system (WebBridge)
|
| creditchina-query | business | high | creditchina.gov.cn (WebBridge +
ddddocr) |
| multi-source-sentiment | research | medium | Douyin Index/Featured +
WebSearch |

## Changes
- 6 x skills/<id>/{SKILL.md, SKILL.zh-CN.md, catalog-metadata.v1.json}
- builtin-skills.json: 34 -> 40
- manifest.json: totalSkills 63 -> 69
- README.md counts + list

## Security
- Credentials replaced with env-var placeholders (BAIDU_MAP_AK,
TIANYANCHA_TOKEN); verified no secrets in diff

## Validation
- validate-i18n.py: 0 errors (remaining warnings pre-existing repo-wide)
- zh/en heading parity verified; source_hash computed per repo algorithm

Co-authored-by: yi-ge <yi-ge@desirecore.net>
2026-09-03 14:05:58 +08:00

9.7 KiB
Raw Blame History

name, description, version, type, risk_level, status, tags, metadata, market
name description version type risk_level status tags metadata market
multi-source-sentiment 企业尽调舆情采集——通过抖音指数、抖音精选、WebSearch 三大数据源采集企业舆情,分析负面风险(诉讼/处罚/质量/高管/劳资输出尽调舆情报告。Use when 用户提到"查舆情"、"企业舆情"、"负面新闻"、"舆论风险"、"尽调舆情"、"企业口碑"、"舆情分析"、"网络口碑"。 1.0.0 procedural medium enabled
due-diligence
sentiment
public-opinion
douyin
author updated_at i18n
desirecore 2026-09-03
default_locale source_locale locales zh-CN en-US
en-US zh-CN
zh-CN
en-US
name short_desc description body source_hash translated_by
企业尽调舆情采集 抖音指数+抖音精选+WebSearch 三渠道采集,输出尽调舆情报告 企业尽调舆情采集——通过抖音指数、抖音精选、WebSearch 三大数据源采集企业舆情,分析负面风险(诉讼/处罚/质量/高管/劳资输出尽调舆情报告。Use when 用户提到"查舆情"、"企业舆情"、"负面新闻"、"舆论风险"、"尽调舆情"、"企业口碑"、"舆情分析"、"网络口碑"。 ./SKILL.zh-CN.md sha256:e102f3139e03fcd5 human
name short_desc description body source_hash translated_by
Multi-Source Sentiment Due-diligence sentiment via Douyin Index, Douyin Featured, and WebSearch Due-diligence sentiment collection — gather enterprise public opinion via three channels (Douyin Index, Douyin Featured, WebSearch), analyze negative risks (litigation / penalties / quality / executives / labor), and output a due-diligence sentiment report. Use when the user asks about enterprise sentiment, negative news, reputation risk, or public opinion. ./SKILL.md sha256:e102f3139e03fcd5 human
icon category maintainer compatible_agents channel required_client_version
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="2" fill="#FF2D55"/><path d="M12 7a5 5 0 0 1 5 5M12 3a9 9 0 0 1 9 9" stroke="#FF2D55" stroke-width="1.6" stroke-linecap="round"/><path d="M7 12a5 5 0 0 1 5-5M3 12a9 9 0 0 1 9-9" stroke="#FF9500" stroke-width="1.6" stroke-linecap="round"/></svg> research
name verified
DesireCore Official true
latest 10.0.115

Multi-Source Sentiment (Due Diligence)

L0: One-Sentence Summary

Input a company name, collect public opinion via Douyin Index (trend) + Douyin Featured (negative material) + WebSearch (web-wide news), and output a due-diligence sentiment report (negative-risk list / positive highlights / sentiment overview / overall judgment).

L1: Overview

  • Purpose: answer the core due-diligence questions — any negative publicity? litigation/penalty coverage? product-quality issues? executive misconduct? overall reputation?
  • Channel split:
Channel Due-diligence use Collection
Douyin Index Quantified heat trend (is something fermenting recently?) Kimi WebBridge visiting Oceanengine Trends
Douyin Featured Concrete negative material (complaint/expose videos) Kimi WebBridge searching Douyin
WebSearch Web-wide negative news / court notices / penalties / complaints DesireCore built-in WebSearch
  • Prerequisites: Kimi WebBridge daemon running (127.0.0.1:10086) + browser extension connected

L2: Procedure

Source 1: Douyin Index (heat trend)

Access Method

URL: https://trendinsight.oceanengine.com/arithmetic-index/analysis/keyword?keyword={company-short-name}&appName=aweme
Method: Kimi WebBridge opens the URL and extracts page content
Note: URL-parameterized access avoids captchas. Do not type into the search box.

Keyword Strategy

Dimension Keyword
Overall heat {short name}
Negative heat {short name} 负面
Complaint heat {short name} 投诉

Interpretation

  • Sudden spike (MoM > 200%) → a negative event may be fermenting; investigate
  • Flat trend → low reputation risk
  • Persistently high → normal for famous companies; judge by content

Access Method

URL: https://www.douyin.com/search/{company-short-name}?type=video
Method: Kimi WebBridge searches Douyin, extracts title / author / likes / comments
Note: search by short name (full names rarely hit); prioritize high-engagement videos.

Collected Fields

Collected fields: video title (negative signals: complaint / rights-protection / exposure / quality / scam / runaway), likes & comments (reach = impact), author (personal vent vs media report vs competitor smear), publish date (recent vs historical).

Signal Grading

Signals Risk
投诉 / 维权 / 欺骗 / 诈骗 / 跑路 🔴 high
质量 / 召回 / 不合格 / 假货 🔴 high
欠薪 / 辞退 / 仲裁 🟡 medium
吐槽 / 差评 / 不满 🟡 medium
positive / awards / innovation 🟢 positive

Source 3: WebSearch (web-wide)

Search Keyword Groups

# High priority (always)
search_queries_high = [
    "{company} 负面 OR 投诉 OR 维权 OR 欺骗 OR 跑路",
    "{company} 起诉 OR 法院 OR 被告 OR 被执行 OR 失信",
    "{company} 处罚 OR 违规 OR 罚款 OR 整改 OR 通报批评",
]

# Medium priority (recommended)
search_queries_mid = [
    "{company} 质量 OR 召回 OR 不合格 OR 安全事故",
    "{company} 老板 OR 法人 OR 总经理 丑闻 OR 被查 OR 被抓",
    "{company} 欠薪 OR 辞退 OR 劳动仲裁 OR 工伤",
]

# Low priority (positive control)
search_queries_low = [
    "{company} 获奖 OR 创新 OR 认定 OR 排名",
]

Collected Fields

Collected fields: title / source site / date / summary / URL. Note: distinguish the company as plaintiff (enforcement, not a negative signal) vs defendant (negative signal).

Step 1: Run the three channels

  1. WebSearch first (highest information density): run high/medium/low query groups and collect results
  2. Douyin Index: check the heat trend for signs of recent fermentation
  3. Douyin Featured: search videos and filter by negative signal words

Step 2: LLM post-processing

Step Description
Sentiment classification tag each item positive / neutral / negative
Risk grading negative → high (defendant / penalty / runaway / safety accident) / medium (complaints / quality gripes / labor) / low (generic bad reviews)
Event merging merge duplicate coverage of one event (keep the earliest)
Plaintiff/defendant split litigation where the company is plaintiff is not a negative risk
Recency mark "recent" (≤3 months) vs "historical"

Step 3: Output the report

{
  "query_status": "success",
  "source": "multi-source-sentiment",
  "company_name": "{company}",
  "sentiment_overview": {
    "overall_assessment": "正面 | 中性偏正 | 中性 | 中性偏负 | 负面 | 高风险",
    "negative_ratio": "15%",
    "neutral_ratio": "60%",
    "positive_ratio": "25%",
    "trend": "稳定 | 近期发酵 | 持续负面"
  },
  "negative_risks": [
    {
      "risk_type": "诉讼报道(被告) | 行政处罚 | 产品质量 | 高管负面 | 劳资纠纷 | 消费者投诉 | 经营异常",
      "event_title": "……",
      "event_date": "YYYY-MM-DD",
      "recency": "近期 | 历史",
      "source_url": "https://……",
      "severity": "高 | 中 | 低",
      "summary": "1-2 sentence summary"
    }
  ],
  "controversies": [],
  "positive_highlights": [],
  "sentiment_summary": "3-5 sentence judgment: overall reputation, main negatives and severity, fermentation status, due-diligence advice",
  "data_sources_used": ["websearch", "douyin-index", "douyin-featured"],
  "collection_time": "ISO8601"
}

Quality Standards

  • Authenticity: all content must come from actual collection (WebSearch results / Douyin pages); never fabricate
  • Traceability: every negative risk carries a source_url
  • Plaintiff/defendant: litigation where the company is plaintiff goes to "litigation updates", not negative risks
  • Recency: every negative item is marked recent (≤3 months) or historical
  • No absolute conclusions: sentiment is one auxiliary signal; the report must note it should be combined with business-registration, judicial, and financial data

Error Handling

Scenario Handling
Douyin Index unreachable skip; supplement with WebSearch + Featured; note "heat data missing" in the report
Douyin search requires login skip; WebSearch {company} 抖音 负面 instead
WebSearch returns nothing mark "no negative found" — a positive signal
Too many negatives keep the top 10 by severity; count the rest

Known Limitations

  • Not real-time: depends on search-engine indexing and Douyin pages; hour-to-day latency (7×24 monitoring requires commercial sentiment APIs)
  • LLM-based sentiment: no dedicated sentiment model; ~85-90% accuracy, edge cases may misjudge
  • Douyin coverage: WeChat/Weibo/Xiaohongshu content is only covered indirectly via WebSearch
  • Full vs short name: WebSearch uses the full name (precision), Douyin the short name (recall); results may differ

Troubleshooting

Problem Cause Fix
WebBridge daemon unreachable daemon down ~/.kimi-webbridge/bin/kimi-webbridge.exe start
Trends page blank JS not rendered wait 5 s, then evaluate innerText
Douyin search empty login required / name mismatch skip; supplement via WebSearch
WebSearch results all positive weak negative keywords use concrete terms (e.g. "被处罚" instead of "处罚")