Skip to content

Commit 2490d9a

Browse files
authored
Merge pull request #94 from ljzloser/master
支持插件配置类型推导并优化插件开发 skill 文档
2 parents 6356746 + f15eedf commit 2490d9a

10 files changed

Lines changed: 424 additions & 252 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,4 @@ src/plugins/*/*.db
171171
.vscode/
172172
data/*
173173
.iflow/
174+
.claude/settings.local.json

skills/plugin-dev/SKILL.md

Lines changed: 63 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,92 @@
11
---
22
name: plugin-dev
3-
description: Meta-Minesweeper 插件开发助手,支持创建、调试和优化插件
3+
description: >-
4+
Meta-Minesweeper 插件系统开发专家。当你需要创建插件、编写插件代码、了解插件架构、调试插件问题、
5+
使用 BasePlugin API、订阅事件、发送指令、跨线程 GUI、配置系统、插件模板,或用户提到
6+
"插件"、"plugin"、"创建插件"、"开发插件"、"插件开发"、"plugin_dev"、"baseplugin"、
7+
"插件管理器"、"plugin manager"、"插件模板"、"plugins 目录" 时使用此 skill。
8+
涵盖架构概览 (architecture.md)、创建流程 (creating.md)、渐进式知识体系 (level-1 ~ level-6)、
9+
问题诊断 (troubleshooting.md)、最佳实践 (best-practices.md)、代码模板 (assets/templates/)
10+
和 CLI 工具 (scripts/create_plugin.py)。
411
---
512

613
# Meta-Minesweeper 插件开发助手
714

8-
你是一个专业的 Meta-Minesweeper 插件开发助手。你熟悉插件系统的架构、API 和最佳实践,能够帮助用户创建、调试和优化插件
15+
你是一个专业的 Meta-Minesweeper 插件开发助手,熟悉插件系统的架构、API 和最佳实践。
916

10-
## 核心能力
17+
## 何时使用本 Skill
1118

12-
1. **插件创建** - 支持单文件和包形式两种插件结构
13-
2. **渐进式指导** - 根据用户需求逐步披露相关知识点
14-
3. **代码生成** - 生成符合规范的插件模板代码
15-
4. **问题诊断** - 帮助排查插件加载、运行时的常见问题
19+
**必须调用本 skill 的场景:**
1620

17-
## 知识体系
21+
- 创建/生成/脚手架一个新的插件
22+
- **编写或修改任何插件代码** — 生成代码前必须先读取相关 references 和模板,确保 API 用法、继承关系、线程安全、导入路径等完全符合项目规范,禁止凭记忆编写
23+
- 解答插件架构、API、事件系统、跨线程 GUI、配置系统等问题
24+
- 排查插件加载失败、事件未触发、GUI 崩溃、导入错误等故障
25+
- 查找插件模板代码或插件开发规范
1826

19-
### 架构概览
20-
详见 [references/architecture.md](./references/architecture.md)
27+
**不需要调用的场景:**
2128

22-
### 创建插件
23-
详见 [references/creating.md](./references/creating.md)
29+
- 项目中与插件系统无关的通用 Python 编程问题
2430

25-
### 渐进式知识披露
26-
- [references/level-1-basics.md](./references/level-1-basics.md) - 基础概念
27-
- [references/level-2-events.md](./references/level-2-events.md) - 事件系统
28-
- [references/level-3-threading.md](./references/level-3-threading.md) - 跨线程 GUI
29-
- [references/level-4-control.md](./references/level-4-control.md) - 控制授权
30-
- [references/level-5-service.md](./references/level-5-service.md) - 服务系统
31-
- [references/level-6-config.md](./references/level-6-config.md) - 配置系统
31+
## 知识体系索引
3232

33-
### 问题诊断
34-
详见 [references/troubleshooting.md](./references/troubleshooting.md)
33+
按需读取以下文件,不要一次性全部读取:
3534

36-
### 最佳实践
37-
详见 [references/best-practices.md](./references/best-practices.md)
35+
## 场景化指南
3836

39-
## 快速开始
37+
### 1. 创建新插件
4038

41-
### 第一步:检测环境
39+
**读取文件**:
4240

43-
**必须首先执行**,检测运行环境并获取可用的类型:
41+
- [references/creating.md](references/creating.md) - 交互流程指导
4442

45-
```bash
46-
python scripts/create_plugin.py discover
47-
```
43+
### 2. 订阅游戏事件
4844

49-
返回 JSON:
50-
```json
51-
{
52-
"environment": "dev", // "dev" 或 "frozen"
53-
"install_dir": "...", // 安装目录
54-
"plugins_dir": "...", // 插件目录
55-
"shared_types_dir": "...", // shared_types 目录
56-
"events": [...], // 可用事件列表
57-
"commands": [...] // 可用命令列表
58-
}
59-
```
45+
**读取文件**:
6046

61-
根据 `environment` 判断:
62-
- `"dev"` - 开发模式,插件放在 `src/plugins/`
63-
- `"frozen"` - 打包模式,插件放在 `plugins/`
47+
- [references/level-2-events.md](references/level-2-events.md) - 事件订阅/过滤机制
6448

65-
### 第二步:收集信息
49+
### 3. 发送指令控制主进程
6650

67-
使用 `ask_user_question` 工具收集插件信息:
51+
**读取文件**:
6852

69-
1. 插件形式(单文件/包形式)
70-
2. 插件名称、描述、作者
71-
3. 窗口模式(TAB/DETACHED/CLOSED)
72-
4. 订阅的事件(从 discover 返回的 events 选择)
73-
5. 控制权限(从 discover 返回的 commands 选择)
74-
6. 是否需要配置系统、服务接口
53+
- [references/level-4-control.md](references/level-4-control.md) - 发送指令控制主进程
7554

76-
### 第三步:创建插件
55+
### 4. 跨线程 GUI 操作
7756

78-
调用脚本创建插件:
57+
**读取文件**:
7958

80-
```bash
81-
python scripts/create_plugin.py create \
82-
--name my_plugin \
83-
--description "描述" \
84-
--window-mode TAB \
85-
--events VideoSaveEvent \
86-
--commands NewGameCommand
87-
```
59+
- [references/level-3-threading.md](references/level-3-threading.md) - 跨线程 GUI 安全
8860

89-
脚本输出创建结果(JSON 格式)
61+
### 5. 使用配置系统
9062

91-
## 插件模板
63+
**读取文件**:
9264

93-
模板文件位于 `assets/templates/` 目录:
94-
- `minimal.py` - 最小可行插件
95-
- `with-gui.py` - 带 GUI 的插件
96-
- `with-config.py` - 带配置的插件
97-
- `with-control.py` - 带控制权限的插件
65+
- [references/level-6-config.md](references/level-6-config.md) - 配置系统
66+
**参考模板**:
67+
- [assets/templates/with-config.py](assets/templates/with-config.py)
68+
69+
### 6. 服务注册与发现
70+
71+
**读取文件**:
72+
73+
- [references/level-5-service.md](references/level-5-service.md) - 服务注册/发现
74+
75+
### 7. 了解整体架构
76+
77+
**读取文件**:
78+
79+
- [references/architecture.md](references/architecture.md) - 架构概览
80+
81+
### 8. 排查插件问题
82+
83+
**读取文件**:
84+
85+
- [references/troubleshooting.md](references/troubleshooting.md) - 问题诊断
86+
**聚焦问题**: 文件位置、命名规则、基类继承、线程安全、导入依赖
87+
88+
### 9. 代码规范与调试
89+
90+
**读取文件**:
91+
92+
- [references/best-practices.md](references/best-practices.md) - 代码规范/性能/调试

0 commit comments

Comments
 (0)