@miphamai/cli 0.27.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/mipham/self-audit.mipham-skill.md +171 -0
- package/src/core/auto-memory.ts +616 -0
- package/src/core/crsi-sandbox.ts +551 -0
- package/src/core/engine.ts +20 -0
- package/src/ui/app.tsx +41 -10
- package/src/ui/chat.tsx +13 -5
- package/src/ui/input.tsx +61 -8
package/package.json
CHANGED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: self-audit
|
|
3
|
+
description: CRSI Phase 2: Mipham Code systematic self-audit — identifies code quality, architecture, performance, and security issues; integrates with CRSI pipeline for auto-rule generation
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Self-Audit Skill (CRSI Phase 2)
|
|
8
|
+
|
|
9
|
+
> **定位**: CRSI Phase 2 "建议式代码自改" 的基石技能。
|
|
10
|
+
> 系统化审计 Mipham Code 自身代码库,生成结构化改进建议,
|
|
11
|
+
> 并接入 CRSI Phase 1 pipeline(PatternAnalyzer → RuleEngine → EffectivenessTracker)。
|
|
12
|
+
|
|
13
|
+
## 核心理念
|
|
14
|
+
|
|
15
|
+
Mipham Code 审计 Mipham Code — 这是 CRSI 递归自我改进的第一个闭环:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
自读(Self-Read) → 自判(Self-Judge) → 建议(Propose) → 人审(Human Gate) → 实施(Apply)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
本次审计是只读操作,不做任何代码修改。所有发现输出为结构化报告。
|
|
22
|
+
|
|
23
|
+
## 审计维度(6 维)
|
|
24
|
+
|
|
25
|
+
### 1. 代码质量
|
|
26
|
+
|
|
27
|
+
| 检查项 | 方法 |
|
|
28
|
+
| ------------ | --------------------------------------------- |
|
|
29
|
+
| Dead code | Grep 搜索未被引用的 export、未使用的 import |
|
|
30
|
+
| 不一致模式 | 对比同一目录下多个文件的代码风格/模式差异 |
|
|
31
|
+
| 类型安全 | 搜索 `as any`、`@ts-ignore`、`unknown` 未收窄 |
|
|
32
|
+
| 错误处理 | 搜索裸 `catch`、无 `try/catch` 的 async 调用 |
|
|
33
|
+
| Deep nesting | 搜索嵌套超过 4 层的 if/for/switch |
|
|
34
|
+
|
|
35
|
+
### 2. 架构完整性
|
|
36
|
+
|
|
37
|
+
| 检查项 | 方法 |
|
|
38
|
+
| ----------- | ---------------------------------------------------------- |
|
|
39
|
+
| 循环依赖 | 分析 import 图,检测 A→B→A |
|
|
40
|
+
| 接口契约 | 对比 `shared/types.ts` 中的类型定义与实际使用 |
|
|
41
|
+
| 模块边界 | 检查是否有跨层级直接访问(ui/ 直接 import core/ 内部实现) |
|
|
42
|
+
| God objects | 搜索超过 500 行的单个类/函数 |
|
|
43
|
+
|
|
44
|
+
### 3. 性能
|
|
45
|
+
|
|
46
|
+
| 检查项 | 方法 |
|
|
47
|
+
| ------------ | ----------------------------------------------- |
|
|
48
|
+
| 同步阻塞 | 搜索 `readFileSync`、`execSync` 在主线程中 |
|
|
49
|
+
| 内存泄漏风险 | 搜索未清理的 setInterval、EventEmitter listener |
|
|
50
|
+
| 渲染性能 | 检查 React memo/callback 使用是否完整 |
|
|
51
|
+
| N+1 模式 | 搜索在循环内的 I/O 操作 |
|
|
52
|
+
|
|
53
|
+
### 4. 安全
|
|
54
|
+
|
|
55
|
+
| 检查项 | 方法 |
|
|
56
|
+
| ---------- | ---------------------------------------- |
|
|
57
|
+
| 硬编码凭据 | 搜索 API key、token、password 字符串 |
|
|
58
|
+
| 路径遍历 | 搜索使用用户输入的 `join`/`resolve` 路径 |
|
|
59
|
+
| 命令注入 | 搜索字符串拼接的 shell 命令 |
|
|
60
|
+
| 许可合规 | 检查 package.json 中的 copyleft 依赖 |
|
|
61
|
+
|
|
62
|
+
### 5. 测试覆盖
|
|
63
|
+
|
|
64
|
+
| 检查项 | 方法 |
|
|
65
|
+
| --------------- | ------------------------------------------------- |
|
|
66
|
+
| 未测试模块 | Glob 所有 `src/**/*.ts`,对比 `test/` 目录 |
|
|
67
|
+
| 关键路径覆盖 | 识别 engine、permission、tools 层,检查测试 |
|
|
68
|
+
| Flaky test 风险 | 搜索 `setTimeout`、`Math.random`、Date 依赖的测试 |
|
|
69
|
+
| 边界测试缺失 | 检查主要函数的 null/undefined/empty 参数测试 |
|
|
70
|
+
|
|
71
|
+
### 6. CRSI 集成健康
|
|
72
|
+
|
|
73
|
+
| 检查项 | 方法 |
|
|
74
|
+
| --------------- | ----------------------------------------------------- |
|
|
75
|
+
| Rule 引擎状态 | 检查活跃规则数、禁用规则数、builtin vs auto-generated |
|
|
76
|
+
| 效果追踪 | 从 EffectivenessTracker 读取规则成功率 |
|
|
77
|
+
| 模式分析器 | 检查累积的 Agent 失败模式 |
|
|
78
|
+
| AutoMemory 状态 | 检查复盘文件数量、CRSI 洞察统计 |
|
|
79
|
+
|
|
80
|
+
## 执行流程
|
|
81
|
+
|
|
82
|
+
### Phase A: 快速扫描(1-2 分钟)
|
|
83
|
+
|
|
84
|
+
生成高层概览,回答"最需要关注什么?"
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
1. Glob 所有 .ts/.tsx 文件
|
|
88
|
+
2. 统计: 文件数、行数、测试数
|
|
89
|
+
3. 快速扫描: as any / @ts-ignore / 裸 console.log
|
|
90
|
+
4. 输出: 一句话总结 + Top 5 issues
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Phase B: 深度分析(5-10 分钟)
|
|
94
|
+
|
|
95
|
+
逐维度检查,生成详细报告。
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
1. 并行启动 6 个分析 agent(每维度一个)
|
|
99
|
+
2. 每个 agent 使用 glob/grep/read 进行系统化搜索
|
|
100
|
+
3. 收集发现 → 去重 → 排序(严重度 × 影响范围)
|
|
101
|
+
4. 输出: 结构化审计报告
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Phase C: CRSI 集成
|
|
105
|
+
|
|
106
|
+
将发现接入 CRSI pipeline。
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
1. 可自动修复的 → 调用 PatternAnalyzer.toToolRule() → RuleEngine.register()
|
|
110
|
+
2. 可自动测试的 → 生成测试用例建议
|
|
111
|
+
3. 需要人工判断的 → 输出到 ~/.mipham/memory/audit-*.md
|
|
112
|
+
4. 记录到 EffectivenessTracker 供后续追踪
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 输出格式
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
# Mipham Code Self-Audit Report
|
|
119
|
+
|
|
120
|
+
**日期**: YYYY-MM-DD
|
|
121
|
+
**版本**: vX.Y.Z
|
|
122
|
+
**审计范围**: apps/cli/src/ (N files, M lines)
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 摘要
|
|
127
|
+
|
|
128
|
+
| 维度 | 评分 | 发现数 | 严重 |
|
|
129
|
+
| ---------- | ---- | ------ | ---- |
|
|
130
|
+
| 代码质量 | 7/10 | 12 | 2 |
|
|
131
|
+
| 架构完整性 | 8/10 | 3 | 0 |
|
|
132
|
+
| 性能 | 7/10 | 5 | 1 |
|
|
133
|
+
| 安全 | 8/10 | 2 | 0 |
|
|
134
|
+
| 测试覆盖 | 7/10 | 8 | 1 |
|
|
135
|
+
| CRSI 健康 | 9/10 | 0 | 0 |
|
|
136
|
+
|
|
137
|
+
## 🔴 严重 (需要立即处理)
|
|
138
|
+
|
|
139
|
+
1. **[file:line]** 问题描述 → 建议修复方案
|
|
140
|
+
|
|
141
|
+
## 🟡 改进建议
|
|
142
|
+
|
|
143
|
+
1. **[file:line]** 问题描述 → 建议修复方案
|
|
144
|
+
|
|
145
|
+
## 🟢 已自动修复 (CRSI Rule Generated)
|
|
146
|
+
|
|
147
|
+
1. **问题** → **生成的规则 ID** → **预期效果**
|
|
148
|
+
|
|
149
|
+
## CRSI 规则更新
|
|
150
|
+
|
|
151
|
+
| 规则 ID | 类型 | 状态 | 上次评估 |
|
|
152
|
+
| ------- | ---- | ------------------------ | -------- |
|
|
153
|
+
| ... | ... | active/degraded/disabled | ... |
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## 安全约束
|
|
157
|
+
|
|
158
|
+
- **只读**: 此 skill 不做任何代码修改
|
|
159
|
+
- **不推送**: 不执行 `git push`
|
|
160
|
+
- **不部署**: 不触发 CI/CD
|
|
161
|
+
- **人控闸门**: 所有建议需人工审批后才能实施
|
|
162
|
+
- **沙箱建议**: 如需实际修改代码,应使用 git worktree 隔离
|
|
163
|
+
|
|
164
|
+
## 使用方式
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
/self-audit # 快速扫描
|
|
168
|
+
/self-audit deep # 深度分析(Phase B + C)
|
|
169
|
+
/self-audit crsi # 仅 CRSI 集成健康检查
|
|
170
|
+
/self-audit report # 查看最近的审计报告
|
|
171
|
+
```
|