Marketplace Pricing Download

ecm-dd-data-verify

ECM 尽职调查工具类 Skill:调用第三方公开数据源(Tushare Pro / 企查查开放平台)与客户 提供的材料做交叉比对,发现数据不一致、未披露变更、过期信息等问题。当用户提到以下场景时 触发:外部数据验证、第三方数据核实、自动比对工商信息 / 股东 / 主要人员 / 知识产权 / 行政处罚、 用 Tushare 查财务数据 / 用企查查查工商、客户提供的营业执照 / 股东名册与外部工商档案是否一致、 API 数据比对、public data verification、cross-check 客户材料、抓取外部公开数据、 核实注册资本、核实法定代表人、核实实控人穿透、查专利 / 商标 / 软著是否真实存在、 查行政处罚记录。 典型输入:公司统一社会信用代码 / 名称 / ts_code、需比对的维度列表、客户提供的对应数据; 典型输出:数据比对报告(Markdown 表格 + 差异分析 + 建议核实清单)。 非触发边界:本 skill 是**工具类**不输出 DD Memo(五段式);真正的合规判断由各业务 DD skill 去做。不负责文件读取(归 ecm-dd-file-review)、不负责文件搬运(归 ecm-setup-file-organize)、不做实质合规结论(归各业务 DD skill)。 即使用户未明确说"外部数据比对",只要涉及"用 Tushare / 企查查 查 XXX 并与客户材料对比" 也应触发本 skill。

ID: cn.corporate.ecm-dd-data-verify Version: 0.1.0 License: MIT Author: zeweihan Language: zh Added: 2026-06-01
⬇ Download

ecm-dd-data-verify

定位与边界

本 skill 是 ECM DD 的工具类 skill,和 17 个业务性 DD skill(dd-approval / dd-entity / … / dd-compliance)有明显的职责分工:

  • 业务性 DD skill 输出"合规判断"(核查要点 + 审阅发现 + 风险分级 + 建议措施,五段式)
  • 本 skill 输出"数据差异清单"(客户数据 ↔ 外部公开数据的逐字段比对结果),供业务 DD skill 作为输入使用

⚠️ 本 skill 不套用 shared/templates/dd-skill-template.md 的五段式输出契约。 该模板只约束业务性 DD skill。本 skill 走自己的"数据比对报告"格式。

本 skill 负责

  • 按需求维度调用 scripts/tushare_connector.py / scripts/qcc_connector.py 取外部数据
  • 将外部数据与客户材料中的对应字段做逐项比对
  • 为每条差异打"高 / 中 / 低"级别(仅指比对差异本身的严重程度,不等同于业务风险分级)
  • 输出差异清单 + 可能原因 + 建议核实措施

本 skill 不负责

  • 合规结论——差异是否构成发行上市障碍,交由调用它的业务 DD skill 判断
  • 文件读取——客户文件的 PDF/Word/Excel 读取归 ecm-dd-file-review
  • 文件归位——归 ecm-setup-file-organize
  • 法规解释——归 ecm-research-reg-search / ecm-research-reg-study

免责声明

本 skill 产出的数据比对报告仅为尽调辅助工具底稿,不构成最终法律意见。Tushare 与企查查是 第三方商业数据源,数据口径与更新频率由其运营方决定,存在滞后或偏差的可能。关键事项仍须 以政府主管部门出具的官方文件为准。完整免责声明见 DISCLAIMER.md

资深律师执行标准

执行本 skill 时,必须同时遵循 senior-lawyer-execution-standards.md。本 skill 的任何输出不得突破四条底线:事实可追溯、法源可核验、风险可分级、建议可落地;无法核验时必须显式标注。

本 skill 的实务加固点

  • 数据不替代底稿:Tushare、企查查等第三方数据仅作交叉验证线索,不得覆盖客户原件和官方登记信息。
  • 差异分级:主体名称、股本、股东、董监高、处罚、诉讼、经营范围等差异需按发行影响分级。
  • 原始响应留存:每次调用必须记录来源、查询关键词、时间戳、接口返回和失败原因,归入数据比对底稿。
  • 高风险触发器:第三方数据出现未披露处罚/诉讼/股权冻结/经营异常,应转对应 DD skill 复核。

