4.2 KiB
项目结构收口计划
目标
以运行、构建、测试和当前交付引用为证据,保留项目唯一权威来源,将已过期文档、重复目录和历史运行资料可恢复地归档,保持项目根目录与业务目录清晰。
当前阶段
已完成。
阶段
阶段 1:权威来源与依赖审计
- 完整读取
开发维护规范.md与HANDOFF.md - 建立项目目录、构建入口、测试入口和引用关系清单
- 标记当前、历史、生成物和不确定项
- 状态: 已完成
阶段 2:归档方案
- 确定可恢复归档目标和目录映射
- 排除运行、构建、测试及交付必需内容
- 状态: 已完成
阶段 3:执行归档
- 移动明确过期资料与目录
- 更新当前导航与归档说明
- 状态: 已完成
补充审计:当前版本已为 0.5.123,dist/ 中残留的 0.5.122 插件包和生命周期历史 run-manifest.json 也纳入本阶段归档。
阶段 4:验证与收尾
- 验证当前交付物、测试/构建入口及文档链接
- 确认根目录和主要目录不再混放历史内容
- 将本次计划归档,避免根目录新增长期噪声
- 状态: 已完成
验证发现:活动 Markdown 已无断链;归档仍有旧相对链接和遗漏 live-inputs/;0.5.123 两个包相同但哈希与 HANDOFF 记录不一致,需继续核验。
验证进展:上述归档链接与 live-inputs/ 已处理;全项目 107 个 Markdown 链接通过;TypeScript、控制面 37/37、全量业务回归 189/189 通过;0.5.123 ZIP 与源码逐文件一致。剩正式构建、最终状态/引用复核和计划归档。
正式构建已通过;活动交付物唯一性、0.5.123 版本/别名一致性和根目录职责复核通过。剩 Skill/DOCX 包完整性、安全扫描、最终 diff 状态与计划归档。
Skill 包审计发现 lwlt-updating-0.5.118.skill 的 references/operation-contract.md 与源码有唯一内容差异;先判定哪一侧是当前权威,再完成制品收口。
该差异已按 parse-only 权威边界收口,五个 Skill 与包逐文件一致并全部通过 quick_validate.py。剩最后一次回归/diff 检查和计划归档。
最终检查:全量业务回归 189/189、控制面 37/37、TypeScript check/build、107 个 Markdown 本地链接、git diff --check、五个 Skill 校验/包一致性、DOCX/ZIP 完整性及当前交付物唯一性全部通过。本计划随后移动至 archive/project-history/2026-08-16/。
判定原则
| 决策 | 理由 |
|---|---|
HANDOFF.md、维护规范、当前源码、测试与 dist/ 当前交付物保留 |
它们定义或支撑当前链路 |
历史证据、旧研究、旧计划和旧制品只移动到 archive/ |
保持可追溯、可恢复 |
| 有引用但事实过期的文件先修正引用或保留,不直接移动 | 防止破坏构建、测试和交接 |
不删除用户文件,不清理 node_modules、环境配置或数据库状态 |
不扩大本次项目结构整理的授权范围 |
错误记录
| 错误 | 尝试 | 处理 |
|---|---|---|
一次组合式 rg 引用检索因 zsh 正则中的括号/引号解析失败 |
1 | 未产生文件变更;改用固定字符串与分项检索,避免 shell 解释歧义 |
普通 PATH 中没有 node,定向测试未启动(exit 127) |
1 | 未产生测试副作用;改用 Codex 工作区依赖提供的 Node 运行时 |
| 首次内联 Markdown 链接检查命令被外层 JavaScript 模板字符串中的反引号/插值干扰 | 1 | 未调用 shell、未产生文件变更;改用纯字符串拼接后成功运行 |
ZIP 临时解压核验命令含受工具策略禁止的 rm -rf 清理 |
1 | 命令在启动前被拒绝、未产生临时目录;改用 unzip -p 进程替换逐文件比较,无需落盘或删除 |
quick_validate.py 使用工作区 Python 启动时缺少 yaml 模块 |
1 | 在 import 阶段停止、未修改文件或环境;定位已有 PyYAML 模块路径后重跑,不联网安装 |
最终检查仍要求废纸篓中的 .DS_Store/空 runtime 残留存在 |
1 | 归档文件均存在;系统已清走废纸篓中的纯元数据残留。更正维护记录,不把临时系统元数据表述为长期可恢复归档 |