107 lines
2.1 KiB
Plaintext
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
|