feat: 清理项目结构、文档内容

This commit is contained in:
2025-12-14 03:10:42 +08:00
parent 4cacd128ab
commit 4f2ecebc64
36 changed files with 243 additions and 2234 deletions

28
.cache/p2/before-1.md Normal file
View File

@@ -0,0 +1,28 @@
先对目前存在的问题进行讨论
是的期望的行为是用户只需通过README学习可用的command即可通过快捷命令触发流程启动也无需关心skills它被command自动触发学习和使用
我认为需要封装的操作是一些流程与形式上的操作以此减少不确定性并减少token污染减少不必要的LLM注意
把核心的分析、思考、业务内容交给LLM不加限制竭尽所能尽情发挥
我这里有一点前期设计草案,
这套系统开发好后我希望成品是3项
- 一个可供用户快速上手且能引导用户根据需要进行深入了解的README.md
- 一个可以快速安装的插件市场在README中提供快捷指令
- 一套实现了目标程序系统的项目目录
我希望的下发/分享方式是把这1个文档+2个目录打包为一个压缩包分享先以此为暂定目标当该体系经验证可用且高效后再考虑更好的形式再把插件市场迁入远程仓库把程序投放到一些包托管平台便于快速安装然后只需以网页或文档的形式分享README即可
@aide-requirements.md 是一个我原本暂定的细则文档(如果它有任何不合理之处,你都可以质疑,这只是个草案,不要被它的定式限制),现在需要你根据我前述的需求,评估这个文档是否满足:仅以这一份文档为核心,辅以原 ai-agent-memory/ 和 docs/ 目录下的信息开始实际开发任务得到3项最终产出
关于 @aide-requirements.md 的补充:
1. prep和exec的细节都要从原ai-agent-memory目录下的相关文档中获取
2. 其实我希望你可以完全忽略我在aide-requirements.md中aide程序的细节设计
- 就是说,保留`aide env``aide progress`等主要支项(这个也可以忽略,不遵循,仅部分参考,后续可以增添或删减),但完全忽略`aide env check``aid env ensure``aide progress init`等更细节的内容,还包括具体的输入输出数据结构等,
- 因为我希望你可以引导我对aide程序体系进行重新设计部分参考原本的设计找出可能存在的不足可以完善的部分可能存在的伪需求可以删减的部分
3. 关于待定项的交互流程我想实现一个程序最终要把它集成到aide中以aide为入口启动启动这个程序后它会读取相关的数据文件用户提出的原始任务文档及其他本次任务涉及到的文件、LLM分析得出的待定项数据基于这些数据渲染成对用户友好的web界面提供网页的HTTP链接供用户访问用户在网页界面中以图形化的方式交互式操作数据程序把用户的操作结果用户的决定存储到一个新的数据文件然后LLM请求用户意见结果时aide读取这个文件把用户的决定反馈给LLM
4. 我希望最外层的aide入口封装使用平台的shell脚本但仅仅只是封装部分这个封装的任务是检查python虚拟环境或系统环境的python然后通过检测到的python执行真正的python入口程序
- 封装部分仅负责检测python并执行真正的入口在检测到不存在时抛出致命错误需要用户处理好至少先提供一个可用的基本的python3才能继续
- 封装部分教轻量可以为win、linux/mac单独编写也不会太麻烦
- 由封装调用真正的python入口程序后处理更核心的逻辑
- 使用python是为了减少统一跨平台、开发、调试与测试运行的成本同时还可以作为胶水语言在适当的时候引入其他语言更好的完成部分任务比如前面说的处理待定项交互的程序就很适合用ts+react+nextjs这样的全栈技术栈来实现同时兼顾界面和后端还能快速落地前端比flutter轻量后端比rust轻量且性能完全满足需求

133
.cache/p2/before-2.md Normal file
View File

