# Tyc Competitor

> Tyc Competitor

- Skill: `tyc-tech/tyc-competitor` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tyc-tech/tyc-competitor`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tyc-tech/tyc-competitor/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-competitor

---


# 竞品对比分析

## 触发条件

行业研究、目标企业护城河评估、并购对象筛选、行业地图绘制。

关键词：竞品、行业格局、horizontal compare、护城河、行业地图

## 输入要求

本技能需要 **两个企业实体**，**Step 0 会对每个企业分别做形态分流锚定**，不要把任何一方的原话直接当 `searchKey` 喂给后续步骤：

| 字段 | 必填 | 说明 |
|---|---|---|
| `searchKey` | ✅ | 主标的企业：完整企业名 / USCC / 简称 / 曾用名 / 品牌名 |
| `competitors[]` | ❌（可选） | 自定义竞品（数组中每条独立锚定）：完整企业名 / USCC / 简称 / 曾用名 / 品牌名 |

每个输入的三种形态分流（与单 company 同）：

| 输入形式 | 示例 | 是否需要 L0 |
|---|---|---|
| **完整企业名**（含组织形式后缀） | `北京字节跳动科技有限公司` | ❌ 跳过 L0 |
| **USCC** 18 位 | `91110108551385082Q` | ❌ 跳过 L0 |
| **简称 / 曾用名 / 品牌名** | `字节` / `阿里` | ✅ **必须先走 L0** |

> Step 0 对两端**独立锚定**。任意一端是简称都需各自走一次 L0。

## 执行流程

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

**目的**：本技能涉及两个企业实体，**Step 0 对 `searchKey` 与 `competitors[]` 各自独立分流**，避免任一端是错主体污染下游分析。

**判定与分流（对每个企业输入分别执行）**：

1. **匹配 USCC 正则** `^[0-9A-Z]{18}$` → 跳过 L0
2. **含组织形式后缀**（`有限公司` / `股份` / `集团` 等）且长度 ≥ 6 → 跳过 L0
3. **否则**（简称 / 曾用名 / 品牌名）→ **走 L0**：

   - 调用 `search_companies` (`searchKey: userInput`)
   - 候选 = 1 → 自动锚定为该端的 `creditCode`
   - 候选 ≥ 2 → 暂停并向用户列候选清单请求确认（**明确告知用户在锚定哪一端**：主企业 / 第二端）
   - 候选 = 0 → 终止流程，提示"未找到匹配的{端口角色}企业"

> 最后两端都得到精确 `creditCode` 才能进入 Step 1。任一端候选不唯一就先消歧。

### Step 1: 主标的基本面
- `get_company_registration_info`
- `get_company_scale`

### Step 2: 自动识别竞品（若未指定 competitors）
- `get_competitors` — 拉取系统识别的竞品列表

### Step 3: 对每个竞品（main + competitors）批量获取
- `get_company_registration_info`
- `get_patent_info` — 专利总数
- `get_bidding_info` — 中标金额/项次
- `get_qualifications` — 资质证书数量
- `get_financing_records` — 融资轮次

### Step 4: 横向对比
聚合上述数据生成对照表

## 输出格式

```markdown
# 行业竞争格局对比 — 主标的 {name}

## 一、对比对象
| 序号 | 企业 | 关系 |
|------|------|------|
| 1 | {主标的 name} | 主标的 |
| 2-N | ... | 自动识别竞品 |

## 二、横向对比矩阵
| 指标 | 主标的 | 竞品 1 | 竞品 2 | ... |
|------|--------|--------|--------|-----|
| 注册资本 | ... | ... | ... | ... |
| 参保人数 | ... | ... | ... | ... |
| 专利数 | ... | ... | ... | ... |
| 中标项次 | ... | ... | ... | ... |
| 资质证书 | ... | ... | ... | ... |
| 融资总轮次 | ... | ... | ... | ... |
| 综合排名 | 1 | 2 | 3 | ... |

## 三、护城河深度评估
- 知产壁垒: 主标的 vs 行业均值
- 资质壁垒: ...
- 资本壁垒: ...

## 四、投资建议
- 主标的行业地位: 龙头 / 第二梯队 / 跟随者
- 主要风险: 同质化 / 替代品 / ...
```

## 错误处理

- 若 Step 0 候选 = 0 → 终止流程，提示"未找到匹配企业，请提供更完整的名称或 USCC"，不要带着错主体往下跑
- 若 Step 0 候选 ≥ 2 而用户在合理时间内未回复 → 暂存上下文，**不要自行选择**第一条作为锚定（错锚定的代价远大于等待）

## 示例

输入: `searchKey = "蔚来汽车"`

---

**新输入形态参考**（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。

