# Related Party Identification

> 基于工商数据自动识别"隐形关联方"的审计核查工具。读取被审计单位及其客户、供应商的工商完整维度（52个Excel）， 自动比对地址/电话/邮箱/网址/法定代表人/董监高/股权穿透/客商异常画像/无形资产共用/担保链/历史关联痕迹等八大维度， 输出多sheet Excel核查报告（汇总判断sheet + 各维度证据sheet），揪出未披露的关联方关系。 当用户提到 关联方、关联方核查、关联方识别、隐形关联方、隐性关联方、未披露关联方、关联交易非关联化、 关联关系、客户供应商关联关系、客户是不是关联方、供应商有没有猫腻、股权穿透、实际控制人核查、 关联方尽调、审计关联方、related party、关联方核查底稿 时使用。 即使用户只说"查一下这几家公司之间有没有关联""帮我看下这批客户供应商的工商数据""这公司是不是空壳" "审计要核查关联方"也应触发。配合 cicpa-company-query skill 取数，规则集对齐证监会/财政部近年处罚案例。

- Skill: `nigo81/related-party-identification` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add nigo81/related-party-identification`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nigo81/related-party-identification/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Data & Analytics
- License: MIT
- Author: nigo81 (https://skillmd.com/u/nigo81)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/nigo81/related-party-identification

---


# 关联方核查 / 隐形关联方识别

> **一句话**：把被审计单位 + 客户 + 供应商的工商数据丢进来，自动揪出"应该披露但没披露"的关联方关系。

## 为什么做这个

证监会/财政部近年处罚了一大批会计师事务所，处罚决定书里反复出现同一类过错：

> "审计底稿中已存在**电话号段相邻、地址相近**等明显异常，但未关注"（蓝山科技案）
> "对方**邮箱域名**与公司相同、**既是客户又是供应商**、**同楼同座办公**…未实施进一步程序"（天沃科技案）
> "相关客户时任**监事及法定代表人为本公司员工**…未识别为关联方"（卓朗科技案）

这些异常**全部能用工商数据自动判定**。这个 skill 就是把这些"监管认定的最低核查动作"固化成规则引擎，让审计人员不会再漏。规则集与处罚案例的对齐关系见 `references/cases.md`。

## 核心概念

### 两档输出（避免误报，又抓住实质）

关联方认定本质是"实质重于形式"，工具不替审计师下结论，而是分两档呈现证据：

| 档位 | 含义 | 典型命中 | 报告呈现 |
|------|------|---------|---------|
| **🔴 硬关联（high）** | 工商数据直接证明关联，监管认定的强证据 | 同电话/同邮箱/同地址/同法人/股权穿透命中/客户表已标注关联方 | 必须查清 |
| **🟡 可疑红旗（medium/low）** | 异常特征暗示关联，需进一步程序 | 成立时间短即大额交易、0参保、规模不匹配、人员同名、既客又供、历史关联痕迹 | 建议关注 |

### 八大核查维度

```
P0（监管反复处罚 + 工商数据现成，必做）：
  1️⃣ 工商指纹重合   地址/电话/邮箱/网址/经纬度完全或高度相近
  2️⃣ 关键人员重合   法定代表人/董监高/核心团队/最终受益人姓名跨公司撞名
  3️⃣ 客商异常画像   成立即大客户、注册资本VS交易额不匹配、0参保、居民楼地址、经营范围不符
  4️⃣ 已知关联方差集 客户/供应商表自带的"关联方名称"字段，与企业自报清单做差集

P1（监管点名，需穿透）：
  5️⃣ 股权/控制穿透  多层股权、代持、实控人/最终受益人一致（默认穿透5层）
  6️⃣ 历史关联痕迹   曾用名、曾任法人/股东、变更记录中的关联痕迹、非关联化

P2（实务有效，部分需配合银行/函证数据）：
  7️⃣ 担保/资金链    互保、股权质押给对方、动产抵押关系
  8️⃣ 无形资产/资源共用 商标/著作权/专利/微信公众号共有人、招聘办公地点重合
