Files
agent-aide/aide-program/README.md
2025-12-13 04:37:41 +08:00

347 lines
8.9 KiB
Markdown
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 项目定位
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. **操作系统**LinuxmacOSWindows
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
**状态**待开发