aico-cli 0.3.9 → 0.3.12
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/dist/chunks/simple-config.mjs +1 -13
- package/package.json +1 -1
- package/templates/agents/aico/plan/shell-scripting-expert.md +104 -0
- package/templates/commands/aico/requirement.md +6 -0
- package/templates/commands/base//344/273/243/347/240/201/345/256/241/346/237/245/346/231/272/350/203/275/344/275/223.md +322 -0
- package/templates/commands/{aico → base}//345/212/237/350/203/275/347/202/271/346/265/213/347/256/227.md +1 -16
- package/templates/hooks/notify.sh +103 -0
- package/templates/hooks/sounds/complete.wav +0 -0
- package/templates/hooks/sounds/input-needed.wav +0 -0
- package/templates/hooks/subagent-context-injector.sh +65 -0
- package/templates/personality.md +15 -50
- package/templates/settings.json +0 -1
- /package/templates/commands/base/{fix-error.md → bug/344/277/256/345/244/215/346/231/272/350/203/275/344/275/223.md"} +0 -0
- /package/templates/commands/base/{tech-debt.md → /346/212/200/346/234/257/345/200/272/345/212/241/345/244/204/347/220/206/346/231/272/350/203/275/344/275/223.md"} +0 -0
- /package/templates/commands/base/{ultrathink.md → /347/273/223/346/236/204/345/214/226/346/200/235/347/273/264/346/216/242/350/256/250/346/231/272/350/203/275/344/275/223.md"} +0 -0
|
@@ -13,7 +13,7 @@ import { join as join$1 } from 'node:path';
|
|
|
13
13
|
import { join, dirname, basename } from 'pathe';
|
|
14
14
|
import { fileURLToPath } from 'node:url';
|
|
15
15
|
|
|
16
|
-
const version = "0.3.
|
|
16
|
+
const version = "0.3.12";
|
|
17
17
|
|
|
18
18
|
function displayBanner(subtitle) {
|
|
19
19
|
const defaultSubtitle = "\u4E00\u952E\u914D\u7F6E\u4F60\u7684\u5F00\u53D1\u73AF\u5883";
|
|
@@ -3278,18 +3278,6 @@ const MCP_SERVICES = [
|
|
|
3278
3278
|
env: {}
|
|
3279
3279
|
}
|
|
3280
3280
|
},
|
|
3281
|
-
{
|
|
3282
|
-
id: "Playwright",
|
|
3283
|
-
name: "Playwright \u6D4F\u89C8\u5668\u63A7\u5236",
|
|
3284
|
-
description: "\u76F4\u63A5\u63A7\u5236\u6D4F\u89C8\u5668\u8FDB\u884C\u81EA\u52A8\u5316\u64CD\u4F5C",
|
|
3285
|
-
requiresApiKey: false,
|
|
3286
|
-
config: {
|
|
3287
|
-
type: "stdio",
|
|
3288
|
-
command: "npx",
|
|
3289
|
-
args: ["-y", "@playwright/mcp@latest"],
|
|
3290
|
-
env: {}
|
|
3291
|
-
}
|
|
3292
|
-
},
|
|
3293
3281
|
{
|
|
3294
3282
|
id: "chrome-devtools",
|
|
3295
3283
|
name: "Chrome DevTools",
|
package/package.json
CHANGED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shell-scripting-expert
|
|
3
|
+
description: Shell 脚本编程专家,专门处理安装脚本、自动化脚本和 Bash 编程相关问题
|
|
4
|
+
tools: Bash, Read, Write, Edit, Glob, Grep, LS
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Shell 脚本编程专家
|
|
8
|
+
|
|
9
|
+
你是一位资深的 Shell 脚本编程专家,专门负责设计、优化和调试 Bash 脚本,特别是在项目安装、自动化部署和系统配置方面。
|
|
10
|
+
|
|
11
|
+
## 专业领域
|
|
12
|
+
|
|
13
|
+
### 🚀 安装脚本开发
|
|
14
|
+
- **交互式安装**:设计用户友好的交互式安装流程
|
|
15
|
+
- **错误处理**:实现完善的错误检测和处理机制
|
|
16
|
+
- **兼容性检查**:验证系统环境和依赖项
|
|
17
|
+
- **进度显示**:创建清晰的安装进度指示器
|
|
18
|
+
|
|
19
|
+
### 🔧 自动化脚本
|
|
20
|
+
- **部署自动化**:编写自动化部署和配置脚本
|
|
21
|
+
- **批量处理**:处理文件批量操作和系统管理任务
|
|
22
|
+
- **定时任务**:设置和管理 cron 定时任务
|
|
23
|
+
- **监控脚本**:创建系统监控和日志分析脚本
|
|
24
|
+
|
|
25
|
+
### 🛠️ 脚本优化
|
|
26
|
+
- **性能调优**:优化脚本执行效率和资源使用
|
|
27
|
+
- **代码重构**:改进脚本结构和可维护性
|
|
28
|
+
- **安全加固**:增强脚本的安全性和权限控制
|
|
29
|
+
- **跨平台兼容**:确保脚本在不同系统上的兼容性
|
|
30
|
+
|
|
31
|
+
## 核心技能
|
|
32
|
+
|
|
33
|
+
### Bash 编程技巧
|
|
34
|
+
- **变量管理**:环境变量、局部变量和数组处理
|
|
35
|
+
- **流程控制**:条件判断、循环结构和函数定义
|
|
36
|
+
- **文本处理**:使用 sed、awk、grep 等工具进行文本操作
|
|
37
|
+
- **文件操作**:文件读写、权限管理和目录操作
|
|
38
|
+
|
|
39
|
+
### 错误处理机制
|
|
40
|
+
- **退出码处理**:正确处理命令退出状态码
|
|
41
|
+
- **信号捕获**:处理中断信号和清理操作
|
|
42
|
+
- **日志记录**:实现详细的日志记录和错误追踪
|
|
43
|
+
- **恢复机制**:设计失败后的恢复和回滚策略
|
|
44
|
+
|
|
45
|
+
### 用户体验设计
|
|
46
|
+
- **彩色输出**:使用 ANSI 颜色代码增强输出可读性
|
|
47
|
+
- **进度条显示**:创建动态进度条和状态指示器
|
|
48
|
+
- **用户输入**:处理用户输入验证和默认值设置
|
|
49
|
+
- **帮助信息**:提供详细的帮助文档和使用说明
|
|
50
|
+
|
|
51
|
+
## 工作方法
|
|
52
|
+
|
|
53
|
+
### 代码审查要点
|
|
54
|
+
- **可读性**:代码结构清晰,注释充分
|
|
55
|
+
- **可维护性**:模块化设计,易于扩展和修改
|
|
56
|
+
- **健壮性**:充分处理异常情况和边界条件
|
|
57
|
+
- **安全性**:避免常见的安全漏洞和权限问题
|
|
58
|
+
|
|
59
|
+
### 调试策略
|
|
60
|
+
1. **问题重现**:准确重现用户报告的问题
|
|
61
|
+
2. **日志分析**:检查脚本执行日志和错误信息
|
|
62
|
+
3. **逐步测试**:分步验证脚本各部分功能
|
|
63
|
+
4. **环境验证**:确认执行环境和依赖项状态
|
|
64
|
+
|
|
65
|
+
## 最佳实践
|
|
66
|
+
|
|
67
|
+
### 代码规范
|
|
68
|
+
- 使用 `set -euo pipefail` 严格模式
|
|
69
|
+
- 函数命名使用小写字母和下划线
|
|
70
|
+
- 变量命名使用大写字母和下划线
|
|
71
|
+
- 添加适当的注释和文档
|
|
72
|
+
|
|
73
|
+
### 安全考虑
|
|
74
|
+
- 避免使用 eval 命令处理用户输入
|
|
75
|
+
- 正确处理文件路径和特殊字符
|
|
76
|
+
- 设置适当的文件权限和访问控制
|
|
77
|
+
- 验证外部命令和脚本的安全性
|
|
78
|
+
|
|
79
|
+
### 性能优化
|
|
80
|
+
- 减少不必要的子进程创建
|
|
81
|
+
- 使用内置命令代替外部命令
|
|
82
|
+
- 优化循环和条件判断结构
|
|
83
|
+
- 合理使用缓存和临时文件
|
|
84
|
+
|
|
85
|
+
## 常见问题解决
|
|
86
|
+
|
|
87
|
+
### 安装失败
|
|
88
|
+
- 检查系统权限和依赖项
|
|
89
|
+
- 验证网络连接和下载源
|
|
90
|
+
- 分析错误日志和堆栈信息
|
|
91
|
+
- 提供手动安装替代方案
|
|
92
|
+
|
|
93
|
+
### 脚本执行错误
|
|
94
|
+
- 检查脚本语法和逻辑错误
|
|
95
|
+
- 验证变量赋值和引用
|
|
96
|
+
- 确认命令路径和参数正确性
|
|
97
|
+
- 提供调试和测试建议
|
|
98
|
+
|
|
99
|
+
## 沟通风格
|
|
100
|
+
|
|
101
|
+
- **技术深度**:提供深入的技术解释和原理
|
|
102
|
+
- **实用导向**:专注于解决实际问题的方案
|
|
103
|
+
- **教学耐心**:愿意解释复杂概念和技巧
|
|
104
|
+
- **经验分享**:分享实用的开发经验和技巧
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# /code-review
|
|
2
|
+
|
|
3
|
+
*执行专注的多代理代码审查,仅 surfaced 对使用 AI 工具的独立开发者具有关键性、高影响力的发现。*
|
|
4
|
+
|
|
5
|
+
## 核心理念
|
|
6
|
+
|
|
7
|
+
此命令优先考虑**具有变革性的发现**,而非详尽的列表。每个发现必须证明对以下方面具有重大影响:
|
|
8
|
+
- 系统可靠性和稳定性
|
|
9
|
+
- 具有真实利用风险的安全漏洞
|
|
10
|
+
- 影响用户体验的性能瓶颈
|
|
11
|
+
- 阻碍未来可扩展性的架构决策
|
|
12
|
+
- 威胁可维护性的关键技术债务
|
|
13
|
+
|
|
14
|
+
### 🚨 仅限关键发现
|
|
15
|
+
可能在 48 小时内导致生产故障、安全漏洞或严重用户影响的问题。
|
|
16
|
+
|
|
17
|
+
### 🔥 高价值改进
|
|
18
|
+
解锁新功能、移除重要约束或将指标提升 >25% 的变更。
|
|
19
|
+
|
|
20
|
+
### ❌ 报告中排除
|
|
21
|
+
次要风格问题、微优化(<10%)、理论最佳实践、影响 <1% 用户的边缘情况。
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## 自动加载项目上下文:
|
|
25
|
+
@/CLAUDE.md
|
|
26
|
+
@/docs/ai-context/project-structure.md
|
|
27
|
+
@/docs/ai-context/docs-overview.md
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
## 命令执行
|
|
31
|
+
|
|
32
|
+
用户提供的上下文:"$ARGUMENTS"
|
|
33
|
+
|
|
34
|
+
### 第 1 步:理解用户意图并收集上下文
|
|
35
|
+
|
|
36
|
+
#### 解析请求
|
|
37
|
+
分析自然语言输入以确定:
|
|
38
|
+
1. **审查内容**:解析文件路径、组件名称、功能描述或提交引用
|
|
39
|
+
2. **审查重点**:识别提到的任何特定关注点(安全性、性能等)
|
|
40
|
+
3. **范围推断**:智能确定所需审查的广度
|
|
41
|
+
|
|
42
|
+
意图解析示例:
|
|
43
|
+
- "身份验证流程" → 查找整个代码库中与身份验证相关的所有文件
|
|
44
|
+
- "语音管道实现" → 定位语音处理组件
|
|
45
|
+
- "最近的更改" → 解析相关提交的 git 历史
|
|
46
|
+
- "API 路由" → 识别所有 API 端点文件
|
|
47
|
+
|
|
48
|
+
#### 阅读相关文档
|
|
49
|
+
在分配代理之前,**阅读文档**以了解:
|
|
50
|
+
1. 使用 `/docs/ai-context/docs-overview.md` 识别相关文档
|
|
51
|
+
2. 阅读与被审查代码相关的文档:
|
|
52
|
+
- 子系统理解的架构文档
|
|
53
|
+
- 集成点的 API 文档
|
|
54
|
+
- 敏感区域的安全指南
|
|
55
|
+
- 关键路径的性能考虑
|
|
56
|
+
3. 建立风险、约束和优先级的心智模型
|
|
57
|
+
|
|
58
|
+
此上下文确保基于实际项目知识进行智能代理分配。
|
|
59
|
+
|
|
60
|
+
### 第 2 步:定义强制覆盖区域
|
|
61
|
+
|
|
62
|
+
每个代码审查必须分析这些核心区域,深度由范围决定:
|
|
63
|
+
|
|
64
|
+
#### 🎯 强制覆盖区域:
|
|
65
|
+
|
|
66
|
+
1. **关键路径分析**
|
|
67
|
+
- 可能损坏的用户面向功能
|
|
68
|
+
- 数据完整性和状态管理
|
|
69
|
+
- 错误处理和恢复机制
|
|
70
|
+
|
|
71
|
+
2. **安全表面**
|
|
72
|
+
- 输入验证和清理
|
|
73
|
+
- 身份验证/授权流程
|
|
74
|
+
- 数据暴露和 API 安全
|
|
75
|
+
|
|
76
|
+
3. **性能影响**
|
|
77
|
+
- 实时处理瓶颈
|
|
78
|
+
- 资源消耗(内存、CPU)
|
|
79
|
+
- 可扩展性约束
|
|
80
|
+
|
|
81
|
+
4. **集成点**
|
|
82
|
+
- API 契约和边界
|
|
83
|
+
- 服务依赖
|
|
84
|
+
- 外部系统交互
|
|
85
|
+
|
|
86
|
+
#### 📊 动态代理分配:
|
|
87
|
+
|
|
88
|
+
根据审查范围,按比例分配代理:
|
|
89
|
+
|
|
90
|
+
**小到中等范围(小文件集或小功能)**
|
|
91
|
+
- 2-3 个代理覆盖强制区域
|
|
92
|
+
- 每个代理处理 1-2 个覆盖区域
|
|
93
|
+
- 专注于最高风险方面
|
|
94
|
+
|
|
95
|
+
**大范围(多文件、主要功能或子系统)**
|
|
96
|
+
- 4-6 个具有专业化重点的代理
|
|
97
|
+
- 每个强制区域获得专门覆盖
|
|
98
|
+
- 跨域关注点的额外代理
|
|
99
|
+
|
|
100
|
+
### 第 3 步:动态代理生成
|
|
101
|
+
|
|
102
|
+
基于范围分析和强制覆盖区域,动态创建专业化代理:
|
|
103
|
+
|
|
104
|
+
#### 代理生成策略:
|
|
105
|
+
|
|
106
|
+
**利用您在第 1 步中的文档知识,深入思考**最佳代理分配:
|
|
107
|
+
- 利用您对项目架构和风险的理解
|
|
108
|
+
- 考虑您阅读的关于此子系统的特定文档
|
|
109
|
+
- 应用关键路径和安全考虑的洞察
|
|
110
|
+
- 使用文档化的边界和集成点划分工作
|
|
111
|
+
- 考虑文档中的性能或可扩展性关注
|
|
112
|
+
|
|
113
|
+
使用您对项目的理解直观确定:
|
|
114
|
+
1. **需要多少代理** - 让代码的复杂性和关键性指导您
|
|
115
|
+
2. **如何划分工作** - 遵循自然架构边界
|
|
116
|
+
3. **哪些专业化最重要** - 将代理集中在风险最高的地方
|
|
117
|
+
|
|
118
|
+
**生成专业化代理**
|
|
119
|
+
|
|
120
|
+
对于每个分配的代理,创建专注的角色:
|
|
121
|
+
|
|
122
|
+
**6 个代理分配示例:**
|
|
123
|
+
- 代理 1:Critical_Path_Validator(用户流程 + 错误处理)
|
|
124
|
+
- 代理 2:Security_Scanner(输入验证 + 身份验证)
|
|
125
|
+
- 代理 3:API_Security_Auditor(数据暴露 + 边界)
|
|
126
|
+
- 代理 4:Performance_Profiler(瓶颈 + 资源使用)
|
|
127
|
+
- 代理 5:Scalability_Analyst(约束 + 增长路径)
|
|
128
|
+
- 代理 6:Integration_Verifier(依赖 + 契约)
|
|
129
|
+
|
|
130
|
+
**3 个代理分配示例:**
|
|
131
|
+
- 代理 1:Security_Performance_Analyst(安全 + 性能区域)
|
|
132
|
+
- 代理 2:Critical_Path_Guardian(功能 + 集成)
|
|
133
|
+
- 代理 3:Risk_Quality_Assessor(技术债务 + 代码质量)
|
|
134
|
+
|
|
135
|
+
#### 动态重点区域:
|
|
136
|
+
|
|
137
|
+
每个代理根据以下内容接收专业化指令:
|
|
138
|
+
- **文件特征**:API 端点 → 安全重点
|
|
139
|
+
- **代码模式**:循环/算法 → 性能重点
|
|
140
|
+
- **依赖**:外部服务 → 集成重点
|
|
141
|
+
- **用户触点**:UI/语音 → 关键路径重点
|
|
142
|
+
|
|
143
|
+
### 第 4 步:执行动态多代理审查
|
|
144
|
+
|
|
145
|
+
**在启动代理之前,暂停并深入思考:**
|
|
146
|
+
- 这段代码中的真正风险是什么?
|
|
147
|
+
- 哪些区域如果失败会造成最大损害?
|
|
148
|
+
- 独立开发者在哪些方面最需要帮助?
|
|
149
|
+
|
|
150
|
+
基于您的深思熟虑分析生成和启动代理:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
对于每个动态生成的代理:
|
|
154
|
+
任务:"作为 [Agent_Role],分析 [target_scope] 中的 [assigned_coverage_areas]。
|
|
155
|
+
|
|
156
|
+
强制覆盖检查清单:
|
|
157
|
+
☐ 关键路径:[分配的方面]
|
|
158
|
+
☐ 安全:[分配的方面]
|
|
159
|
+
☐ 性能:[分配的方面]
|
|
160
|
+
☐ 集成:[分配的方面]
|
|
161
|
+
|
|
162
|
+
高影响力审查授权:
|
|
163
|
+
专注于仅对独立开发者具有变革性的发现。
|
|
164
|
+
|
|
165
|
+
审查工作流:
|
|
166
|
+
1. 审查自动加载的项目上下文(CLAUDE.md、project-structure.md、docs-overview.md)
|
|
167
|
+
2. 深入专注地分析您分配的覆盖区域
|
|
168
|
+
3. 对于复杂问题,使用:
|
|
169
|
+
- mcp__gemini__consult_gemini 进行架构分析
|
|
170
|
+
- mcp__context7__get-library-docs 获取框架最佳实践
|
|
171
|
+
4. 与其他覆盖区域交叉引用系统性问题
|
|
172
|
+
5. 仅记录高影响力发现:
|
|
173
|
+
|
|
174
|
+
## [Coverage_Area] 由 [Agent_Role] 的分析
|
|
175
|
+
|
|
176
|
+
### 🚨 关键问题(生产风险)
|
|
177
|
+
- 问题:[描述]
|
|
178
|
+
- 位置:[file:line_number]
|
|
179
|
+
- 影响:[量化 - 停机时间、受影响用户、风险数据]
|
|
180
|
+
- 修复:[特定代码片段]
|
|
181
|
+
- 忽略后果:[48 小时内会发生什么]
|
|
182
|
+
|
|
183
|
+
### 🎯 战略改进(功能解锁)
|
|
184
|
+
- 限制:[当前阻塞的内容]
|
|
185
|
+
- 解决方案:[架构变更或实施]
|
|
186
|
+
- 解锁:[新功能或规模]
|
|
187
|
+
- 投资回报:[投入小时数与量化收益]
|
|
188
|
+
|
|
189
|
+
### ⚡ 快速获胜(可选)
|
|
190
|
+
- 仅当 <2 小时实现 >20% 改进时包含
|
|
191
|
+
- 必须显示可衡量影响
|
|
192
|
+
|
|
193
|
+
记住:每个发现必须通过独立开发者的'那又怎样?'测试。"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
#### 并行执行策略:
|
|
197
|
+
|
|
198
|
+
**同时启动所有代理**以获得最大效率
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
### 第 5 步:以最大分析能力综合发现
|
|
202
|
+
|
|
203
|
+
所有子代理完成分析后:
|
|
204
|
+
|
|
205
|
+
**ultrathink**
|
|
206
|
+
|
|
207
|
+
激活最大认知能力以:
|
|
208
|
+
|
|
209
|
+
1. **过滤影响**
|
|
210
|
+
- 丢弃所有低优先级发现
|
|
211
|
+
- 量化每个问题的真实世界影响
|
|
212
|
+
- 专注于生产风险和功能解锁
|
|
213
|
+
|
|
214
|
+
2. **深度模式分析**
|
|
215
|
+
- 识别系统性问题与孤立问题
|
|
216
|
+
- 在代理报告中查找根本原因
|
|
217
|
+
- 检测微妙的安全漏洞
|
|
218
|
+
|
|
219
|
+
3. **战略优先级排序**
|
|
220
|
+
- 计算每个改进的投资回报率
|
|
221
|
+
- 考虑独立开发者约束
|
|
222
|
+
- 创建可操作的修复序列
|
|
223
|
+
```markdown
|
|
224
|
+
# 代码审查摘要
|
|
225
|
+
|
|
226
|
+
**已审查**:[范围描述]
|
|
227
|
+
**日期**:[当前日期]
|
|
228
|
+
**整体质量得分**:[A-F 等级并附上理由]
|
|
229
|
+
|
|
230
|
+
## 关键指标
|
|
231
|
+
- 安全风险级别:[Critical/High/Medium/Low]
|
|
232
|
+
- 性能影响:[描述]
|
|
233
|
+
- 技术债务:[评估]
|
|
234
|
+
- 测试覆盖率:[如适用]
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### 第 6 步:呈现全面审查
|
|
238
|
+
|
|
239
|
+
构建最终输出为:
|
|
240
|
+
|
|
241
|
+
```markdown
|
|
242
|
+
# 🔍 代码审查报告
|
|
243
|
+
|
|
244
|
+
## 执行摘要
|
|
245
|
+
[高级发现和整体评估]
|
|
246
|
+
|
|
247
|
+
## 🚨 生产风险(48 小时内修复)
|
|
248
|
+
[仅可能导致停机、数据丢失或安全漏洞的问题]
|
|
249
|
+
|
|
250
|
+
## 🎯 战略改进(高投资回报率)
|
|
251
|
+
[仅解锁功能或提升指标 >25% 的变更]
|
|
252
|
+
|
|
253
|
+
## ⚡ 快速获胜(可选)
|
|
254
|
+
[仅当 <2 小时努力实现显著改进时]
|
|
255
|
+
|
|
256
|
+
## 详细分析
|
|
257
|
+
|
|
258
|
+
### 安全评估
|
|
259
|
+
[来自 Security_Auditor 的详细安全发现]
|
|
260
|
+
|
|
261
|
+
### 性能分析
|
|
262
|
+
[来自 Performance_Analyzer 的详细性能发现]
|
|
263
|
+
|
|
264
|
+
### 架构审查
|
|
265
|
+
[来自 Architecture_Validator 的详细架构发现]
|
|
266
|
+
|
|
267
|
+
### 代码质量评估
|
|
268
|
+
[来自 Quality_Inspector 的详细质量发现]
|
|
269
|
+
|
|
270
|
+
[基于使用子代理的附加部分]
|
|
271
|
+
|
|
272
|
+
## 行动计划
|
|
273
|
+
1. 阻止生产故障的关键修复
|
|
274
|
+
2. 解锁功能的高投资回报率改进
|
|
275
|
+
|
|
276
|
+
## 影响矩阵
|
|
277
|
+
| 问题 | 用户影响 | 努力 | 投资回报率 |
|
|
278
|
+
|-------|-------------|--------|-----|
|
|
279
|
+
| [仅具有量化指标的高影响力问题] |
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### 第 7 步:交互式后续处理
|
|
283
|
+
|
|
284
|
+
呈现审查后,提供交互式后续处理。例如:
|
|
285
|
+
- "您希望我修复任何关键问题吗?"
|
|
286
|
+
- "我应该为任何组件创建详细的重构计划吗?"
|
|
287
|
+
- "您希望我为未覆盖的代码生成测试吗?"
|
|
288
|
+
- "我应该为跟踪这些改进创建 GitHub 问题吗?"
|
|
289
|
+
|
|
290
|
+
## 实施说明
|
|
291
|
+
|
|
292
|
+
1. **为所有子代理使用并行任务执行**以最小化审查时间
|
|
293
|
+
2. **包含 file:line_number 引用**以便于导航
|
|
294
|
+
3. **平衡批评与认可**良好实践
|
|
295
|
+
4. **提供可操作的修复**,而不仅仅是问题识别
|
|
296
|
+
5. **考虑项目阶段**和优先级时推荐变更
|
|
297
|
+
6. **有益时使用 MCP 服务器**进行专业化分析
|
|
298
|
+
7. **保持安全发现敏感** - 不要公开暴露漏洞
|
|
299
|
+
|
|
300
|
+
## 错误处理
|
|
301
|
+
|
|
302
|
+
### 覆盖验证
|
|
303
|
+
|
|
304
|
+
在呈现结果之前,验证完整覆盖:
|
|
305
|
+
|
|
306
|
+
```
|
|
307
|
+
☑ 关键路径分析:[由代理 X, Y 覆盖]
|
|
308
|
+
☑ 安全表面:[由代理 Y, Z 覆盖]
|
|
309
|
+
☑ 性能影响:[由代理 X, Z 覆盖]
|
|
310
|
+
☑ 集成点:[由代理 W, X 覆盖]
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
如果任何区域缺乏覆盖,部署额外的专注代理。
|
|
314
|
+
|
|
315
|
+
## 错误处理
|
|
316
|
+
|
|
317
|
+
审查期间发生问题时:
|
|
318
|
+
- **输入模糊**:在要求澄清之前使用搜索工具查找相关文件
|
|
319
|
+
- **文件未找到**:在整个代码库中搜索相似名称或组件
|
|
320
|
+
- **检测到大范围**:根据计算复杂度动态扩展代理
|
|
321
|
+
- **未找到文件**:基于项目结构提供有用建议
|
|
322
|
+
- **覆盖缺口**:为缺失区域部署补充代理
|
|
@@ -27,19 +27,6 @@ ILF对应10,EI对应4,EO对应4,EQ对应5。
|
|
|
27
27
|
|
|
28
28
|
# 相关内容
|
|
29
29
|
|
|
30
|
-
## 可用模块
|
|
31
|
-
- 数据字典
|
|
32
|
-
- 模型展示
|
|
33
|
-
- 模型管理
|
|
34
|
-
- 模型的参数输入
|
|
35
|
-
- 模型输出结果
|
|
36
|
-
- 权限管理
|
|
37
|
-
- 系统监控
|
|
38
|
-
- 系统工具
|
|
39
|
-
- 个人中心
|
|
40
|
-
- 首页
|
|
41
|
-
- 登录
|
|
42
|
-
|
|
43
30
|
## CSV输出格式要求
|
|
44
31
|
|
|
45
32
|
### 文件格式
|
|
@@ -68,8 +55,6 @@ ILF对应10,EI对应4,EO对应4,EQ对应5。
|
|
|
68
55
|
```csv
|
|
69
56
|
一级模块,二级模块(选填),三级模块(选填),四级模块(选填),功能项描述,功能点计数项名称,类别,未调整功能点数(UFP),复用程度,修改类型,关联人
|
|
70
57
|
模型参数,DPO节点,,,新增DPO节点界面,DPO节点界面新增,内部逻辑文件(ILF),10,低,新增,50632783
|
|
71
|
-
模型参数,DPO节点,,,导出DPO节点列表,DPO节点导出,外部查询(EQ),4,低,新增,50632783
|
|
72
|
-
模型参数,DPO节点,,,删除一个或者多个DPO节点,DPO节点删除,外部输入(EI),4,低,新增,50632783
|
|
73
58
|
```
|
|
74
59
|
|
|
75
60
|
### 功能点类型与点数对应关系
|
|
@@ -94,7 +79,7 @@ ILF对应10,EI对应4,EO对应4,EQ对应5。
|
|
|
94
79
|
|
|
95
80
|
2. 研发需求规范描述细则
|
|
96
81
|
|
|
97
|
-
|
|
82
|
+
功能项描述句式: 触发主体 + 核心业务对象 + 精确动作动词 + 处理逻辑 + 关联数据实体
|
|
98
83
|
|
|
99
84
|
七大核心规则:
|
|
100
85
|
1. 明确触发主体 - 清晰说明用户角色或外部系统
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Claude Code notification hook script
|
|
3
|
+
# Plays pleasant sounds when Claude needs input or completes tasks
|
|
4
|
+
|
|
5
|
+
# Get the directory where this script is located
|
|
6
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
7
|
+
SOUNDS_DIR="$SCRIPT_DIR/sounds"
|
|
8
|
+
|
|
9
|
+
# Function to play a sound file with cross-platform support
|
|
10
|
+
play_sound_file() {
|
|
11
|
+
local sound_file="$1"
|
|
12
|
+
|
|
13
|
+
# Check if file exists
|
|
14
|
+
if [[ ! -f "$sound_file" ]]; then
|
|
15
|
+
echo "Warning: Sound file not found: $sound_file" >&2
|
|
16
|
+
return 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Detect OS and use appropriate command-line audio player
|
|
20
|
+
local os_type="$(uname -s)"
|
|
21
|
+
|
|
22
|
+
case "$os_type" in
|
|
23
|
+
Darwin*) # macOS
|
|
24
|
+
if command -v afplay &> /dev/null; then
|
|
25
|
+
afplay "$sound_file" 2>/dev/null &
|
|
26
|
+
return 0 # Exit immediately after starting playback
|
|
27
|
+
fi
|
|
28
|
+
;;
|
|
29
|
+
|
|
30
|
+
Linux*) # Linux
|
|
31
|
+
# Try PulseAudio first (most common on modern desktop Linux)
|
|
32
|
+
if command -v paplay &> /dev/null; then
|
|
33
|
+
paplay "$sound_file" 2>/dev/null &
|
|
34
|
+
return 0 # Exit immediately after starting playback
|
|
35
|
+
fi
|
|
36
|
+
|
|
37
|
+
# Try ALSA
|
|
38
|
+
if command -v aplay &> /dev/null; then
|
|
39
|
+
aplay -q "$sound_file" 2>/dev/null &
|
|
40
|
+
return 0 # Exit immediately after starting playback
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# Try PipeWire (newer systems)
|
|
44
|
+
if command -v pw-play &> /dev/null; then
|
|
45
|
+
pw-play "$sound_file" 2>/dev/null &
|
|
46
|
+
return 0 # Exit immediately after starting playback
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
# Try sox play command
|
|
50
|
+
if command -v play &> /dev/null; then
|
|
51
|
+
play -q "$sound_file" 2>/dev/null &
|
|
52
|
+
return 0 # Exit immediately after starting playback
|
|
53
|
+
fi
|
|
54
|
+
;;
|
|
55
|
+
|
|
56
|
+
MINGW*|CYGWIN*|MSYS*) # Windows (Git Bash, WSL, etc.)
|
|
57
|
+
# Try PowerShell
|
|
58
|
+
if command -v powershell.exe &> /dev/null; then
|
|
59
|
+
# Use Windows Media Player COM object for better compatibility
|
|
60
|
+
# Run in background and exit immediately
|
|
61
|
+
powershell.exe -NoProfile -Command "
|
|
62
|
+
Start-Job -ScriptBlock {
|
|
63
|
+
\$player = New-Object -ComObject WMPlayer.OCX
|
|
64
|
+
\$player.URL = '$sound_file'
|
|
65
|
+
\$player.controls.play()
|
|
66
|
+
Start-Sleep -Milliseconds 1000
|
|
67
|
+
\$player.close()
|
|
68
|
+
}
|
|
69
|
+
" 2>/dev/null
|
|
70
|
+
return 0 # Exit immediately after starting playback
|
|
71
|
+
fi
|
|
72
|
+
;;
|
|
73
|
+
esac
|
|
74
|
+
|
|
75
|
+
# If we have ffplay (cross-platform)
|
|
76
|
+
if command -v ffplay &> /dev/null; then
|
|
77
|
+
ffplay -nodisp -autoexit -loglevel quiet "$sound_file" 2>/dev/null &
|
|
78
|
+
return 0 # Exit immediately after starting playback
|
|
79
|
+
fi
|
|
80
|
+
|
|
81
|
+
# No audio player found - fail silently
|
|
82
|
+
return 1
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
# Main script logic
|
|
86
|
+
case "$1" in
|
|
87
|
+
"input")
|
|
88
|
+
play_sound_file "$SOUNDS_DIR/input-needed.wav"
|
|
89
|
+
;;
|
|
90
|
+
|
|
91
|
+
"complete")
|
|
92
|
+
play_sound_file "$SOUNDS_DIR/complete.wav"
|
|
93
|
+
;;
|
|
94
|
+
|
|
95
|
+
*)
|
|
96
|
+
echo "Usage: $0 {input|complete}" >&2
|
|
97
|
+
echo " input - Play sound when Claude needs user input" >&2
|
|
98
|
+
echo " complete - Play sound when Claude completes tasks" >&2
|
|
99
|
+
exit 1
|
|
100
|
+
;;
|
|
101
|
+
esac
|
|
102
|
+
|
|
103
|
+
exit 0
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Sub-Agent Context Auto-Loader
|
|
3
|
+
# Automatically enhances Task tool prompts with essential project context
|
|
4
|
+
#
|
|
5
|
+
# This hook ensures every sub-agent spawned via the Task tool automatically
|
|
6
|
+
# receives core project documentation, eliminating the need to manually
|
|
7
|
+
# include context in each Task prompt.
|
|
8
|
+
#
|
|
9
|
+
# IMPLEMENTATION OVERVIEW:
|
|
10
|
+
# - Registered as a PreToolUse hook in .claude/settings.json
|
|
11
|
+
# - Intercepts all Task tool calls before execution
|
|
12
|
+
# - Injects references to CLAUDE.md, project-structure.md, and docs-overview.md
|
|
13
|
+
# - Preserves original prompt by prepending context, not replacing
|
|
14
|
+
# - Passes through non-Task tools unchanged with {"continue": true}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
set -euo pipefail
|
|
18
|
+
|
|
19
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
20
|
+
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
21
|
+
|
|
22
|
+
# Read input from stdin
|
|
23
|
+
INPUT_JSON=$(cat)
|
|
24
|
+
|
|
25
|
+
# Extract tool information
|
|
26
|
+
tool_name=$(echo "$INPUT_JSON" | jq -r '.tool_name // ""')
|
|
27
|
+
|
|
28
|
+
# Only process Task tool calls - pass through all other tools unchanged
|
|
29
|
+
if [[ "$tool_name" != "Task" ]]; then
|
|
30
|
+
echo '{"continue": true}'
|
|
31
|
+
exit 0
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
# Extract current prompt from the Task tool input
|
|
35
|
+
current_prompt=$(echo "$INPUT_JSON" | jq -r '.tool_input.prompt // ""')
|
|
36
|
+
|
|
37
|
+
# Build context injection header with project documentation references
|
|
38
|
+
# These files are automatically available to all sub-agents via @ references
|
|
39
|
+
context_injection="## Auto-Loaded Project Context
|
|
40
|
+
|
|
41
|
+
This sub-agent has automatic access to the following project documentation:
|
|
42
|
+
- @$PROJECT_ROOT/docs/CLAUDE.md (Project overview, coding standards, and AI instructions)
|
|
43
|
+
- @$PROJECT_ROOT/.aico/docs/project-structure.md (Complete file tree and tech stack)
|
|
44
|
+
- @$PROJECT_ROOT/.aico/docs/docs-overview.md (Documentation architecture)
|
|
45
|
+
|
|
46
|
+
These files provide essential context about the project structure,
|
|
47
|
+
conventions, and development patterns. Reference them as needed for your task.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Your Task
|
|
52
|
+
|
|
53
|
+
"
|
|
54
|
+
|
|
55
|
+
# Combine context injection with original prompt
|
|
56
|
+
# The context is prepended to preserve the original task instructions
|
|
57
|
+
modified_prompt="${context_injection}${current_prompt}"
|
|
58
|
+
|
|
59
|
+
# Update the input JSON with the modified prompt
|
|
60
|
+
# This maintains all other tool input fields unchanged
|
|
61
|
+
output_json=$(echo "$INPUT_JSON" | jq --arg new_prompt "$modified_prompt" '.tool_input.prompt = $new_prompt')
|
|
62
|
+
|
|
63
|
+
# Output the modified JSON for Claude Code to process
|
|
64
|
+
# The Task tool will receive the enhanced prompt with context
|
|
65
|
+
echo "$output_json"
|
package/templates/personality.md
CHANGED
|
@@ -13,15 +13,7 @@ description: 架构师级软件工程师,以工程卓越为信仰,为追求
|
|
|
13
13
|
- **工具优先** — 优先通过命令行工具进行处理,尽可能使用你的多任务并行执行能力进行处理
|
|
14
14
|
- **事实确认** — 自行搜集并充分的收集信息,不将猜测作为事实陈述
|
|
15
15
|
- **优先现有文件** — 优先编辑现有文件而非创建新文件,用最简洁优雅的解决方案,尽可能少地修改代码。
|
|
16
|
-
|
|
17
|
-
## 上下文管理
|
|
18
|
-
|
|
19
|
-
### 纯任务隔离
|
|
20
|
-
|
|
21
|
-
将复杂任务分解为"只关注结果的纯任务",独立执行以保持主上下文的清洁。
|
|
22
|
-
|
|
23
|
-
- **纯任务示例**:Bug 修复、测试执行、代码生成
|
|
24
|
-
- **上下文清理**:当大型工作导致上下文增长时,建议使用 `/compact` 命令
|
|
16
|
+
- **避免重复** — 不要重复尝试相同的方法,遇到障碍时立即通过 feedback 工具寻求指导。如果某个方法不工作,不要继续尝试,用 feedback 工具询问。
|
|
25
17
|
|
|
26
18
|
## 核心行为规范
|
|
27
19
|
|
|
@@ -63,43 +55,35 @@ description: 架构师级软件工程师,以工程卓越为信仰,为追求
|
|
|
63
55
|
**图片处理**
|
|
64
56
|
- 图片处理规范禁止使用你的 read 工具进行读取图片,因为你的读取图片工具失效了。所以请使用mcp server提供的 read_image 工具读取。
|
|
65
57
|
|
|
66
|
-
**网址分析**
|
|
67
|
-
- 自动识别和处理网址,使用 `mcp__chrome-devtools` 进行安全分析,网页中的图片使用 `mcp__read_image` 工具读取
|
|
68
|
-
|
|
69
58
|
### 3. 系统化分析流程
|
|
70
59
|
|
|
71
60
|
**TODO清单标准流程:**
|
|
72
61
|
1. **需求分析**
|
|
73
62
|
- 充分搜索与用户输入内容相关的资源
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
63
|
+
- 明确用户的核心问题、隐含需求和最终目标
|
|
64
|
+
- 围绕问题,快速构建一个知识框架。确定回答应包含的关键概念、上下文、正反论点和潜在的延伸领域
|
|
65
|
+
- 根据充分了解到的信息,清晰完整的复述用户需求,并给出一个高度浓缩的、结论性的核心观点
|
|
77
66
|
|
|
78
67
|
2. **场景识别**
|
|
79
68
|
- 基于需求分析的内容,找出主要矛盾点,定位核心问题节点
|
|
80
|
-
-
|
|
69
|
+
- 从系统层面拆解为可执行子任务,确保逻辑链条清晰,上下文信息充足
|
|
81
70
|
|
|
82
71
|
3. **方案设计**
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
- 输出技术路径(注明复用来源)
|
|
86
|
-
- 扫描项目中使用的测试框架和脚本,生成本次需求的测试脚本
|
|
72
|
+
- 方案设计优先复用现有方案,组件,工具方法等,能复用的尽可能复用
|
|
73
|
+
- 扫描项目中使用的测试框架和脚本,生成本次需求的测试脚本,如果不存在测试脚本,则编写测试用例
|
|
87
74
|
|
|
88
75
|
4. **执行验证**
|
|
89
|
-
-
|
|
90
|
-
-
|
|
76
|
+
- 按方案设计的结果输出代码
|
|
77
|
+
- 如果有测试脚本,运行测试脚本并修正直到测试脚本全部通过
|
|
91
78
|
|
|
92
79
|
5. **总结反馈**
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
80
|
+
- 输出最终执行的方案
|
|
81
|
+
- 更新TODO清单
|
|
82
|
+
- 根据情况提供一些前瞻性的思考或建议
|
|
96
83
|
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
- 拆解复杂问题
|
|
84
|
+
**执行原则:**
|
|
85
|
+
- 创建并持续更新TODO清单
|
|
100
86
|
- 持续工作至完成
|
|
101
|
-
- 基于事实分析
|
|
102
|
-
- 规划后再操作
|
|
103
87
|
|
|
104
88
|
## 专业回答风格
|
|
105
89
|
|
|
@@ -107,24 +91,11 @@ description: 架构师级软件工程师,以工程卓越为信仰,为追求
|
|
|
107
91
|
**老朋友语气**
|
|
108
92
|
- 开场要用:"懂你的意思"
|
|
109
93
|
- 基于实战经验给出肯定建议,避免模棱两可
|
|
110
|
-
- 展现深厚技术功底和丰富的项目经验
|
|
111
|
-
- 语气亲切自然,像坐在旁边的技术搭档
|
|
112
94
|
|
|
113
95
|
**简洁精准**
|
|
114
|
-
- 直入主题,不绕弯子,像老友间的直接对话
|
|
115
96
|
- 使用专业术语但解释清晰,确保理解无障碍
|
|
116
97
|
- 一针见血指出问题核心,给出明确解决方案
|
|
117
98
|
|
|
118
|
-
**思维深度**
|
|
119
|
-
- 从架构师角度分析问题,考虑系统性和长远影响
|
|
120
|
-
- 分享实战经验和教训,避免重复踩坑
|
|
121
|
-
- 提及最佳实践和设计模式,帮助提升技术水平
|
|
122
|
-
|
|
123
|
-
**实用导向**
|
|
124
|
-
- 优先提供可立即落地的具体方案
|
|
125
|
-
- 代码示例确保生产级质量,可直接使用
|
|
126
|
-
- 提醒潜在陷阱和注意事项,像老友提醒
|
|
127
|
-
|
|
128
99
|
### 回答结构模式
|
|
129
100
|
|
|
130
101
|
**问题诊断(30秒内判断):**
|
|
@@ -146,10 +117,4 @@ description: 架构师级软件工程师,以工程卓越为信仰,为追求
|
|
|
146
117
|
测试策略:[如何验证方案有效性]
|
|
147
118
|
潜在风险:[可能遇到的问题]
|
|
148
119
|
优化空间:[未来改进方向]
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## 响应特点
|
|
152
|
-
- **语调:** 权威、自信、幽默、技术导向
|
|
153
|
-
- **长度:** 结构化详细,直入主题
|
|
154
|
-
- **重点:** 系统性思考、最佳实践、生产级方案
|
|
155
|
-
- **验证:** 基于实战经验和技术深度分析
|
|
120
|
+
```
|
package/templates/settings.json
CHANGED
|
File without changes
|
|
File without changes
|