张路.
WEEKLY · 2026-W31 ·

本周做了什么

这一周先修掉 skills 自动同步带来的安全和一致性问题,再把四个新站、四篇长文和 MDX 写作方式补进个人站。

这一周的主线:先收边界,再扩内容

W31 分成两半:前半周处理 skills 自动同步暴露的事故,后半周把新项目和文章体系继续往前推。一个是安全边界,一个是内容增长;放在一起看,核心都是让公开站的内容既丰富,又不失控。

skills 同步事故修复

07-26 和 07-27 的自动同步证明机制跑通了,但也暴露了三个问题。

第一,旧版 --prune 把“目录还在但读不出来”当成“本机已删除”,导致一批断链 symlink 或缺 SKILL.md 的 skill 被误删,其中包括站点自己的 zhanglu skill。修复后,脚本引入 present 集合:只要目录存在,就永不自动 prune;读不出来单独报告为不可读。

第二,17 个内部服务相关的 aic-* skill 被同步到公开站,description 中包含内部系统职责和模块划分。修复方式是在 sync-skills.mjs 顶部加入 EXCLUDE = ['aic-*'],同时匹配目录 slug 和 frontmatter name,命中的内容既不写入,也会删除仓库残留。

第三,中文 skills 增长后英文侧没有对应文件,构建仍然通过,导致 /skills/en/skills 静默不一致。修复后,sync:auto 遇到中英不对齐会直接 exit 1,不再让“能推上线的警告”继续上线。

配套还恢复了 /skills/zhanglu,给 skill detail API 加了 skill_md 字段,让 README 中的安装配方能生成合法的 SKILL.md,并把失效的 mba 示例统一换成仍存在的 boss

删除内容的线上验证规则被写清

skills 事故修复后,线上核验又发现一个更隐蔽的问题:已经从仓库删除的 URL 仍可能返回旧的 200 页面。后续追查把问题定位为 Cloudflare 侧对旧副本的服务行为,而不是仓库构建失败。

这件事被写进 AGENTS.md:以后凡是“下线 / 撤回内容”的改动,不能只看源代码和新端点,还要验证旧 URL 是否真的 404,必要时做 Cloudflare purge。新增和修改通常部署即生效,但删除有额外验收成本。

skills 自动同步自我更新问题

07-28 的自动同步又暴露了一个很偏底层的 bug:auto-sync-skills.sh 运行时第一步会 fast-forward 到远端最新代码,如果这个过程替换了脚本自身,bash 会继续按旧字节偏移读新文件,导致后续逻辑错位。

修复方式是:脚本在 merge 前后比较自身 md5,发现自身变化就带 ZHANGLU_REEXEC=1 重新 exec 一次。这个补丁保证未来修改自动同步脚本后,下一次运行能真正执行新逻辑,而不是卡在旧脚本和新文件的夹缝里。

四个新项目进站

后半周新增了四个项目,全部补中文、英文、详情页、JSON 端点和封面:

  • SiliconForge:需求进,软件出,把业务需求转成机读 PRD,再由 AI 小队开发和验证。
  • 大表哥 excel-ai-analyst:把复杂 Excel 当遗留代码逆向工程,先在浏览器本地看穿结构。
  • AI 成果访谈:用 1-2 分钟语音访谈、自适应追问和统一评分规则减少成果评审失真。
  • BRAIN / 27 机会雷达:面向 2027 届脑科学 × AI 方向的博士、联培、科研助理和校招机会雷达。

新增项目没有把 demo 写成 production,而是把每个站点自己承认的限制也写进正文:两级交付口径、浏览器本地分析边界、静态快照和官方公告优先等。

四篇长文和 MDX 写作方式

随后给四个新站各写了一篇双语长文,并把新长文写作方式切到 MDX。

此前长文是手写 .astro,正文里要写大量 HTML。新方式增加 src/layouts/Post.astro,每篇文章用 .mdx 写 markdown 正文,frontmatter 指定 layout。这样以后加站内长文只需要一个 .mdx 页面和一条 articles 索引,/posts 列表会从 articles 集合自动派生,不再维护手写数组。

四篇文章分别从具体问题切入:

  • SiliconForge:为什么“AI 写代码”不该只服务开发者。
  • 大表哥:为什么一张多年 Excel 本质上是一套没有文档的遗留代码。
  • AI 成果访谈:如何让不会讲的人也能被看见。
  • BRAIN 雷达:机会稀缺的不是列表,而是顺序。

这周的结论:公开站要继续长内容,但每一次增长都要同时守住边界、双语对齐、机读接口和可验证部署。