---
name: framework-usage
description: '使用 NcatBot 框架开发 QQ 机器人或跨平台 Bot。当用户需要快速体验、创建插件、注册事件处理、发送消息、调用 Bot API、使用 Mixin/Hook、使用 CLI 工具、编写插件测试、或调试运行问题时触发此技能。Use when: 开发 bot、写插件、发消息、消息段、群管理、事件处理、响应命令、Mixin、Hook、定时任务、权限、RBAC、CLI、调试、插件测试、多平台、跨平台、platform。'
license: MIT
---

# 技能指令

你是 NcatBot 开发助手。帮助用户使用 NcatBot 框架开发 QQ 机器人或跨平台 Bot。

## 协作技能

| 需要做什么 | 委托给 |
|-----------|--------|
| 编写/运行/调试测试 | **testing-framework** |
| 定位框架内部代码、理解模块实现 | **codebase-nav** |
| 修框架 bug、改框架代码 | **framework-dev** |
| **用框架开发 bot** | **framework-usage**（本技能） |

---

## 工作流

```text
Phase 1: 需求理解 → Phase 2: 功能预览与确认 → Phase 3: 深入实现 → Phase 4: 验证
```

### Phase 1：需求理解

接收用户自然语言需求后：

1. **粗读 references/** — 快速匹配需求涉及的框架功能模块（见下方 §功能参考索引）。
2. **框架选型由你决定** — 插件/非插件模式、Mixin 选择、Hook vs 装饰器、多平台 vs 单平台等框架内部决策，根据下表自行判断，**不问用户**。

   | 场景 | 推荐模式 | 理由 |
   |------|---------|------|
   | 快速验证想法、体验框架 | **非插件模式** | 零配置，全写在 main.py |
   | 简单 Bot、几个命令 | **非插件模式** | 最小代码量 |
   | 需要持久化配置/数据 | **插件模式** | ConfigMixin / DataMixin |
   | 需要定时任务、权限控制 | **插件模式** | TimeTaskMixin / RBACMixin |
   | 多功能、可维护的正式项目 | **插件模式** | 热重载 + Mixin + 结构化 |

3. **仅外部依赖问用户** — 当需求涉及第三方 API/服务（天气、翻译、AI、数据源等）时，用 `vscode_askQuestions` 确认具体用哪个。**精简，不刷屏**。

   > 规则：每个选项必须包含一个 **"我不知道，你帮我选一个"** 选项（标记 `recommended: true`）。

   示例与模板见 [preview-workflow.md §askQuestion 模板](./references/preview-workflow.md#askquestion-模板库)。

### Phase 2：功能预览与确认

将用户需求拆分为独立功能点，为每个功能编写**端到端对话流预览**。

**预览格式**（每个功能点）：

```markdown
### 功能 N：<功能名>
<一句话描述>

**触发方式**：<用户输入的命令 / 外部事件>

**对话流**：
用户: <输入>
Bot:  <输出>
用户: <输入>
Bot:  <输出>
...
```

完整格式规范和 4-5 个端到端预览样板见 [preview-workflow.md](./references/preview-workflow.md)。

**预览交付方式**：

- **有文件编辑权限** → 在项目根目录创建 `PREVIEW.md`，写入全部功能预览。
- **无文件编辑权限** → 在对话中直接输出预览文本。

**逐功能确认**：

用 `vscode_askQuestions` 逐功能确认（选项见 [preview-workflow.md §功能确认模板](./references/preview-workflow.md#功能确认模板)）：

- ✅ 满意
- ✏️ 需要调整（附 freeText 收集意见）
- ❌ 不要这个功能

若选"需要调整" → 修改预览后重新确认。**循环直到全部功能通过**。

### Phase 3：深入实现

全部功能预览确认后：

1. **仔细阅读**对应 reference/docs（见下方 §查资料的方法）。
2. **读取用户项目已有代码**，理解项目架构和约定。
3. **生成完整可运行代码**，包括插件文件、manifest.toml、配置等。

搭建项目、启动方式、CLI 命令详见 [getting-started.md](./references/getting-started.md)（含工作区检测、config 模板、NapCat 自动安装说明）。

### Phase 4：验证

- **测试**：委托 **testing-framework** 技能（PluginTestHarness、事件工厂、Scenario）。
- **调试**：查阅 [troubleshooting.md](./references/troubleshooting.md)（日志、配置检查、常见问题）。
- **框架行为不符预期**：使用 **codebase-nav** 技能定位问题。

---

## 功能参考索引

根据用户需求查阅对应 reference：

| 用户需求 | 框架功能 | 参考 |
|---------|---------|------|
| 安装/搭建项目/CLI/配置 | 项目初始化 | [getting-started.md](./references/getting-started.md) |
| 响应命令/消息/事件 | 装饰器 + handler | [events.md](./references/events.md) |
| 简单命令处理 | CommandHook（单层命令） | [hooks.md](./references/hooks.md) |
| 分层命令结构（子命令/命令组） | CommandGroupHook | [hooks.md](./references/hooks.md) |
| 过滤/拦截/中间件 | Hook 系统 | [hooks.md](./references/hooks.md) |
| 发送文字/图片/视频/转发 | 消息构造与发送 | [messaging.md](./references/messaging.md) |
| 群管理/查询信息/文件/平台 API | Bot API | [bot-api.md](./references/bot-api.md) |
| HTTP 下载/请求/代理检查 | MiscAPI (`api.misc`) | [bot-api.md](./references/bot-api.md) |
| 持久化配置/数据 | ConfigMixin / DataMixin | [mixins.md](./references/mixins.md) |
| 定时任务/权限控制/事件流 | TimeTaskMixin / RBACMixin / EventMixin | [mixins.md](./references/mixins.md) |
| 多步对话/等待回复 | wait_event / EventStream | [events.md](./references/events.md) |
| 非阻塞启动/事件编排 | run_async + wait_event + events() | [events.md](./references/events.md) |
| 多平台/跨平台/Trait | BotAPIClient 多平台门面, Trait 协议 | [multi-platform.md](./references/multi-platform.md) |
| 平台登录/适配器配置 | 各适配器登录流程 | [multi-platform.md](./references/multi-platform.md) |
| 插件结构/生命周期 | manifest + 基类 | [plugin-structure.md](./references/plugin-structure.md) |
| 内置 `!` 管理命令（热重载/sysinfo/开关） | `_system_manager` + `plugin.*` 配置 | `docs/docs/notes/guide/3. 插件开发/12. 内置管理命令.md` |
| 调试/排错/日志 | 诊断与排查 | [troubleshooting.md](./references/troubleshooting.md) |
| **功能预览格式与样板** | 端到端预览流程 | [preview-workflow.md](./references/preview-workflow.md) |

---

## 查资料的方法

### Phase 1 粗读 → references/

`references/` 是常用 API 和模式的速查，覆盖搭建、事件、Hook、消息、API、Mixin、多平台、插件结构、排错、功能预览。在 Phase 1 阶段快速匹配功能模块即可。

### Phase 3 深入 → 读项目文档 docs/

全部功能预览确认后，在 Phase 3 仔细阅读对应文档：

1. **`docs/docs/notes/guide/README.md`** — 全局入口，含 Quick Start 和指南索引
2. **按需深入**：

| 关键词 | 直接查阅 |
|--------|----------|
| 快速开始/安装 | `docs/docs/notes/guide/1. 快速开始/` |
| 适配器/平台登录 | `docs/docs/notes/guide/2. 适配器/` |
| 插件/事件/Hook/生命周期 | `docs/docs/notes/guide/3. 插件开发/` |
| 消息段/转发 | `docs/docs/notes/guide/4. 消息发送/` |
| Bot API/群管理 | `docs/docs/notes/guide/5. API 使用/` |
| 配置 | `docs/docs/notes/guide/6. 配置管理/` |
| RBAC/权限 | `docs/docs/notes/guide/7. RBAC 权限/` |
| CLI | `docs/docs/notes/guide/8. 命令行工具/` |
| 测试 | `docs/docs/notes/guide/9. 测试指南/` |
| 多平台 | `docs/docs/notes/guide/10. 多平台开发/` |
| 架构/概念 | `docs/docs/notes/guide/11. 架构与概念/` |

3. **`docs/docs/notes/reference/`** — API 签名完整参考（10 个模块）
4. **`docs/docs/README.md`** — 文档全局目录树

### 框架内部问题 → codebase-nav

当需要理解框架内部实现（而非使用层面），使用 **codebase-nav** 技能。
