$npx -y skills add nigo81/nigo-skills --skill related-party-identification基于工商数据自动识别"隐形关联方"的审计核查工具。读取被审计单位及其客户、供应商的工商完整维度(52个Excel), 自动比对地址/电话/邮箱/网址/法定代表人/董监高/股权穿透/客商异常画像/无形资产共用/担保链/历史关联痕迹等八大维度, 输出多sheet Excel核查报告(汇总判断sheet + 各维度证据sheet),揪出未披露的关联方关系。 当用户提到 关联方、关联方核查、关联方识别、隐形关联方、隐性关联方、未披露关联方、关联交易非关联化、 关联关系、客户供应商关联关系、客户是不是关联方、供应商有没有猫腻、股权穿透、实际控制人核查、 关联方尽调
| 1 | # 关联方核查 / 隐形关联方识别 |
| 2 | |
| 3 | > **一句话**:把被审计单位 + 客户 + 供应商的工商数据丢进来,自动揪出"应该披露但没披露"的关联方关系。 |
| 4 | |
| 5 | ## 为什么做这个 |
| 6 | |
| 7 | 证监会/财政部近年处罚了一大批会计师事务所,处罚决定书里反复出现同一类过错: |
| 8 | |
| 9 | > "审计底稿中已存在**电话号段相邻、地址相近**等明显异常,但未关注"(蓝山科技案) |
| 10 | > "对方**邮箱域名**与公司相同、**既是客户又是供应商**、**同楼同座办公**…未实施进一步程序"(天沃科技案) |
| 11 | > "相关客户时任**监事及法定代表人为本公司员工**…未识别为关联方"(卓朗科技案) |
| 12 | |
| 13 | 这些异常**全部能用工商数据自动判定**。这个 skill 就是把这些"监管认定的最低核查动作"固化成规则引擎,让审计人员不会再漏。规则集与处罚案例的对齐关系见 `references/cases.md`。 |
| 14 | |
| 15 | ## 核心概念 |
| 16 | |
| 17 | ### 两档输出(避免误报,又抓住实质) |
| 18 | |
| 19 | 关联方认定本质是"实质重于形式",工具不替审计师下结论,而是分两档呈现证据: |
| 20 | |
| 21 | | 档位 | 含义 | 典型命中 | 报告呈现 | |
| 22 | |------|------|---------|---------| |
| 23 | | **🔴 硬关联(high)** | 工商数据直接证明关联,监管认定的强证据 | 同电话/同邮箱/同地址/同法人/股权穿透命中/客户表已标注关联方 | 必须查清 | |
| 24 | | **🟡 可疑红旗(medium/low)** | 异常特征暗示关联,需进一步程序 | 成立时间短即大额交易、0参保、规模不匹配、人员同名、既客又供、历史关联痕迹 | 建议关注 | |
| 25 | |
| 26 | ### 八大核查维度 |
| 27 | |
| 28 | ``` |
| 29 | P0(监管反复处罚 + 工商数据现成,必做): |
| 30 | 1️⃣ 工商指纹重合 地址/电话/邮箱/网址/经纬度完全或高度相近 |
| 31 | 2️⃣ 关键人员重合 法定代表人/董监高/核心团队/最终受益人姓名跨公司撞名 |
| 32 | 3️⃣ 客商异常画像 成立即大客户、注册资本VS交易额不匹配、0参保、居民楼地址、经营范围不符 |
| 33 | 4️⃣ 已知关联方差集 客户/供应商表自带的"关联方名称"字段,与企业自报清单做差集 |
| 34 | |
| 35 | P1(监管点名,需穿透): |
| 36 | 5️⃣ 股权/控制穿透 多层股权、代持、实控人/最终受益人一致(默认穿透5层) |
| 37 | 6️⃣ 历史关联痕迹 曾用名、曾任法人/股东、变更记录中的关联痕迹、非关联化 |
| 38 | |
| 39 | P2(实务有效,部分需配合银行/函证数据): |
| 40 | 7️⃣ 担保/资金链 互保、股权质押给对方、动产抵押关系 |
| 41 | 8️⃣ 无形资产/资源共用 商标/著作权/专利/微信公众号共有人、招聘办公地点重合 |
| 42 | ``` |
| 43 | |
| 44 | 每个维度的【识别原理 + 具体规则 + 红旗信号 + 监管出处】详见 `references/rules.md`。 |
| 45 | |
| 46 | ## 工作流(四步) |
| 47 | |
| 48 | ### 第 1 步:取数(先股权穿透发现子公司,再批量下载) |
| 49 | |
| 50 | ⚠️ **必须先做股权穿透**:造假常发生在子公司层面(如卓朗科技案,造假客户供应商挂在子公司"卓朗发展"名下,只查母公司看不出关联)。先把被审计单位的子公司纳入核查范围,才能准确识别。 |
| 51 | |
| 52 | **1a. 股权穿透发现子公司(默认5层,持股>=20%)** |
| 53 | |
| 54 | ```bash |
| 55 | SCOPE=~/.claude/skills/related-party-identification/scripts/discover_scope.py |
| 56 | python3 $SCOPE --target "被审计单位全称" --depth 5 --threshold 20 -o 核查名单.txt |
| 57 | # 输出 核查名单.txt:被审计单位 + 所有子公司/参控股企业(按股权链5层递归穿透) |
| 58 | ``` |
| 59 | |
| 60 | **1b. 合并名单**:把 `核查名单.txt`(穿透发现的子公司)+ 审计人员提供的客户/供应商,合并去重到同一文件。 |
| 61 | |
| 62 | **1c. 批量下载工商数据** |
| 63 | |
| 64 | ```bash |
| 65 | SCRIPT=~/.claude/skills/cicpa-company-query/scripts/cicpa_query.py |
| 66 | python3 $SCRIPT -n $(cat 核查名单.txt | tr '\n' ' ') --browser-export |
| 67 | # 输出 ZIP,解压后得到 完整维度导出_files/ 目录(含52个xlsx) |
| 68 | ``` |
| 69 | |
| 70 | > threshold 用 **20%(重大影响线)** 而非 50%——监管按"实质重于形式"认定关联方,20% 以上参股公司也可能构成关联方,不能漏。企业名必须用工商注册全称。 |
| 71 | > |
| 72 | > 子公司数量可能较多(一家集团几十上百家),若超出下载上限,优先保留:①target 直接控股的 ②持股比例高的 ③与客户/供应商有工商重合嫌疑的。 |
| 73 | |
| 74 | ### 第 2 步:核查(调本 skill 引擎) |
| 75 | |
| 76 | ```bash |
| 77 | ENGINE=~/.claude/skills/related-party-identification/scripts/related_party_check.py |
| 78 | python3 $ENGINE \ |
| 79 | --data-dir "完整维度导出_files/" \ |
| 80 | --target "被审计单位全称" \ |
| 81 | -o "关联方核查报告.xlsx" |
| 82 | ``` |
| 83 | |
| 84 | - `--data-dir`:cicpa 完整导出解压后的 `_files` 目录 |
| 85 | - `--target`:被审计单位全称(用于报告聚焦,标记主审计对象) |
| 86 | - `--depth`:股权穿透深度,默认 5 |
| 87 | - `--counterparties-file`:可选,指定哪些是客户/哪些是供应商(否则引擎把 target 以外的都当交易对手) |
| 88 | |
| 89 | 引擎会读取 data-dir 里所有公司,做**全图比对**(不只 target vs 每个对手方,还包括对手方之间的互查——能发现"隐形集团"),跑八层规则,输出 Excel。 |
| 90 | |
| 91 | ### 第 3 步:解读报告 |
| 92 | |
| 93 | 报告是多 sheet Excel,结构见下方"输出格式"。重点看: |
| 94 | - **汇总 sheet**:是否为关联方的判断 + 命中维度 + 风险等级 |
| 95 | - **各维度证据 sheet**:每条命中的具体字段值(地址、电话原文等) |
| 96 | |
| 97 | ### 第 4 步:审计师跟进 |
| 98 | |
| 99 | 工具只负责"识别嫌疑",不替审计师下结论。对每个 🔴 硬关联,审计师应: |
| 100 | - 实施进一步程序(函证、实地走访、资金流水核对) |
| 101 | - 询问管理层,要求披露 |
| 102 | - 评估对审计意见的影响 |
| 103 | |
| 104 | ## 输出格式(多 sheet Excel) |
| 105 | |
| 106 | ``` |
| 107 | 关联方核查报告.xlsx |
| 108 | ├── 📋 汇总判断 ← 主表,每对公司一行:是否关联方/命中维度/风险等级/建议程序 |
| 109 | ├── 🔴 01_工商指纹重合 ← 同地址/同电话/同邮箱/同网址的具体记录 |
| 110 | ├── 🔴 02_关键人员重合 ← 法人/董监高/最终受益人撞名记录 |
| 111 | ├── 🟡 03_客商异常画像 ← 每个客户/供应商的异常特征清单(成立时间/规模/参保/经营范围) |
| 112 | ├── 🔴 04_已知关联方差集 ← 客户/供应商表已标注关联方 vs 企业自报清单的差集 |
| 113 | ├── 🟡 05_股权控制穿透 ← 股权穿透路径、实控人/最终受益人重合 |
| 114 | ├── 🟡 06_历史关联痕迹 ← 曾用名、曾任法人/股东、变更记录痕迹 |
| 115 | ├── 🟡 07_担保资金链 ← 互保、股权质押、动产抵押关系 |
| 116 | ├── 🟡 08_无形资产共用 ← 商标/著作权/专利/公众号共有人 |
| 117 | └── 📊 输入数据概览 ← 本次核查的公司清单 + 数据完整性 |
| 118 | ``` |
| 119 | |
| 120 | 汇总判断 sheet 的列结构: |
| 121 | |
| 122 | | 公司A | 公司B | 关系类型 | 是否关联方 | 风险等级 | 命中维度 | 关键证据 | 建议审计程序 | 监管出处 | |
| 123 | |-------|-------|---------|-----------|---------|---------|---------|------------|---------| |
| 124 | | XX公司 | YY公司 | 客户 | 🔴是 | high | 工商指纹\|人员重合 | 同电话138xxxx \| 同法人张三 | 函证+实地走访 | 卓朗科技案 | |
| 125 | | XX公司 | ZZ公司 | 供应商 | 🟡可疑 | medium | 客商画像 | 成立6月即大额\|0参保 | 资金流水核对 | 专网通信案 | |
| 126 | |
| 127 | ## 与 cicpa-company-query 的协作 |
| 128 | |
| 129 | 本 skill 不直接调工商 API,而是消费 cicpa-company-query 导出的 `_files` 目录: |
| 130 | |
| 131 | | 本 skill 需要 | cicpa 提供的文件 | 用途 | |
| 132 | |--------------|-----------------|------| |
| 133 | | 地址/电话/邮箱/网址/法人/成立日期/参保/曾用名/经营范围 | `基础工商信息.xlsx` | 指纹重合 + 客商画像(一站式) | |
| 134 | | 股东、出资比例 | `股东信息.xlsx` / `最新公示股东.xlsx` | 股权穿透 | |
| 135 | | 实控人、最终受益人 | `实际控制人.xlsx` / `最终受益人.xlsx` | 控制关系重合 | |
| 136 | | 董监高、核心团队 | `核心团队.xlsx` / `主要人员(高管).xlsx` | 人员重合 | |
| 137 | | 客户/供应商 + 自带关联方标注 | `客户.xlsx` / `供应商.xlsx` | 客商画像 + 已知关联方差集 | |
| 138 | | 对外投资、参控股、分支机构 | `对外投资(新).xlsx` / `参控股企业.xlsx` / `分支机构.xlsx` | 投资关系网络 | |
| 139 | | 担保、质押、抵押 | `股权质押.xlsx` / `动产抵押.xlsx` / `对外担保.xlsx` | 担保链 | |
| 140 | | 商标、著作权、专利、公众号 | `商标.xlsx` / `软件著作权.xlsx` / `专利信息.xlsx` / `微信公众号.xlsx` | 无形资产共用 | |
| 141 | | 变更历史 | `变更记录.xlsx` / `法定代表人变更.xlsx` | 历史关联痕迹 | |
| 142 | | 补充地址/电话/税号 | `发票信息.xlsx` | 交叉验证指纹 | |
| 143 | |
| 144 | 完整字段映射见 `references/dimensions.md`。 |
| 145 | |
| 146 | ## 八层规则速览(详见 references/rules.md) |
| 147 | |
| 148 | ### 维度1:工商指纹重合(最强信号) |
| 149 | - 注册地址完全相同 / 高度相似(去掉省市邮编后比对) |
| 150 | - 联系电话相同(手机去前缀,座机去区号) |
| 151 | - 邮箱相同或同域名(@后的部分) |
| 152 | - 官网网址相同或同域名 |
| 153 | - **监管出处**:蓝山科 |