@@ -0,0 +1,133 @@
# 对已发现的可能存在的问题的答复
## 状态记录的必要性存疑
要把保存状态记录的操作程序化
记录每一个步骤的状态变更是因为实际使用时可能会中断任务执行但恢复时可能不再使用claude code而是其他agent cli或者是直接由真实开发人员接手此时可以通过状态记录追溯当前进度和操作痕迹甚至是通过git提交看到每一个步骤的细节
但是为了减轻负担,所以把这个其实不太必要,任务简单但却频繁重复的过程封装为固定程序,
创建一个独立的aide二级命令<1>完成这项任务
> 我会在答复中把我认为应该创建为单独二级命令的部分提出来,但是我不会立刻为其命名,仅标记为"二级命令<n>",后续我们再详细谈明确的命令职责界定,业务细节,及其命名,
## 伪需求/过度封装
其实我想说的忽略掉细节的命令分支比如二级命令env、build、version等三级命令check、ensure、init、update等不是说要在新设计中去除掉所有的二三级命令而是希望你忽略原有的设计定式引导我进行重新设计使所有的命令都更符合需求、符合场景
env的check和ensure确实存在伪需求现象仅保留ensure即可
workspace、version和build都可以删去uml图的图像输出和版本控制都完全交由二级命令<1>在流程中动态反馈,
## aide-version
是的claude code本身能很好地完成git操作但它会出于一些难以预见的实际项目情况考虑频繁大量使用git status、git stash等操作每一次操作的输出都会大量污染LLM的上下文
git操作单独封装确实价值很有限我想把这部分操作集成进二级命令<1>中,细节后面我会单独提意见
## aide:init
它主要是触发agent cli中LLM对项目内容详情的主动认知并对项目所需的开发环境进行检测和自动修复避免后续因为环境报错导致不必要的上下文污染
LLM确实能在遇到问题时很好地解决问题但我希望它在处理业务逻辑时不要被这些不必要的问题所打扰
若在init阶段发现并解决了环境问题此时的沉没成本很小我可以在解决问题后直接结束本次对话重新开始新的对话此时的init就只会看到一些✓然后我可以放心的继续接下来的任务计划完成
## Web待定项界面
这部分实现确实具有不小的复杂度,
我想把它单独创建为一个二级命令<2>
## 缺失:错误恢复机制
> 原设计定义了输出前缀(✓/⚠/✗),但没有定义:
> - 错误发生后LLM应该如何响应
> - 是否需要重试机制
> - 如何处理部分成功的情况
我的想法:
遇到⚠时使用二级命令<1>记录,分析其是否影响继续执行,若不影响原定计划实现,则记录“继续-(遇到的问题信息)”,若影响则记录“解决阻塞-(遇到的问题 + 受影响的部分),
若遇到✗则不论是否阻塞计划,都要先记录并解决,同时注意:
- 默认情况都自行取最优解以解决阻塞,失败则尝试更换解决方案,中途无需记录对解决方案的分析思考和决定,仅在成功解决时才在 discuss/ 目录下创建问题的分析和解决记录文档若3次尝试都无法解决则强制停止计划执行并创建错误报告然后通知用户等待用户给出下一步意见
- 如果用户明确指出,不应该自行解决遇到的✗,则每遇到✗时停止或按用户的特定指导进行操作
## 缺失:配置的默认值与覆盖机制
配置文件不存在时输出⚠警告消息并视为未指定配置文件
运行aide-init时若看到配置不存在的警告应该按照全局默认配置并根据项目创建项目下默认配置文件然后根据项目情况分析后对配置文件进行针对性设置更新通过skill学习然后操作aide进行设置不允许直接读配置文件因为我希望配置文件自带大量详细的注释和配置示例实现子文档化对用户友好但这样的文件被LLM读取会严重污染上下文LLM只被允许通过aide读取环境配置
对于配置文件后续有可能会为其开发像待定项web界面那样专用的面向用户的图形化交互式界面
配置不需要单独的验证指令,每一次的设置和获取都应该封装好集成的验证,若无问题则表现为无事发生,仅在自动检验出现异常现象时输出✗错误,
# 对一些二级命令的想法💡
因为希望你根据功能为各命令进行命名,使其名称可以简短的同时能见名知意、名副其实
但是有个名称更便于指代所以后续我都用cmdn来作为临时名称例如二级命令<1>就暂称为`aide cmd1`
## 二级命令`<1>`
预期的行为(本节下面出现的`<desc>`表示必填占位描述,`[desc]`表示选填占位描述):
- `aide cmd1 start <task-optimize> <开始tui贪吃蛇程序设计>`
- `aide cmd1 next-step <完成任务分析,输出待定项,等待用户确认>`
- `aide cmd1 back-step <用户确认待定项同时提出新的意见>`
- `aide cmd1 next-step <重新分析优化待定项,等待用户确认>`
- `aide cmd1 next-step <用户完成待定项处理并确认继续>`
- `aide cmd1 next-step <生成优化结果-任务细则,等待用户确认>`
- `aide cmd1 next-part <flow-design> <任务细则经用户确认,进入流程图设计环节>`
- `aide cmd1 next-step <流程图设计完成>`
- `aide cmd1 next-step <解决流程图报错>`
- `aide cmd1 next-part <main> <成功生成png流程图像进入主体环节>`
- `aide cmd1 next-step <mod1完成>`
- `aide cmd1 next-step <mod2完成>`
- `aide cmd1 back-part <task-optimize> <用户中断,用户分析流程图后提出问题,返工重新制定任务>`
- `aide cmd1 next-step <重新分析优化待定项,等待用户确认>`
- ……
- `aide cmd1 next-step <mod1完成>`
- `aide cmd1 issue <⚠实现mod2时遇到阻塞性问题>`
- `aide cmd1 next-step <问题解决mod2完成保存问题分析报告>`
- `aide cmd1 issue <⚠实现mod3时遇到阻塞性问题>`
- `aide cmd1 error <✗问题无法解决,保存错误报告,等待用户处理>`
- ……
以上从前到后是任务过程中预期的一种流程此处为了演示和为分析提供信息含有较多返工和警告与错误实际情况可能问题较少能一直next及其预期的参数形式
其中只有start和next-part、back-part这三项除了总结还需要携带具体的指定大环节名其他的则只需要LLM为当前小步骤生成一句总结即可
start需要是因为任务开始时不能保证一定是从最初的任务优化开始的start会触发aide cmd1生成新的项目任务工作空间
next-part和back-part需要是因为进入下一环节时简单的增强一下“现在你已经进入了xxxx大环节了”的概念一个环节名不会花费多少token但能稍微聚焦一下注意力而back则是非常需要因为aide没法自行确定应该返工到的是哪一个环节返工不一定只返上一个环节也不一定每次都要返回到最初的环节
我希望aide cmd1可以集成对git的处理每一次的步骤变化都把环节名加上LLM生成的总结作为提交信息自动使用`add .`添加然后完成提交完全不需要LLM再关注版本控制问题skills中也不再需要单独处理
aide cmd1还有一个作用就是按既有流程顺序对环节的变化做检验比如task-optimize时的下一环节应该是flow-design但如果LLM此时调用了next-part main则aide cmd1会小小的输出一个⚠警告动态反馈给LLM提醒流程有误
当已处于flow-design这一环节时每一次的next-stepcmd1都应该尝试校验环境配置中流程图文件目录下的所有文件当校验出错时输出一个⚠警告提醒LLM需要解决流程图错误当next-part时除了检验还要生成png图像输出出错则警告顺利完成则无输出进行git提交后正常进入下一环节
当进入docs-upgrade环节时cmd1输出普通消息提醒LLM记得更新CHANGELOG对CHANGELOG文件的修改不需要封装交给LLM自由发挥已处于docs-upgrade环节尝试next-part时cmd1要检验CHANGELOG是否有更新并从git提交记录中找到旧的CHANGELOG文件检查版本号部分是否正常更新
一般情况下aide cmd1无输出“没有消息就是好消息”
aide cmd1的数据文件不保存在项目目录下而是和一般的APP一样保存在自己的用户数据目录下属于这个程序的存储路径中
cmd1不需要和start、next-*等命令同级的complete命令用于完成时即使最后一环节步骤全部完成也不需要用户随时有可能返工或重新切入任务流程重新启动
## 二级命令`<2>`
暂时仅规定它需要输入的数据格式和它应该输出的数据格式,及其启动入口,
另外再单独讨论其实现细节,
它本身可以是任何形式的比如web、app、cli等只要满足输入输出要求即可但是APP过于重量级而cli也较为麻烦需要用户单独启动一个终端并进入目标目标运行一键启动的前后端分离式web形式对用户最友好启动后简单输出链接地址用户直接访问网页链接即可进行操作
我希望使用python+静态react不用nextjs全栈但需要python在启动时不仅提供用于操作本地文件的后端API还封装好类似nginx的web服务器它基于静态的index.html提供前端的web访问避免用户还要自行部署react才能访问
关于待定项的典型数量和复杂度等输入数据格式细节,你可以尝试以 @now-task-example.md 为一个待分析和优化的用户任务对其按照原体系中的task-builder要求进行处理输出原版待定项文档然后从中提取和转化出含有完整关键信息但更精简的json数据结构