```

每个维度的【识别原理 + 具体规则 + 红旗信号 + 监管出处】详见 `references/rules.md`。

## 工作流（四步）

### 第 1 步：取数（先股权穿透发现子公司，再批量下载）

⚠️ **必须先做股权穿透**：造假常发生在子公司层面（如卓朗科技案，造假客户供应商挂在子公司"卓朗发展"名下，只查母公司看不出关联）。先把被审计单位的子公司纳入核查范围，才能准确识别。

**1a. 股权穿透发现子公司（默认5层，持股>=20%）**

```bash
SCOPE=~/.claude/skills/related-party-identification/scripts/discover_scope.py
python3 $SCOPE --target "被审计单位全称" --depth 5 --threshold 20 -o 核查名单.txt
# 输出 核查名单.txt：被审计单位 + 所有子公司/参控股企业（按股权链5层递归穿透）
```

**1b. 合并名单**：把 `核查名单.txt`（穿透发现的子公司）+ 审计人员提供的客户/供应商，合并去重到同一文件。

**1c. 批量下载工商数据**

```bash
SCRIPT=~/.claude/skills/cicpa-company-query/scripts/cicpa_query.py
python3 $SCRIPT -n $(cat 核查名单.txt | tr '\n' ' ') --browser-export
# 输出 ZIP，解压后得到 完整维度导出_files/ 目录（含52个xlsx）
```

> threshold 用 **20%（重大影响线）** 而非 50%——监管按"实质重于形式"认定关联方，20% 以上参股公司也可能构成关联方，不能漏。企业名必须用工商注册全称。
>
> 子公司数量可能较多（一家集团几十上百家），若超出下载上限，优先保留：①target 直接控股的 ②持股比例高的 ③与客户/供应商有工商重合嫌疑的。

### 第 2 步：核查（调本 skill 引擎）

```bash
ENGINE=~/.claude/skills/related-party-identification/scripts/related_party_check.py
python3 $ENGINE \
  --data-dir "完整维度导出_files/" \
  --target "被审计单位全称" \
  -o "关联方核查报告.xlsx"
