Compare commits

..

10 Commits

26 changed files with 545 additions and 321 deletions

View File

@@ -1,5 +1,5 @@
{ {
"next_number": 11, "next_number": 14,
"branches": [ "branches": [
{ {
"number": 1, "number": 1,
@@ -116,6 +116,40 @@
"status": "finished", "status": "finished",
"end_commit": "2034962ecea461c8768d1cc422745ae7a293a3bc", "end_commit": "2034962ecea461c8768d1cc422745ae7a293a3bc",
"finished_at": "2025-12-17T06:35:03+08:00" "finished_at": "2025-12-17T06:35:03+08:00"
},
{
"number": 11,
"branch_name": "aide/011",
"source_branch": "master",
"start_commit": "2042238b5cda7a12cff417eeb4f9f11b7714d91d",
"task_id": "2025-12-18T10-03-32",
"task_summary": "测试",
"started_at": "2025-12-18T10:03:33+08:00",
"status": "finished",
"end_commit": "8ea9ce72954b3c2ed7417679996852cf0dfb18cb",
"finished_at": "2025-12-18T10:03:52+08:00"
},
{
"number": 12,
"branch_name": "aide/012",
"source_branch": "master",
"start_commit": "c6f45f9e36ad877b413c12c67a463d8b0c862dbc",
"task_id": "2025-12-18T10-09-00",
"task_summary": "开始任务准备: 修复 aide finish 后 .lock 文件残留问题",
"started_at": "2025-12-18T10:09:00+08:00",
"status": "active"
},
{
"number": 13,
"branch_name": "aide/013",
"source_branch": "aide/012",
"start_commit": "f4b96202d0d4407407e9291f74dd74af3b1067a9",
"task_id": "2025-12-18T10-41-43",
"task_summary": "开始任务准备: 改进 aide flow 的 git 工作流",
"started_at": "2025-12-18T10:41:43+08:00",
"status": "finished",
"end_commit": "f4b96202d0d4407407e9291f74dd74af3b1067a9",
"finished_at": "2025-12-18T11:22:54+08:00"
} }
] ]
} }

View File

