Files
agent-aide/aide-program/README.md

347 lines
8.9 KiB
Markdown
Raw Normal View History

2025-12-13 04:37:41 +08:00
# Aide 程序系统开发文档
## 一、项目概述
### 1.1 项目定位
Aide 是一套命令行工具集,用于支持 AI 辅助开发工作流。本项目实现 aide 程序的核心基础功能,包括:
- 项目初始化aide init
- 环境管理aide env
- 配置管理aide config
**注意**:本阶段不包含 `aide flow`(进度追踪)和 `aide decide`(待定项确认)的实现,这两个功能将在后续阶段开发。
### 1.2 技术栈要求
- **Python 3.10+**:主要编程语言
- **Shell 脚本**跨平台入口封装aide.sh / aide.bat
- **TOML**:配置文件格式
- **标准库优先**:尽量使用 Python 标准库,减少外部依赖
### 1.3 设计原则
1. **确定性**:相同输入产生相同输出,避免不确定性
2. **精简输出**:成功时输出极简,失败时输出详细
3. **幂等性**:重复执行不产生副作用
4. **自文档化**:配置文件包含详细注释
5. **跨平台**:支持 Linux、macOS、Windows
---
## 二、目录结构
```
aide-program/
├── README.md # 本文件:项目总览
├── docs/ # 详细设计文档
│ ├── 01-入口脚本设计.md # aide.sh / aide.bat 设计
│ ├── 02-aide-init设计.md # aide init 命令设计
│ ├── 03-aide-env设计.md # aide env 命令设计
│ ├── 04-aide-config设计.md # aide config 命令设计
│ ├── 05-配置文件规范.md # config.toml 格式规范
│ ├── 06-输出格式规范.md # 统一输出格式规范
│ └── 07-测试规范.md # 测试要求和用例
├── src/ # 源代码目录(开发时创建)
│ ├── aide.sh # Linux/macOS 入口
│ ├── aide.bat # Windows 入口
│ ├── main.py # Python 主入口
│ ├── core/ # 核心模块
│ │ ├── __init__.py
│ │ ├── config.py # 配置读写
│ │ └── output.py # 输出格式化
│ ├── commands/ # 命令实现
│ │ ├── __init__.py
│ │ ├── init.py # aide init
│ │ ├── env.py # aide env
│ │ └── config_cmd.py # aide config
│ └── utils/ # 工具函数
│ ├── __init__.py
│ └── validators.py # 验证函数
└── tests/ # 测试目录(开发时创建)
├── test_init.py
├── test_env.py
└── test_config.py
```
---
## 三、命令清单
### 3.1 本阶段实现的命令
| 命令 | 功能 | 优先级 |
|------|------|--------|
| `aide init` | 初始化 .aide 目录和配置文件 | P0 |
| `aide env ensure` | 检测并修复项目开发环境 | P0 |
| `aide env ensure --runtime` | 检测 aide 运行时环境 | P0 |
| `aide config get <key>` | 获取配置值 | P1 |
| `aide config set <key> <value>` | 设置配置值 | P1 |
### 3.2 后续阶段实现的命令
| 命令 | 功能 | 说明 |
|------|------|------|
| `aide flow ...` | 进度追踪和 git 集成 | 后续实现 |
| `aide decide ...` | 待定项确认 Web 服务 | 后续实现 |
---
## 四、开发流程
### 4.1 阅读顺序
建议按以下顺序阅读文档:
1. **README.md**(本文件)- 了解项目全貌
2. **docs/06-输出格式规范.md** - 理解统一输出格式
3. **docs/05-配置文件规范.md** - 理解配置文件结构
4. **docs/01-入口脚本设计.md** - 理解命令调用流程
5. **docs/02-aide-init设计.md** - 实现 aide init
6. **docs/03-aide-env设计.md** - 实现 aide env
7. **docs/04-aide-config设计.md** - 实现 aide config
8. **docs/07-测试规范.md** - 编写测试用例
### 4.2 开发步骤
1. **搭建基础框架**
- 创建目录结构
- 实现入口脚本aide.sh / aide.bat
- 实现 main.py 命令分发
- 实现 core/output.py 输出格式化
2. **实现核心模块**
- 实现 core/config.py 配置读写
- 实现 utils/validators.py 验证函数
3. **实现命令**
- 实现 aide init
- 实现 aide env ensure --runtime
- 实现 aide env ensure
- 实现 aide config get/set
4. **编写测试**
- 单元测试
- 集成测试
- 跨平台测试
5. **文档和打包**
- 编写用户文档
- 准备分发包
### 4.3 质量要求
1. **代码质量**
- 遵循 PEP 8 代码规范
- 函数和类必须有文档字符串
- 关键逻辑必须有注释
2. **测试覆盖**
- 核心功能测试覆盖率 ≥ 80%
- 所有错误路径必须有测试用例
- 跨平台兼容性测试
3. **用户体验**
- 输出信息清晰易懂
- 错误提示包含解决建议
- 命令执行速度快(< 1秒
---
## 五、核心概念
### 5.1 输出格式
所有 aide 命令遵循统一的输出格式:
| 前缀 | 含义 | 使用场景 |
|------|------|---------|
| `✓` | 成功 | 操作成功完成 |
| `⚠` | 警告 | 有问题但可继续 |
| `✗` | 错误 | 操作失败 |
| `→` | 信息 | 进行中或提示信息 |
**静默原则**:无输出 = 正常完成(适用于幂等操作)
### 5.2 配置文件
- **位置**`.aide/config.toml`
- **格式**TOML
- **特点**:自文档化,包含详细注释
- **访问**:通过 `aide config` 命令或 core/config.py 模块
### 5.3 数据存储
所有 aide 数据统一存放在项目根目录的 `.aide/` 下:
```
.aide/
├── config.toml # 项目配置
├── flow-status.json # 任务进度(后续实现)
├── decisions/ # 待定项记录(后续实现)
└── logs/ # 操作日志(可选)
```
### 5.4 错误处理
1. **预期错误**:返回明确的错误信息和建议
2. **非预期错误**:记录详细日志,返回简化错误信息
3. **退出码**
- 0成功
- 1一般错误
- 2参数错误
- 3环境错误
---
## 六、依赖管理
### 6.1 Python 依赖
**核心依赖**(必需):
- Python 3.10+
- 标准库os, sys, pathlib, subprocess, json, configparser
**可选依赖**
- tomli / tomllibPython 3.11+ 内置TOML 解析
- tomli-wTOML 写入
### 6.2 系统依赖
**必需**
- Python 3.10+
**可选**(用于项目环境检测):
- git
- uv / pip
---
## 七、交付物
### 7.1 必需交付物
1. **源代码**
- 完整的 Python 代码
- 入口脚本aide.sh / aide.bat
- 所有必需的模块和工具函数
2. **测试代码**
- 单元测试
- 集成测试
- 测试数据和 fixtures
3. **文档**
- 用户使用文档
- 开发者文档(如有特殊设计)
- CHANGELOG
### 7.2 可选交付物
1. **打包脚本**
- 用于生成分发包的脚本
- 安装说明
2. **CI/CD 配置**
- GitHub Actions 或其他 CI 配置
- 自动化测试流程
---
## 八、注意事项
### 8.1 设计约束
1. **不要实现 aide flow**:进度追踪功能后续实现
2. **不要实现 aide decide**:待定项确认功能后续实现
3. **不要硬编码路径**:所有路径通过配置或参数传入
4. **不要假设环境**:所有环境依赖必须检测和验证
### 8.2 兼容性要求
1. **Python 版本**:支持 3.10+
2. **操作系统**Linux、macOS、Windows
3. **路径分隔符**:使用 pathlib 处理跨平台路径
4. **编码**:统一使用 UTF-8
### 8.3 安全考虑
1. **配置文件权限**:不存储敏感信息
2. **命令注入**:所有外部命令调用必须参数化
3. **路径遍历**:验证所有文件路径
4. **输入验证**:验证所有用户输入
---
## 九、参考资料
### 9.1 项目文档
- `../aide-requirements.md`Aide 系统需求规格
- `../aide-marketplace/aide-plugin/`Commands 和 Skills 定义
- `../discuss/`:设计讨论和决策记录
### 9.2 外部资源
- [TOML 规范](https://toml.io/)
- [PEP 8 代码规范](https://pep8.org/)
- [Python pathlib 文档](https://docs.python.org/3/library/pathlib.html)
---
## 十、联系方式
如有疑问或需要澄清,请:
1. 查阅 `docs/` 目录下的详细设计文档
2. 参考 `../aide-requirements.md` 了解整体设计
3. 查看 `../discuss/` 目录了解设计决策
---
## 附录:快速开始
### A.1 验证环境
```bash
# 检查 Python 版本
python3 --version # 应该 >= 3.10
# 检查必要的库
python3 -c "import tomllib" # Python 3.11+
# 或
python3 -c "import tomli" # Python 3.10
```
### A.2 创建开发环境
```bash
# 创建虚拟环境
cd aide-program
python3 -m venv .venv
# 激活虚拟环境
source .venv/bin/activate # Linux/macOS
# 或
.venv\Scripts\activate # Windows
# 安装依赖(如需要)
pip install tomli tomli-w
```
### A.3 运行测试
```bash
# 运行所有测试
python3 -m pytest tests/
# 运行特定测试
python3 -m pytest tests/test_init.py
```
---
**版本**v1.0
**更新日期**2025-12-13
**状态**:待开发