Files
agent-aide/aide-marketplace/aide-plugin/docs/skill/aide.md

481 lines
10 KiB
Markdown
Raw Normal View History

2025-12-13 22:22:01 +08:00
# Aide Skill 设计文档
## 一、背景
### 1.1 解决的问题
LLM 在执行任务时需要调用各种工具,但:
| 问题 | 影响 |
|------|------|
| 命令语法分散 | 每次都要回忆或查找 |
| 输出格式不明确 | 难以正确解析结果 |
| 使用场景模糊 | 不知道何时该用什么命令 |
### 1.2 设计目标
提供**统一的工具使用指南**
- 所有 aide 子命令的语法和参数
- 输入输出格式说明
- 典型使用示例
---
## 二、职责
### 2.1 做什么
告诉 LLM
- aide 有哪些子命令可用
- 每个子命令怎么调用
- 调用后会得到什么结果
### 2.2 不做什么
- 不涉及流程指导(那是 Commands 的职责)
- 不涉及业务逻辑
- 不涉及决策判断
---
## 三、子命令索引
| 子命令 | 用途 | 详细设计 |
|--------|------|----------|
| `aide env` | 环境检测与修复 | [env.md](../../../../aide-program/docs/commands/env.md) |
| `aide flow` | 进度追踪与 git 集成 | [flow.md](../../../../aide-program/docs/commands/flow.md) |
| `aide decide` | 待定项 Web 确认 | [decide.md](../../../../aide-program/docs/commands/decide.md) |
| `aide config` | 配置读写 | [config.md](../../../../aide-program/docs/formats/config.md) |
| `aide init` | 初始化 .aide 目录 | [init.md](../../../../aide-program/docs/commands/init.md) |
---
## 四、输出格式规范
### 4.1 前缀符号
| 前缀 | 含义 | 处理方式 |
|------|------|----------|
| `✓` | 成功 | 继续执行 |
| `⚠` | 警告(可继续) | 记录后继续 |
| `✗` | 错误(需处理) | 按提示处理或告知用户 |
| `→` | 进行中/信息 | 读取信息 |
### 4.2 静默原则
**无输出 = 正常完成**
只有在需要反馈信息时才会有输出。
---
## 五、子命令接口规格
2025-12-14 05:52:59 +08:00
### 5.1 aide env list
**用途**:列出所有可用的环境检测模块
**语法**
```
aide env list
```
**输出**
```
可用模块:
模块 描述 能力 需要配置
────────────────────────────────────────────────────────────
python Python 解释器版本 check 否
uv uv 包管理器 check 否
venv Python 虚拟环境 check, ensure 是 [path]
requirements Python 依赖管理 check, ensure 是 [path]
当前启用: python, uv, venv, requirements
```
### 5.2 aide env ensure
2025-12-13 22:22:01 +08:00
**用途**:检测并修复开发环境
**语法**
```
2025-12-14 05:52:59 +08:00
aide env ensure [--runtime] [--modules M1,M2] [--all] [-v]
2025-12-13 22:22:01 +08:00
```
**参数**
| 参数 | 说明 |
|------|------|
2025-12-14 05:52:59 +08:00
| `--runtime` | 仅检查 aide 运行时环境python + uv不依赖配置文件 |
| `--modules M1,M2` | 指定要检测的模块(逗号分隔) |
| `--all` | 检测所有已启用模块,仅检查不修复 |
| `-v, --verbose` | 显示详细配置信息(工作目录、配置路径、模块配置等) |
2025-12-13 22:22:01 +08:00
**输出**
```
# 成功
2025-12-14 05:52:59 +08:00
✓ python: 3.14.2 (>=3.11)
✓ uv: uv 0.9.16
✓ venv: .venv
✓ requirements: requirements.txt
✓ 环境就绪 (python:3.14.2, uv:uv 0.9.16, venv:.venv, requirements:requirements.txt)
2025-12-13 22:22:01 +08:00
# 自动修复
2025-12-14 05:52:59 +08:00
✓ python: 3.14.2 (>=3.11)
✓ uv: uv 0.9.16
→ venv: 虚拟环境不存在: .venv尝试修复...
✓ venv: 已创建
✓ 环境就绪 (...)
# 失败(启用模块缺少配置)
✓ python: 3.14.2 (>=3.11)
✓ uv: uv 0.9.16
✗ venv: 已启用但缺少配置项: path
# --verbose 输出(供人工确认)
============================================================
环境检测详细信息
============================================================
工作目录: /home/user/myproject
配置文件: /home/user/myproject/.aide/config.toml
配置存在: 是
启用模块: python, uv, venv, requirements
目标模块: python, uv, venv, requirements
2025-12-13 22:22:01 +08:00
2025-12-14 05:52:59 +08:00
[venv] 配置:
path: .venv
path (绝对): /home/user/myproject/.venv
path (存在): 是
...
2025-12-13 22:22:01 +08:00
```
2025-12-14 05:52:59 +08:00
### 5.3 aide init
2025-12-13 22:22:01 +08:00
**用途**:初始化 .aide 目录和默认配置
**语法**
```
aide init
```
**行为**
1. 创建 `.aide/` 目录
2. 生成默认 `config.toml`
3. 检查并更新 `.gitignore`
**输出**
```
✓ 已创建默认配置 .aide/config.toml
✓ 初始化完成,.aide/ 与默认配置已准备就绪
```
2025-12-14 05:52:59 +08:00
### 5.4 aide flow
2025-12-13 22:22:01 +08:00
**用途**:进度追踪 + Git 自动提交 + 流程校验
#### aide flow start
**语法**
```
aide flow start <环节名> "<总结>"
```
**参数**
| 参数 | 说明 |
|------|------|
| `<环节名>` | task-optimize / flow-design / impl / verify / docs / finish |
| `<总结>` | 本次操作的简要说明 |
**示例**
```bash
aide flow start task-optimize "开始任务准备: 实现用户登录功能"
aide flow start flow-design "开始任务: 实现用户认证模块"
```
#### aide flow next-step
**语法**
```
aide flow next-step "<总结>"
```
**示例**
```bash
aide flow next-step "完成数据库模型设计"
```
#### aide flow back-step
**语法**
```
aide flow back-step "<原因>"
```
**示例**
```bash
aide flow back-step "发现字段命名不符合规范,需要调整"
```
#### aide flow next-part
**语法**
```
aide flow next-part <环节名> "<总结>"
```
**示例**
```bash
aide flow next-part impl "流程设计完成,开始实现"
aide flow next-part verify "实现完成,开始验证"
```
#### aide flow back-part
**语法**
```
aide flow back-part <环节名> "<原因>"
```
**示例**
```bash
aide flow back-part flow-design "实现中发现设计遗漏,需要补充"
```
#### aide flow issue
**语法**
```
aide flow issue "<描述>"
```
**示例**
```bash
aide flow issue "测试覆盖率较低,后续需要补充"
```
#### aide flow error
**语法**
```
aide flow error "<描述>"
```
**示例**
```bash
aide flow error "数据库连接失败,无法继续"
```
#### 环节名称与使用场景
| 环节名 | 说明 | 使用场景 |
|--------|------|----------|
| `task-optimize` | 任务优化 | prep 阶段 |
| `flow-design` | 流程设计 | exec 阶段 |
| `impl` | 迭代实现 | exec 阶段 |
| `verify` | 验证交付 | exec 阶段 |
| `docs` | 文档更新 | exec 阶段 |
| `finish` | 收尾 | exec 阶段 |
#### Git 集成
每次调用 aide flow 命令都会自动执行:
1. `git add .`
2. `git commit -m "[aide] <环节>: <总结>"`
#### Git 分支管理(自动)
aide flow 命令会自动管理 Git 分支:
**任务开始时**:
- 检查 git 状态,必要时自动提交保存
- 创建任务分支 `aide/NNN`(三位递增编号)
- 自动切换到任务分支
- 输出示例: `✓ 任务开始: task-optimize (分支: aide/001)`
**任务结束时**:
- 将任务分支合并回源分支
- 使用软重置生成压缩提交
- 如果源分支有新提交,会创建临时分支并警告
**分支概况文档**:
- `.aide/branches.json` - 程序读取
- `.aide/branches.md` - 人工查阅
2025-12-13 22:22:01 +08:00
#### 流程校验
aide flow 会自动校验环节跳转是否合理:
- `flow-design``impl`
- `impl``verify`
- `impl``flow-design` ✓(回退)
- `flow-design``finish` ✗(跳过环节)
2025-12-14 05:52:59 +08:00
### 5.5 aide decide
2025-12-13 22:22:01 +08:00
**用途**:通过 Web 界面处理待定项确认
2025-12-15 02:59:03 +08:00
#### aide decide submit提交数据
2025-12-13 22:22:01 +08:00
**语法**
```
2025-12-15 02:59:03 +08:00
aide decide submit '<json数据>'
2025-12-13 22:22:01 +08:00
```
**输入格式**:见 [数据格式文档](../../../../aide-program/docs/formats/data.md)
**输出**
```
→ Web 服务已启动
→ 请访问: http://localhost:3721
→ 等待用户完成决策...
```
#### aide decide result
**语法**
```
aide decide result
```
**输出格式**
```json
{
"decisions": [
{"id": 1, "chosen": "option_a"},
{"id": 2, "chosen": "option_b", "note": "用户的补充说明"}
]
}
```
> 注:`note` 字段仅在用户添加备注时出现
2025-12-14 05:52:59 +08:00
### 5.6 aide config
2025-12-13 22:22:01 +08:00
**用途**:配置读写
#### aide config get
**语法**
```
aide config get <key>
```
**参数**
- `<key>`:使用点号分隔的键名,如 `task.source`
**示例**
```bash
aide config get task.source
# 输出: → task.source = 'task-now.md'
aide config get flow.phases
# 输出: → flow.phases = ['task-optimize', 'flow-design', 'impl', 'verify', 'docs', 'finish']
```
#### aide config set
**语法**
```
aide config set <key> <value>
```
**示例**
```bash
aide config set task.source "my-task.md"
# 输出: ✓ 已更新 task.source = 'my-task.md'
```
---
## 六、典型使用场景
### 6.1 init 阶段
```bash
# 检查运行时环境
aide env ensure --runtime
# 初始化配置
aide init
# 检查项目环境
aide env ensure
```
### 6.2 prep 阶段
```bash
# 开始任务准备
aide flow start task-optimize "开始任务准备: 实现用户认证模块"
# 记录进度
aide flow next-step "任务分析完成"
aide flow next-step "任务优化完成,生成待定项"
# 处理待定项
2025-12-15 02:59:03 +08:00
aide decide submit '{"task":"...", "items":[...]}'
2025-12-13 22:22:01 +08:00
aide decide result
aide flow next-step "用户完成待定项确认"
aide flow next-step "任务准备完成"
```
### 6.3 exec 阶段
```bash
# 进入流程设计
aide flow next-part flow-design "进入流程设计环节"
# 记录设计进度
aide flow next-step "流程图设计完成"
# 进入实现
aide flow next-part impl "流程设计完成,开始实现"
# 记录实现进度
aide flow next-step "完成 User 模型定义"
aide flow next-step "完成密码加密工具"
# 记录问题
aide flow issue "部分边界情况未覆盖测试"
# 进入验证
aide flow next-part verify "实现完成,开始验证"
# 进入文档
aide flow next-part docs "验证通过,更新文档"
# 收尾
aide flow next-part finish "文档更新完成,收尾"
aide flow next-step "任务完成"
```
---
## 七、修改指南
### 7.1 修改子命令接口
1. 更新本文档对应章节
2. 修改执行文件 `../../skills/aide/SKILL.md`
3. 同步更新 [aide-program 对应文档](../../../../aide-program/docs/README.md)
### 7.2 新增子命令
1. 在本文档添加接口规格
2. 在执行文件添加使用说明
3. 更新子命令索引表
4. 在 aide-program 添加对应设计文档
---
## 八、相关文档
- [执行文件](../../skills/aide/SKILL.md)
- [aide-program 导览](../../../../aide-program/docs/README.md)
- [数据格式规范](../../../../aide-program/docs/formats/data.md)
- [plugin 导览](../README.md)