ソース情報
- リポジトリ
- hellyguo/self-ai-spec
- ソースの最終更新活動
- 2026年7月27日 06:17
- 検出された SKILL.md の言語
- 中国語
- スター
- 8
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
ファイルエクスプローラー
6 ファイルSKILL.md を表示中
SKILL.md
ソースの指示 · 読み取り専用プレビュー- name
- code-deconstruct
- description
- 读取所有源代码,解构为设计图、设计文档、数据库设计; 没有执行文件,请按流程执行
# 源代码解构(设计)
<HARD-GATE>
完整全面,不遗漏细节。
</HARD-GATE>
## 代码解构流程
1. 读取所有源代码,感知项目目的/意图/结构,以及代码之间关系
2. 定位若干核心类,生成主干类图 `docs/deconstruct/classes_graph.puml`
3. 定位核心数据流,生成数据流图 `docs/deconstruct/core_data_flow.puml(md)`
4. 将代码结构分模块编写设计细节文档 `docs/deconstruct/design_{package}/design.md`
5. 分析内存使用代价、探测是否存在内存泄漏 `docs/deconstruct/memory_usage.md`
6. 对核心算法、数据结构,生成算法文档 `docs/deconstruct/algorithm_{package}/algorithm.md`
7. 对重要的架构设计,总结归纳 `docs/deconstruct/arch_design_summary.md`
8. 汇总所有模块的设计细节后,写出全项目设计细节文档 `docs/deconstruct/global_design.md`
### 模块定义
- Java: `package`,如有 maven module,需识别为 `{module}-{package}`
- Python: `package`/`module`
- Ansi C/C++: Makefile target/CMakeLists.txt target
- JS: `module`
- Rust: `mod`,如有 cargo workspace,需识别为 `{member}-{mod}`
## 数据库解构流程
1. 扫描 SQL 文件、MyBatis/iBATIS 映射文件、代码内嵌 SQL
2. 生成数据库清单 `docs/deconstruct/database/database_inventory.md`
3. 构建 ER 图 `docs/deconstruct/database/er_diagram.puml(md)`
4. 生成数据库设计思路摘要 `docs/deconstruct/database/database_design.md`
### SQL 提取规则
- MyBatis: 从 `<sql>` `<select>` `<insert>` `<update>` `<delete>` 标签提取
- Java注解: 从 `@Query` `@NamedQuery` 注解提取
- 字符串: 正则匹配 `(SELECT|INSERT|UPDATE|DELETE)\s+` 开头的字符串
### SQL 提取(ast-grep-mcp 联动)
当 ast-grep-mcp 可用时,优先使用 `find_code_by_rule` 精准提取内嵌 SQL,替代正则匹配。
**Java 内嵌 SQL**:
```
find_code_by_rule(
project_folder: "<project_root>",
yaml: '''
id: sql-string-java
language: java
rule:
pattern: '"$SQL"'
constraints:
SQL:
regex: '(?i)\\b(select|insert|update|delete)\\b.*\\b(from|into|set)\\b'
'''
)
```
**C++ 内嵌 SQL**:同上,改 `language: cpp`。
**SQL 拼接点识别**:参见 `sql-extract` 技能的 `templates/recipes.md`。
> **注意**:XML(MyBatis mapper)ast-grep 不支持,需用 rg 兜底。详见 `sql-extract` 技能。
## 内存使用分析
识别内存热点:大对象创建、集合操作、字符串处理、字节数组、流处理、缓存对象
探测内存泄漏:静态集合增长、ThreadLocal未清理、监听器未注销、连接未关闭、缓存无过期
模板: `templates/memory_usage.md`
### 内存泄漏 AST 探测(ast-grep-mcp 联动)
**静态集合增长**:
```
find_code_by_rule(
project_folder: "<project_root>",
yaml: '''
id: static-map-leak
language: java
rule:
pattern: 'private static final $MAP_TYPE $VAR = new $CTOR$$$ARGS();'
constraints:
MAP_TYPE:
regex: '(?i).*(Map|HashMap|ConcurrentMap|ConcurrentHashMap|Cache|LinkedHashMap)'
'''
)
```
**ThreadLocal 未清理**:
```
find_code(
pattern: 'ThreadLocal $VAR = $$$INIT',
language: java,
project_folder: "<dir>"
)
```
> 命中后需人工检查是否有对应的 `.remove()` 调用。
**JDBC 资源未关闭**:
```
find_code_by_rule(
project_folder: "<project_root>",
yaml: '''
id: jdbc-resource-leak
language: java
rule:
any:
- pattern: '$TYPE $VAR = $CONN.createStatement()'
- pattern: '$TYPE $VAR = $CONN.prepareStatement($$$ARGS)'
'''
)
```
> 命中后需人工检查是否在 finally/try-with-resources 中关闭。
## 中间件消息追踪
识别中间件:xnet、webnet、TDMQ、RabbitMQ、IBMMQ、RocketMQ、Kafka
扫描:配置文件、注解配置、编程式API、硬编码字符串
模板: `templates/middleware_tracing.md`
### 中间件 AST 探测(ast-grep-mcp 联动)
**Spring 消息注解**:
```
find_code_by_rule(
project_folder: "<project_root>",
yaml: '''
id: mq-annotation
language: java
rule:
pattern: '@$ANNOTATION($PATH)'
constraints:
ANNOTATION:
regex: '(?i)(RabbitListener|KafkaListener|RocketMQMessageListener|JmsListener|SqsListener)'
'''
)
```
**消息发送 API**:
```
find_code_by_rule(
project_folder: "<project_root>",
yaml: '''
id: mq-send-api
language: java
rule:
pattern: '$OBJ.$METHOD($$$ARGS)'
constraints:
METHOD:
regex: '(?i)(send|publish|produce|convertAndSend|push)'
'''
)
```
**Controller 端点识别**:
```
find_code_by_rule(
project_folder: "<project_root>",
yaml: '''
id: controller-endpoint
language: java
rule:
pattern: '@$ANNOTATION($PATH)'
constraints:
ANNOTATION:
regex: '(?i)(GetMapping|PostMapping|PutMapping|DeleteMapping|RequestMapping|PatchMapping)'
'''
)
```
## 网络估算
识别通信类型:HTTP API、RPC调用、消息队列、数据库连接、文件传输、WebSocket、缓存同步
估算维度:请求大小、响应大小、并发请求、上行/下行流量、总带宽
模板: `templates/network_usage.md`
## 算法分析
识别算法类型:搜索、排序、加密、压缩、编码、校验、计算、匹配、路径、分配
识别数据结构:数组/列表、链表、树结构、图结构、哈希表、队列、栈、堆、位图、缓存
模板: `templates/algorithm.md`
## 架构设计总结
识别架构模式:分层架构、MVC架构、微服务架构、事件驱动、管道过滤、插件架构、代理架构、适配器架构、工厂架构、单例架构
识别设计模式:策略、工厂、观察者、装饰器、适配器、代理、模板方法、命令、责任链、状态
模板: `templates/arch_design_summary.md`
## 输出目录结构
```text
docs/deconstruct/
├── classes_graph.puml
├── core_data_flow.puml
├── core_data_flow.md
├── global_design.md
├── memory_usage.md
├── network_usage.md
├── arch_design_summary.md
├── database/
│ ├── database_inventory.md
│ ├── er_diagram.puml
│ ├── er_diagram.md
│ ├── database_design.md
│ ├── tables/
│ ├── indexes/
│ └── constraints/
├── design_{package}/
│ └── design.md
└── algorithm_{package}/
└── algorithm.md
```
## 关联技能
需求收集请使用技能:`requirement-collect`
GitHubで見る