本周做了什么
个人站从中文展示页升级成双语、机读、可解释、可自动维护的网站系统:英文版、agent 接入层、架构说明、skills 同步机制和 v0.3.0 都在这一周落地。
这一周的主线:把个人站做成给人和 agent 都能读的系统
这周的工作不是简单加页面,而是把 zhanglu.net 从“个人作品集合”推进到一个更完整的网站系统:中文默认、英文平行、页面给人读、JSON / CLI 给 agent 读,关键结构写成文档和图示,内容更新也开始有自动化入口。
全站双语上线
最大的工程改动是全站英文版。中文继续放在根路径 /,英文放在 /en/,首访会按浏览器语言自适应跳转,页头也能手动切换。
这不是只翻首页,而是把 projects、articles、presentations、skills、weekly 全部做成中英平行集合,并给每个页面补英文镜像、hreflang、分语言 RSS 和 sitemap。内容层面,48 个英文内容文件一次性补齐;页面层面,中英文各 53 页完成构建。
这个决定让以后新增内容有了明确规则:中文和英文各一份,schema 共用,消费端按语言读对应集合。它牺牲了一点写作成本,换来了结构清楚、不会在中文页面里到处过滤英文内容的稳定性。
agent 接入层补齐
这一周把站点的机读入口认真补齐了:
/api/weekly.json和双语 weekly detail API 加入,周报也进入搜索语料。- agent CLI 已发布到 npm,
npx zhanglu-net可以直接 list / get 项目、文章、skills、周报等内容。 /agents与/en/agents补了准入与授权说明,明确 robots 放行、可以读取和引用、不要用于训练。- README 和
llms.txt对齐到当前真实端点,不再只面向浏览器读者。
这件事的意义是:站点内容不再只能被 HTML 抓取。人可以看页面,agent 可以走结构化 JSON 或 CLI;字段形状集中在 src/lib/api.ts,避免页面、RSS、CLI、搜索各自长出一套事实。
架构说明和可维护性
用户问“整个网站如何运作”,于是新增了 docs/architecture.md 和双语 /how-it-works 页面。
这个页面不是营销介绍,而是把内容源、Zod schema、Astro build、页面 / JSON / RSS / sitemap / CLI 的关系画出来。更重要的是,页面上的计数尽量在 build 时计算,例如集合数量、端点类型、JSON 文件数量,避免文档里写死数字然后迅速过期。
顺手把 /how-it-works 放进主导航和首页入口,后续维护者能从页面本身理解“改一个 markdown 会影响哪些产物”。
skills 自动同步开始成形
/skills 的真相也在这周讲清楚了:Cloudflare Pages 构建机没有本机的 ~/.claude/skills/,所以站上的 skills 不是实时目录,而是最后一次手动同步并 push 的快照。
为此新增了:
pnpm run sync:check:只读检查本机 skills 与仓库快照是否漂移。pnpm run sync:auto:同步、校验、构建、提交、推送一条龙。scripts/auto-sync-skills.sh:给 launchd / cron 调用的安全入口。AGENTS.md中完整记录 launchd 安装、zsh 注释坑、stdout / stderr 排查方式。
这套机制后来暴露并修复了更多问题,但 W30 的关键进展是:站点内容第一次有了“本机事实源 → 仓库快照 → 构建上线”的自动化闭环。
发版与文档收口
站点版本升到 v0.3.0,CHANGELOG.md 记录全站双语、C-suite 专题、agent 接入层、CLI、真 404、Content-Signal、开发纪律等变化。README、AGENTS 和 /agents 同步更新到当前站点状态。
这周的结论:zhanglu.net 不再只是一个作品展示页,而是一套可被人浏览、可被 agent 查询、可被维护者解释和自动更新的个人站基础设施。