blog-demo · 运维与踩坑

开发工作流:减少重复,保留必要验证

从任务边界到分支、验证、提交和发布的仓库协作约定。

状态
维护中
最后核对
源码修订
e0d3baa2

开发工作流:减少重复,保留必要验证

本轮开发复盘(2026-09-06)。目标是减少重复读取、无效工具调用与返工;没有逐步骤 token 计量,不宣称具体节省比例。根目录 AGENTS.md 是每次任务的简短入口,本页按需阅读。

一次任务的顺序

  1. 确定边界:看状态和相关差异,区分用户内容与开发改动;把功能、内容、测试、文档的提交分组列清楚。
  2. 定位证据:搜索文件和符号,再读命中范围。已读设计上下文、工具文档和句柄继续使用,避免重新发现。
  3. 完成一个闭环:例如修改内容字段时,同步网站 schema、Studio 表单与保存、文档和相关测试;完成后再转向下一个问题。
  4. 按影响验证:将结果与输入版本、路径配置和浏览器环境对应起来。新改动影响哪部分,就重新验证哪部分。
  5. 提交与发布:先审查完整差异,再按组提交;普通推送只进入轻量 CI。版本准备允许多轮方案评审和局部验证,得到作者明确批准后才冻结候选并开始全面复核。明确区分已推送、Release 制品已生成、ECS 已部署与页面已更新。

这次最值得保留的改进

观察到的消耗 固定做法
多份长文一次输出被截断,随后又补读 先看标题/符号,再读有关范围;输出预算按资料量设置,不把一批读操作变成整库倾倒
在连接器、终端、浏览器之间重复查同一个状态 源码用本地文件,Git 用 Git,部署用 Actions 工具,界面用指定浏览器;得到权威结果后停止重复确认
浏览器连接超时后重复建立相同连接 先诊断一次;保留已有标签身份。静态上线证据可来自 HTTP 与 CI,但必须说明它不等同于现场交互验证
检查经过的版本与后来修改的版本混在一起 留一条临时验证记录:范围、输入版本/差异、命令、BASE、浏览器、结果、日志;有关输入改变才让对应结果失效
大量成功测试输出挤占上下文 完整日志留临时目录,返回退出码和简短汇总;失败时读取首个错误及周围上下文
分组提交后才发现原始内容末尾空行 在第一次提交前检查全体预期改动;新文件暂存后也检查。推送前再检查完整 outgoing diff
全站改版完成后才回头检查编辑器 需求开始就列“网站 / Studio / 数据 / 测试 / 文档”的影响面

验证范围

改动 所需验证
仅 Markdown 维护文档或 AGENTS 差异、内部链接、命令与实际实现一致性
内容或字段 内容/Studio 相关单测、检查、构建;新增衬线文字关注字表;展示改变时检查页面
Studio 保存、提交或推送 服务端相关测试与 test:studio;临时仓库验证保存/提交,作者内容不参与;预览构建变更加 STUDIO_BUILD_TEST=1
网站 UI / 公共组件 检查、构建、单元与浏览器回归、有关视觉基线
路由、搜索或发布 使用正式域名与根路径构建;部署后检查实际生产入口

当前单元测试会创建临时内容文件,构建与检查也共用内容和 Astro 状态,不能盲目并行。只读搜索可以并行;对同一批源码的构建、写文件测试和字体生成依次执行。

浏览器相关开发和验证默认使用 Microsoft Edge。macOS 默认路径由 scripts/browser-path.mjs 解析;只有明确设置 BROWSER_PATH 或 EDGE_PATH 时才覆盖。

构建前不为“顺便看看”抓取行情。运行中的 Studio 与日常预览服务继续保留,测试使用独立端口并只关闭自己创建的进程。

简短日志模式

npm run check > /tmp/blog-check.log 2>&1

从工具返回读取退出码;失败再定向读取日志。不要用 npm run check | tail 将管道末尾成功误当作检查成功。日志是本次任务证据,不进入 Git。

临时交接笔记只保存当前目标、完成项、剩余项、改动范围、验证环境与结果、服务/部署标识;不要复制整段对话。规则发生变化才更新工作约定,避免每次复盘都堆叠新规则。

仍需坚持的门槛

节省 token 不等于减少必要测试、跳过视觉检查、把部署成功当作行情更新成功,或让旧测试结果覆盖新改动。优先消除重复工作,再降低每次读取与检查的输出量。

本轮 Studio 实施补充:先用一个最小草稿贯通保存与真实构建,尽早发现序列化和临时依赖路径问题,再扩展截图。异步界面测试等待可见完成状态,避免用点击结束推断数据已返回。