前置依赖

外部依赖

  • Python 3.9+(脚本使用 dataclass / from __future__ import annotations
  • pip install -r scripts/requirements.txt(requests / pandas 等)
  • 至少一个以下环境变量组合(缺失时自动进入 fallback):
    • TUSHARE_TOKEN(Tushare Pro 账号 token)
    • QCC_APPKEY + QCC_SECRET(企查查开放平台凭证)

内部依赖

  • ecm-setup-file-organize:已归位的客户文件,本 skill 据此定位"客户侧数据"
  • ecm-dd-file-review:如需从 PDF/Word/Excel 中抽取客户侧字段值,先调用它

可选数据源

目前已封装的数据源:

数据源 覆盖维度 典型用途
Tushare Pro 上市公司基础、财务指标、前十大股东、利润表 / 资产负债表 已上市标的反查、财务口径核验
企查查 工商基础、股东及出资、主要人员、工商变更、知识产权、行政处罚 全量非上市标的核验(发行人自身 / 股东 / 子公司 / 关联方)

核心工作流(五步)

第 1 步:明确比对维度

和律师确认本次需要比对的维度。ECM DD 场景常见的 6 大维度:

维度 对应字段 数据源优先级
工商基本信息 企业名称、统一社会信用代码、注册资本(实缴 / 认缴)、成立日期、注册地址、经营范围、法定代表人、登记机关、企业状态 企查查 > Tushare
股东信息 股东名称、出资额、持股比例、出资方式、出资日期 企查查(穿透)+ Tushare(上市公司前十大)
主要人员 法定代表人、董事、监事、高管 企查查 + Tushare stock_company
知识产权 专利号、商标注册号、软著登记号、权利人 企查查
行政处罚 处罚机关、处罚日期、处罚事由、处罚结果 企查查
财务数据 营业收入、净利润、资产总额、负债总额、股东权益、ROE Tushare(仅上市公司)

不在列表里但用户要求的维度,应以"可扩展点"加入 references/dimensions-registry.md

第 2 步:凭证预检

使用对应脚本的 --smoke 模式检查凭证:

python scripts/tushare_connector.py --smoke
python scripts/qcc_connector.py --smoke
  • 两个都没凭证:直接跳到第 5 步的"fallback 路径",不要伪造数据
  • 只有一个有凭证:走可用那个的维度,另一个相关维度进 fallback

第 3 步:取客户侧数据

对于每个维度,先确定"客户说什么":

  1. 02-尽职调查/02-02-主体资格/ 等目录读取相关文件(由 ecm-dd-file-review 完成)
  2. 从已完成的业务 DD skill 的 Memo 里摘取字段(如已运行 dd-entity,可从其 Memo 抽注册资本)
  3. 直接由律师口头告知(适用于快速核对场景)

把客户侧数据整理成结构化表格写入 references/client-data-staging.md(工作区临时文件), 明确每个值的来源。

第 4 步:调用 API 取外部数据

按维度调用 connector。推荐脚本方式(可追溯 + 留日志):

# 工商基础 + 股东 + 处罚
python scripts/qcc_connector.py \
    --basic "腾讯科技(深圳)有限公司" \
    > 05-底稿和附件/数据比对/qcc_basic_$(date +%Y%m%d_%H%M%S).json

# 已上市标的:基础 + 财务
python scripts/tushare_connector.py \
    --ts-code 600519.SH --fields full \
    --period 20241231 --financials

库方式(供编排脚本使用):

from scripts.qcc_connector import QccClient, MissingCredentialError
c = QccClient()
try:
    basic = c.company_basic("腾讯科技(深圳)有限公司")
    keyno = basic["Result"][0]["KeyNo"]
    shareholders = c.shareholders(keyno)
    penalty = c.penalty(keyno)
except MissingCredentialError:
    # 跳到 fallback
    ...

所有原始响应 留痕05-底稿和附件/数据比对/ 目录,保留到项目归档。

第 5 步:逐字段比对 + 输出报告

按下方"输出格式契约"生成 Markdown 报告。差异分级规则:

级别 含义 典型情形
核心字段存在实质差异,可能触发业务级高风险 注册资本客户说 5000 万、API 显示 3000 万;法定代表人客户写张三、API 显示李四;实控人穿透链断裂
次要字段差异或信息滞后 经营范围表述不同但实质相近;最近一次变更未同步到 API(<30 天)
格式 / 笔误 / 翻译差异 名称全角 / 半角括号差异;地址后缀"号""栋"差异;单位万元 / 元

差异 ≠ 业务风险。差异的业务意义由调用本 skill 的上层业务 DD skill 判断。

fallback 路径(凭证 / 数据完全不可用时)

无法取到外部数据时,绝不伪造。改为输出"人工核对清单":

# 数据比对报告(fallback 模式)

> 本次比对因 [外部 API 凭证缺失 / API 返回错误 / 数据源暂时不可用],
> 已自动降级为"人工核对清单"。以下字段需要项目组律师**手工登录相应平台**核对,
> 核对完成后把结果补充到本报告。

## 建议的人工核对渠道

- 企查查官网 https://www.qcc.com/
- 天眼查 https://www.tianyancha.com/
- 国家企业信用信息公示系统 https://www.gsxt.gov.cn/
- 裁判文书网 https://wenshu.court.gov.cn/
- 证监会行政处罚库 http://www.csrc.gov.cn/pub/zjhpublic/ (搜索"行政处罚决定书")

## 待人工核对字段清单

| 维度 | 字段 | 客户侧数据 | 官方口径(待核对) | 核对结果 |
|------|------|-----------|-------------------|---------|
| 工商 | 注册资本 | 5000 万元 | (待核对) | |
| 工商 | 法定代表人 | 张三 | (待核对) | |
| ... | ... | ... | ... | |

输出格式契约

# 数据比对报告:{客户简称}

> 项目:{客户简称} | 编制日期:YYYY-MM-DD | 编制人:{律师姓名}
> 数据源:{Tushare Pro / 企查查 / 二者}
> 凭证状态:{均可用 / 仅 Tushare / 仅企查查 / 均不可用(fallback 模式)}

## 一、比对维度与数据源

| 维度 | 数据源 | 抓取时间 | 原始响应存档 |
|------|-------|---------|-------------|
| 工商基本信息 | 企查查 | 2026-04-24 10:30 | 05-底稿和附件/数据比对/qcc_basic_20260424_103000.json |
| 股东信息 | 企查查 | 2026-04-24 10:31 | ... |
| 财务数据 | Tushare Pro | 2026-04-24 10:32 | ... |

## 二、比对结果汇总

| 序号 | 维度 | 字段 | 客户侧数据 | 外部数据 | 差异 | 级别 | 备注 |
|-----:|------|------|-----------|---------|------|------|------|
| 1 | 工商 | 注册资本 | 5000 万元 | 5000 万元 | 无 | - | 一致 |
| 2 | 工商 | 法定代表人 | 张三 | 李四 | 人名不同 | 高 | 建议核实最近变更 |
| 3 | 股东 | 股东 A 持股比例 | 30% | 28% | -2 个百分点 | 高 | 疑有未披露股权转让 |

## 三、差异分析

### 差异 2:法定代表人不一致
- 客户侧来源:02-02-主体资格/营业执照-20250312.pdf
- API 侧数据:企查查 2026-04-23 抓取
- 可能原因:
  1. 客户营业执照为旧版,未及时更换
  2. 外部数据源未同步最近变更
  3. 存在未披露的治理层变更
- 建议核实:向客户索取最新营业执照 + 变更登记通知书;同时查工商局在线档案

### 差异 3:股东持股比例不一致
...

## 四、建议核实事项

- **高风险项(立即核实)**:
  1. 法定代表人差异——要求客户提供最近一次变更登记完整档案
  2. 股东 A 持股比例差异——要求客户提供近两年历次股权变更协议
- **中风险项(次轮核实)**:
  - ...
- **低风险项(可一并处理)**:
  - ...

## 五、数据源局限与注意事项

- 企查查数据有 T+{N} 天滞后,本次抓取时间:2026-04-24
- Tushare 财务数据以公司披露的定期报告为准,定期报告披露前可能暂无最新季度数据
- 行政处罚维度仅覆盖公开发布的处罚决定书,部门内部处理、未公开的警示谈话等不在覆盖范围
- 关键事项仍以政府主管部门出具的官方文件为准

## 六、附件

- 05-底稿和附件/数据比对/qcc_basic_YYYYMMDD_HHMMSS.json
- 05-底稿和附件/数据比对/qcc_shareholders_YYYYMMDD_HHMMSS.json
- 05-底稿和附件/数据比对/tushare_fina_YYYYMMDD_HHMMSS.csv
- (下级业务 DD skill 可直接引用上述原始响应)

契约硬性要求

  1. 一级标题必须是"数据比对报告:{客户简称}"——供上层 Skill 识别
  2. 必有"比对维度与数据源 / 比对结果汇总 / 差异分析 / 建议核实事项 / 数据源局限与注意事项" 五个二级标题
  3. 汇总表的"级别"列取值必须是"高 / 中 / 低 / -"("-" 表示一致)
  4. 输出文件放到 05-底稿和附件/数据比对/数据比对报告-{YYYYMMDD}.md (如该目录尚未建立,先按 shared/templates/project-folder-structure.md 创建)
  5. 所有 API 原始响应必须留痕存档05-底稿和附件/数据比对/,不得仅贴到报告里

如何被其他 DD skill 调用

业务 DD skill 可以在自己的"核心工作流"里插入本 skill 作为可选前置步骤。约定:

  • 调用方式:在业务 DD skill 的 SKILL.md 里写"可选:调用 ecm-dd-data-verify 对 {具体字段} 做外部数据核验"
  • 传递的输入:公司名称 / 统一社会信用代码 / ts_code、需比对的字段清单、客户侧字段值
  • 接收的输出:本 skill 生成的 Markdown 报告 + 原始响应 JSON
  • 后续处理:业务 DD skill 将"高"级差异写进自己的"审阅发现"段,"中 / 低"级差异 作为补充材料注明

典型链路:

ecm-dd-entity(主体资格)
    └─ 可选调用 ecm-dd-data-verify(工商基本信息维度)
            └─ 调用 scripts/qcc_connector.py --basic

常见误用 / FAQ

  • Q:可以让本 skill 直接生成 DD Memo 吗? A:不可以。本 skill 是工具,产出的是"数据差异"。业务合规判断必须由对应业务 DD skill 完成。

  • Q:API 数据和客户数据都对不上怎么办? A:记为"高"级差异,写进报告的"差异分析",并建议人工登录政府主管部门官网核对 —— 以官方 档案为最终仲裁。

  • Q:可以把 TUSHARE_TOKEN 写到仓库的某个文件里吗? A:不可以。任何形式落盘都违反本 skill 的安全约束。见 docs/data-connectors.md

  • Q:我只想手动对一下,不想跑脚本? A:可以。走 fallback 模式:不调用 API,仅输出"人工核对清单"+"建议核对渠道"。

参考资料索引

变更规则

  • 输出契约变动(报告结构)→ MAJOR,同步更新所有引用本 skill 的业务 DD skill
  • 新增数据源 / 新增比对维度 → MINOR,更新 references/dimensions-registry.mddocs/data-connectors.md
  • connector 脚本 API 兼容性不变的修复 → PATCH

Related Skills

China flagChina · corporate

ecm-dd-charter

资本市场尽职调查 Skill:公司章程及组织机构(三会运作)核查(对应《编报规则第 12 号》第 11 章)。 当用户提到以下场景时触发:公司章程合规性、三会议事规则、股东大会议事规则、董事会议事规则、 监事会议事规则、独立董事制度、董事会专门委员会(审计、战略、提名、薪酬)、关联交易决策制度、 …

zeweihan