Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

industry-intelligence(行业情报)

v1.3.0

行业情报 — 构建并维护某一行业的竞争对手资源库,持续采集监管动态/政策动态、媒体关注、企业官方发布、业务动态、企业数智化动态、国际同行、江湖传闻七大类信息,评估可信度与影响力,生成简报或详报。凡是用户提到"行业情报"、"竞争对手动态"、"行业动态"、"监管动态"、"政策动态"、"竞争对手资源库"、"行业情报收集...

0· 66·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for citywanderr/industry-intelligence.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "industry-intelligence(行业情报)" (citywanderr/industry-intelligence) from ClawHub.
Skill page: https://clawhub.ai/citywanderr/industry-intelligence
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install industry-intelligence

ClawHub CLI

Package manager switcher

npx clawhub@latest install industry-intelligence
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The included scripts (web_fetchers.py, playwright_fetch.py, encoding_fetch.py, md_to_pdf.py, download_fonts.py) map directly to the skill's described capabilities (web scraping, Playwright dynamic fetch, encoding handling, Markdown→PDF). No credentials or unrelated binaries are requested. However the README/SKILL.md expect heavy runtime dependencies (playwright + browser, requests, reportlab) yet the skill metadata lists no install spec — this mismatch may cause surprise operational steps. Also the font-download helper writes into the skill's fonts/ directory, which conflicts with the SKILL.md's 'read-only skill assets' framing (see instruction_scope).
!
Instruction Scope
SKILL.md prescribes executing helper scripts from {SKILL_DIR}/scripts using an absolute Python interpreter and forbids writing generated resources into the skill install directory. But download_fonts.py (and README guidance) will download files into {SKILL_DIR}/fonts, and md_to_pdf.py expects fonts under that path or will scan system font dirs — this contradicts the 'do not write into skill install dir' rule. The scripts perform arbitrary outbound HTTP requests and launch a headless browser (Playwright) to arbitrary URLs; that is expected for this skill but increases runtime risk and requires careful sandboxing and legal/scraping considerations. SKILL.md does include safe-fallback guidance (use native WebSearch/WebFetch/Write/Read) and forbids simulating logins for closed ecosystems.
!
Install Mechanism
There is no formal install spec in the registry metadata despite the code requiring non-trivial dependencies (playwright, a Chromium browser, reportlab, requests, bs4). The README gives pip + 'playwright install chromium' instructions, but lacking an automated install means operators must run these manually. Download_fonts pulls from Google Fonts (zip) and GitHub raw URLs — known hosts, not obfuscated, so direct downloads are traceable, but the skill will attempt to extract/write files if run.
Credentials
The skill declares no required environment variables or credentials and its scripts do not request secrets. Scripts read standard system font paths and WINDIR (for locating fonts), which is reasonable for PDF generation. There is a comment noting Xueqiu sometimes needs cookies, but the code attempts calls without authentication. No unexplained secret exfiltration or requests for unrelated credentials were found.
Persistence & Privilege
always:false and user-invocable:true (normal). The skill does not request to alter other skills or global agent settings. Caveat: download_fonts.py writes into the skill's fonts/ directory (i.e., the skill installation directory), which the SKILL.md simultaneously describes as a read-only/shared asset area — this creates ambiguous persistence behavior (mutating install assets vs. keeping outputs in workspace).
Scan Findings in Context
[pre-scan-injection-none] expected: Static pre-scan reported no injection signals. Given this is an instruction+script skill that performs web fetches and local PDF conversion, absence of regex hits is plausible but not proof of safety.
What to consider before installing
What to check before installing or running this skill: - Dependencies and environment: The skill needs Playwright + a Chromium browser, plus Python packages (requests, beautifulsoup4, reportlab, markdown). There is no automated install in the registry metadata — you will need to install these yourself. Running Playwright will launch a headless browser; do this only in a controlled environment (container/VM) to limit blast radius. - Fonts / write-to-skill-dir inconsistency: SKILL.md emphasizes that generated reports/logs must be written to the agent workspace, not the skill install directory. Yet the included download_fonts.py writes into {SKILL_DIR}/fonts and README suggests running it. If your host mounts skill directories read-only or shares them across sessions, do NOT run download_fonts.py (it will try to write into the skill directory). Prefer placing fonts in your workspace or installing system fonts instead. - Network and scraping: The scripts perform arbitrary outbound HTTP requests and start a headless browser to fetch pages. That is expected for an intelligence collection tool, but ensures usage complies with target sites' terms of service and your organization's policies. The skill explicitly forbids simulating logins for closed ecosystems (WeChat/Douyin/Xiaohongshu); follow that guidance. - File & privacy scope: md_to_pdf scans common system font directories and will attempt to access many paths on the host — benign for font discovery, but be aware it reads system filesystem locations. Run in an environment where this is acceptable. - Operational test: Before using on real data, run the scripts in an isolated workspace and verify where outputs land (./industry-intelligence/...). Confirm the host's exec preflight policy and whether absolute-path interpreter invocation is required. - If you need higher assurance: ask the author for an install spec (automated, reproducible), or for a version of the skill that does not mutate the skill install directory (i.e., that places downloaded fonts into the agent workspace), and review/limit Playwright usage to specific allowed domains.

