Files
agent-aide/aide-requirements.md
2025-12-12 03:15:49 +08:00

417 lines
11 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Aide 系统需求规格
## 一、项目背景
### 1.1 现状问题
原有 `ai-agent-memory/` 体系存在以下问题:
| 问题类型 | 具体表现 |
|---------|---------|
| 信息过载 | CLAUDE.md 包含完整流程规范,每次对话都需加载 |
| 操作繁琐 | CSV 状态需手动编辑、PlantUML 命令冗长、Git 多步操作 |
| 输出冗余 | 命令执行输出大量日志,无论成功失败 |
| 流程耦合 | AB 部分虽拆分但仍需手动切换和阅读大量文档 |
### 1.2 转型目标
将原有内容体系转化为 Command + Skill 体系:
- **CLAUDE.md 精简化**:仅保留项目文件结构说明,不再指导规则和流程
- **流程按需触发**:通过 Command 主动触发流程指导和规则启示
- **操作确定性封装**:通过 Skill + 定制脚本简化操作,减少不确定性
---
## 二、核心设计原则
### 2.1 渐进式披露
- 按需调用、触发
- 不在 CLAUDE.md 中堆积所有规则
- 用户/LLM 主动调用时才加载相关指引
### 2.2 确定性封装
- 将可变过程转化为固定接口
- 只暴露脚本程序和参数信息
- 内部处理流程固定化,减少多余输出
### 2.3 信息隔离
- LLM 只传核心语义数据
- 程序负责格式化、渲染、美化
- 返回结果极简,只含决策所需信息
### 2.4 核心与形式分离
| 类型 | 定义 | 处理方式 |
|------|------|----------|
| 核心信息 | 分析思考、优化思考、业务决策 | LLM 自由发挥,不受限制 |
| 形式问题 | 待定项呈现、状态记录、环境配置 | 程序封装,减少 token 污染 |
---
## 三、组件职责定义
### 3.1 Command命令
**本质**:对 LLM 的要求和规则
**内容焦点**
- 思考方法论:怎么分析、怎么优化、怎么执行
- 流程指导:阶段划分、核心必做、质量要求
- 决策边界:哪些由 LLM 自主完成,哪些需要用户确认
**设计要求**
- 聚焦核心思考,不涉及工具调用细节
- 指导方向而非限制形式
- 结果输出不受格式约束,让 LLM 竭尽全力发挥
### 3.2 Skill技能
**本质**:告诉 LLM 有什么工具可用
**内容焦点**
- 工具使用说明:命令、参数、输出格式
- 调用示例:典型场景的命令示例
- 输出解读:各种输出前缀的含义
**设计要求**
- 纯工具说明,不涉及流程指导
- 精简明确,便于快速查阅
- 封装形式问题,减少 LLM 认知负担
---
## 四、命令清单
### 4.1 /aide:init - 认知初始化
**触发时机**:进入项目开始工作时
**职责**
1. 介绍 aide 流程体系
2. 列出可用能力Skills
3. 说明环境和版本控制约定
**特点**
- 不执行实际操作
- 提供认知框架
### 4.2 /aide:prep - 任务准备
**触发时机**:准备开始新任务时
**职责**
1. 任务分析(理解目标、识别复杂度、分析环境)
2. 任务优化(准确性、简洁性、可执行性)
3. 待定项处理(通过 aide 程序化呈现)
4. 结果生成LLM 自由发挥,产出 task-spec.md
**核心原则**
- 分析和优化阶段:指导 LLM 思考方向,让其竭尽全力发挥
- 待定项处理:程序化呈现,减少 token 污染
- 结果生成:不受格式限制,由用户直接审阅
**运行特点**
- 轻量化:不创建工作目录、不记录状态、不 git 提交
### 4.3 /aide:exec - 任务执行
**触发时机**:任务准备完成,开始执行时
**职责**
1. 流程规划(理解细则、制定计划、环境准备)
2. 迭代实现(按计划执行、状态同步、阻塞处理)
3. 验证交付(对照标准、功能验证)
4. 文档收尾(变更记录、版本发布)
**核心原则**
- 业务代码编写LLM 自由发挥,不加程序约束
- 状态管理、版本控制:通过 aide 程序处理,避免信息污染
---
## 五、技能清单
### 5.1 aide-env - 环境管理
**用途**:检测和修复项目开发环境
**核心命令**
- `aide env check` - 检测环境(只读)
- `aide env ensure` - 检测并修复
**设计要点**
- 成功时输出极简:`✓ 环境就绪 (python:3.12)`
- 自动修复小问题时简短提示
- 仅无法修复时才需要 LLM 关注
### 5.2 aide-undetermined - 待定项处理
**用途**:程序化呈现待定项,获取用户确认
**核心命令**
- `aide undetermined add '<json>'` - 添加待定项
- `aide undetermined confirm` - 生成确认报告(给用户)
- `aide undetermined result` - 获取结果(给 LLM
**设计要点**
- LLM 传入精简 JSON 数据
- 程序渲染美化界面给用户
- 返回精简决策结果给 LLM
### 5.3 aide-workspace - 工作目录管理
**用途**:管理任务工作目录
**核心命令**
- `aide workspace init <name>` - 创建工作目录
- `aide workspace clean --keep=N` - 清理旧目录
### 5.4 aide-progress - 进度管理
**用途**:记录任务执行状态
**核心命令**
- `aide progress init <name>` - 初始化状态
- `aide progress update <phase> <status>` - 更新状态
**设计要点**
- 替代手动编辑 CSV
- 提供动态反馈和步骤引导
- 避免 LLM "跑飞"
### 5.5 aide-version - 版本控制
**用途**:管理 CHANGELOG 和 Git 操作
**核心命令**
- `aide version add <type> "<desc>"` - 添加变更
- `aide version commit "<msg>"` - Git 提交
- `aide version release [level]` - 发布版本
**设计要点**
- 封装 Git 操作,减少情况分析复杂度
- 通过有限参数控制不同需求
### 5.6 aide-build - 构建工具
**用途**:编译 PlantUML 等
**核心命令**
- `aide build plantuml <src>` - 编译
- `aide build plantuml <src> -c` - 语法检查
**设计要点**
- 集成语法检查、编译、简要输出
- 替代冗长的 java -jar 命令
---
## 六、信息流设计
### 6.1 待定项处理流程
```
LLM 程序 用户
│ │ │
│ JSON (精简数据) │ │
│─────────────────────→│ │
│ │ 渲染美化界面 │
│ │─────────────────────→│
│ │ │
│ │ 用户选择 │
│ │←─────────────────────│
│ JSON (决策结果) │ │
│←─────────────────────│ │
```
### 6.2 输出精简原则
| 场景 | 输出策略 |
|------|----------|
| 成功 | 极简确认:`✓ 操作完成` |
| 自动修复 | 简短提示:`✓ 已修复: xxx` |
| 警告 | 告知但可继续:`⚠ 警告内容` |
| 失败 | 详细原因:`✗ 失败原因及建议` |
---
## 七、LLM 自由发挥边界
### 7.1 需要程序约束的场景
- 环境检测与修复
- 待定项呈现与确认
- 状态记录与更新
- 版本控制操作
- 构建工具调用
### 7.2 不需要程序约束的场景
- 任务分析思考
- 任务优化思考
- 业务决策判断
- 任务细则编写task-spec.md
- 业务代码编写
- 结果文档产出
---
## 八、数据格式规范
### 8.1 待定项数据格式
**输入格式LLM → 程序)**
```json
{
"items": [
{
"id": "唯一标识符",
"question": "问题标题",
"description": "详细说明(可选)",
"options": [
{"value": "程序值", "label": "显示文本", "score": 0-100}
],
"recommend": "推荐选项的 value",
"reason": "推荐理由"
}
]
}
```
**输出格式(程序 → LLM**
```json
{
"decisions": [
{"id": "标识符", "chosen": "选择的 value", "custom": "自定义内容或 null"}
]
}
```
### 8.2 输出前缀规范
| 前缀 | 函数 | 用途 |
|------|------|------|
| ✓ | `ok` | 成功 |
| ⚠ | `warn` | 警告(可继续) |
| ✗ | `err` | 失败 |
| → | `info` | 进行中 |
| [n/m] | `step` | 步骤进度 |
### 8.3 配置文件 aide.toml
```toml
[env]
modules = ["python", "uv"]
[env.python]
version = ">=3.10"
venv = ".venv"
requirements = "requirements.txt"
[workspace]
output = "ai-agent-output"
format = "{timestamp}_{name}"
[progress]
phases = ["规划", "实现", "验证", "文档", "收尾"]
[version]
changelog = "CHANGELOG.md"
```
---
## 九、实施结构
### 9.1 插件目录结构
```
aide-plugin/
├── .claude-plugin/
│ └── plugin.json
├── commands/
│ ├── init.md
│ ├── prep.md
│ └── exec.md
└── skills/
├── aide-env/SKILL.md
├── aide-undetermined/SKILL.md
├── aide-workspace/SKILL.md
├── aide-progress/SKILL.md
├── aide-version/SKILL.md
└── aide-build/SKILL.md
```
### 9.2 运行时脚本结构
```
aide/
├── aide.sh # 统一入口
├── lib/
│ ├── output.sh # 输出函数ok/warn/err/info/step
│ └── config.py # 配置读取
├── env/
│ └── check.py # 环境检测
├── undetermined/
│ └── handler.py # 待定项处理
├── workspace/
│ └── manager.py # 工作目录管理
├── progress/
│ └── tracker.py # 进度管理
├── version/
│ ├── changelog.py # CHANGELOG 管理
│ └── git.sh # Git 操作
└── build/
└── plantuml.sh # PlantUML 编译
```
### 9.3 安装方式
```bash
export AIDE_ROOT="/path/to/aide"
ln -s "$AIDE_ROOT/aide.sh" ~/.local/bin/aide
```
---
## 十、实施检查清单
### 10.1 插件部分
- [ ] plugin.json 元数据
- [ ] commands/init.md - 认知初始化
- [ ] commands/prep.md - 任务准备方法论
- [ ] commands/exec.md - 任务执行方法论
- [ ] skills/aide-env/SKILL.md
- [ ] skills/aide-undetermined/SKILL.md
- [ ] skills/aide-workspace/SKILL.md
- [ ] skills/aide-progress/SKILL.md
- [ ] skills/aide-version/SKILL.md
- [ ] skills/aide-build/SKILL.md
### 10.2 运行时部分
- [ ] aide.sh 入口脚本
- [ ] lib/output.sh 输出函数
- [ ] lib/config.py 配置读取
- [ ] env/check.py 环境检测
- [ ] undetermined/handler.py 待定项处理
- [ ] workspace/manager.py 工作目录
- [ ] progress/tracker.py 进度管理
- [ ] version/changelog.py CHANGELOG
- [ ] version/git.sh Git 操作
- [ ] build/plantuml.sh PlantUML
### 10.3 验收标准
1. 三个 Command 能正确触发对应流程
2. 六个 Skill 的 aide 命令能正常执行
3. 待定项能正确渲染和返回结果
4. 输出符合精简原则