文档 / explanation
架构
Jenks 的站点如何组合在一起——git 中的单一语料、带校验的编译器、托管在 Cloudflare 上的静态站点、会用工具的助手,以及同时支撑 MCP、REST 和 CLI 的一份规范。
简述
只有一个事实来源——git 中的一套 Markdown 语料库——其他的一切都由它生成或从中读取:七种语言的网站、面向智能体的文件、Ask Jenks 助手、REST API、MCP 服务器,以及 CLI。
语料库
content/corpus/ 中每一段工作经历、项目、社区角色和教育经历各有一个 Markdown 文件,含 YAML 前言(日期、标签、角色透镜、关键成果、技能、证明链接)和长篇正文。旁边还包括核心个人资料、能力、证书、演讲、世界观、角色透镜以及助手的技能。事实来源于 Jenks 的简历、LinkedIn、Linktree 和演讲者页面,冲突以保守方式处理。
把语料库放在 git 中意味着每次更改都是一次提交:可审查、可追责、可回滚。
编译器
scripts/build-corpus.mjs 读取语料库,按一个模式(scripts/corpus-schema.mjs)校验每个文件,并将其编译为一个 JSON 语料以及智能体文件 /llms-full.txt 和 /experience.json。未知标签或透镜、错误日期、缺失图片或缺少章节都会中止构建。管理 API 在提交前运行相同校验,因此错误的编辑——无论来自人还是 AI——都会在破坏任何东西之前被拒绝。
媒体
照片、视频片段和 PDF 不在 git 中。它们通过管理界面上传到一个由开发和生产共享的 Cloudflare R2 存储桶,并由位于 /media/<year>/<month>/<name>-<fingerprint>.<ext> 的 Worker 提供服务,缓存时间为一年。内容通过该路径引用;管理 API 会在提交前检查每个被引用的文件是否存在。
网站
站点是由 Next.js 静态导出并由 Cloudflare Workers Static Assets 提供服务。前置的一个小型 Worker 处理重定向(jenksguo.com 和 www 主机 → jenksguo.xyz)、安全响应头和各类 API。
站点有两个总是显示相同内容的地址。https://jenksguo.pages.dev 是规范地址,用于简历和二维码:公司网络常常阻止新注册域名,而 pages.dev 历史较久更易被允许。https://jenksguo.xyz 是镜像。pages.dev 地址是一个 Cloudflare Pages 项目(mirror/),其唯一代码是把每个请求转发到站点 Worker,因此一次部署即可更新两个地址,无需额外同步。英文在 /;另外六种语言在 /zh、/zh-hant、/ja、/fr、/es 和 /eo。每条目在每种语言下都有自己的页面。
Ask Jenks 助手
该助手是一个会用工具的智能体,而不是一段很长的提示词。它的系统提示词仅包含核心个人资料以及每个条目、透镜和技能的一行索引。需要细节时它会调用工具:
load_skill— 针对问题类型的作业手册(岗位匹配、咨询范围界定、AI 转型、STAR 故事、治理、职业导航……),get_entries— 按 slug 获取完整写作,list_entries— 按标签、透镜或类型过滤,search_corpus— 关键词搜索。
这种渐进式披露让回答扎根于整个语料库,而无需巨大的提示词。模型通过 OpenRouter 访问。
一份规范,四个界面
src/spec.js 将所有公开和管理工具定义在一处:名称、描述、输入模式、REST 路由和 CLI 命令。由此生成:
- 远程 MCP 服务器(
/mcp、/mcp/admin), - REST API(
/api/v1/*、/api/admin/*), jenksCLI 及其本地 MCP 模式(jenks mcp),- 参考文档 和
/openapi.json。
在一个地方修改工具,所有界面都会随之更新,文档因而不会与实际行为偏离。
发布流水线
管理端编辑通过 GitHub API 以提交的方式进行。每次推送都会运行 CI:
- 编译并校验语料库,
- 仅重新翻译更改过的条目为其他六种语言(翻译通过其英文源的哈希进行缓存;固定术语表规定标题和透镜名称),
- 构建站点与智能体文件,
- 部署——
main到https://jenksguo.pages.dev,dev到https://dev.jenksguo.xyz(不被索引)。
面向 macOS、Linux 和 Windows 的 CLI 二进制文件发布在 /downloads 下。
为什么这样设计
个人站点很小,但读者包括人、搜索引擎以及数量日增的智能体,支持多种语言,且由 AI 与人工同样频繁地编辑。以单一、可校验的来源生成各类呈现面,是在保持所有方面一致性的前提下最简单的设计。
.md本页内容在 AI 协助下翻译;官方职位名称保留英文。