Like a lobster shell, security has layers — review code before you run it.

latestvk974kps0yjxs1c5sfweykabr6h84pjed
66downloads
0stars
1versions
Updated 2w ago
v1.3.0
MIT-0

行业情报(Industry Intelligence)

帮助用户对特定行业建立竞争情报体系:先构建资源库,再持续采集信息,最后生成可读报告。


执行规范(硬约束)/ Execution Rules (Hard Constraints)

部分宿主环境(如 OpenClaw 4.10+)启用了 exec preflight 安全预检,会拦截"复杂解释器调用"。本技能所有代码执行必须严格遵循以下规范,否则会触发 complex interpreter invocation detected 报错。

Some host environments (e.g. OpenClaw 4.10+) enable an exec preflight safety check that blocks "complex interpreter invocations". All code execution in this skill MUST follow these rules, otherwise the host will raise complex interpreter invocation detected.

✅ 允许的调用形式 / Allowed

只允许对 {SKILL_DIR}/scripts/ 目录下已存在的脚本文件进行直接调用。由于 cwd 通常位于工作区而非技能安装目录,调用时需使用 {SKILL_DIR} 前缀(请把 {SKILL_DIR} 替换为 SKILL.md 所在目录的实际路径)。

Only direct invocations of existing script files under {SKILL_DIR}/scripts/ are allowed. Because cwd typically sits in the workspace (not the skill install directory), prefix calls with {SKILL_DIR} (replace it with the actual directory of SKILL.md).

⚠️ 解释器路径规则 / Interpreter Path Rule:部分宿主(如 OpenClaw 4.10+)的 exec preflight 会拦截 python / python3 等裸命令形式的脚本调用,但放行绝对路径解释器调用(如 /usr/bin/python3)。因此:

Some hosts (e.g. OpenClaw 4.10+) block bare python / python3 script invocations but allow absolute-path interpreters (e.g. /usr/bin/python3). Therefore:

在首次调用脚本前,先运行 which python3(或 command -v python3)获取 Python 解释器绝对路径,后续所有脚本调用统一使用该绝对路径。 若首次尝试裸 python3 命令即被 exec preflight 拦截,立即用 which python3 取得绝对路径后重试。

Before the first script call, run which python3 (or command -v python3) to obtain the Python interpreter's absolute path. Use that absolute path for ALL subsequent script calls. If a bare python3 call is blocked by exec preflight, immediately run which python3 and retry with the absolute path.

# 第一步:获取 Python 解释器绝对路径(仅需一次)
which python3
# 输出示例: /usr/bin/python3

# 第二步:使用绝对路径调用脚本(请将 /usr/bin/python3 替换为实际输出)
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py dynamic <URL>
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py encoding <URL>
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py xueqiu
/usr/bin/python3 {SKILL_DIR}/scripts/web_fetchers.py zhihu <URL>
/usr/bin/python3 {SKILL_DIR}/scripts/md_to_pdf.py <MD文件路径>
/usr/bin/python3 {SKILL_DIR}/scripts/md_to_pdf.py --check-fonts
/usr/bin/python3 {SKILL_DIR}/scripts/download_fonts.py

Windows 用户不受此限制,可直接使用 python 裸命令。Windows users are not affected — bare python works fine.

❌ 严禁的调用形式 / Forbidden

以下所有形式一律禁止,即便是"临时处理一下数据"也不行:

All of the following are strictly forbidden, even for "just quickly processing some data":

  • python -c "..." — 内联代码串
  • python <<EOF ... EOF — heredoc 形式
  • bash -c "python ..." — 嵌套 shell 调用
  • echo ... | python / 任何管道拼接的解释器调用
  • 现场用 Write 生成一个临时 .py 文件再 python 执行它
  • node -e "..." 及其他语言的等价内联形式

🚨 遇到 preflight 报错时的正确应对 / Correct Response to Preflight Errors

若宿主返回 complex interpreter invocation detected,说明上一条命令的解释器调用方式被 preflight 拦截,正确应对是:

