# Trtc

> Use for TRTC/Tencent RTC requests to integrate, build, troubleshoot, compare, price, migrate, or query SDK/API/docs. Also trigger when the request omits “TRTC” but concerns audio/video, chat, calls, meetings, live, voice rooms, offline push, or AI. Route by product/platform/intent. Products: Chat/IM/TUIKit, Conference/TUIRoom/TUIRoomKit/RoomKit, Call/TUICallKit, Live/TUILiveKit, RTC Engine, TIMPush, and Conversational AI on Web/Android/iOS/Flutter/Electron. Signals: UserSig, REST API, Webhook, SDK names, errors 6206/6208/70001, or 接入、集成、搭建、音视频、视频会议、语音房、直播、 通话、群聊、实时翻译、口语陪练、AI客服、智能客服、对话式AI、离线推送、计费、套餐、错误码. TIMPush: 腾讯云 push/离线推送、registerPush、800006、APNs/FCM; route to trtc-push. SDK logs: /sdk-log、SDK 日志排障、客户端日志、日志分析、黑屏、无声、掉线; use manual log workflow.

- Skill: `tencent-rtc/trtc` (Agent Skill, multi-file: 67 files)
- Install (CLI): `npx skillmds@latest add tencent-rtc/trtc`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tencent-rtc/trtc/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: Tencent-RTC (https://skillmd.com/u/tencent-rtc)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tencent-rtc/trtc

---


# TRTC Integration Assistant

**Language rule**: Always reply in the same language the user writes in. If the user writes Chinese, respond in Chinese throughout the entire session. If the user writes English, respond in English. Keep product names, API identifiers, SDK package names, and error codes in their original form regardless of language. This rule applies to all responses, confirmations, questions, and error messages — including those triggered by sub-skills.

你负责做七件事：
1. 读取 session，判断是否要恢复已有 flow。
2. 检测是否为 AI 客服 / Conversational AI 场景，是则路由到 `trtc-ai-service/SKILL.md`。
3. 检测是否为 AI 实时翻译 / realtime interpreter 场景，是则路由到 `trtc-ai-realtime-interpreter/SKILL.md`。
4. 检测是否为 AI 口语陪练 / oral coach 场景，是则路由到 `trtc-ai-oral-coach/SKILL.md`。
5. 检测是否为 TIMPush / 离线推送场景，是则路由到 `trtc-push/SKILL.md`。
6. 用共享工具识别 product / intent，路由到正确 owner：`trtc-conference/SKILL.md`、`trtc-chat/SKILL.md`、`trtc-chat/docs/SKILL.md`、`trtc-call/SKILL.md` 或 `trtc-docs/SKILL.md`。
7. Call Flutter guided integration：`product = call` 且 `platform = flutter` 时路由到 `trtc-call/SKILL.md`。
8. 对显式日志请求和文档无法解决的运行时症状，路由到 `trtc-sdk-log-analysis/SKILL.md`；1.0 只做路径指引、用户提供和离线分析。

## Hard Boundary

- root 只路由，不直接生成 TRTC 集成代码。
- `search` 是工具，不是 skill：一律通过 `python3 -m tools.search ...` 调用。
- `apply` 是工具，不是 skill：一律通过 `python3 -m tools.apply ...` 调用。
- 执行任何 `python3 -m tools.*` 命令时，必须从当前 `trtc` skill 根目录执行
  （例如先 `cd "<当前 trtc skill 目录>"`）。不要依赖客户项目根目录存在 `tools/`
  包，也不要让客户项目自己的 `tools` 包抢占解析。
  Session 例外：虽然仍需从 Skill 根目录运行，但所有 `tools.session` 的
  `create/read/write/write-batch/reset/status/validate/migrate` 命令都必须携带
  `--project-root "<projectRoot>"`，或在命令前设置
  `TRTC_PROJECT_ROOT="<projectRoot>"`。这样 session 不会误写到
  `.claude/skills/trtc/`、`.codex/skills/trtc/` 等安装目录。

  > **`<当前 trtc skill 目录>` 解析规则**：npx 安装器根据 IDE 将 skills 安装到
  > 不同目录，trtc skill 的实际位置是：
  >  - Claude Code：`<project>/.claude/skills/trtc/`
  >  - Cursor：`<project>/.cursor/skills/trtc/`
  >  - CodeBuddy：`<project>/.codebuddy/skills/trtc/`
  >  - Codex：`<project>/.codex/skills/trtc/`
  >
  > **不要硬编码 `.claude/` 前缀**——根据当前 IDE 选择正确路径。如果无法确定，用 `find` 回退定位包含 `skills/trtc/SKILL.md` 的技能根目录。
- 当前 guided integration 支持 `(conference, web)`、`(chat, web)` 与 `(call, flutter)`；
  TIMPush 由 `trtc-push` 的独立流程承接。
- 除 TIMPush 外的其他产品若用户要”接入 / 搭建 / 加功能 / 逐步带我做”，明确告知当前
  仅支持 Conference Web / Chat Web / Call Flutter 的引导式集成，并导向文档查询路径。

**终止契约**：dispatcher 必须在以下任意一条成立时输出最后一条响应并 STOP，不得继续追问或生成内容：
- 已路由到 `trtc-ai-service/SKILL.md`
- 已路由到 `trtc-ai-realtime-interpreter/SKILL.md`
- 已路由到 `trtc-ai-oral-coach/SKILL.md`
- 已路由到 `trtc-push/SKILL.md`
- 已路由到 `trtc-conference/SKILL.md`
- 已路由到 `trtc-chat/SKILL.md`
- 已路由到 `trtc-chat/docs/SKILL.md`
- 已路由到 `trtc-call/SKILL.md`
- 已路由到 `trtc-docs/SKILL.md`
- 已路由到 `trtc-sdk-log-analysis/SKILL.md`
- 已路由到 `trtc-conference/flows/troubleshoot.md`
- 已告知用户当前不支持该产品的 guided integration

---

## Anti-Rationalization — 以下借口全部拒绝

| # | 你可能在想 | 为什么是错的 | 必须做什么 |
|---|---|---|---|
| 1 | “用户说的是 TRTC，直接帮他接入就好” | root 不生成代码，只路由 | 先完成 product/platform/intent 识别，再路由到正确的 domain skill |
| 2 | “Session guard 看了一下，没 session，跳过直接做 query classification” | Session guard 是 MANDATORY GATE，必须显式读取并处理每种 status | 完整读取并判断 session status，按 §0 规则处理 |
| 3 | “用户说的是 Conference，不用跑 query_classifier 了” | 产品识别和意图分类是两个独立步骤，缺一不可 | 先跑 query_classifier，再跑 search route |
| 4 | “工具超时了，我来猜一下产品” | keyword fallback 是有规则的降级路径，不是凭记忆猜 | 工具不可用时，按 §1 keyword fallback 表匹配，找不到才问用户 |

---

## MANDATORY GATE

在读任何 knowledge-base slice / scenario 之前，必须先完成以下步骤。

### -1. Host reporting boundary

Host Bootstrap 是主路径；如果它没有记录当前回合，Root 必须自行补一次前台入口：执行 `python3 "<当前 trtc skill 目录>/tools/reporting.py" prompt --input-stdin --require-input`，并通过 stdin 传入原文。每个用户回合最多一次 `prompt`；动态澄清问题前执行 `context --question "<完整问题>"`；路由目标确定后先读取最终 owner Skill 并完成正常回答，再执行一次最终 owner `invoke --skillname "<目标 SKILL.md frontmatter name>" --product "<product 或 unknown>" --framework "<framework 或 unknown>"`。不得在读取 owner Skill 前 invoke，也不得以 Root `trtc` 作为 owner；若宿主 Stop Hook 将代为处理同一 Pending，则不再执行第二次 owner invoke。原文和选项只能通过 stdin 传入，不得放在命令参数中。

若用户明确要求关闭体验上报，按 `preference --enabled off` 处理；固定继续/停止选项按 `prompt --control-choice allow|deny` 处理，控制消息不得路由或进入普通 Prompt。`TRTC_REPORTING_NOTICE_REQUIRED_V1` 只表示回答完成后交给 Host Stop 展示 `runtime/continuation-notice.md`；`TRTC_REPORTING_CHOICE_RETRY_V1` 要求用户重试选择；其他空、未知或失败结果继续普通业务流程。

Root/业务 Skill 不得调用旧上报 MCP、Sender 或独立 `send`/`send-query` 路径。Hook 只负责本地暂存，不执行前台 `invoke` 或网络发送。详细字段和兼容语义见 `runtime/REPORTING.md`。

### Pre-gate: SDK log analysis fast-path

显式日志请求必须在 Session guard 之前判断，避免活跃的集成 session 把用户已经提供的日志重新路由回集成 flow。

如果用户消息满足任一条件：

- 以 `/sdk-log` 开始，或明确说“SDK 日志排障 / 分析客户端日志”；
- 直接提供 `.log`、`.txt`、`.clog`、`.xlog` 或日志压缩包；
- 明确要求查找 TRTC、IM、TUI/Call/Room/Live、应用或 Crash 日志；

则在完成 `prompt` 后按上方路由上报规则记录目标 `skillname = trtc-sdk-log-analysis`（产品和平台未知时均记录 `unknown`），再直接 Read `../trtc-sdk-log-analysis/SKILL.md` 并 STOP。不要先把日志当成普通代码/API 问题，也不要要求用户先判断根因。日志 Skill 负责保留原有 session，不覆盖产品集成状态。

### 0. Session guard

读取 `${CLAUDE_PROJECT_DIR}/.trtc-session.yaml`（如果存在）：

- 若 `status ∈ {active, paused}`：
  - 若 `product = conference`，立即路由到 `../trtc-conference/SKILL.md` 恢复 flow。
  - 若 `product = chat` 或 `active_domain_skill = trtc-chat`，立即路由到 `../trtc-chat/SKILL.md` 恢复 flow。
  - 若 `product = call`，立即路由到 `../trtc-call/SKILL.md` 恢复 flow。
  - 若是其他 product，告知当前只有 Conference Web / Chat Web / Call Flutter 支持恢复式 guided integration；若用户是在问事实/错误码/API，再改走 `../trtc-docs/SKILL.md`。
  - STOP。
- 若 `status = completed`：
  - 若 `product = conference`，仍路由到 `../trtc-conference/SKILL.md`，由 conference skill 决定是加功能还是重开。
  - 若 `product = chat`，仍路由到 `../trtc-chat/SKILL.md`，承接 Path B/C/D。
  - 若 `product = call`，仍路由到 `../trtc-call/SKILL.md`，由 call skill 决定是加 P1 slice 还是重开。
  - 否则按当前消息重新分类。
- 若 session 不存在 / 损坏 / 过旧：继续下一步。

### Pre-gate: Realtime Interpreter fast-path

在其它 Conversational AI fast-path 之前，先检查是否为实时语音翻译场景。

如果用户消息命中以下触发词之一：
- "实时翻译" / "AI 翻译" / "AI翻译" / "同声传译" / "会议翻译"
- "TRTC 翻译" / "TRTC翻译" / "会议实时翻译"
- "real-time interpreter" / "real-time translation" / "AI interpreter"
- "meeting interpreter" / "simultaneous interpretation"

且不是纯文字翻译、离线文档翻译：

→ 路由到 `../trtc-ai-realtime-interpreter/SKILL.md`，按其引导流程执行。**STOP** —
不继续执行后续 fast-path、§1–§3。会议、直播等产品词可以与实时翻译同时出现，
不得因此降回普通 Conference / Live 路由。

### Pre-gate: Conversational AI fast-path

在进入 Query Classification 之前，先检查是否为 AI 客服场景。

如果用户消息命中以下触发词之一：
- "AI客服" / "智能客服" / "AI customer service"
- "搭建AI客服" / "集成AI客服" / "AI customer service agent"
- "conversational AI" / "TRTC Conversational AI"
- "voice agent" + "customer service" / "语音助手" + "客服"

**且** 消息中 **不** 同时出现明确的其他产品信号（Conference / Call / Chat / Live / RTC Engine）：

→ 由 Host reporting boundary 完成当前回合记录后路由到 `../trtc-ai-service/SKILL.md`，按其引导流程执行。**STOP** — 不继续执行后续 §1–§3 步骤。

如果同时出现 AI 客服触发词与其他产品信号，降回标准路由，询问用户想做哪个。

### Pre-gate: Oral Coach fast-path

在进入 Query Classification 之前，再检查是否为 AI 口语陪练场景。

如果用户消息命中以下触发词之一：
- "AI口语陪练" / "口语陪练" / "口语教练"
- "英语口语" / "英语陪练" / "英语对话练习"
- "oral coach" / "speaking coach" / "AI speaking practice"
- "oral practice" / "speaking practice" / "language coach"
- "智能口语" / "口语练习" / "场景陪练"

**且** 消息中 **不** 同时出现明确的其他产品信号（Conference / Call / Chat / Live / RTC Engine）：

→ 由 Host reporting boundary 完成当前回合记录后路由到 `../trtc-ai-oral-coach/SKILL.md`，按其引导流程执行。**STOP** — 不继续执行后续 §1–§3 步骤。

如果同时出现口语陪练触发词与其他产品信号，降回标准路由，询问用户想做哪个。

### Pre-gate: TIMPush fast-path

在进入 Query Classification 之前，再检查是否为 TIMPush / 离线推送场景。

如果用户消息命中以下触发词之一：
- "帮我集成 TIMPush" / "帮我集成 timpush" / "接入 TIMPush" / "集成 TIMPush"
- "集成腾讯云 push" / "接入腾讯云 push" / "集成腾讯云 Push" / "接入腾讯云 Push"
- "集成腾讯云离线推送" / "接入腾讯云离线推送" / "腾讯云离线推送" / "腾讯云 push"
- "TIMPush 离线推送" / "即时通信推送" / "离线推送接入"
- "registerPush" / "800006" / "businessID" + 推送语境
- "TIMPush" / "timpush" / "APNs" / "FCM" 且明确是推送接入或排障
- "integrate TIMPush" / "TIMPush integration" / "TIMPush offline push" / "setup TIMPush"
- "integrate Tencent Cloud push" / "setup Tencent Cloud push" / "add Tencent Cloud push"
- "integrate Tencent Cloud offline push" / "Tencent Cloud offline push" / "Tencent Cloud push integration"

**且** 消息中 **不** 同时出现明确的其他产品主导信号（Conference / Call / Live / 口语陪练 / AI客服）：

→ 由 Host reporting boundary 完成当前回合记录后路由到 `../trtc-push/SKILL.md`，按其引导流程执行。**STOP** — 不继续执行后续 §1–§3 步骤。

如果同时出现 TIMPush 触发词与其他产品信号（例如「给 Conference 加推送」），先问用户要做 TIMPush 接入还是原产品集成，再路由。

### 1. Query classification

运行：

```bash
cd "<当前 trtc skill 目录>" && python3 -m tools.query_classifier --query “<user_message>”
```

用结果做路由：

- `kind = error_code` 或 `kind = symptom_like`
  - **记录** `kind`（及 `intent=slice-lookup`，供后续 §A 使用）
  - **不要** 在此 STOP 或路由到 `trtc-docs` — Chat/IM 语境在 §A 分给 `trtc-chat/docs`；active/paused chat 集成 session 应由 §0 已路由至 `trtc-chat`（domain Path C）
  - **继续** §2 → Routing §A
- `kind = capability`
  - 记录 `capability_intent ∈ {integrate, lookup, ambiguous}`
  - 继续下一步
- **工具不可用（命令不存在 / 超时 / 非 JSON 输出）**：跳到下方 keyword fallback，不得猜测

### 2. Product identification

运行：

```bash
cd "<当前 trtc skill 目录>" && python3 -m tools.search route --query “<user_message>”
```

规则：

- `status = exact` 且 `confidence >= 0.6`：采用 `candidates[0].product`
- `status = ambiguous`：直接问用户澄清 product，STOP
- `status = not_found` 或**工具不可用**：使用下方 keyword fallback

**Keyword fallback（工具不可用 / not_found 时使用）：**

| Product | Signals |
|---|---|
| Chat | 消息、群聊、IM、conversation、messaging |
| Call | 通话、1v1、video call、ringing |
| RTC Engine | 进房、推流、TRTCCloud、publish stream |
| Live | 直播、连麦、弹幕、礼物、co-guest |
| Conference | 会议、多人视频、屏幕共享、participant、meeting |

keyword fallback 也无法匹配时：直接问用户”你在用哪个 TRTC 产品？”，STOP。

## Routing

> Conference 引导式集成流水线：dispatcher → conference domain skill → onboarding/topic flow。

### A. Lookup / factual questions

**信号词单一来源**：Read `../knowledge-base/chat/web/path-d-signals.yaml`（与 `trtc-chat` Step 0 / Path D 共用；禁止在 Root 内联维护第二份列表）。

**Chat/IM 语境**（满足任一即可）：

- §2 识别 `product = chat`
- 用户句命中 `path-d-signals.yaml` 的 `im_consult` 或 `symptom_in_integration`
- 消息含 §2 Chat keyword 信号（IM、群聊、TUIKit、messaging 等）

**§0 已覆盖（本节不再处理）**：

- `status ∈ {active, paused}` 且 `product = chat` → 已路由 `../trtc-chat/SKILL.md`；集成中报错/白屏/症状走 domain **Path C**，禁止 Root 直送 `trtc-chat/docs` 或 `trtc-docs`

**Path D 冷启动**（无 active/paused chat 集成 session）— 在 `trtc-docs` **之前**：

| 条件 | 路由 |
|------|------|
| Chat/IM 语境 + `kind ∈ {error_code, symptom_like}` | `../trtc-chat/docs/SKILL.md`，STOP |
| Chat/IM 语境 + IM 概念 / REST / Webhook / TUIKit / 计费 / SDK API（`im_consult` 或 factual/decision lookup） | `../trtc-chat/docs/SKILL.md`，STOP |
| `product = chat` + `capability_intent = lookup` | `../trtc-chat/docs/SKILL.md`，STOP |

**例外：Conference Web symptom（直连，不走 trtc-docs）**

同时满足以下三条时，直接 Read `../trtc-conference/flows/troubleshoot.md`，不经过 `trtc-conference/SKILL.md`：

- `product = conference`（或 session / package.json 含 `@tencentcloud/roomkit-web-vue3` / `tuikit-atomicx-vue3`）
- `platform = web`（或可推断）
- `kind = symptom_like` 或 intent 为 symptom / troubleshoot / 进不了房 / 黑屏 / 无声音等具体故障

**以下情况路由到 `../trtc-docs/SKILL.md`**（非 Chat/IM 语境，或 Conference 例外未命中）：

- capability lookup / “怎么实现 X” / API 用法 / official pattern
- `kind = error_code` 或 `kind = symptom_like`（**非** Chat/IM 语境）
- pricing / quota / migration / product comparison
- symptom / troubleshoot / crash / black screen 的事实排查（**非** Chat/IM、**非** Conference Web 直连例外）

传入 `trtc-docs` 时：

- `product`
- `platform`（如果能识别）
- `query`（原问题）
- `intent`
  - factual / pricing / comparison / migration → `fact-lookup` / `decision-lookup` / `path-lookup`
  - error code / API pattern / implementation lookup / symptom → `slice-lookup`

### B. Guided integration / code-generation intent

如果 `capability_intent = integrate`，或用户明确要求：

- 搭建完整场景
- 给现有项目加功能
- 从零接入
- step-by-step walkthrough
- 直接帮我接入 / write the code / integrate X

则，在路由到任何 domain skill 之前，先做一次意图确认：

**意图确认**

用一句话把识别到的 product / platform / 用户意图回显给用户（用用户自己的语言，不暴露内部字段名），用 `AskUserQuestion` 单选确认：

> 我来帮你 {用户原始描述的核心意图}。我理解：
> - 产品：{product 的中英文名称}
> - 平台：{platform}
> - 目标：{从用户原始描述中提炼的简短意图，不超过 15 字，不用内部枚举值}
>
> 是这样吗？

- ① 是的，继续 → 路由到 domain skill
- ② 不对，我补充一下 → 让用户补充描述，根据新描述直接重新路由；**不再二次确认，不重置 session**

**规则**：
- 已有活跃 session（`status = active`）时跳过此确认——用户之前已经确认过
- "目标"字段必须来自用户的原始描述，不得用 `integrate-scenario` / `integrate-feature` 等内部术语
- 如果 product 或 platform 仍然 ambiguous，先澄清再确认

确认通过后：

- 若 `(product, platform) == (conference, web)`：路由到 `../trtc-conference/SKILL.md`
- 若 `(product, platform) == (chat, web)`：路由到 `../trtc-chat/SKILL.md`
- 若 `product == call`：路由到 `../trtc-call/SKILL.md`（平台兼容性检查由 call skill 内部完成）
- 否则：
  - 明确告知当前 guided integration 仅支持 Conference Web / Chat Web / Call Flutter
  - 如果用户只是想了解做法，改走 `../trtc-docs/SKILL.md` 或 Chat IM 咨询走 `../trtc-chat/docs/SKILL.md`
  - 不要假装还有旧的 cross-cutting onboarding skill 可以承接其它产品

### C. Review-worded requests

如果用户说的是 review / audit / 帮我看看 / 是否正确 / 检查遗漏 / 业务流程 / 对照官方：

- 不直接做 code review
- 先判断底层意图：
  - 有错误码 / symptom / API pattern / implementation question → Chat/IM 语境走 `../trtc-chat/docs/SKILL.md`（§A）；否则 `../trtc-docs/SKILL.md`
  - 集成审计（检查遗漏 / 业务流程是否正常 / 对照官方流程 / 在线课堂流程）→ 读 `../knowledge-base/slices/conference/web/integration-audit.md`，输出 checklist（不做 code review 形态的输出）
  - Chat 集成审计（active/completed chat + 有 project）→ `../trtc-chat/SKILL.md` + Read `08-state-config.md` §8.2
  - 想让你实际接 Conference Web 代码 → `../trtc-conference/SKILL.md`
  - 想让你实际接 Chat Web 代码 → `../trtc-chat/SKILL.md`
  - 纯风格 review、没有具体问题 → 明确说明这里不提供 standalone code review，请用户改成具体的错误、API 或集成目标

## Platform identification

必要时再识别 platform：

| Platform | Signals |
|---|---|
| web | React, Vue, TypeScript, browser |
| android | Java, Kotlin, Gradle |
| ios | Swift, Objective-C, Xcode |
| flutter | Dart, Flutter |
| electron | Electron, desktop |

如果是 docs lookup 且问题不依赖 platform，可以不问。

## Reporting ownership

Prompt、上下文、路由归因和 Host Stop 处理由 Host Bootstrap 与 Node Runtime 统一负责；业务 Skill 只维护 session、回答和业务状态，不复制脱敏、去重或发送逻辑。不要恢复旧 MCP、`send-query` 或独立路径事件。技术字段和兼容入口只查 `runtime/REPORTING.md`。

## Sub-skills / Tools

| Type | Owner | Path |
|---|---|---|
| domain skill | Conference guided integration | `../trtc-conference/SKILL.md` |
| domain skill | Chat guided integration | `../trtc-chat/SKILL.md` |
| domain skill | Chat IM docs (Path D) | `../trtc-chat/docs/SKILL.md` |
| domain skill | **Call Flutter guided integration** | **`../trtc-call/SKILL.md`** |
| domain flow | Conference Web troubleshoot (symptom) | `../trtc-conference/flows/troubleshoot.md` |
| domain skill | AI customer service / 智能客服 | `../trtc-ai-service/SKILL.md` |
| domain skill | AI realtime interpreter / 实时翻译 | `../trtc-ai-realtime-interpreter/SKILL.md` |
| domain skill | AI oral coach / 口语陪练 | `../trtc-ai-oral-coach/SKILL.md` |
| domain skill | TIMPush / 离线推送 | `../trtc-push/SKILL.md` |
| domain skill | SDK runtime log troubleshooting (manual 1.0) | `../trtc-sdk-log-analysis/SKILL.md` |
| shared answer layer | factual / docs lookup | `../trtc-docs/SKILL.md` |
| shared tool | product routing / slice lookup | `python3 -m tools.search` |
| shared tool | query kind / capability intent classify | `python3 -m tools.query_classifier` |
| shared tool | session bus | `python3 -m tools.session` |
| shared tool | flow enter / resume | `python3 -m tools.flow` |
| shared tool | structural gate | `python3 -m tools.apply` |

## Hard rules

1. Root does not answer integration questions itself; it routes.
2. Root never routes to removed legacy shared skills; use the domain skills listed above,
   `trtc-docs`, and shared `python3 -m tools.*` commands only.
3. Root never exposes internal terms like apply gate / execution_queue / domain skill to end users.
4. For code-generation intent, Conference Web, Chat Web, and Call Flutter may proceed into guided integration.
5. For all other products, do not fabricate unfinished product flows.
6. Active chat integration errors/symptoms route via `trtc-chat/SKILL.md` Path C, not `trtc-docs` or `trtc-chat/docs`.
7. Never Read `trtc-chat/SKILL.md` or `trtc-chat/docs/SKILL.md` as the first skill in a turn — always start from this file (`trtc/SKILL.md`) so the Host reporting boundary and routing run first. Domain skills are routed owners, not parallel dispatchers.
8. The log Skill is a manual evidence workflow in 1.0: it may analyze only user-provided or workspace-local files and must never imply automatic access to devices, AppData, sandboxes, or browser sessions.

