# Tyc Supply Chain Brief

> 供应链周报 / 高管仪表板 — 核心供应商风险摘要 + KPI + 变化信号，采购 / 运营 / 供应链 VP 每周必读

- Skill: `tyc-tech/tyc-supply-chain-brief` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tyc-tech/tyc-supply-chain-brief`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tyc-tech/tyc-supply-chain-brief/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tyc-tech (https://skillmd.com/u/tyc-tech)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/tyc-tech/tyc-supply-chain-brief

---


# 供应链周报（高管仪表板）

## 触发条件

采购总监 / 供应链 VP / COO 每周例会、月度经营汇报、年度供应链风控检视时触发。

关键词：供应链周报、高管仪表板、供应商周报、采购周报、KPI、风险预警

## 输入要求

用户输入的采购方企业标识可能是以下三种形式之一，**Step 0 会按形式分流**，不要急着把用户原话当成 `buyer` 喂给后续步骤：

| 输入形式 | 示例 | 是否需要 L0 实体锚定 |
|---|---|---|
| **完整企业名**（含组织形式后缀：`有限公司` / `股份有限公司` / `集团` / `合伙企业` / `个体工商户` / `事务所` / `中心` 等） | `北京字节跳动科技有限公司` / `腾讯科技（深圳）有限公司` | ❌ 跳过 L0，直接当 `buyer` |
| **统一社会信用代码（USCC）** 18 位大写字母+数字 | `91110108551385082Q` | ❌ 跳过 L0，直接当 `buyer` |
| **企业简称 / 曾用名 / 品牌名 / 模糊指代** | `字节` / `抖音` / `今日头条` / `乐视` / `阿里` | ✅ **必须先走 L0**，由用户在候选中确认唯一企业，再拿 `creditCode` 作为 `buyer` |

> 经过 Step 0 锚定后，下文 Step 1+ 的 `buyer` 都指**精确企业名或 USCC**，调用方式不变。

## 执行流程

### Step 0: 实体锚定（条件性 · L0 工具：`search_companies`）

**目的**：用户给的常常是简称、曾用名、模糊指代，下游所有步骤都依赖精确企业；先用 L0 把它消歧成唯一 `creditCode`，避免后续步骤在错主体上反复烧 token。

**判定与分流**：

1. **若 userInput 匹配 USCC 正则** `^[0-9A-Z]{18}$` → 跳过 L0，`searchKey = userInput`
2. **若 userInput 含组织形式后缀**（`有限公司` / `股份` / `集团` / `合伙企业` / `事务所` / `个体工商户` / `分公司` 等）**且长度 ≥ 6** → 跳过 L0，`searchKey = userInput`
3. **否则**（简称 / 曾用名 / 品牌名 / 任何看起来不完整的字符串）→ **必须走 L0**：

   - 调用 `search_companies` (`searchKey: userInput`)
   - 在返回 `items[]` 中默认按 `regStatus ∈ {存续, 在业, 在营, 开业}` 过滤，按 `regCapital` 倒序取 Top 5 作为候选展示
   - **候选 = 1** → 自动锚定，`searchKey = items[0].creditCode`
   - **候选 ≥ 2** → **暂停执行**，向用户输出候选清单（`name` / `creditCode` / `regStatus` / `regLocation` / `legalPersonName`）请求确认，待回复后取选定企业的 `creditCode` 作为 `searchKey`
   - **候选 = 0** → 终止流程，提示"未找到匹配企业，请提供更完整的名称或换关键词"

**对用户的话术（候选 ≥ 2 时）**：

> 你说的「{userInput}」匹配到 N 家企业，请确认是哪一家：
>
> | # | 企业名称 | USCC | 状态 | 法定代表人 | 注册地 |
> |---|---|---|---|---|---|
> | 1 | … | … | 存续 | … | … |
> | 2 | … | … | 存续 | … | … |
>
> 回复编号（1-N）以继续，或回复"都不是"重新输入。

### Step 1: 供应商全景
- `get_suppliers_and_customers <buyer>` — 上游供应商清单
- 合并用户指定的 `vendors` 名单，得到最终供应商池

### Step 2: 供应商风险（并发）
对每个供应商：
- `get_risk_overview <vendor>` — 风险总览（18 类）
- `get_news_sentiment <vendor>` — 舆情
- `get_business_exception <vendor>` — 经营异常

### Step 3: 供应商健康度变化信号
- `get_historical_dishonest <vendor>` — 历史失信对比近期
- `get_court_notice <vendor>` — 近期开庭公告（在途风险）
- `get_case_filing_info <vendor>` — 近期立案

### Step 4: KPI 计算
- 本方中标记录：`get_bidding_info <buyer>`
- 本方舆情：`get_news_sentiment <buyer>`

## 输出格式

```markdown
# 供应链周报 — {buyer}