If the host returns complex interpreter invocation detected, the interpreter invocation was blocked. Correct response:

  1. 首先尝试改用 Python 解释器绝对路径:运行 which python3 获取绝对路径(如 /usr/bin/python3),然后用该绝对路径重新调用同一脚本。大多数情况下这能立即解决问题;

  2. 若绝对路径仍失败,改用 WebSearch / WebFetch / Write / Read 等原生工具完成同等功能;

  3. 绝对禁止以此为借口退化为"手动编造情报数据"——这会违反本技能"不自行编制情报"的核心红线(见"注意事项"章节)。宁可减少覆盖面、降级输出格式,也不可伪造数据。

  4. First, retry with the absolute interpreter path: run which python3, then re-invoke the same script using the absolute path (e.g. /usr/bin/python3 scripts/xxx.py <args>). This resolves most cases immediately.

  5. If the absolute path still fails, fall back to native tools (WebSearch / WebFetch / Write / Read).

  6. Never fabricate intelligence data as a workaround — prefer reducing scope or downgrading output format.


文件路径约定 / File Path Convention

本技能严格区分"只读技能资产"与"可写工作区输出"两类路径,严禁把生成的资源库 / 报告 / 日志写入技能安装目录。

This skill strictly separates read-only skill assets from writable workspace outputs. Generated resource libraries, reports, and logs MUST NOT be written into the skill install directory.

