{"content":"【复盘·重建】blueprint-buff 模块(4张M任务卡)\n任务类型: 后端命令 + 前端组件\n复杂度: M × 4\n涵盖任务: Buff生命周期Rust命令 / git watcher+任务匹配写回+飞轮快照 / 前端Buff管理UI / BlueprintView跨项目切换\n实际轮数: 3轮(初始实现1轮,2次修复)\n是否返工: 是\n返工原因: (1) WSL项目路径未兼容——buff.rs初版只处理Windows路径,WSL项目触发watcher时路径解析失败;(2) Windows子进程黑框闪烁——git log子进程未设CREATE_NO_WINDOW标志\n有效策略: 轮询HEAD commit而非git hook,零侵入跨平台;文件路径匹配任务卡而非解析commit message,与AI工具风格完全解耦;Buff apply时顺手调get_blueprint触发飞轮快照,数据对齐成本为零\n遗留风险: 5秒轮询在commit密集时可能触发多次snapshot追加(节流只按日期去重,不按轮询次数)\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":5,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】blueprint-flywheel 模块(5张M任务卡)\n任务类型: 后端命令\n复杂度: M × 5\n涵盖任务: usage.json埋点写入 / get_flywheel_stats command / 迭代感知 / 梦核提示词生成 / 飞轮健康面板\n实际轮数: 6+轮(blueprint.rs共12次提交,含多次fix和refactor)\n是否返工: 是\n返工原因: (1) 飞轮聚合数据质量问题(3处bug)——snapshot日期节流逻辑、conventions_version解析失败时的fallback、blocked_reasons去重;(2) iteration字段读取失败时默认值未统一;(3) 梦核prompt生成切换effective_conventions后缓存未清除\n有效策略: 代码只做机械工作(采集/计算/格式化),判断完全交给Claude;usage.json存项目本地,不上服务器;4项指标中可派发率和飞轮持续率是最先导指标,优先关注\n遗留风险: collect_flywheel_notes函数win_path/wsl_path匹配逻辑无测试覆盖(已开补测试任务卡)\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":6,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】blueprint-governance 模块(4张M任务卡)\n任务类型: 后端命令 + 前端组件\n复杂度: M × 4\n涵盖任务: get_blueprint_status command / sync_blueprint_rules command / 用户版CONVENTIONS读写command / GovernancePanel规则编辑器UI\n实际轮数: 5轮(blueprint.rs涉及多次迭代,含P2 WSL覆盖修复)\n是否返工: 是\n返工原因: (1) sync_blueprint_rules初版未覆盖WSL项目——Windows路径写入逻辑未处理\\wsl.localhost\\路径;(2) effective_conventions缓存引入后save_user_conventions未清除缓存,导致同步后仍用旧版本\n有效策略: CLAUDE.md用区块隔离,不动项目自有内容;MASTER_CONVENTIONS用include_str!编译时嵌入,binary自包含;四状态(none/outdated/stale/synced)覆盖所有情况\n遗留风险: 用户版CONVENTIONS写入后同步所有项目是同步操作,项目多时会阻塞UI线程\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":7,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】blueprint-view 模块(7张M/L任务卡)\n任务类型: 前端组件\n复杂度: M × 6 + L × 1\n涵盖任务: 数据结构设计 / 蓝图读取Command / React Flow节点图渲染(L) / 模块详情面板 / 下一步汇总面板 / 边高亮与模块聚焦 / 蓝图治理面板\n实际轮数: 5轮(BlueprintModal.tsx共7次提交)\n是否返工: 否(迭代式功能叠加,非返工)\n返工原因: N/A\n有效策略: React Flow父子节点实现区域分组,天然跟随;hover只做边高亮,click才做节点淡化,避免节点重建闪烁;蓝图弹窗定位为驾驶舱,所有蓝图操作统一收口,不分散到设置页和卡片\n遗留风险: L级任务React Flow节点图渲染在50+节点时有性能隐患(未做虚拟化)\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":8,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】blueprint-onboarding 模块(3张M任务卡)\n任务类型: 后端命令 + 前端组件\n复杂度: M × 3\n涵盖任务: generate_blueprint_prompt command / 项目列表蓝图状态指示 / 蓝图提示词弹窗\n实际轮数: 2轮(c598c9b主提交 + 后续fix修复已有蓝图时的按钮状态)\n是否返工: 是(局部)\n返工原因: 初版未禁用「初始化蓝图」按钮当项目已有蓝图时——用户可重复初始化,产生混乱\n有效策略: BlueprintPromptModal独立组件,初始化/管理两种模式复用同一弹窗;状态指示badge从ProjectCard读blueprint_status,轻量无需额外请求\n遗留风险: 无\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":9,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】blueprint-reader 模块(2张M任务卡)\n任务类型: 后端命令\n复杂度: M × 2\n涵盖任务: 读取manifest.yaml / 读取modules/*.md\n实际轮数: 1轮(随blueprint-view一次性实现,blueprint.rs最早提交之一)\n是否返工: 否\n返工原因: N/A\n有效策略: get_blueprint一次调用同时解析manifest和所有modules,避免前端多次invoke;任务卡从markdown正则解析,容错性强(缺字段不报错)\n遗留风险: 无\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":10,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】mcp-server 模块(3张M任务卡)\n任务类型: 后端命令\n复杂度: M × 3\n涵盖任务: 启动时绑定HTTP端口 / 实现MCP JSON-RPC基础协议 / 实现产品组上下文工具\n实际轮数: 4轮(mcp_server.rs共5次提交)\n是否返工: 否(持续功能扩展,非返工)\n返工原因: N/A\n有效策略: 内嵌Tauri进程而非独立进程,托盘常驻天然保证服务存活;HTTP/SSE传输支持WSL和Windows双侧同时访问;按group_id路由,数据完全隔离;默认端口27190冲突概率低\n遗留风险: 无\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":11,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】mcp-config-inject 模块(1张M任务卡)\n任务类型: 后端命令\n复杂度: M × 1\n涵盖任务: 向产品组项目注入MCP配置\n实际轮数: 2轮(mcp_inject.rs共2次提交)\n是否返工: 否(第2次提交是随mentor功能一起完善)\n返工原因: N/A\n有效策略: 注入到{project_root}/.claude/settings.json的mcpServers字段,key用\"lian-jing:group-{id}\"前缀,避免与其他MCP配置冲突;add_group_member调用后自动触发注入,注入失败不影响成员关系(非致命)\n遗留风险: 独立项目组创建时未继承space_id(已在本次对话修复)\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":12,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】health-center 模块(2张M任务卡)\n任务类型: 后端命令 + 前端组件\n复杂度: M × 2\n涵盖任务: Backend健康聚合command / 前端健康诊断页面\n实际轮数: 1轮(HealthPage.tsx单次提交,随eb346ae大提交一起落地)\n是否返工: 否\n返工原因: N/A\n有效策略: 健康中心是纯数据展示层,不做判断;与项目导师分层——健康中心采集数据,项目导师解释数据;一次大提交包含runtime-diagnostics/health-center/project-mentor三个模块,降低集成风险\n遗留风险: 无\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":13,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】project-mentor 模块(3张M任务卡)\n任务类型: 后端命令 + 前端组件\n复杂度: M × 3\n涵盖任务: 后端聚合command(MentorContext) / 前端导师面板 / 启动健康扫描+前端Alert Banner\n实际轮数: 3轮(mentor.rs共4次提交,含1次WSL路径修复)\n是否返工: 是\n返工原因: WSL项目路径处理——初版get_mentor_context在WSL项目上路径解析失败,health检查返回false;af88408专项修复WSL path fix\n有效策略: Claude是智能层唯一执行者,代码只负责数据采集和结构化,不在代码层做质量推断;炼境自指不是边缘case,从设计时就纳入系统;mentor_markdown格式化输出直接复制给Claude,降低使用摩擦\n遗留风险: 无\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":14,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】runtime-diagnostics 模块(1张M任务卡)\n任务类型: MCP工具\n复杂度: M × 1\n涵盖任务: MCP Server新增get_diagnostics工具\n实际轮数: 1轮(随eb346ae大提交落地)\n是否返工: 否\n返工原因: N/A\n有效策略: get_diagnostics作为排查入口工具,优先级最高,Claude调用MCP时应首先调用此工具;诊断信息包含MCP启动状态、注入结果、近期错误,一次调用获得全局视角\n遗留风险: 无\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":15,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】flywheel-intelligence 模块(2张M任务卡)\n任务类型: 后端命令 + 前端组件\n复杂度: M × 2\n涵盖任务: 阶段一·复盘笔记接入梦核飞轮 / 复盘笔记覆盖率可见性\n实际轮数: 2轮(两张卡分两次会话实现,均在本次对话完成)\n是否返工: 否(第二张卡是在发现第一张卡数据无法产生后的补救措施)\n返工原因: N/A\n有效策略: 先让数据能产生(独立项目MCP注入)、再让缺口可见(覆盖率面板),两步解决\"复盘笔记0条\"的根本问题;mentor_markdown里写入覆盖率表格和补写提醒,Claude每次打开报告即可感知\n遗留风险: 复盘笔记仍依赖Claude主动调用,无强制机制;补写笔记(retro-catchup skill)覆盖了存量,新增任务需依赖习惯养成\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":16,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【复盘·重建】user-project-todos 模块(1张M任务卡)\n任务类型: 前端组件\n复杂度: M × 1\n涵盖任务: 前端·个人备忘单 UI 组件\n实际轮数: 1轮(UserTodoPanel.tsx单次提交,随6162533落地)\n是否返工: 否\n返工原因: N/A\n有效策略: 个人备忘与AI笔记分离——个人备忘是用户手动记录的临时提醒,AI笔记是Claude分析结论;两者存储在不同表,展示在不同区域,职责清晰\n遗留风险: 无\n备注: 此笔记为事后重建,非实时记录","created_at":"2026-04-11 19:28:10","id":17,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"retro-catchup"} {"content":"【记忆巩固】飞轮外环分析 2026-04-12\n数据规模: 18个项目扫描,9个有蓝图,40条复盘笔记(ReadBorne 22条,react-phone-apps 18条)\nCONVENTIONS版本: v1.4.4(唯一版本,完成率79.2%,飞轮持续率100%,阻塞密度0%)\n\n高频陷阱(跨项目):\n1. Android布局动画导致底层视图重新渲染(react-phone-apps FoldableLayout 两次返工)→ 面板用absolute定位\n2. Android transparent Modal内FlatList分页失效(react-phone-apps 两处)→ 去掉transparent或手势替代\n3. Expo Image Picker API变更+三星崩溃(react-phone-apps 摄像头任务3轮)→ 统一用expo-document-picker\n4. 初始设计硬编码后改动态数据源触发返工(react-phone-apps 2处)→ 设计阶段前置识别\n5. 列表页N+1查询(ReadBorne+react-phone-apps各1处)→ 必须JOIN/GROUP BY一次取数\n\n处理决策:\n- 通用工作流规范: 无需改CONVENTIONS(现有规则数据表现良好,改动收益不抵发版成本)\n- 项目专属模式: 5条踩坑规避已通过【待固化】note写入react-phone-apps,待下次会话写入CLAUDE.md\n- 停滞模块: dev-manager-tauri/flywheel-intelligence重复计数待核查;enterprise-system两模块建议降级planned\n\n闭环协议确认:\n- append_project_note全量读取,无前缀过滤(已验证collect_flywheel_notes_inner SQL无WHERE content过滤)\n- 【记忆巩固】note可被下次飞轮正常读取,Path 3通路确认","created_at":"2026-04-13 00:19:21","id":69,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"mcp"} {"content":"【复盘】P1 治理三件套的 agent 投影(能力双投影首次实践)\n任务类型: MCP工具\n复杂度: M\n实际轮数: 1轮(预估 1 轮)\n是否返工: 否\n有效策略: 复用 resolve_project_root helper 与既有工具注册模式,三个工具与 UI 按钮共享同一后端函数(等价性=同一代码路径);验证采用\"agent 走正规流程\"新原则——agent 通过 MCP 端点亲自按下三颗按钮:get_blueprint_status 确认 noteapp synced(同一解析器复核了 manifest 修复)、generate_blueprint_prompt 确认 41145 字符提示词含 manifest 硬约束与非法值点名(昨日提示词加固首次真实验证)、sync_blueprint_rules 幂等重写成功;本条复盘即通过 append_project_note 工具写入(自举)\n遗留风险: 治理动作仍有未投影的(接入包/腐化扫描/健康诊断/Gitea 系列),待 R12 规则化后系统性补齐\nauto_applied_rules: R01, R03, R10\nrule_effectiveness: R01=有效, R03=有效(本条即产物), R10=有效","created_at":"2026-07-03 11:31:30","id":75,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"mcp"} {"content":"【复盘】MCP 单一服务器化(mcp-single-server T1-T6)\n任务类型: 架构调整\n复杂度: L\n实际轮数: 1 轮主实现 + 1 轮迁移期修复\n是否返工: 是(T4 端到端验证暴露 git-bash 硬编码 bug,claude mcp add/remove 全挂)\n返工原因: CLAUDE_CODE_GIT_BASH_PATH 回退路径硬编码 Program Files,Scoop 安装的 Git 不适配——存量 bug,组级时代即存在,但从未被端到端验证暴露\n有效策略: 1) 迁移内建于重注入(reinject_all_mcp 即批量迁移器,无需独立迁移工具);2) 一次性迁移用 settings 标记位 + 以 CLI 链路健康(注册成功)为落位条件,失败自动重试;3) 消费者终验(真跑 claude mcp list + curl 实调)比单元测试多抓出一个真 bug——文件层全绿但 CLI 层全挂\n遗留风险: 同路径重复登记(legacy 字符串 id 与 uuid id 并存)导致批量重注入时 liangjing.json project_id 翻转,待登记卫生清理\n备注: NSIS 静默安装必须 Start-Process -Wait,bash 直接调用不等待导致首次装了个寂寞","created_at":"2026-07-06 20:18:12","id":76,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"mcp"} {"content":"【炼境使者回传】来源: dev-manager-tauri(炼境自身)\n类型: template_bug\n置信度: confirmed\n影响范围: all_projects\n内容: MANAGED 托管块内的手写定制会在块版本升级时被整块原位覆盖抹掉——炼境自身实锤丢失 5 段定制(分支策略表/Agent 按钮清单/降级约定/启动协议第4条,v1.6.0/1.11.0 升级时),子项目同样可能犯;模板块首无任何警示\n建议炼境: fix_template","created_at":"2026-07-15 23:15:57","id":90,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"mcp"} {"content":"【炼境使者回传】来源: dev-manager-tauri(炼境自身)\n类型: template_bug\n置信度: confirmed\n影响范围: all_projects\n内容: 空路径登记使批量分发经 Path::new(\"\") 写进炼境进程 cwd(src-tauri/ 被污染 6 处);已修(473cf7e 入口拦截+SQL 过滤+回归驻军),教训:路径入口防护必须在能力本体层单点做,远程/批量链路不能假设登记数据干净\n建议炼境: log_for_review","created_at":"2026-07-15 23:16:00","id":91,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"mcp"} {"content":"【炼境使者回传】来源: dev-manager-tauri(炼境自身)\n类型: validated_practice\n置信度: confirmed\n影响范围: all_projects\n内容: 任务卡动工前做多角度辩证收缩实测显著降返工——3 张初稿卡辩证后 1 张否决(自动触发伤择)、1 张载体翻转(hook→ingest 层)、1 张补两处设计缺陷,直做会错 2/3;实施后 U3/B4 零返工、U1 仅一轮实调返工\n建议炼境: update_convention","created_at":"2026-07-15 23:16:03","id":92,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"mcp"} {"content":"【炼境使者回传】来源: dev-manager-tauri(炼境自身)\n类型: workflow_hypothesis\n置信度: under_validation\n影响范围: all_projects\n内容: verify_onboarding「lefthook 检查段」按键名匹配是名义匹配非语义匹配——等价功能不同键名(如 scripts 老写法、项目自定义键)会被误报缺失;enterprise-system 6/7 的 fail 尚未核实是缺失还是改名定制\n建议炼境: log_for_review","created_at":"2026-07-15 23:16:07","id":93,"project_id":"2c5b54ef-5570-42ab-8c41-8ed1e2cd21dc","source":"mcp"} {"content":"【复盘】notes 档案分片双写 + backfill 自愈(governance-feedback-loop 缺口①地基)\n任务类型: MCP工具\n复杂度: M\n实际轮数: 1轮(预估1-2轮)\n是否返工: 否\n有效策略: 动工前辩证翻转归宿设计(集中式→按项目分片),翻转依据全部来自侦察事实(安装态进程定位不了炼境仓库/usage.json 先例本就 per-project/可拆除性按项目成立);实现前把 project_root 重构出 DI 版而非复制 WSL 转换逻辑,单一实现;三个测试对着 acceptance 逐条写(双写匹配/回填幂等+死登记跳过/并发不交错),110 全绿一次过;PR #5 CI 双侧绿后 MCP 合并\n遗留风险: MCP 实调(append 双写 + backfill 存量落盘)待重建安装后终验——本条笔记即终验样本(重建后跑 backfill_notes_archive,应出现在 dev-manager-tauri/.blueprint/notes-archive.jsonl 尾部);WSL 项目分片路径未真机验;子项目档案文件的 git 收编节奏未约定(沿 usage.json 惯例)\n附带产出: /ship 体检实补3处(push 提前信号/新文件占比口径/机械阈值归 lint);/envoy 体检零改动收官——两项均早已消化,沉淀教训「分诊定态前先核实目标文件现状」","created_at":"2026-09-11 22:27:48","id":164,"project_id":"dev-manager-tauri","source":"mcp"}