> 周期: {period} · 出具: {ISO8601} · 覆盖供应商: {n} 家

## 一、供应商健康度总览

| 健康度 | 数量 | 占比 | 变化 |
|-------|------|------|------|
| 🟢 健康 | {n} | {ratio} | ↑/↓/→ |
| 🟡 关注 | {n} | {ratio} | ↑/↓/→ |
| 🔴 风险 | {n} | {ratio} | ↑/↓/→ |

## 二、本周新增风险信号（TOP 5）

| 供应商 | 信号类型 | 严重度 | 发生时间 | 建议动作 |
|--------|---------|-------|---------|---------|
| ... | 失信新增 / 开庭公告 / 经营异常 | 🔴 | YYYY-MM-DD | 暂停下单 / 加紧合同履约 |

## 三、重点供应商在途事件

| 供应商 | 案件 / 事件 | 金额 | 阶段 | 预计影响 |
|--------|-----------|------|------|---------|
| ... | 开庭 / 诉讼 / 处罚 | ... | 一审 / 二审 / 执行 | ... |

## 四、采购 KPI

| 指标 | 本周 | 上周 | 趋势 |
|-----|------|------|------|
| 供应商总数 | ... | ... | ↑/↓/→ |
| 健康占比 | ... | ... | ↑/↓/→ |
| 风险供应商数 | ... | ... | ↑/↓/→ |
| 本方中标记录 | ... | ... | ↑/↓/→ |
| 本方舆情热度 | ... | ... | ↑/↓/→ |

## 五、本周行动建议
- 🚨 立即: {供应商 X 需暂停 / 沟通}
- ⚠️ 本周: {供应商 Y 需实地访谈 / 补充合同}
- 🔵 观察: {供应商 Z 指标下行需关注}

## 六、数据覆盖说明
- 数据来源: 天眼查 OpenAPI
- 覆盖供应商: {n} 家 / 指定总数 {m} 家
- 本周期未覆盖: {n} 家（原因: 无法识别 / 非公开 / 其他）
```

## 错误处理

- 若 Step 0 候选 = 0 → 终止流程，提示"未找到匹配企业，请提供更完整的名称或 USCC"，不要带着错主体往下跑
- 若 Step 0 候选 ≥ 2 而用户在合理时间内未回复 → 暂存上下文，**不要自行选择**第一条作为锚定（错锚定的代价远大于等待）
- `suppliers-and-customers` 无数据 → 仅基于用户指定 `vendors` 输出
- 单供应商数据缺失 → 该供应商标注"[!] 数据不足"，仍列入
- 全部 `_empty` → 输出"未采集到本期风险信号"，不产出虚假结论

## 示例

输入: `buyer = "某大型制造企业"`, `period = "近 7 天"`


---

**新输入形态参考**（Step 0 引入后的三种典型）：

**例 1（USCC 直通，跳过 L0）**：

输入: `userInput = "91110108551385082Q"` → Step 0 判定 USCC，`searchKey = userInput`，直接进 Step 1。

**例 2（完整企业名直通，跳过 L0）**：

输入: `userInput = "北京字节跳动科技有限公司"` → Step 0 判定含 `有限公司` 后缀且长度 ≥ 6，`searchKey = userInput`，直接进 Step 1。

**例 3（简称，必走 L0）**：

输入: `userInput = "字节"` → Step 0 调 `search_companies (searchKey: "字节")`，过滤存续后取 Top 5，向用户列出候选请求确认；用户回复"1"（北京字节跳动科技有限公司）→ `searchKey = items[0].creditCode`，再进 Step 1。
## 与其他 Skill 的关系

- **单供应商深度评估** → `/tyc-vendor` (vendor-assessment / supply)
- **全景风险扫描** → `/tyc-supply-risk` (supply，18 类长链)
- **采购支出分析** → `/tyc-spend-analysis`
- **新供应商准入** → `/tyc-new-supplier`

