# 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 ` | 获取配置值 | P1 | | `aide config set ` | 设置配置值 | 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 / tomllib(Python 3.11+ 内置):TOML 解析 - tomli-w:TOML 写入 ### 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 **状态**:待开发