Files
agent-aide/.aide/diagrams/docs-command-logic.puml

107 lines
2.1 KiB
Plaintext

@startuml docs-command-logic
title /aide:docs 命令执行逻辑(改进版)
start
:触发 aide skill;
:获取文档配置;
note right: docs.path, docs.block_plan_path
if (文档目录存在?) then (是)
:进入【更新流程】;
else (否)
:进入【创建流程】;
endif
partition "创建流程" {
:=== 阶段 1: 完整目录扫描 ===;
:读取 .gitignore 规则;
:递归遍历项目所有目录;
note right
包括空目录
记录每个文件/目录
标记 [ignored] 项
end note
:生成完整目录树结构;
note right: 类似 tree 命令输出
:统计文件信息;
note right
文件数量、类型
代码行数、大小
end note
:=== 阶段 2: 初步区块划分 ===;
:按目录结构划分区块;
:按功能模块聚合;
:生成区块计划文档;
:=== 阶段 3: 区块验证 ===;
:浅层探索验证区块划分;
:调整区块边界(如需要);
:=== 阶段 4: 完全深度探索 ===;
while (还有未处理区块?) is (是)
:选择下一个区块;
partition "处理单个区块" {
:【完全阅读】区块内所有文件;
note right
每个文件从头到尾
不遗漏任何一行
end note
if (是二进制文件?) then (是)
:根据上下文推断概括;
note right
文件名、大小
关联文件信息
end note
else (否)
:分析文件内容;
:提取关键信息;
endif
:生成文件概括;
:生成区块内完整 tree 结构;
:生成子区块文档;
}
:更新区块计划进度;
endwhile (否)
:=== 阶段 5: 生成总导览 ===;
:整合所有区块信息;
:生成简化版目录结构;
note right: 总导览用前两层结构
:生成总导览文档;
}
partition "更新流程" {
:读取区块计划;
while (还有区块?) is (是)
:对比文档与代码;
if (有变化?) then (是)
:【完全重读】区块内文件;
:更新区块文档;
:更新区块内 tree 结构;
endif
endwhile (否)
:更新总导览(如需要);
:更新区块计划时间戳;
}
:汇报完成情况;
stop
@enduml