🔒 只读技能资产 / Read-Only Skill Assets({SKILL_DIR}

SKILL.md 所在的技能安装目录,通常由宿主挂载为只读或跨会话共享。以下资源只读,只能通过相对 SKILL.md 的路径访问:

Refers to the directory containing SKILL.md — typically mounted read-only or shared across sessions by the host. Access via paths relative to SKILL.md:

用途 / Purpose路径 / Path
模板文件 / Templates{SKILL_DIR}/templates/{resource,brief-report,detail-report,log}.md
辅助脚本 / Helper scripts{SKILL_DIR}/scripts/{web_fetchers,md_to_pdf,download_fonts}.py
中文字体 / CJK fonts{SKILL_DIR}/fonts/*.ttf

✍️ 可写工作区输出 / Writable Workspace Outputs({WORKSPACE_DIR}/industry-intelligence/

所有生成的文件(资源库、简报、详报、PDF、采集日志)必须写入当前 agent 工作区下的 industry-intelligence/ 子目录,而不是技能安装目录。默认以**当前工作目录(cwd)**作为工作区根,所有输出路径写作 ./industry-intelligence/...

All generated files (resource libraries, briefs, detail reports, PDFs, collection logs) MUST be written into the current agent workspace under an industry-intelligence/ subdirectory — never into the skill install directory. The current working directory (cwd) is treated as the workspace root by default, so output paths are written as ./industry-intelligence/...:

输出类型 / Output路径 / Path
资源库 / Resource library./industry-intelligence/resource/{行业名称}-resources.md
详报 MD / Detail report MD./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.md
详报 PDF / Detail report PDF./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.pdf
简报 / Brief./industry-intelligence/reports/{行业名称}简报-{YYYY-MM-DD}.md
采集日志 / Collection log./industry-intelligence/log/{报告名称}-{YYYYMMDDThhmmss}.md

首次写入前:若 ./industry-intelligence/ 或其子目录不存在,使用 Write 工具创建文件时直接使用完整路径即可(Write 会自动建立缺失的父目录);若必须显式建目录,使用 mkdir -p ./industry-intelligence/{resource,reports,log},不得使用内联 Python。

Before first write: if ./industry-intelligence/ or its subdirectories don't exist, simply use the full path with the Write tool (it auto-creates missing parents). If explicit creation is needed, use mkdir -p ./industry-intelligence/{resource,reports,log} — never inline Python.

📌 模式判断时如何定位资源库 / How to Locate the Resource Library During Mode Detection

进入技能时,按以下顺序查找现有资源库,命中任一即进入采集模式

On skill entry, search for an existing library in this order; hit any → enter Collection Mode:

  1. ./industry-intelligence/resource/{行业名称}-resources.md首选,当前工作区)
  2. ./resource/{行业名称}-resources.md(兼容旧版布局,当 cwd 已经位于工作区 industry-intelligence/ 内部时)

均未命中 → 进入建库模式,最终写入位置为 ./industry-intelligence/resource/{行业名称}-resources.md

Neither hit → enter Library-Building Mode, writing the final library to ./industry-intelligence/resource/{行业名称}-resources.md.

🚨 严禁的路径用法 / Forbidden Path Usage

  • ❌ 向 {SKILL_DIR}/resource/{SKILL_DIR}/reports/{SKILL_DIR}/log/ 写入任何新生成的文件
  • ❌ 使用绝对路径引用技能安装目录(如 /Users/.../industry-intelligence/resource/...)来写入输出
  • ❌ 假设技能安装目录可写——在 OpenClaw 等宿主中它通常是只读或会被下次部署覆盖

技能仓库内保留的 resource/ reports/ log/ 目录仅作为示例存档模板参考,不参与运行时输出。

The resource/, reports/, log/ directories within the skill repository serve only as example archives and template references — they are not runtime output destinations.


工作模式判断

每次被调用时,先判断当前处于哪个模式:

  1. 建库模式 — 用户首次对某行业开展情报工作,或尚无该行业的资源库文件。
    → 执行"构建资源库"流程。

  2. 采集模式 — 该行业的资源库文件已存在。
    → 执行"情报采集与报告"流程。

资源库文件命名规则:{行业名称}-resources.md,保存在当前工作区./industry-intelligence/resource/ 目录下(详见上方"文件路径约定")。严禁写入技能安装目录。


模式一:构建资源库

目标

生成一份结构化的竞争对手资源清单,让后续信息采集有迹可循。

零代码路径 / Zero-Code Path

建库阶段完全不需要执行任何 Python 脚本。全流程仅使用以下原生工具:

The library-building phase does not require executing any Python script. The entire flow uses only native tools:

  • WebSearch — 查询行业排名、主体数量、监管机构、官网 URL 等
  • WebFetch — 按需验证单个页面(如公司官网是否可达)
  • Read — 读取 {SKILL_DIR}/templates/resource.md 模板(只读技能资产)
  • Write — 将填充好的资源库内容写入 ./industry-intelligence/resource/{行业名称}-resources.md(当前工作区)

若你发现自己正准备写 python -c "..." 或生成临时脚本来"结构化处理"搜索结果,说明路径走错了——请立即停止,改回"WebSearch 获取 → 直接在对话上下文中整理 → Write 一次性写入"的纯文本流程。搜索结果的归纳整理应在模型推理中完成,而不是通过代码执行。

If you find yourself about to write python -c "..." or generate a temporary script to "structurally process" search results, you are on the wrong path — stop immediately and return to the plain-text flow: WebSearch → organize in-context → Write. Aggregation of search results should happen in model reasoning, not via code execution.

资源文件检查规则

在生成资源文件前,必须执行以下检查:

  1. 检查已存在资源文件:查看当前工作区 ./industry-intelligence/resource/ 目录下是否已存在相同行业的资源文件,包括:

    • 同名文件(如"证券行业-resources.md")
    • 相似名称文件(如"证券业-resources.md"、"券商-resources.md")
  2. 存在时的处理规则

    • 若存在相同行业的资源文件,则在原资源文件基础上补充新信息
    • 不要删除或改变原资源文件内容,因为用户可能已手工修改过
    • 除非用户明确表示要覆盖,否则只能增量添加
  3. 质量问题处理

    • 若判断原资源文件质量很差,难以获取有效信息
    • 可向用户提出重新生成资源文件的申请
    • 在用户明确同意后,方可重新生成该行业的资源文件

竞争对手范围规则

用户可以用以下关键词指定覆盖范围,默认按行业收入排名确定:

用户指定默认覆盖范围
头部企业(或"龙头"、"Top 10")行业收入排名前 10 名
中坚力量(或"中型"、"第二梯队")行业收入排名第 11~30 名
全市场(或"全行业")行业全部主体(受下述规则限制)
用户直接指定公司名称以用户指定为准,不受排名限制
用户指定具体数量(如"前20名")以用户指定数量为准
用户指定区域范围(如"华东"、"广东省")在指定区域内按排名确定

若用户未说明范围,按以下规则确定:

  1. 行业主体数量 > 100 家:取前 30 名
  2. 行业主体数量 ≤ 100 家:取前 20 名
  3. 用户可通过设置区域范围(如"华东地区"、"广东省")来限制行业主体数量
  4. 若无法判断行业主体数量:取影响力最大的前 20 名

使用 WebSearch 确认当前行业排名和主体数量,优先使用最新年度收入数据。

步骤

第一步:确认行业范围
向用户确认行业名称、关注焦点(如"商业银行"、"公募基金"、"消费金融")、竞争对手范围以及区域范围(如有)。若未指定范围,按上述规则自动确定。

第二步:调研并填充资源库
通过搜索工具(WebSearch)或用户提供的信息,收集以下内容:

权威信息源(每家公司必须覆盖):

  • 公司官网(官方公告、新闻发布)
  • 主要监管机构(包含行业协会)
  • 权威财经媒体

推荐关注源(可选覆盖):

  • 微信公众号、视频号等官方账号(建议人工查阅或使用第三方聚合源)
  • 抖音号、小红书等自媒体账号

监管与行业权威信息源:

  • 主要监管机构(如银保监会、证监会、央行等,按行业确定)及其官网/公众号
  • 行业协会官网/公众号
  • 权威财经媒体(如财新、21世纪经济报道、证券时报等)

第三步:生成资源库文件
读取 {SKILL_DIR}/templates/resource.md 模板,按格式填充后用 Write 工具写入当前工作区的 ./industry-intelligence/resource/{行业名称}-resources.md严禁写入技能安装目录,Write 会自动创建缺失的父目录)。

输出文件后,告知用户文件的实际绝对路径,并提示:"资源库已建立,可随时开始情报采集。"


模式二:情报采集与报告

前置确认

采集开始前,向用户确认:

  • 时间范围:由用户指定,不设默认值
  • 报告类型:简报 or 详报(用户未明确则默认详报)
  • 重点关注:是否有特别关注的公司或类别

报告类型判断规则:

  • 用户明确说"简报":生成简报
  • 用户只说"情报"、"月报"、"周报"、"动态"、"报告"等字眼,未明确是"简报":默认生成详报

情报条数规则(全局限制): 为了保证报告精华度,防止内容臃肿导致输出限流或中断,最终写入报告的情报总数有着明确的上限。

  1. 统一数量标准:为保证报告信息的充实度与精华度的平衡,根据设定时间段,对最终报告入选条数设定如下标准范围:
    • 统计周期为 31日以上(如月报等):入选条数原则上控制在 40~50条
    • 统计周期为 31日及以下,且大于1天(如周报等):入选条数原则上控制在 30~35条
    • 统计周期为 1天及以内(如日报):入选条数原则上控制在 20~25条
    • 执行要求:在执行情报采集检索时,应充分收集并尽可能达到目标区间的下限(例如周报必须尽力产出至少20条高价值情报),当可用情报总数超过上限后,再依系统评定截断。
  2. 全局筛选:生成报告前,从采集池中以可信度影响力综合评分进行全局排序。严格截取对应限额内的最核心条目写入简报或详报。

信息采集规则

采集阶段无数量限制:

  • 竞争对手、国际同行、行业主流供应商在采集阶段不限数量,符合时间范围和发布日期要求的情报均应采集
  • 其他信息源同样无采集数量限制

报告生成时的筛选规则:

  • 竞争对手、国际同行、行业主流供应商采集的情报总体按影响力从高到低排序
  • 若单个数据源(单家公司)采集的信息超过 2 条,在生成报告时最多选取 2 条写入报告
  • 选取原则:优先选取影响力最高的 2 条信息

时间范围严格控制:

  • 采集的情报必须在用户设定的统计时间段内,以情报的发布日期为准。
  • 柔性时间校验:若网页缺乏明确的发布日期,允许模型根据网页收录时间、前后文进行合理推断论证。仅经过推断仍完全无法确定时间范围的情报,才视作无效并丢弃。
  • 若情报内容提及的日期与发布日期不一致(如预告类信息),以发布日期判定是否在统计区间内。

数据源访问策略:

信息采集遵循“全网汇聚 -> 头部深挖”的两步走策略,不再强制暴力穷举所有官网。

  1. 第一层面:全网汇聚(优先) 优先使用WebSearch进行全网层面的新闻和行业动态搜索。在限定时间范围内,重点检索 “[行业名称] 行业动态” 及重点公司的直接相关新闻。这能快速覆盖大部分具备影响力的情报(包含监管动态、媒体关注、国际媒体报道等)。

  2. 第二层面:头部深挖(补充验证) 在全网汇聚后,为补充第一层级未能采集到的详细官方披露,仅对行业内排名前 10 名的头部企业的核心资产(通常即为各家主官网)进行深入排查。对中小企业与其他次级官网不再强制要求逐一访问。

**注意事项:**通过以上策略,在保障情报覆盖面的前提下有效降低单次大模型调用开销。被明确跳过查询的渠道数据源请在最终日志中一笔记录。对于自媒体与社区的情报收尾工作,严禁模型尝试模拟需要强制登录授权(扫码等)的媒体。

访问方式优先级:

  1. 优先使用WebFetch:快速获取静态页面
  2. WebFetch返回动态内容时
    • 若返回内容包含"需要启用JavaScript"、"SPA框架"、"动态渲染"等提示
    • 或返回内容为Vue/React模板语法(如 {{item.title}}
    • 或返回内容为空HTML框架但无实际数据
    • 必须调用Playwright进行提取,不得直接放弃该数据源
  3. WebFetch完全失败时:记录错误原因,尝试其他采集方式

首页无信息时的处理:

  • 如果在首页获取不到有效信息
  • 尝试进入"公司新闻"、"公司动态"以及有行业相关关键字的栏目中进行查询

翻页处理:

  • 如果发现消息列表下有"Next"、"更多"、"下一页"、可翻页的页码等信息
  • 且当前页消息的日期仍在统计区间内
  • 则自行进行"更多"或翻页点击操作

信息类别

采集时将信息归入以下七类:

类别包含内容
🏛️ 监管动态/政策动态管制类行业(证券、银行、保险等):政策导向与行业监管机构动向。非管制类行业:中央政府和地方政府对该行业的政策、法规、扶持措施等动态。栏目名称根据行业类型自动调整。
📌 媒体关注公众媒体报道的并购重组、战略调整公告、年报/季报发布、高管变动等重大事件
🏢 企业官方发布同业公司官网、官方微信公众号、视频号、抖音等官方渠道发布的公告、新闻、产品上线等
💼 业务动态同业在业务领域的创新突破或重大成就。信息来源:权威媒体报道与各公司官方渠道发布的信息。重点关注:新产品、新服务发布,某一业务领域厚积薄发的成果,影响力评分权重提高
🔬 企业数智化动态同业在企业数智化领域的重大投入或成就。重点关注:新系统上线、新技术应用、AI等技术落地成果,影响力评分权重提高
🌍 国际同行国际主流财经/行业媒体报道、海外同业机构官网、官方Twitter/X、YouTube、LinkedIn等渠道发布的信息
🌫️ 江湖传闻可信度 ≤ 3.5 的信息,来源为自媒体、微博、知乎、雪球等非权威渠道

采集记录格式

每条信息记录以下字段:

⚠️ 时间校验要求:发布时间字段为必填项,无法确定发布时间的情报不予收录。发布日期必须在用户设定的统计时间段内。

- 标题:{简短描述}
- 来源:{信息源名称}(类型:权威/非权威)
- 发布时间:{YYYY-MM-DD HH:MM} — ⚠️ 必填,无发布时间视为无效情报
- 关联公司:{公司名称,或"行业通用"}
- 类别:{监管动态/政策动态 / 媒体关注 / 企业官方发布 / 业务动态 / 企业数智化动态 / 国际同行 / 江湖传闻}
- 摘要:{100字以内的内容摘要}
- 原文链接:{URL,如有}
- 可信度:{1.0-5.0} — 评分依据见下方,精确到小数点后1位
- 舆情方向:{正面 / 中性 / 负面}
- 影响力:{1.0-5.0} — 评分依据见下方,精确到小数点后1位

栏目名称判断规则:

  • 管制类行业(证券、银行、保险、基金、期货、信托、支付等金融行业;医疗、医药、教育、能源等受强监管行业):第一个栏目使用"🏛️ 监管动态"
  • 非管制类行业(互联网、消费、零售、制造业、服务业等):第一个栏目使用"🏛️ 政策动态",聚焦政府政策动态

注意:"江湖传闻"类别仅收录可信度 ≤ 3.5 的信息,且需在来源中明确标注信息源平台(如"雪球用户XXX"、"知乎答主YYY")。

重要原则

  • 不要自行编制任何情报或新闻,严格以各个数据源获取的消息为准
  • 在没有做专项的调动或查阅手段之前,尽可能获取自媒体及社区情报以充裕"江湖传闻"栏目

评估标准

可信度评分(1.0-5.0):

分值标准
5.0权威来源(监管机构官方、公司官方公告、主流财经媒体)
4.0可信来源(行业协会、知名财经媒体二次报道)
3.0一般可信(大型自媒体、知名分析师,有一定背书)
2.0待核实(小型自媒体、匿名消息源,内容有逻辑但未证实)
1.0存疑(流言、无来源消息、与其他信息明显矛盾)

影响力评分(1.0-5.0):

分值标准
5.0影响行业格局或引发系统性变化(如重大监管法规、行业并购)
4.0影响多家公司或某类业务方向的重要动态
3.0对特定公司或特定业务线有明显影响
2.0影响有限,属常规经营动态
1.0边缘信息,参考价值低

业务动态与科技动态影响力加权规则:

  • 新产品/新服务发布、新系统上线、新技术应用落地:影响力评分 +0.5(最高不超过5.0)
  • 某一业务领域厚积薄发的成果(如突破性产品、创新业务模式):影响力评分 +0.5
  • 这类信息在报告中优先展示,栏目内排序靠前

舆情方向:

  • 正面:对行业或相关公司有利的信息(如获批新牌照、重大合同中标)
  • 中性:事实陈述,无明显正负倾向(如人事调整、常规报告发布)
  • 负面:对行业或相关公司不利的信息(如处罚、业绩下滑、负面舆论)

报告生成

采集完成后,生成报告。

报告类型

所有报告输出均写入当前工作区的 ./industry-intelligence/reports/ 目录,严禁写入技能安装目录。

详报(默认):

  • 文件路径:./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.md(同目录下再生成同名 .pdf
  • 标题格式:{行业名称} 行业情报
  • 同时生成MD文件和PDF文件

简报:

  • 文件路径:./industry-intelligence/reports/{行业名称}简报-{YYYY-MM-DD}.md
  • 标题格式:{行业名称} 简报 {日期}
  • 只生成MD文件

简报格式

读取 {SKILL_DIR}/templates/brief-report.md 模板(只读),填充后写入当前工作区的简报路径。

详报格式

读取 {SKILL_DIR}/templates/detail-report.md 模板(只读),填充后写入当前工作区的详报路径。

PDF生成

详报必须生成PDF文件:

  1. 先生成MD文件(写入 ./industry-intelligence/reports/
  2. 使用 {SKILL_DIR}/scripts/md_to_pdf.py 脚本将 MD 转换为 PDF
  3. PDF 文件与 MD 文件位于同一目录(即同在工作区 ./industry-intelligence/reports/

调用方式:

python {SKILL_DIR}/scripts/md_to_pdf.py ./industry-intelligence/reports/{行业名称}行业情报-{YYYY-MM-DD}.md

脚本不会修改 MD 源文件,默认输出 PDF 到与 MD 文件同路径的 .pdf

首次在新环境生成 PDF 前的字体自检(推荐)

当你是首次在当前宿主环境(例如新装的 OpenClaw 实例)调用本技能、或上一次生成 PDF 时出现"中文方块字"时,请先运行字体自检:

python {SKILL_DIR}/scripts/md_to_pdf.py --check-fonts

该命令会打印本地 {SKILL_DIR}/fonts/ 目录内容、三级降级策略(本地字体 → 显式系统路径 → 目录扫描)的命中结果,以及最终选定的正文/标题字体。若输出 ✅ 中文字体可用 即可直接开始生成 PDF;若输出 ❌ 未命中任何中文字体,按提示选择:

  1. 运行 python {SKILL_DIR}/scripts/download_fonts.py 下载开源思源字体(需外网);
  2. 或手动把任意中文 TTF/OTF 文件放入 {SKILL_DIR}/fonts/ 目录;
  3. 或在系统层面安装 Noto CJK / 微软雅黑 / 苹方 等任一 CJK 字体。

md_to_pdf.py 内置的字体容错能力(无需你手动处理,了解即可):

  • 三级降级链:本地 fonts/ → 显式系统路径(已覆盖 macOS PingFang/STHeiti/Hiragino/Songti、Windows msyh/simsun/simhei、Linux Noto CJK/文泉驿/AR PL UMing)→ 兜底扫描标准字体目录匹配 CJK 关键字文件名;
  • 正文↔标题双向兜底:只要找到任一字重即可支撑另一字重,不会因缺 bold 整体崩退到 Helvetica;
  • TTC 集合字体支持:自动以 subfontIndex=0 注册 macOS/Windows 的 .ttc 字体;
  • 失败隔离:单个字体注册异常只降级字体,不会中断整个 PDF 生成流程。 安全降级策略:如果执行 md_to_pdf.py 失败(例如缺少依赖库抛出错误,或被宿主 exec preflight 拦截),严禁中止整个技能任务。您只需在执行日志和最终回复里说明"由于系统环境依赖缺失或宿主安全策略限制,PDF生成未成功,当前已为您提供完整的 Markdown 格式报告",技能即视为妥善完成。

降级红线 / Downgrade Red Line:脚本被拦截或失败时,允许的降级动作仅限于"跳过该数据源并在日志中记录"、"仅输出 Markdown 不输出 PDF"、"减少覆盖的竞争对手数量"等缩小范围类操作;严禁以"脚本无法执行"为由伪造情报标题、摘要、链接、评分或发布时间。宁可交付一份条目较少的真实报告,也不可交付一份条目充足但内容编造的报告。

When scripts are blocked or fail, permitted downgrades are limited to scope reduction actions: skipping the data source (and logging it), emitting Markdown only without PDF, covering fewer competitors, etc. Never fabricate titles, summaries, links, scores, or publish dates under the excuse of "scripts cannot execute". A shorter but truthful report is always preferable to a full-length fabricated one.


采集日志

日志目录

日志写入当前工作区的 ./industry-intelligence/log/ 子目录(Write 会自动创建),严禁写入技能安装目录。

日志文件格式

文件路径./industry-intelligence/log/{报告名称}-{YYYYMMDDThhmmss}.md

  • 时间格式为 ISO 8601 基本格式(年月日T时分秒)
  • 示例:./industry-intelligence/log/证券行业行业情报-20260408T103000.md

日志内容格式:读取 {SKILL_DIR}/templates/log.md 模板(只读),按格式填充后写入上述路径。

日志清理规则

保留期限:7天

清理机制

  • 在生成新的日志文件前,检查工作区的 ./industry-intelligence/log/ 目录
  • 删除创建日期超过 7 天的日志文件(按文件名中的日期时间判断)
  • 使用 Bash 直接删除匹配的文件(如 rm <path>),不要使用内联 Python

采集工具增强

为解决 WebFetch 经常遇到的网页动态渲染、反爬机制与编码乱码问题,本技能已在 {SKILL_DIR}/scripts/ 目录下提供了辅助脚本 web_fetchers.py请直接使用命令行调用该工具的各项子功能,无需您自行编写或执行复杂的多行 Python 请求代码

以下示例统一使用 {SKILL_DIR}/scripts/... 路径;若你的宿主会将 cwd 设为技能目录则可省略前缀,但带前缀的写法在工作区 cwd 场景下始终可用。

浏览器自动化工具(机制应对 SPA / JS 依赖)

当WebFetch发现目标页面返回内容包含要求启用JS、为空、为 Vue/React 模板结构,或触发防爬墙时,应当调用 Playwright 的 headless 工具等待渲染。

调用方式:

python {SKILL_DIR}/scripts/web_fetchers.py dynamic <URL>

此命令内部设定了对页面渲染的 networkidle 空闲等待机制,并可确保稳定提取真实文本元素。

编码处理工具(应对乱套编码)

当遇到如国内传统券商或金融门户(东方财富等)返回 GB2312/GBK 等乱码并导致解码异常时,调用以下命令进行智能转码,自适应获取 UTF-8 明文内容。

调用方式:

python {SKILL_DIR}/scripts/web_fetchers.py encoding <URL>

自媒体/社区采集处理(“江湖传闻”获取口径)

作为“江湖传闻”栏目的供给项,自媒体与社区类数据源有着极高潜藏价值,但同样伴随着极高抓取难点。因此在作业时需严格遵循以下要求:

  1. 红线(禁用模拟操作)严禁尝试使用代码或浏览器强行模拟微信、抖音、小红书的登录或自动化提取流程。此类带强烈风控的闭源生态数据对于大模型抓取极不现实,遇此必须建议采用手工翻阅或外部RSS解决。
  2. 雪球热帖:若欲获取散户传闻关注,直接调用工具内封装的雪球公共热帖 JSON API:
    python {SKILL_DIR}/scripts/web_fetchers.py xueqiu
    
  3. 知乎爬取:可调用内置脚本解析知乎指定问题的答案列表:
    python {SKILL_DIR}/scripts/web_fetchers.py zhihu <URL>
    

建议:江湖传闻并不局限在社区闭源APP,绝大部分具备参考水准的传言也常会借由全网媒体二创外流。模型最有效的补充方案是在前面第一步(全网网络汇聚)检索新闻时留心此类附带的传闻观点,而不是执着于在封闭APP内翻爬。


注意事项

  • 信息时效:时间范围由用户指定,不设默认值。情报发布日期必须严格在统计时间段内,超出范围的信息不予收录。无法确定发布日期的情报视为无效,不予收录。
  • 报告筛选规则:竞争对手、国际同行、行业主流供应商采集时不限数量,但生成报告时单个数据源最多写入 2 条,按影响力排序选取最高的 2 条。
  • 信息去重:同一事件被多个来源报道时,合并为一条,注明所有来源,可信度取最高值。
  • 栏目名称调整:管制类行业(证券、银行、保险、基金、期货、信托、支付、医疗、医药、教育、能源等)使用"监管动态";非管制类行业使用"政策动态"。
  • 业务动态与数智化动态优先展示:新产品、新服务、新系统、新技术应用相关信息优先展示,影响力评分加权。
  • 业务动态信息来源:权威媒体报道与各公司官方渠道发布的信息,两者均需关注。
  • 国际同行信息源:包括国际主流财经媒体(如Bloomberg、Reuters、FT、WSJ等)、海外同业官网、官方Twitter/X、YouTube、LinkedIn等渠道。信息需标注境外来源。
  • 行业主流供应商信息源:资源库中新增行业主流供应商(不超过10家)的官网、官方公众号、视频号等渠道,用于采集"企业数智化动态"栏目信息。已生成资源文件的行业需补充该类渠道信息。
  • 不确定信息:可信度 ≤ 3.5 的信息归入"江湖传闻"栏目,需加注"⚠️ 仅供参考,需自行核实"警告标记。
  • 企业官方发布来源:优先采集公司官网公告、官方微信公众号、官方视频号等渠道发布的消息,可信度通常为 5.0。
  • 用户校正:如用户对资源库中的信息源有增删,直接更新 {行业名称}-resources.md 文件即可,下次采集自动使用最新资源库。
  • 评分精度:可信度和影响力评分精确到小数点后1位(如 4.5、3.2),不使用星级展示。
  • 尾注格式:报告末尾统一使用三行格式:第一行声明AI辅助生成及免责声明;第二行列举数据来源;第三行标注"industry-intelligence skill by sunhang(citywanderr)"。
  • 不自行编制情报:严格以各个数据源获取的消息为准,不要自行编制任何情报或新闻。
  • 分层访问数据源:P0(监管机构、权威媒体、竞争对手官网)必须全部访问;P1(国际同行、国际媒体、行业供应商)优先访问;P2(自媒体、社区)尽力访问。被跳过的数据源须在日志中记录原因。

Comments

Loading comments...