55
.cache/p2/example-1.md Normal file
View File

@@ -0,0 +1,55 @@
proc environment manager
## 说明
`proc`是一个已经被用户正确安装的程序,可以像`ls``cd``cat``curl`等常用命令一样通过`proc`这个命令名直接随时调用而无需关心其安装路径和程序配置,
proc是一套针对性设计用于专业步骤流程的程序系统的访问入口
可通过`proc`访问其一系列子程序,例如现在将要具体学习的`proc env``env`子项专用于处理项目开发时的开发环境情况问题,
## 行为与用例
> 下方代码片段是用空行分隔的多组命令调用示例每一段注释后直到下一个空行前的一条或多条shell命令是一组同一组的命令是等效的通常较短的命令是其他长命令的参数缺省形式
```bash
# 对于已启用的项目python、jdk、gcc、cmake、cargo、rustc、uv、nodejs等检测其环境的可用性及版本由默认配置或工作目录下的默认环境配置文件决定启用哪些项目的检测
proc env
proc env check
proc env check --all
proc env check --all --env-config ./env-config.toml
# 这一组(也包括下一组`proc env show`)中的`--env-config`选项需要一个文件路径参数用于指定环境配置文件,其默认值是工作目录下的`./env-config.toml`
# 列出所有支持的环境模块并显示:
# 1.当前配置下该环境检测模块是否启用
# 2.该模块支持的操作有些模块可能仅支持check而不支持ensure操作
proc env show
proc env show --all
proc env show --all --env-config ./env-config.toml
# 支持的参数选项同上,运行所有已启用的环境模块检测其环境的可用性及版本,当目标环境不可用时尝试按既定程序修复环境,仅当所有修复都失败时输出失败消息
proc env ensure
# 运行指定的环境模块检测其环境的可用性及版本,且不论其是否已在环境配置中启用
proc env check --spec ['python']
proc env check --spec ['java','rust','uv']
# 这一组中的`--spec`选项需要一个字符串列表参数(即使只有一项),支持的选项可通过`proc env show`获取
# 运行指定的环境模块检测其环境的可用性及版本,且不论其是否已在环境配置中启用,当目标环境不可用时尝试按既定程序修复环境,仅当所有修复都失败时输出失败消息
proc env ensure --spec ['python']
proc env ensure --spec ['java','rust']
```
## IO约定与示例
- env子项仅支持[行为与用例](#行为与用例)中所示的参数选项,不支持动态输入其他参数值
- 输出前缀:
- 成功:✓
- 警告:⚠
- 失败:✗
### 输出示例
```
✓ 虚拟环境可用: /home/user/.local/pro-process-program/.venv/bin/python
```

View File

@@ -0,0 +1,17 @@
使用rust编写一个terminalUI的cli贪吃蛇游戏
支持引入随机数和一些难度递增规则自动生成后续关卡
支持游戏历史记录数据的自动保存和自动读取
游戏启动界面可以读取存档或创建新存档,支持设置难度递增速度、设置玩家名
游戏界面显示关卡信息、分数信息等丰富玩家体验
支持暂停
除了设置玩家名这样的,其他所有输入都要是无缓冲输入,按下即生效
要能让界面自动适应终端窗口大小(界面实时显示界面大小),且不要那种滚轮往上滑满是被刷屏的之前的旧帧,要直接修改字符坐标,
退出程序后我不想看到往上翻全是被刷满屏的样子不是说用clear清屏是希望不要用疯狂刷屏来刷新界面

17
.cache/p2/re-01.md Normal file
View File

@@ -0,0 +1,17 @@
1. 你的理解准确无误
2. 命名分别选用`aide flow``aide decide`
3. json数据结构大体上设计的挺好的还有小部分我不太满意你看看我的意见是否合理
- json的数据可以不再需要Uxxx这样的编号形式直接1、2、3简单递增即可
- 仅给出了LLM自行生成的问题简述我需要的是具体的指出原文的哪一行到哪一行后续我希望web界面呈现问题时渲染出原文件的局部带行号模糊/歧义/可优化的来源部分高亮显示)
- 同样决策中的编号也只需简单序号即可
- 非常棒,额外的意见字段只需要在有的时候才出现,没有备注时连"note"键都不应该出现
4. 新的意见我想把所有由aide自动创建、统一管理的数据文件都默认保存到项目路径下的`.aide`目录下比如环境配置文件、状态更新数据文件之前计划的是和一般的APP一样保存在自己的用户数据目录下属于这个程序的存储路径中现在改到.aide默认情况下在init环境检查`.gitignore`,为.aide添加为忽略项除非在环境配置中指定不忽略
---
另外,我想知道目前为止的所有信息是否已经足够建立一份核心文档,足够以这一份文档为核心,辅以原 ai-agent-memory/ 和 docs/ 目录下的信息开始实际开发任务得到3项最终产出README+插件市场目录+程序系统目录)
若已经足够我希望能先对原有的aide-requirements.md以它为核心文档进行更新补充完善不足之处删去即将讨论和重新定义的部分
接下来开始引导我对aide整个系统进行重新设计
这个过程中我希望你的所有想法、建议、报告等等信息全部以.md文档报告的形式保存到 discuss/ 目录下(从现在之后开始,刚刚这次不需要重新建立报告),这便于我仔细查阅和思考,
而我也会把我的回复创建.md文档报告保存到 reply/ 目录下并告诉你文件名(就像现在这个答复文档这样),

3
.cache/p2/re-02.md Normal file
View File

@@ -0,0 +1,3 @@
1. 我同意方案A
2. 由你在遵循commands设计理念的规则下自行发挥编写能实现目标效果的最优commands
3. 连续完成commands和skills部分暂时不处理aide细节设计

5
.cache/p2/re-05.md Normal file
View File

@@ -0,0 +1,5 @@
编写一份文档保存到statements/目录下要求能通过这份文档了解当前整个项目的情况和状态大概像now-status.md里`## 然后现在的要求`之前的描述的意思那样,
然后我会清空discuss、reply、ai-agent-memory目录下的所有内容删掉now-status.md和aide-requirements.md不需要你帮我进行删除操作
我希望之后的其他人能根据那份文档的信息配合现有的aide-marketplace、aide-program、docs、statements目录下的内容可以对本项目有完全的了解以展开后续工作任务