Project Retrospective Analyzer
用途
自动复盘项目开发过程,分析问题根因,沉淀解决思路,形成可复用的技术经验。
触发条件
- 用户要求"总结今天做的工作"
- 用户要求"复盘项目问题"
- 用户要求"分析问题原理"
- 项目遇到类似之前的问题
复盘框架
1. 今日工作清单(时间线)
按时间顺序列出所有完成的任务,包含:
- 任务名称
- 关键操作(命令/代码/配置)
- 产出结果
2. 问题分类与分析
类型 A:环境/部署问题
特征:服务启动失败、端口冲突、进程残留、浏览器崩溃
根因分析模板:
1. 表面现象:xxx 无法启动/访问
2. 深层原因:xxx 进程占用端口/配置冲突/依赖缺失
3. 验证方法:netstat/ps/lsof 检查进程状态
解决思路:
1. 确认问题边界(本地 vs 云端)
2. 检查进程状态(PID、启动时间、监听端口)
3. 清理残留进程
4. 验证修复结果
类型 B:数据一致性问题
特征:本地有数据,云端没有;数据不同步;显示"旧数据"
根因分析模板:
1. 表面现象:网页显示"没有最新内容"
2. 深层原因:访问了错误的实例(localhost vs 公网IP)
3. 验证方法:对比两个端口的进程PID、文章数量、最新文章ID
解决思路:
1. 确认访问的是哪个实例(检查浏览器地址栏)
2. 对比本地 vs 云端数据状态
3. 制定同步策略(全量同步/增量同步)
4. 执行同步并验证
类型 C:浏览器自动化失败
特征:xbrowser/chrome/edge 启动失败、崩溃、无响应
根因分析模板:
1. 表面现象:浏览器启动后立即退出 (exit code: 0)
2. 深层原因:
- 浏览器正在运行,profile 被占用
- 内置浏览器缺少 --no-sandbox 参数
- 环境配置问题
3. 验证方法:检查进程列表、尝试不同浏览器
解决思路:
1. 关闭所有浏览器进程
2. 尝试切换浏览器(chrome → edge → 内置)
3. 如全部失败,改用替代方案(直接系统打开、curl 抓内容)
4. 记录失败原因,后续排查环境
类型 D:安全/HTTPS 问题
特征:浏览器显示"不安全"、证书错误
根因分析模板:
1. 表面现象:地址栏显示"不安全"
2. 深层原因:使用 HTTP 而非 HTTPS,或使用 IP 而非域名
3. 影响评估:功能正常,但用户体验和 professionalism 下降
解决思路:
1. 评估影响(内部测试 vs 对外展示)
2. 如需修复,选择方案:
- 短期:保持现状,功能优先
- 中期:配置自签名证书(仅消除警告)
- 长期:购买域名 + 备案 + 正规 SSL
3. 通用问题解决方法论
3.1 分层排查法
用户层 → 浏览器地址栏是否正确?
↓
网络层 → 能否 ping 通?端口是否开放?
↓
服务层 → 进程是否在跑?日志有无报错?
↓
数据层 → 数据库连接正常?数据是否存在?
↓
代码层 → 配置是否正确?版本是否匹配?
3.2 对比验证法
当"本地正常,云端异常"或"之前正常,现在异常"时:
1. 找出两个环境的差异点
2. 控制变量,逐一排除
3. 验证假设,定位根因
3.3 最小复现法
遇到复杂问题时:
1. 剥离无关因素,构造最小复现场景
2. 验证最小场景是否仍有问题
3. 逐步添加因素,定位触发条件
4. 自动化调用规则
当检测到以下场景时,自动触发本 Skill:
| 场景 | 触发条件 | 自动执行 |
|---|---|---|
| 端口冲突 | netstat 发现多进程监听同一端口 |
提示清理残留进程,提供 kill 命令 |
| 数据不同步 | 本地 vs 云端文章数差异 > 20% | 提示同步选项,提供同步脚本 |
| 浏览器启动失败 | xbrowser 连续 2 次失败 | 自动尝试备用浏览器,或切换替代方案 |
| 服务无法访问 | curl 失败 + 进程存在 | 检查防火墙/安全组配置 |
5. 持续更新机制
每次遇到新问题后,更新以下内容:
1. 在对应问题类型下添加新案例
2. 更新"通用方法论"章节
3. 如有新的自动化规则,添加到第 4 节
今日复盘示例(TechNews 部署)
工作清单
- 17:19 - 30分钟定时检查,验证爬虫正常运行
- 17:23 - 发现本地 vs 云端数据不一致问题
- 17:46 - 执行数据库同步(68篇 → 263篇)
- 17:53 - 用户反馈"不安全"警告,分析 HTTPS 问题
问题分析
问题 1:xbrowser 启动失败
- 类型:C(浏览器自动化失败)
- 根因:内置浏览器缺少 --no-sandbox,Chrome/Edge 被占用
- 解决:尝试三种浏览器均失败,改用 Start-Process 系统打开
- 沉淀:xbrowser 环境需进一步排查,当前备用方案有效
问题 2:"看不到最新文章"
- 类型:B(数据一致性问题)
- 根因:用户访问的是 localhost:5000(本地旧实例),而非公网 IP
- 解决:对比两个实例的数据状态,执行数据库同步
- 沉淀:多实例环境下,必须明确区分"本地"和"云端"的访问地址
问题 3:"不安全"警告
- 类型:D(安全/HTTPS 问题)
- 根因:使用 HTTP + IP 地址,无 SSL 证书
- 解决:提供三种方案(备案域名/Cloudflare/保持现状),由用户选择
- 沉淀:简历项目建议配置域名+HTTPS,提升专业度
经验沉淀
-
多实例环境必查清单:
- [ ] 本地端口是否有残留进程?
- [ ] 访问的是 localhost 还是公网 IP?
- [ ] 数据库路径是否正确? -
部署后必做验证:
- [ ] 公网 IP 能否访问?
- [ ] 数据是否同步?
- [ ] 爬虫是否正常运行?
- [ ] 防火墙/安全组是否放行? -
浏览器自动化备选方案:
- 首选:xbrowser(支持截图、自动化)
- 备选:Start-Process(仅打开网页)
- 兜底:curl/Invoke-WebRequest(抓内容验证)