```

- `--data-dir`：cicpa 完整导出解压后的 `_files` 目录
- `--target`：被审计单位全称（用于报告聚焦，标记主审计对象）
- `--depth`：股权穿透深度，默认 5
- `--counterparties-file`：可选，指定哪些是客户/哪些是供应商（否则引擎把 target 以外的都当交易对手）

引擎会读取 data-dir 里所有公司，做**全图比对**（不只 target vs 每个对手方，还包括对手方之间的互查——能发现"隐形集团"），跑八层规则，输出 Excel。

### 第 3 步：解读报告

报告是多 sheet Excel，结构见下方"输出格式"。重点看：
- **汇总 sheet**：是否为关联方的判断 + 命中维度 + 风险等级
- **各维度证据 sheet**：每条命中的具体字段值（地址、电话原文等）

### 第 4 步：审计师跟进

工具只负责"识别嫌疑"，不替审计师下结论。对每个 🔴 硬关联，审计师应：
- 实施进一步程序（函证、实地走访、资金流水核对）
- 询问管理层，要求披露
- 评估对审计意见的影响

## 输出格式（多 sheet Excel）

```
关联方核查报告.xlsx
├── 📋 汇总判断          ← 主表，每对公司一行：是否关联方/命中维度/风险等级/建议程序
├── 🔴 01_工商指纹重合    ← 同地址/同电话/同邮箱/同网址的具体记录
├── 🔴 02_关键人员重合    ← 法人/董监高/最终受益人撞名记录
├── 🟡 03_客商异常画像    ← 每个客户/供应商的异常特征清单（成立时间/规模/参保/经营范围）
├── 🔴 04_已知关联方差集  ← 客户/供应商表已标注关联方 vs 企业自报清单的差集
├── 🟡 05_股权控制穿透    ← 股权穿透路径、实控人/最终受益人重合
├── 🟡 06_历史关联痕迹    ← 曾用名、曾任法人/股东、变更记录痕迹
├── 🟡 07_担保资金链      ← 互保、股权质押、动产抵押关系
├── 🟡 08_无形资产共用    ← 商标/著作权/专利/公众号共有人
└── 📊 输入数据概览      ← 本次核查的公司清单 + 数据完整性
```

汇总判断 sheet 的列结构：

| 公司A | 公司B | 关系类型 | 是否关联方 | 风险等级 | 命中维度 | 关键证据 | 建议审计程序 | 监管出处 |
|-------|-------|---------|-----------|---------|---------|---------|------------|---------|
| XX公司 | YY公司 | 客户 | 🔴是 | high | 工商指纹\|人员重合 | 同电话138xxxx \| 同法人张三 | 函证+实地走访 | 卓朗科技案 |
| XX公司 | ZZ公司 | 供应商 | 🟡可疑 | medium | 客商画像 | 成立6月即大额\|0参保 | 资金流水核对 | 专网通信案 |

## 与 cicpa-company-query 的协作

本 skill 不直接调工商 API，而是消费 cicpa-company-query 导出的 `_files` 目录：

| 本 skill 需要 | cicpa 提供的文件 | 用途 |
|--------------|-----------------|------|
| 地址/电话/邮箱/网址/法人/成立日期/参保/曾用名/经营范围 | `基础工商信息.xlsx` | 指纹重合 + 客商画像（一站式） |
| 股东、出资比例 | `股东信息.xlsx` / `最新公示股东.xlsx` | 股权穿透 |
| 实控人、最终受益人 | `实际控制人.xlsx` / `最终受益人.xlsx` | 控制关系重合 |
| 董监高、核心团队 | `核心团队.xlsx` / `主要人员（高管）.xlsx` | 人员重合 |
| 客户/供应商 + 自带关联方标注 | `客户.xlsx` / `供应商.xlsx` | 客商画像 + 已知关联方差集 |
| 对外投资、参控股、分支机构 | `对外投资（新）.xlsx` / `参控股企业.xlsx` / `分支机构.xlsx` | 投资关系网络 |
| 担保、质押、抵押 | `股权质押.xlsx` / `动产抵押.xlsx` / `对外担保.xlsx` | 担保链 |
| 商标、著作权、专利、公众号 | `商标.xlsx` / `软件著作权.xlsx` / `专利信息.xlsx` / `微信公众号.xlsx` | 无形资产共用 |
| 变更历史 | `变更记录.xlsx` / `法定代表人变更.xlsx` | 历史关联痕迹 |
| 补充地址/电话/税号 | `发票信息.xlsx` | 交叉验证指纹 |

完整字段映射见 `references/dimensions.md`。

## 八层规则速览（详见 references/rules.md）

### 维度1：工商指纹重合（最强信号）
- 注册地址完全相同 / 高度相似（去掉省市邮编后比对）
- 联系电话相同（手机去前缀，座机去区号）
- 邮箱相同或同域名（@后的部分）
- 官网网址相同或同域名
- **监管出处**：蓝山科技、天沃科技、卓朗科技、爱康科技案

### 维度2：关键人员重合
- 法定代表人姓名相同（自然人，排除"同名高频姓"误报）
- 董监高/核心团队姓名跨公司重合
- 最终受益人/实际控制人姓名相同
- **监管出处**：卓朗科技（对方监事为本公司员工）、爱康科技（法人同一人）

### 维度3：客商异常画像
- 客户/供应商成立日期距今过短即发生大额交易（<12个月）
- 注册资本远小于披露交易额（如注册资本10万，年交易1000万）
- 参保人数为 0 或 <5（空壳特征）
- 注册地址为居民楼/集中注册地
- 经营范围与交易品类不符
- 既是客户又是供应商（双向交易）
- **监管出处**：爱康科技、专网通信系列案、天沃科技

### 维度4：已知关联方差集 ⭐
- `客户.xlsx` / `供应商.xlsx` 自带 `关联方名称` / `关联方ID` / `关联理由` 字段
- 把数据库已标注的关联方，与企业自报披露的关联方清单做差集 → 直接揪出未披露关联方
- **监管出处**：洛娃集团案（公开客户中5家是关联方却未识别）

### 维度5：股权/控制穿透
- 向上穿透股权（默认5层），看对手方是否在 target 的股权链上，或 target 在对手方股权链上
- 实际控制人 / 最终受益人姓名跨公司一致
- 共同股东（A和B有同一个股东）
- 代持痕迹（变更记录里股权频繁变动、法人变更）
- **监管出处**：华道生物（法代曾代实控人持股）、多案共性

### 维度6：历史关联痕迹
- 曾用名命中（`基础工商信息.曾用名`）
- 曾任法定代表人/股东（变更记录、法人变更记录里出现过同一人）
- 曾用地址（变更记录里的历史地址撞对手方现地址）
- 非关联化嫌疑（曾是关联方，后通过股权转让"洗白"）
- **监管出处**：ST新亿、扬子新材案

### 维度7：担保/资金链
- 互保关系（A质押给B，B也质押给A）
- 股权质押的质权人/出质人是对手方
- 动产抵押的抵押权人/债务人对手方
- **监管出处**：康得新、延安必康案

### 维度8：无形资产/资源共用
- 商标/软件著作权/专利的共有人或代理机构相同
- 微信公众号主体关联
- 招聘信息的办公地点与对手方重合
- **监管出处**：实务有效，工商可部分挖

## 边界与注意事项

- **工具只识别"嫌疑"，不下"是关联方"的最终结论**：最终认定需审计师结合准则（CAS 36 / CSA 1323）判断。报告里"是否关联方"列是基于规则的初判，供审计师参考。
- **企业名称必须用工商全称**：否则 cicpa 导出会匹配 0 家。
- **数据时效**：工商数据有滞后（变更、注销可能未及时更新），核查结果需结合函证、走访等程序验证。
- **已注销公司查不到**：部分造假空壳公司事后注销，cicpa 可能无数据。这种情况报告里会标注"数据缺失"。
- **亲属关系（第9维度）受限于公开数据**：工商数据不直接提供亲属关系，只能通过"同名+同姓+同地址"间接推断，需谨慎。

## 何时不用

- 只需要函证地址核查（用 address-verification skill）
- 只需要查单家公司工商信息（用 cicpa-company-query 的 --detail）
- 需要会计准则层面的关联方认定咨询（用 chen-yiwei-perspective skill）

## 参考

- `references/rules.md` —— 八层规则详解（识别原理、具体规则、阈值、红旗信号、监管出处）
- `references/cases.md` —— 处罚案例库（监管认定的过错 → 对应核查规则）
- `references/dimensions.md` —— cicpa 52维度字段与本 skill 规则的完整映射
- `scripts/related_party_check.py` —— 核查引擎主脚本


---

> 作者：nigo
> 微信公众号：逆行的狗

