| name | related-party-identification |
| description | 基于工商数据自动识别"隐形关联方"的审计核查工具。读取被审计单位及其客户、供应商的工商完整维度(52个Excel), 自动比对地址/电话/邮箱/网址/法定代表人/董监高/股权穿透/客商异常画像/无形资产共用/担保链/历史关联痕迹等八大维度, 输出多sheet Excel核查报告(汇总判断sheet + 各维度证据sheet),揪出未披露的关联方关系。 当用户提到 关联方、关联方核查、关联方识别、隐形关联方、隐性关联方、未披露关联方、关联交易非关联化、 关联关系、客户供应商关联关系、客户是不是关联方、供应商有没有猫腻、股权穿透、实际控制人核查、 关联方尽调、审计关联方、related party、关联方核查底稿 时使用。 即使用户只说"查一下这几家公司之间有没有关联""帮我看下这批客户供应商的工商数据""这公司是不是空壳" "审计要核查关联方"也应触发。配合 cicpa-company-query skill 取数,规则集对齐证监会/财政部近年处罚案例。
|
关联方核查 / 隐形关联方识别
一句话:把被审计单位 + 客户 + 供应商的工商数据丢进来,自动揪出"应该披露但没披露"的关联方关系。
为什么做这个
证监会/财政部近年处罚了一大批会计师事务所,处罚决定书里反复出现同一类过错:
"审计底稿中已存在电话号段相邻、地址相近等明显异常,但未关注"(蓝山科技案)
"对方邮箱域名与公司相同、既是客户又是供应商、同楼同座办公…未实施进一步程序"(天沃科技案)
"相关客户时任监事及法定代表人为本公司员工…未识别为关联方"(卓朗科技案)
这些异常全部能用工商数据自动判定。这个 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%)
SCOPE=~/.claude/skills/related-party-identification/scripts/discover_scope.py
python3 $SCOPE --target "被审计单位全称" --depth 5 --threshold 20 -o 核查名单.txt
1b. 合并名单:把 核查名单.txt(穿透发现的子公司)+ 审计人员提供的客户/供应商,合并去重到同一文件。
1c. 批量下载工商数据
SCRIPT=~/.claude/skills/cicpa-company-query/scripts/cicpa_query.py
python3 $SCRIPT -n $(cat 核查名单.txt | tr '\n' ' ') --browser-export
threshold 用 20%(重大影响线) 而非 50%——监管按"实质重于形式"认定关联方,20% 以上参股公司也可能构成关联方,不能漏。企业名必须用工商注册全称。
子公司数量可能较多(一家集团几十上百家),若超出下载上限,优先保留:①target 直接控股的 ②持股比例高的 ③与客户/供应商有工商重合嫌疑的。
第 2 步:核查(调本 skill 引擎)
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
微信公众号:逆行的狗