跳转至

HankKnowledge 经验教训

2026-07-25 项目记忆体系初期数据为空的问题

  • 现象: AI_项目记忆 目录搭建完成后,8/12 个文件为空模板,从未写入过真实数据
  • 根因: SKILL.md 是"人类阅读的文档"而不是"AI 执行的指令",缺乏强制性执行步骤
  • 方案: 重写 SKILL.md 为强制执行流程(识别项目 → 询问用户 → 写入文件 → 确认),每个触发词对应必须完成的写操作
  • 避免: 所有 SKILL 文件必须以"这是你的执行指令"开头,明确"必须执行 Write 操作",不得只输出建议

2026-07-25 项目记忆体系搭建

  • 现象: 4 个项目需要共享 AI 记忆,需要设计统一的存储和访问方案
  • 根因: 每个项目独立运行,AI 在切换项目时失去上下文
  • 方案: 选择 CODEBUDDY.md 被动引用 + 共享 SKILL 主动管理,而非 Hook 自动转储(后者噪音大、缺乏判断力)
  • 避免: 不追求自动化完美,MVP 优先验证核心流程是否跑通

2026-07-28 Quartz serve.bat 端口冲突 — WebSocket 端口遗漏

  • 现象: serve.bat 反复因端口冲突崩溃。修复 HTTP 端口(8080→8081)后仍失败,日志显示 "Server stopped" 无明确错误
  • 根因: Quartz 需要两个端口:HTTP(--port,默认 8080)和 WebSocket/HMR(--wsPort,默认 3001)。只处理了 HTTP 端口,忽略了 WebSocket 端口也在用
  • 方案: serve.bat 同时扫描 HTTP 端口(8080-8089)和 WebSocket 端口(3001-3010),用 Python socket 检测可用性,使用 --wsPort 参数启动
  • 避免: Quartz 的 build --serve 需要同时处理 --port--wsPort 两个参数,缺一不可。排查服务端问题时应先检查完整启动命令的所有端口依赖

2026-07-28 删除 Quartz 时 content/ 目录被 Windows 进程锁定

  • 现象: scripts/Quartz/ 大部分文件已删除,但 content/ 空目录被锁定,Remove-Itemrm -rftakeownicacls 均无法删除
  • 根因: Windows Search Indexer(SearchFilterHost.exe)或防病毒实时扫描进程在索引/扫描该目录时持有了文件句柄。即使停止 WSearch 服务,句柄仍被缓存进程持有
  • 方案: 空目录无害,接受保留;若需彻底删除可通过注册表 PendingFileRenameOperations 在下次重启时自动清理
  • 避免: Quartz 构建产出的 content/ 目录包含大量文件,Windows Search Indexer 会对其索引锁定。删除前应先停止 WSearch 服务和所有 SearchFilterHost 进程