@@ -1,5 +1,34 @@
# Git 分支概况 # Git 分支概况
## aide/013
- **任务**: 开始任务准备: 改进 aide flow 的 git 工作流
- **任务ID**: 2025-12-18T10-41-43
- **源分支**: aide/012
- **起始提交**: f4b9620
- **结束提交**: f4b9620
- **状态**: finished
- **时间**: 2025-12-18 10:41 ~ 11:22
## aide/012
- **任务**: 开始任务准备: 修复 aide finish 后 .lock 文件残留问题
- **任务ID**: 2025-12-18T10-09-00
- **源分支**: master
- **起始提交**: c6f45f9
- **状态**: active
- **时间**: 2025-12-18 10:09
## aide/011
- **任务**: 测试
- **任务ID**: 2025-12-18T10-03-32
- **源分支**: master
- **起始提交**: 2042238
- **结束提交**: 8ea9ce7
- **状态**: finished
- **时间**: 2025-12-18 10:03 ~ 10:03
## aide/010 ## aide/010
- **任务**: 测试 - **任务**: 测试

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@@ -0,0 +1,49 @@
@startuml program-logic
title 程序逻辑流图finish_branch_merge 重构
start
:进入 finish_branch_merge();
note right: branch.py
:获取分支信息\nbranch_info = get_active_branch_info();
if (源分支有新提交?) then (是)
:创建临时分支合并\n(保持现有逻辑);
:返回提示信息;
stop
else (否)
:进入 _merge_normal();
endif
partition "清理操作" {
:删除 .aide/*.lock;
:删除 task-spec.md;
:清空 task-now.md\n(保留文件);
:备份并删除\nflow-status.json;
:备份并删除\ndecisions/*.json;
}
partition "创建临时提交" {
:git add -A;
:git commit\n"清理任务临时文件";
}
partition "切换并合并" {
:git checkout\n源分支;
:清理 .lock 文件;
:git merge --squash\n任务分支;
:构建提交信息\n格式: {hash}的任务收尾;
:git add -A;
:git commit\n收尾提交;
}
partition "更新记录" {
:更新分支记录\nstatus = finished;
:git add -A;
:git commit\n更新分支记录;
}
:返回成功;
stop
@enduml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@@ -1,48 +1,45 @@
@startuml task-flow @startuml task-flow
!theme plain title 任务执行流程图:改进 aide flow 的 git 工作流
skinparam backgroundColor #FFFFFF
skinparam activityBackgroundColor #F5F5F5
skinparam activityBorderColor #333333
title 任务执行流程图 - 多模块调整
|#LightBlue|子计划1: 创建 skill|
start start
:读取 statements/optimize.md; :阅读任务细则;
:分析并扩展内容; note right: task-spec.md
:创建 task-parser.md;
:验证 skill 结构完整性;
|#LightGreen|子计划2: 修改 run 命令| partition "代码修改" {
:阅读现有 run.md; :修改 branch.py;
:设计口语化检测逻辑; note right
:添加 skill 触发规则; - 重构 _merge_normal()
:更新命令文档; - 添加清理函数
- 修改提交信息格式
end note
|#LightYellow|子计划3: 强化流程图规范| :修改 tracker.py;
:定义两种流程图类型; note right
:编写任务执行流程图规范; 调整 finish 触发逻辑
:编写程序逻辑流图规范; (如需要)
:更新 run.md 流程设计部分; end note
}
|#LightCoral|子计划4: 创建示例程序| partition "测试验证" {
:设计 Python 程序结构; :创建测试任务;
:创建 test-cache/demo-program/; :执行完整 flow 流程;
:实现模块化程序; :检查最终 git 历史;
:绘制程序逻辑流图;
:验证流程图规范有效性;
|#LightCyan|子计划5: 调整 git 提交顺序| if (只有 2 个提交?) then (是)
:分析 tracker.py 当前逻辑; :检查文件清理结果;
:重构 _apply_action 方法; if (清理正确?) then (是)
:确保状态先保存再提交; :验证通过;
:测试验证; else (否)
:修复清理逻辑;
|#Lavender|子计划6: 更新文档| -> 执行完整 flow 流程;
:更新 aide-plugin-skills.md; endif
:更新 aide-plugin-commands.md; else (否)
:更新 aide-program-flow.md; :修复合并逻辑;
:检查其他相关文档; -> 执行完整 flow 流程;
endif
}
:更新文档;
stop stop
@enduml @enduml

View File

@@ -1 +0,0 @@
483763

View File

@@ -0,0 +1,107 @@
{
"task_id": "2025-12-18T10-41-43",
"current_phase": "finish",
"current_step": 12,
"started_at": "2025-12-18T10:41:43+08:00",
"history": [
{
"timestamp": "2025-12-18T10:41:43+08:00",
"action": "start",
"phase": "task-optimize",
"step": 1,
"summary": "开始任务准备: 改进 aide flow 的 git 工作流",
"git_commit": "68db39fd46d28a8a22d4b8a3494d74be0fdcae47"
},
{
"timestamp": "2025-12-18T11:09:10+08:00",
"action": "next-step",
"phase": "task-optimize",
"step": 2,
"summary": "任务细则已确认",
"git_commit": "39477a4bdc09a9303d97239d1451aed22ae5739b"
},
{
"timestamp": "2025-12-18T11:09:24+08:00",
"action": "next-part",
"phase": "flow-design",
"step": 3,
"summary": "进入流程设计环节",
"git_commit": "88ae24d4a158fa17c5fd7f3cf38cf234718ef65d"
},
{
"timestamp": "2025-12-18T11:11:04+08:00",
"action": "next-step",
"phase": "flow-design",
"step": 4,
"summary": "流程图设计完成",
"git_commit": "100a1339821494213fd33272e83d4a063ed01295"
},
{
"timestamp": "2025-12-18T11:11:54+08:00",
"action": "next-part",
"phase": "impl",
"step": 5,
"summary": "流程设计完成,进入实现环节",
"git_commit": "6c2304e92cd353dd111b51082241c176a194c208"
},
{
"timestamp": "2025-12-18T11:15:53+08:00",
"action": "next-step",
"phase": "impl",
"step": 6,
"summary": "完成 branch.py 和 tracker.py 修改",
"git_commit": "5397a4f6007baca020549ef66f9945176b06513f"
},
{
"timestamp": "2025-12-18T11:18:38+08:00",
"action": "next-step",
"phase": "impl",
"step": 7,
"summary": "修复收尾提交逻辑,确保最终只有 2 个提交",
"git_commit": "59efe233b2e7976e674b39ed37739ae8ef59c162"
},
{
"timestamp": "2025-12-18T11:19:03+08:00",
"action": "next-part",
"phase": "verify",
"step": 8,
"summary": "实现完成,进入验证环节",
"git_commit": "fc347f6bd3a886a7558729d98acb124c0aa7c1c0"
},
{
"timestamp": "2025-12-18T11:20:24+08:00",
"action": "next-step",
"phase": "verify",
"step": 9,
"summary": "验证完成: 所有成功标准均已满足",
"git_commit": "f9bed1d6af0dfe2514756204045b8a51e59983f7"
},
{
"timestamp": "2025-12-18T11:20:50+08:00",
"action": "next-part",
"phase": "docs",
"step": 10,
"summary": "验证通过,进入文档环节",
"git_commit": "dee577df67aac98d65088cfa4243d9c37260812c"
},
{
"timestamp": "2025-12-18T11:22:42+08:00",
"action": "next-step",
"phase": "docs",
"step": 11,
"summary": "文档更新完成CHANGELOG.md 已更新",
"git_commit": "c7d44fc3d7b4fe1465cbd0ab20dade20cfe7de49"
},
{
"timestamp": "2025-12-18T11:22:53+08:00",
"action": "next-part",
"phase": "finish",
"step": 12,
"summary": "文档更新完成,进入收尾",
"git_commit": "41ccaa0b50054a28f543737e1eb33a9559c8b180"
}
],
"source_branch": "aide/012",
"start_commit": "f4b96202d0d4407407e9291f74dd74af3b1067a9",
"task_branch": "aide/013"
}

View File

@@ -0,0 +1,59 @@
{
"task_id": "2025-12-18T10-03-32",
"current_phase": "finish",
"current_step": 6,
"started_at": "2025-12-18T10:03:33+08:00",
"history": [
{
"timestamp": "2025-12-18T10:03:33+08:00",
"action": "start",
"phase": "task-optimize",
"step": 1,
"summary": "测试",
"git_commit": "1da821a237aef817fd3dcc1626274eb9ef5d99a5"
},
{
"timestamp": "2025-12-18T10:03:36+08:00",
"action": "next-part",
"phase": "flow-design",
"step": 2,
"summary": "test",
"git_commit": "eb2be1ce4af9d801ae3138d2a916783884ede27b"
},
{
"timestamp": "2025-12-18T10:03:40+08:00",
"action": "next-part",
"phase": "impl",
"step": 3,
"summary": "test",
"git_commit": "4338e5bf2bd1857f4bb85f39f705d7161e92de08"
},
{
"timestamp": "2025-12-18T10:03:42+08:00",
"action": "next-part",
"phase": "verify",
"step": 4,
"summary": "test",
"git_commit": "43ba3740378f6589c62f8e58f8b8af91e4d13792"
},
{
"timestamp": "2025-12-18T10:03:45+08:00",
"action": "next-part",
"phase": "docs",
"step": 5,
"summary": "test",
"git_commit": "a6520f97a893ff67c2272cf17d262a9eebb0950c"
},
{
"timestamp": "2025-12-18T10:03:52+08:00",
"action": "next-part",
"phase": "finish",
"step": 6,
"summary": "test",
"git_commit": "6dff4f3ec476eb619d0febd46f2deef01262e281"
}
],
"source_branch": "master",
"start_commit": "2042238b5cda7a12cff417eeb4f9f11b7714d91d",
"task_branch": "aide/011"
}

View File

@@ -0,0 +1,43 @@
{
"task_id": "2025-12-18T10-09-00",
"current_phase": "task-optimize",
"current_step": 4,
"started_at": "2025-12-18T10:09:00+08:00",
"history": [
{
"timestamp": "2025-12-18T10:09:00+08:00",
"action": "start",
"phase": "task-optimize",
"step": 1,
"summary": "开始任务准备: 修复 aide finish 后 .lock 文件残留问题",
"git_commit": "dcf9eb38cfc77adc5944e60d7ddb5857f43ba958"
},
{
"timestamp": "2025-12-18T10:10:40+08:00",
"action": "next-step",
"phase": "task-optimize",
"step": 2,
"summary": "问题定位完成finish 环节在锁内执行 git add导致 .lock 文件被提交",
"git_commit": "9d4f6b8a2234376ce5498fc0a0c4f3d06e2f4550"
},
{
"timestamp": "2025-12-18T10:11:18+08:00",
"action": "next-step",
"phase": "task-optimize",
"step": 3,
"summary": "修复已实现git add_all 方法排除 .lock 文件",
"git_commit": "f3de256fa3dfa6ca35020a2bac138f6f8b736581"
},
{
"timestamp": "2025-12-18T10:12:35+08:00",
"action": "next-step",
"phase": "task-optimize",
"step": 4,
"summary": "从 git 历史中移除 .lock 文件跟踪",
"git_commit": "3f2bff5ac0aa663f6eb9df2b5a6f43a45f272a68"
}
],
"source_branch": "master",
"start_commit": "c6f45f9e36ad877b413c12c67a463d8b0c862dbc",
"task_branch": "aide/012"
}

View File

@@ -1,6 +1,6 @@
# ccoptimize 项目文档 # ccoptimize 项目文档
> 最后更新2025-12-17 > 最后更新2025-12-18
## 项目概述 ## 项目概述
@@ -54,31 +54,33 @@
ccoptimize/ ccoptimize/
├── .aide/ 项目级 Aide 配置 ├── .aide/ 项目级 Aide 配置
│ ├── config.toml 配置文件 │ ├── config.toml 配置文件
│ ├── flow-status.json 当前任务进度 │ ├── branches.json 分支概况数据
│ ├── decisions/ [空目录] 决策记录 │ ├── branches.md 分支概况文档
│ ├── pending-items.json 待定项数据
│ ├── diagrams/ PlantUML 流程图 │ ├── diagrams/ PlantUML 流程图
│ ├── logs/ 历史任务归档 │ ├── logs/ 历史任务归档
│ └── project-docs/ 本文档目录 │ └── project-docs/ 本文档目录
├── aide-program/ 核心程序(~50 文件) ├── aide-program/ 核心程序(~55 文件)
│ ├── aide/ Python 源码 │ ├── aide/ Python 源码
│ │ ├── core/ 核心模块 │ │ ├── core/ 核心模块
│ │ ├── env/ 环境检测 │ │ ├── env/ 环境检测
│ │ ├── flow/ 流程追踪 │ │ ├── flow/ 流程追踪(含分支管理)
│ │ └── decide/ 待定项确认 │ │ └── decide/ 待定项确认
│ ├── bin/ 可执行脚本 │ ├── bin/ 可执行脚本
│ ├── docs/ 程序文档 │ ├── docs/ 程序文档
── lib/ 依赖库 ── lib/ 依赖库
├── aide-marketplace/ 插件市场(~15 文件) │ └── offline-installer/ 离线安装器
├── aide-marketplace/ 插件市场(~20 文件)
│ ├── .claude-plugin/ 市场配置 │ ├── .claude-plugin/ 市场配置
│ └── aide-plugin/ Aide 插件 │ └── aide-plugin/ Aide 插件(版本 2.0.8
│ ├── commands/ 斜杠命令 │ ├── commands/ 斜杠命令(含 install-linux/win
│ ├── skills/ 技能定义 │ ├── skills/ 技能定义
│ └── docs/ 插件文档 │ └── docs/ 插件文档
├── docs/ 项目文档 ├── docs/ 项目文档
│ ├── aide-overview.md 系统概述 │ ├── aide-overview.md 系统概述
│ ├── project-details.md 详细说明 │ ├── project-details.md 详细说明
│ └── 01-04 指南系列 Claude Code 指南 │ └── 01-04 指南系列 Claude Code 指南
├── statements/ 声明文档 ├── statements/ [空目录] 声明文档
├── discuss/ [空目录] 讨论记录 ├── discuss/ [空目录] 讨论记录
├── reply/ [空目录] 回复记录 ├── reply/ [空目录] 回复记录
├── CLAUDE.md Claude 配置指令 ├── CLAUDE.md Claude 配置指令

View File

@@ -1,6 +1,6 @@
# 区块计划 # 区块计划
> 最后更新2025-12-17 > 最后更新2025-12-18
## 项目概况 ## 项目概况
@@ -17,20 +17,22 @@
ccoptimize/ ccoptimize/
├── .aide/ Aide 配置和数据目录 ├── .aide/ Aide 配置和数据目录
│ ├── config.toml 项目配置文件 │ ├── config.toml 项目配置文件
│ ├── decisions/ [空目录] 待定项决策记录 │ ├── branches.json 分支概况数据
│ ├── branches.md 分支概况文档
│ ├── pending-items.json 待定项数据
│ ├── diagrams/ 流程图目录(含 .puml 和 .png │ ├── diagrams/ 流程图目录(含 .puml 和 .png
│ ├── flow-status.json 当前任务进度
│ ├── logs/ 历史任务归档 │ ├── logs/ 历史任务归档
│ └── project-docs/ 项目文档目录(本文档所在) │ └── project-docs/ 项目文档目录(本文档所在)
├── aide-marketplace/ Aide 插件市场 ├── aide-marketplace/ Aide 插件市场
│ ├── .claude-plugin/ 插件市场配置 │ ├── .claude-plugin/ 插件市场配置
│ └── aide-plugin/ Aide 插件源码 │ └── aide-plugin/ Aide 插件源码(版本 2.0.8
├── aide-program/ Aide 主程序 ├── aide-program/ Aide 主程序
│ ├── .aide/ 程序级配置 │ ├── .aide/ 程序级配置
│ ├── aide/ Python 源码目录 │ ├── aide/ Python 源码目录
│ ├── bin/ 可执行脚本 │ ├── bin/ 可执行脚本
│ ├── docs/ 程序文档 │ ├── docs/ 程序文档
│ ├── lib/ 依赖库plantuml.jar │ ├── lib/ 依赖库plantuml.jar
│ ├── offline-installer/ 离线安装器
│ ├── .venv/ [ignored] 虚拟环境 │ ├── .venv/ [ignored] 虚拟环境
│ ├── requirements.txt 依赖清单 │ ├── requirements.txt 依赖清单
│ └── .gitignore 忽略规则 │ └── .gitignore 忽略规则
@@ -50,9 +52,7 @@ ccoptimize/
│ ├── project-details.md │ ├── project-details.md
│ └── 为什么要更换到command+skill+专用处理程序.md │ └── 为什么要更换到command+skill+专用处理程序.md
├── reply/ [空目录] 回复目录 ├── reply/ [空目录] 回复目录
├── statements/ 声明文档目录 ├── statements/ [空目录] 声明文档目录
│ ├── old-task-section.md
│ └── optimize.md
├── AGENTS.md Agent 配置说明 ├── AGENTS.md Agent 配置说明
├── CHANGELOG.md 变更日志 ├── CHANGELOG.md 变更日志
├── CLAUDE.md Claude 配置指令 ├── CLAUDE.md Claude 配置指令
@@ -67,52 +67,44 @@ ccoptimize/
### 区块 1aide-program核心程序 ### 区块 1aide-program核心程序
- **路径**`aide-program/` - **路径**`aide-program/`
- **文件数**:约 50 个源码文件 - **文件数**:约 55 个源码文件
- **空目录**2 个decisions/, logs/ - **空目录**2 个decisions/, logs/
- **状态**待处理 - **状态**已完成
- **说明**Aide 命令行工具的核心实现,包括: - **说明**Aide 命令行工具的核心实现,包括:
- `aide/core/` - 核心功能模块(配置、输出) - `aide/core/` - 核心功能模块(配置、输出)
- `aide/env/` - 环境检测模块 - `aide/env/` - 环境检测模块
- `aide/flow/` - 流程追踪模块 - `aide/flow/` - 流程追踪模块(含分支管理)
- `aide/decide/` - 待定项确认模块 - `aide/decide/` - 待定项确认模块
- `bin/` - 可执行脚本 - `bin/` - 可执行脚本
- `docs/` - 程序文档 - `docs/` - 程序文档
- `offline-installer/` - 离线安装器Linux/Windows
### 区块 2aide-marketplace插件市场 ### 区块 2aide-marketplace插件市场
- **路径**`aide-marketplace/` - **路径**`aide-marketplace/`
- **文件数**:约 15 个文件 - **文件数**:约 20 个文件
- **空目录**0 个 - **空目录**0 个
- **状态**待处理 - **状态**已完成
- **说明**Aide 插件市场和 aide-plugin 源码,包括: - **说明**Aide 插件市场和 aide-plugin 源码(版本 2.0.8,包括:
- `.claude-plugin/` - 市场配置 - `.claude-plugin/` - 市场配置
- `aide-plugin/commands/` - 斜杠命令定义 - `aide-plugin/commands/` - 斜杠命令定义(含 install-linux、install-win
- `aide-plugin/skills/` - 技能定义 - `aide-plugin/skills/` - 技能定义
- `aide-plugin/docs/` - 插件文档 - `aide-plugin/docs/` - 插件文档
### 区块 3项目配置(根目录配置 ### 区块 3项目配置与文档(合并原区块 3 和 4
- **路径**`.aide/`, 根目录配置文件 - **路径**`.aide/`, `docs/`, `discuss/`, `reply/`, `statements/`, 根目录配置文件
- **文件数**:约 15 个文件 - **文件数**:约 25 个文件
- **空目录**1decisions/ - **空目录**3discuss/, reply/, statements/
- **状态**待处理 - **状态**已完成
- **说明**:项目级配置Aide 数据目录,包括: - **说明**:项目级配置Aide 数据目录和项目文档资源,包括:
- `.aide/config.toml` - 项目配置 - `.aide/config.toml` - 项目配置
- `.aide/branches.json/.md` - 分支概况数据
- `.aide/pending-items.json` - 待定项数据
- `.aide/diagrams/` - 流程图 - `.aide/diagrams/` - 流程图
- `.aide/flow-status.json` - 任务状态
- 根目录 `.md` 文件
### 区块 4项目文档与资源
- **路径**`docs/`, `discuss/`, `reply/`, `statements/`
- **文件数**:约 10 个文件
- **空目录**2 个discuss/, reply/
- **状态**:待处理
- **说明**:项目文档和资源文件目录,包括:
- `docs/` - 指南和概览文档 - `docs/` - 指南和概览文档
- `statements/` - 声明文档 - `discuss/`, `reply/`, `statements/` - [空目录]
- `discuss/` - [空目录] 讨论记录 - 根目录 `.md` 文件
- `reply/` - [空目录] 回复记录
## 被忽略项清单 ## 被忽略项清单

View File

@@ -1,7 +1,7 @@
# aide-marketplace插件市场 # aide-marketplace插件市场
> 路径:`aide-marketplace/` > 路径:`aide-marketplace/`
> 最后更新2025-12-17 > 最后更新2025-12-18
## 概述 ## 概述
@@ -15,9 +15,11 @@ aide-marketplace/
│ └── marketplace.json 市场元数据 │ └── marketplace.json 市场元数据
└── aide-plugin/ Aide 插件 └── aide-plugin/ Aide 插件
├── .claude-plugin/ 插件配置 ├── .claude-plugin/ 插件配置
│ └── plugin.json 插件元数据(版本 2.0.6 │ └── plugin.json 插件元数据(版本 2.0.8
├── commands/ 斜杠命令定义 ├── commands/ 斜杠命令定义
│ ├── docs.md /aide:docs 文档管理400 行) │ ├── docs.md /aide:docs 文档管理400 行)
│ ├── install-linux.md /aide:install-linux Linux 环境安装692 行)
│ ├── install-win.md /aide:install-win Windows 环境安装
│ ├── load.md /aide:load 项目认知载入96 行) │ ├── load.md /aide:load 项目认知载入96 行)
│ ├── run.md /aide:run 任务执行392 行) │ ├── run.md /aide:run 任务执行392 行)
│ └── setup.md /aide:setup 环境配置93 行) │ └── setup.md /aide:setup 环境配置93 行)
@@ -47,8 +49,10 @@ aide-marketplace/
| 文件 | 类型 | 说明 | | 文件 | 类型 | 说明 |
|------|------|------| |------|------|------|
| .claude-plugin/marketplace.json | 配置 | 市场元数据,定义市场名和插件列表 | | .claude-plugin/marketplace.json | 配置 | 市场元数据,定义市场名和插件列表 |
| aide-plugin/.claude-plugin/plugin.json | 配置 | 插件元数据,版本 2.0.6 | | aide-plugin/.claude-plugin/plugin.json | 配置 | 插件元数据,版本 2.0.8 |
| aide-plugin/commands/docs.md | Command | /aide:docs 项目文档管理流程 | | aide-plugin/commands/docs.md | Command | /aide:docs 项目文档管理流程 |
| aide-plugin/commands/install-linux.md | Command | /aide:install-linux Linux 环境安装流程 |
| aide-plugin/commands/install-win.md | Command | /aide:install-win Windows 环境安装流程 |
| aide-plugin/commands/load.md | Command | /aide:load 项目认知载入流程 | | aide-plugin/commands/load.md | Command | /aide:load 项目认知载入流程 |
| aide-plugin/commands/run.md | Command | /aide:run 任务执行核心流程 | | aide-plugin/commands/run.md | Command | /aide:run 任务执行核心流程 |
| aide-plugin/commands/setup.md | Command | /aide:setup 环境配置流程 | | aide-plugin/commands/setup.md | Command | /aide:setup 环境配置流程 |
@@ -64,6 +68,8 @@ aide-marketplace/
| 命令 | 职责 | 触发 Skill | 独立运行 | | 命令 | 职责 | 触发 Skill | 独立运行 |
|------|------|------------|----------| |------|------|------------|----------|
| `/aide:setup` | 环境配置(分析、检测、修复) | env-config | 是 | | `/aide:setup` | 环境配置(分析、检测、修复) | env-config | 是 |
| `/aide:install-linux` | Linux 环境安装 | aide | 是 |
| `/aide:install-win` | Windows 环境安装 | aide | 是 |
| `/aide:load` | 项目认知载入 | aide | 否(由 run 调用) | | `/aide:load` | 项目认知载入 | aide | 否(由 run 调用) |
| `/aide:docs` | 项目文档创建和维护 | aide | 是 | | `/aide:docs` | 项目文档创建和维护 | aide | 是 |
| `/aide:run` | 任务执行(核心命令) | aide | 否 | | `/aide:run` | 任务执行(核心命令) | aide | 否 |
@@ -134,7 +140,7 @@ task-optimize → flow-design → impl → verify → docs → finish
```json ```json
{ {
"name": "aide-plugin", "name": "aide-plugin",
"version": "2.0.6", "version": "2.0.8",
"description": "Aide 工作流体系插件" "description": "Aide 工作流体系插件"
} }
``` ```
@@ -150,6 +156,6 @@ task-optimize → flow-design → impl → verify → docs → finish
- Commands 定义"做什么"和"按什么顺序做" - Commands 定义"做什么"和"按什么顺序做"
- Skills 定义"怎么调用工具" - Skills 定义"怎么调用工具"
2. **版本管理**:当前版本 2.0.6,原 `/aide:init``/aide:prep``/aide:exec` 已重组为 `/aide:setup``/aide:load``/aide:docs``/aide:run` 2. **版本管理**:当前版本 2.0.8,原 `/aide:init``/aide:prep``/aide:exec` 已重组为 `/aide:setup``/aide:load``/aide:docs``/aide:run`,并新增 `/aide:install-linux``/aide:install-win` 环境安装命令
3. **触发机制**Skills 按需触发,避免信息过载 3. **触发机制**Skills 按需触发,避免信息过载

View File

@@ -1,7 +1,7 @@
# aide-program核心程序 # aide-program核心程序
> 路径:`aide-program/` > 路径:`aide-program/`
> 最后更新2025-12-17 > 最后更新2025-12-18
## 概述 ## 概述
@@ -13,8 +13,7 @@ Aide 命令行工具的核心实现,提供环境检测、流程追踪、待定
aide-program/ aide-program/
├── .aide/ 程序级 Aide 配置 ├── .aide/ 程序级 Aide 配置
│ ├── config.toml 配置文件 │ ├── config.toml 配置文件
── decisions/ [空目录] 决策记录 ── decisions/ [空目录] 决策记录
│ └── logs/ [空目录] 日志归档
├── aide/ Python 源码包 ├── aide/ Python 源码包
│ ├── __init__.py 包入口docstring │ ├── __init__.py 包入口docstring
│ ├── __main__.py 模块入口 │ ├── __main__.py 模块入口
@@ -47,6 +46,7 @@ aide-program/
│ │ ├── storage.py 状态存储147 行) │ │ ├── storage.py 状态存储147 行)
│ │ ├── validator.py 流程校验55 行) │ │ ├── validator.py 流程校验55 行)
│ │ ├── git.py Git 集成79 行) │ │ ├── git.py Git 集成79 行)
│ │ ├── branch.py 分支管理462 行)
│ │ ├── hooks.py 环节钩子148 行) │ │ ├── hooks.py 环节钩子148 行)
│ │ ├── errors.py 错误类型9 行) │ │ ├── errors.py 错误类型9 行)
│ │ └── utils.py 工具函数19 行) │ │ └── utils.py 工具函数19 行)
@@ -94,6 +94,15 @@ aide-program/
│ └── data.md 数据格式 │ └── data.md 数据格式
├── lib/ 依赖库 ├── lib/ 依赖库
│ └── plantuml.jar PlantUML二进制 │ └── plantuml.jar PlantUML二进制
├── offline-installer/ 离线安装器目录
│ ├── linux/ Linux 安装
│ │ ├── install.sh 安装脚本470 行)
│ │ ├── README.md 安装说明
│ │ └── resources.json 资源配置
│ └── windows/ Windows 安装
│ ├── install.ps1 PowerShell 安装脚本405 行)
│ ├── README.md 安装说明
│ └── resources.json 资源配置
├── .venv/ [ignored] 虚拟环境 ├── .venv/ [ignored] 虚拟环境
├── requirements.txt Python 依赖 ├── requirements.txt Python 依赖
└── .gitignore 忽略规则 └── .gitignore 忽略规则
@@ -125,6 +134,7 @@ aide-program/
| aide/flow/storage.py | 源码 | 状态文件读写和归档 | | aide/flow/storage.py | 源码 | 状态文件读写和归档 |
| aide/flow/validator.py | 源码 | 环节跳转校验 | | aide/flow/validator.py | 源码 | 环节跳转校验 |
| aide/flow/git.py | 源码 | Git 操作封装 | | aide/flow/git.py | 源码 | Git 操作封装 |
| aide/flow/branch.py | 源码 | 分支管理器,任务分支创建、记录、合并 |
| aide/flow/hooks.py | 源码 | PlantUML/CHANGELOG 钩子 | | aide/flow/hooks.py | 源码 | PlantUML/CHANGELOG 钩子 |
| aide/flow/errors.py | 源码 | FlowError 异常类 | | aide/flow/errors.py | 源码 | FlowError 异常类 |
| aide/flow/utils.py | 源码 | 时间戳和文本处理 | | aide/flow/utils.py | 源码 | 时间戳和文本处理 |

View File

@@ -1,7 +1,7 @@
# 项目配置与文档 # 项目配置与文档
> 路径:`.aide/`, `docs/`, `discuss/`, `reply/`, `statements/`, 根目录配置文件 > 路径:`.aide/`, `docs/`, `discuss/`, `reply/`, `statements/`, 根目录配置文件
> 最后更新2025-12-17 > 最后更新2025-12-18
## 概述 ## 概述
@@ -13,8 +13,9 @@
ccoptimize/ ccoptimize/
├── .aide/ Aide 配置和数据目录 ├── .aide/ Aide 配置和数据目录
│ ├── config.toml 项目配置文件225 行,全注释) │ ├── config.toml 项目配置文件225 行,全注释)
│ ├── flow-status.json 当前任务进度 │ ├── branches.json 分支概况数据JSON
│ ├── decisions/ [空目录] 待定项决策记录 │ ├── branches.md 分支概况文档Markdown
│ ├── pending-items.json 待定项数据
│ ├── diagrams/ 流程图目录 │ ├── diagrams/ 流程图目录
│ │ ├── *.puml PlantUML 源文件 │ │ ├── *.puml PlantUML 源文件
│ │ └── *.png 生成的图片 │ │ └── *.png 生成的图片
@@ -37,9 +38,7 @@ ccoptimize/
│ └── 为什么要更换到command+skill+专用处理程序.md 设计背景 │ └── 为什么要更换到command+skill+专用处理程序.md 设计背景
├── discuss/ [空目录] 讨论记录目录 ├── discuss/ [空目录] 讨论记录目录
├── reply/ [空目录] 回复记录目录 ├── reply/ [空目录] 回复记录目录
├── statements/ 声明文档目录 ├── statements/ [空目录] 声明文档目录
│ ├── old-task-section.md 历史任务节选
│ └── optimize.md 口头话解析准则
├── AGENTS.md Agent 配置说明 ├── AGENTS.md Agent 配置说明
├── CHANGELOG.md 变更日志 ├── CHANGELOG.md 变更日志
├── CLAUDE.md Claude 配置指令 ├── CLAUDE.md Claude 配置指令
@@ -54,8 +53,9 @@ ccoptimize/
| 文件 | 类型 | 说明 | | 文件 | 类型 | 说明 |
|------|------|------| |------|------|------|
| .aide/config.toml | 配置 | 项目配置,全注释自文档化 | | .aide/config.toml | 配置 | 项目配置,全注释自文档化 |
| .aide/flow-status.json | 数据 | 当前任务进度状态 | | .aide/branches.json | 数据 | 分支概况数据JSON 格式) |
| .aide/decisions/ | 目录 | [空目录] 待定项决策记录 | | .aide/branches.md | 文档 | 分支概况文档Markdown 格式) |
| .aide/pending-items.json | 数据 | 待定项数据 |
| .aide/diagrams/ | 目录 | PlantUML 流程图 | | .aide/diagrams/ | 目录 | PlantUML 流程图 |
| .aide/logs/ | 目录 | 历史任务归档 | | .aide/logs/ | 目录 | 历史任务归档 |
| .aide/project-docs/ | 目录 | 面向 LLM 的项目文档 | | .aide/project-docs/ | 目录 | 面向 LLM 的项目文档 |
@@ -68,8 +68,7 @@ ccoptimize/
| docs/为什么要更换...md | 文档 | 架构设计背景说明 | | docs/为什么要更换...md | 文档 | 架构设计背景说明 |
| discuss/ | 目录 | [空目录] 讨论记录 | | discuss/ | 目录 | [空目录] 讨论记录 |
| reply/ | 目录 | [空目录] 回复记录 | | reply/ | 目录 | [空目录] 回复记录 |
| statements/old-task-section.md | 文档 | 历史任务节选 | | statements/ | 目录 | [空目录] 声明文档 |
| statements/optimize.md | 文档 | 口头话解析准则 |
| AGENTS.md | 配置 | Agent 配置说明 | | AGENTS.md | 配置 | Agent 配置说明 |
| CHANGELOG.md | 文档 | 变更日志 | | CHANGELOG.md | 文档 | 变更日志 |
| CLAUDE.md | 配置 | Claude 指令(简体中文要求) | | CLAUDE.md | 配置 | Claude 指令(简体中文要求) |
@@ -157,7 +156,7 @@ Claude Code 功能的完整指南系列:
|------|----------| |------|----------|
| discuss/ | 项目讨论记录存放目录 | | discuss/ | 项目讨论记录存放目录 |
| reply/ | 项目回复记录存放目录 | | reply/ | 项目回复记录存放目录 |
| .aide/decisions/ | aide decide 决策记录 | | statements/ | 声明文档目录(历史文件已清理) |
## 依赖关系 ## 依赖关系

View File

@@ -2,6 +2,26 @@
本文件记录 Aide 项目对使用者可见的重要变更。 本文件记录 Aide 项目对使用者可见的重要变更。
## 2025-12-18
### 变更
**aide flow finish 流程重构**
- 简化 git 历史finish 后原分支只保留 2 个提交(起始 + 收尾)
- 收尾提交信息格式改为:`{起始哈希}的任务收尾`
- 分支记录不再保存 `end_commit`(简化数据结构)
**finish 时自动清理任务文件**
- 删除 `.aide/*.lock` 文件
- 删除任务细则文件(`task.spec` 配置路径)
- 清空任务原文件(`task.source` 配置路径,保留文件本身)
- 备份并删除 `flow-status.json``.aide/logs/{task_id}-status.json`
- 备份并删除 `decisions/*.json``.aide/logs/{task_id}-decisions/`
### 修改的文件
- `aide-program/aide/flow/branch.py` - 重构 `_merge_normal()` 方法,新增 `_cleanup_task_files()` 清理函数
- `aide-program/aide/flow/tracker.py` - 传递 `ConfigManager``BranchManager`
## 2025-12-17 ## 2025-12-17
### 修复 ### 修复
@@ -157,3 +177,4 @@
- 实现 `aide flow`(进度追踪 + Git 自动提交 + 流程校验 + Hooks - 实现 `aide flow`(进度追踪 + Git 自动提交 + 流程校验 + Hooks
- 补充 `aide flow` 详细设计文档与导航链路 - 补充 `aide flow` 详细设计文档与导航链路

View File

@@ -3,14 +3,18 @@
from __future__ import annotations from __future__ import annotations
import json import json
import shutil
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any, TYPE_CHECKING
from aide.flow.errors import FlowError from aide.flow.errors import FlowError
from aide.flow.git import GitIntegration from aide.flow.git import GitIntegration
from aide.flow.utils import now_iso from aide.flow.utils import now_iso
if TYPE_CHECKING:
from aide.core.config import ConfigManager
@dataclass @dataclass
class BranchInfo: class BranchInfo:
@@ -86,13 +90,15 @@ class BranchesData:
class BranchManager: class BranchManager:
"""管理 aide flow 任务分支""" """管理 aide flow 任务分支"""
def __init__(self, root: Path, git: GitIntegration): def __init__(self, root: Path, git: GitIntegration, cfg: "ConfigManager"):
self.root = root self.root = root
self.git = git self.git = git
self.cfg = cfg
self.aide_dir = root / ".aide" self.aide_dir = root / ".aide"
self.branches_json = self.aide_dir / "branches.json" self.branches_json = self.aide_dir / "branches.json"
self.branches_md = self.aide_dir / "branches.md" self.branches_md = self.aide_dir / "branches.md"
self.lock_path = self.aide_dir / "flow-status.lock" self.lock_path = self.aide_dir / "flow-status.lock"
self.logs_dir = self.aide_dir / "logs"
self._data: BranchesData | None = None self._data: BranchesData | None = None
self._current_branch_info: BranchInfo | None = None self._current_branch_info: BranchInfo | None = None
@@ -104,6 +110,71 @@ class BranchManager:
except OSError: except OSError:
pass pass
def _cleanup_task_files(self, task_id: str) -> None:
"""清理任务相关文件
- 删除 .aide/*.lock
- 删除任务细则文件 (task.spec)
- 清空任务原文件 (task.source),保留文件本身
- 备份并删除 flow-status.json
- 备份并删除 decisions/*.json
"""
# 确保 logs 目录存在
self.logs_dir.mkdir(parents=True, exist_ok=True)
# 1. 删除所有 .lock 文件
for lock_file in self.aide_dir.glob("*.lock"):
try:
lock_file.unlink()
except OSError:
pass
# 2. 删除任务细则文件
task_spec = self.cfg.get_value("task.spec")
if task_spec:
spec_path = self.root / task_spec
if spec_path.exists():
try:
spec_path.unlink()
except OSError:
pass
# 3. 清空任务原文件(保留文件本身)
task_source = self.cfg.get_value("task.source")
if task_source:
source_path = self.root / task_source
if source_path.exists():
try:
source_path.write_text("", encoding="utf-8")
except OSError:
pass
# 4. 备份并删除 flow-status.json
status_path = self.aide_dir / "flow-status.json"
if status_path.exists():
backup_name = f"{task_id}-status.json"
backup_path = self.logs_dir / backup_name
try:
shutil.copy2(status_path, backup_path)
status_path.unlink()
except OSError:
pass
# 5. 备份并删除 decisions/*.json
decisions_dir = self.aide_dir / "decisions"
if decisions_dir.exists():
decision_files = list(decisions_dir.glob("*.json"))
if decision_files:
# 创建备份目录
backup_decisions_dir = self.logs_dir / f"{task_id}-decisions"
backup_decisions_dir.mkdir(parents=True, exist_ok=True)
for decision_file in decision_files:
try:
shutil.copy2(decision_file, backup_decisions_dir / decision_file.name)
decision_file.unlink()
except OSError:
pass
def load_branches(self) -> BranchesData: def load_branches(self) -> BranchesData:
"""加载分支概况""" """加载分支概况"""
if self._data is not None: if self._data is not None:
@@ -319,33 +390,37 @@ class BranchManager:
branch_info: BranchInfo, branch_info: BranchInfo,
task_summary: str, task_summary: str,
) -> tuple[bool, str]: ) -> tuple[bool, str]:
"""正常合并流程squash 合并任务分支到源分支""" """正常合并流程:清理 → 临时提交 → squash 合并 → 收尾提交"""
source_branch = branch_info.source_branch source_branch = branch_info.source_branch
task_branch = branch_info.branch_name task_branch = branch_info.branch_name
task_id = branch_info.task_id
start_commit = branch_info.start_commit
# 切回源分支 # 1. 执行任务文件清理(在工作分支上)
self._cleanup_task_files(task_id)
# 2. 创建临时提交保存清理后的变更
self.git.add_all()
self.git.commit("[aide] 清理任务临时文件")
# 3. 切回源分支
self.git.checkout(source_branch) self.git.checkout(source_branch)
# 切换分支后清理 lock 文件(确保 master 上的 lock 文件也被删除) # 切换分支后清理 lock 文件
self._cleanup_lock_file() self._cleanup_lock_file()
# squash 合并任务分支 # 4. squash 合并任务分支
self.git.merge_squash(task_branch) self.git.merge_squash(task_branch)
# 创建压缩提交(结束提交 # 5. 先更新分支记录(不再记录 end_commit
self.git.add_all() self.record_branch_finish(status="finished")
commit_msg = f"[aide] 任务: {task_summary}"
end_commit = self.git.commit(commit_msg)
# 记录完成(更新 branches.json/md # 6. 创建收尾提交(包含 squash 内容和分支记录更新
self.record_branch_finish( # 格式:{起始哈希}的任务收尾
status="finished",
end_commit=end_commit,
)
# 收尾提交:清理工作区(包含 branches.json/md 的更新)
self.git.add_all() self.git.add_all()
self.git.commit("[aide] 收尾: 更新分支记录") short_hash = start_commit[:7] if start_commit else "unknown"
commit_msg = f"{short_hash}的任务收尾"
self.git.commit(commit_msg)
return True, f"任务分支已合并到 {source_branch}" return True, f"任务分支已合并到 {source_branch}"

View File

@@ -25,8 +25,8 @@ class GitIntegration:
def add_all(self) -> None: def add_all(self) -> None:
self.ensure_repo() self.ensure_repo()
# 使用 -A 确保删除的文件也被暂存 # 使用 -A 确保删除的文件也被暂存,排除 .lock 文件避免锁文件被提交
result = self._run(["add", "-A"], check=False) result = self._run(["add", "-A", "--", ".", ":!*.lock"], check=False)
if result.returncode != 0: if result.returncode != 0:
raise FlowError(_format_git_error("git add 失败", result)) raise FlowError(_format_git_error("git add 失败", result))

View File

@@ -24,7 +24,7 @@ class FlowTracker:
self.cfg = cfg self.cfg = cfg
self.storage = FlowStorage(root) self.storage = FlowStorage(root)
self.git = GitIntegration(root) self.git = GitIntegration(root)
self.branch_mgr = BranchManager(root, self.git) self.branch_mgr = BranchManager(root, self.git, cfg)
def start(self, phase: str, summary: str) -> bool: def start(self, phase: str, summary: str) -> bool:
return self._run(action="start", to_phase=phase, text=summary) return self._run(action="start", to_phase=phase, text=summary)

View File

@@ -1,23 +0,0 @@
创建和维护一份用于记录git分支概况的文档
当start一个新任务时检查git状态是否干净若有未跟踪未暂存的文件状态使用git add .跟踪和暂存所有这些所有文件,然后创建一个提交保存状态版本,然后记录下这个提交的哈希,
如果已经是干净的状态了则无需新建提交,直接记录下目前最新的提交的哈希,
如果当前是空状态还没有任何提交如果不在仓库没有被git管理就git init初始化一个仓库创建一个空的.gitkeep文件然后创建一个初始化提交记录下这个提交的哈希
然后从当前记录的提交,创建一个新的分支,并将分支名和该起始提交哈希还有从哪个分支创建出来的都记录到文档,
后续所有的流程变动与集成的git操作都是在这个分支上进行的
最后finish之后把finish时的哈希记录到那个文档中作为结束提交哈希
然后此时因为要记录下最后的结束哈希flow的状态数据和那个文档都会有更新把这些都git add .然后创建一个提交,此时仓库状态是干净的了,
从这个提交合并到原本的分支去回到原来的分支后使用git reset --soft 软重置到起始提交,
然后再git add . ,再根据那个分支所执行的任务名生成提交信息,创建一个新提交,
这样在原本的分支可以只留下极少的提交同时又能切换到任务分支查看变更的细节提交主要是便于回溯实际上如果问题最终解决了即使过程中出了点问题最后解决了任务完成后可能也不会回去看了我希望我的git记录能干净些而且就算有查看细节的需求也可以通过查那份维护的文档切换到目标分支去看步骤细节
我希望可以尽可能少的改动commands&skills把这些全部封装到aide flow中可能都不需要改commands只要在skill中更新一部分信息让LLM简单了解到aide flow会发生这些副作用即可
这样的封装能实现吗?
aide flow start task-optimize 测试
aide flow next-part flow-design test
aide flow next-part impl test
aide flow next-part verify test
aide flow next-part docs test
echo "" >> CHANGELOG.md
aide flow next-part finish test

View File

@@ -1,17 +0,0 @@
口头话解析准则(优化版)
1. 理解层面
- 语义解析:分析口语化表达,提取核心意图和真实需求
- 目标识别:明确你想要达成的最终目标,而非仅关注表面描述
2. 批判性分析
- 逻辑漏洞:指出推理链条中的致命错误或逻辑矛盾
- 盲点与不足:识别被忽略的重要因素或潜在风险
- 过度设计:标记不必要的复杂性或多余的考虑
3. 建设性建议
- 优化空间:提出可以改进的具体方向
- 替代方案:对于关键步骤,给出多种可行路径供选择
- 权衡分析:说明不同方案的利弊
4. 沟通方式
- 坦诚直接:发现问题直接指出,不回避冲突
- 优先级排序:按重要程度排列反馈,关键问题优先
- 追问确认:遇到歧义时主动澄清,而非猜测

View File

@@ -1 +0,0 @@
在test-cache目录下写一个python的hello程序

View File

@@ -1,157 +0,0 @@
# 任务细则:环境安装 Command 与离线安装程序
> 生成时间2025-12-17
> 任务来源task-now.md
## 任务概述
为 aide 工具创建完整的环境安装解决方案,包括:
1. Windows 环境安装 Command (`/aide:install-win`)
2. Linux 环境安装 Command (`/aide:install-linux`)
3. 离线安装程序(支持 Windows 和 Linux
## 用户决策记录
| 决策项 | 用户选择 |
|--------|----------|
| 离线安装程序 | 本次一并实现 |
| macOS 支持 | 不支持(仅 Windows/Linux |
| Command 组织 | 分离命令 |
## 需要安装的工具
| 工具 | 用途 | 安装方式 |
|------|------|----------|
| uv | Python 包管理器 | 官方安装脚本 |
| Python | aide 运行时 | 通过 `uv python install` |
| Java (JRE) | PlantUML 依赖 | 系统包管理器或 Adoptium |
## 子计划拆分
本任务拆分为 4 个子计划:
### 子计划 1Windows 环境安装 Command
**目标**:创建 `/aide:install-win` command
**产出**
- `aide-marketplace/aide-plugin/commands/install-win.md`
**功能要求**
1. 检测当前环境状态uv、Python、Java
2. 对于缺失的工具,提供两种安装模式:
- **模式 A自动安装**:生成安装报告,用户确认后执行安装
- **模式 B手动指南**:生成 markdown 操作指南 + PowerShell 脚本
3. 安装完成后验证工具可用性
4. 指导用户将 aide-program 添加到 PATH
**技术要点**
- uv 安装:`irm https://astral.sh/uv/install.ps1 | iex`
- Python 安装:`uv python install 3.11`
- Java 安装winget/scoop 或 Adoptium MSI
- PATH 配置:修改用户环境变量
### 子计划 2Linux 环境安装 Command
**目标**:创建 `/aide:install-linux` command
**产出**
- `aide-marketplace/aide-plugin/commands/install-linux.md`
**功能要求**
1. 检测当前环境状态uv、Python、Java
2. 检测 Linux 发行版Debian/Ubuntu、RHEL/Fedora、Arch
3. 对于缺失的工具,提供两种安装模式:
- **模式 A自动安装**:生成安装报告,用户确认后执行安装
- **模式 B手动指南**:生成 markdown 操作指南 + Shell 脚本
4. 安装完成后验证工具可用性
5. 指导用户将 aide-program 添加到 PATH
**技术要点**
- uv 安装:`curl -LsSf https://astral.sh/uv/install.sh | sh`
- Python 安装:`uv python install 3.11`
- Java 安装apt/dnf/pacman 或 Adoptium tarball
- PATH 配置:修改 ~/.bashrc 或 ~/.zshrc
### 子计划 3离线安装程序 - Windows 版
**目标**:创建 Windows 离线安装程序
**产出**
- `aide-program/offline-installer/windows/` 目录
- `install.ps1` - 主安装脚本
- `resources.json` - 资源清单
- `README.md` - 使用说明
**功能要求**
1. 生成资源清单(下载链接列表)
2. 用户下载资源到指定目录
3. 运行安装脚本,从本地文件完成安装
4. 支持静默安装和交互式安装
**资源清单内容**
- uv 安装包Windows x64
- Python 安装包(通过 uv 管理,可选预下载)
- Java JREAdoptium Temurin
### 子计划 4离线安装程序 - Linux 版
**目标**:创建 Linux 离线安装程序
**产出**
- `aide-program/offline-installer/linux/` 目录
- `install.sh` - 主安装脚本
- `resources.json` - 资源清单
- `README.md` - 使用说明
**功能要求**
1. 生成资源清单(下载链接列表)
2. 用户下载资源到指定目录
3. 运行安装脚本,从本地文件完成安装
4. 支持多种 Linux 发行版
**资源清单内容**
- uv 安装包Linux x64
- Python 安装包(通过 uv 管理,可选预下载)
- Java JREAdoptium Temurin tarball
## 执行顺序
```
子计划 1 (Windows Command)
子计划 2 (Linux Command)
子计划 3 (Windows 离线安装)
子计划 4 (Linux 离线安装)
```
## 成功标准
1. **Command 功能验证**
- 能正确检测环境状态
- 自动安装模式能成功安装所有工具
- 手动指南清晰可执行
- aide 命令在 PATH 中可用
2. **离线安装验证**
- 资源清单完整且链接有效
- 安装脚本能从本地文件完成安装
- 安装后环境检测通过
## 风险与缓解
| 风险 | 缓解措施 |
|------|----------|
| 系统权限不足 | 明确提示所需权限,提供非管理员替代方案 |
| 网络环境受限 | 离线安装程序作为备选 |
| 版本兼容性 | 指定明确的版本要求,提供版本检测 |
| 安装失败回滚 | 记录安装前状态,提供回滚指南 |
## 约束条件
1. 不修改 aide-program 核心代码(仅添加离线安装器目录)
2. Command 遵循现有 aide-marketplace 格式规范
3. 所有脚本需包含完整注释
4. 安装过程需用户确认,不得静默修改系统