Skip to main content
Jenks Guo

文件 / explanation

架構

Jenks 的網站如何組成——一個在 git 裡的語料庫、一個可驗證的編譯器、部署在 Cloudflare 的靜態網站、一個可使用工具的助理,以及一份同時驅動 MCP、REST 與 CLI 的規格。

簡述

只有一個真實來源——位於 git 的 Markdown 檔語料庫——其他一切不是由它產生,就是直接讀取它:支援七種語言的網站、代理用檔案、Ask Jenks 助理、REST API、MCP 伺服器與 CLI。

語料庫

content/corpus/ 以每則經歷、專案、社群角色與教育條目各一個 Markdown 檔的方式存放,每個檔案都含有 YAML 前置資料(日期、標籤、角色鏡頭、關鍵成果、技能、證據連結)以及長篇正文。其旁還有核心個人檔案、能力、證照、演講、世界觀、角色鏡頭與助理技能。事實資料蒐集自 Jenks 的履歷、LinkedIn、Linktree 與他的講者頁面,並以保守方式解決衝突。

將語料庫保存在 git,意味著每一次變更都是一個 commit:可審查、可追溯、可還原。

編譯器

scripts/build-corpus.mjs 會讀取語料庫,依據單一綱要(scripts/corpus-schema.mjs)驗證每個檔案,並將其編譯成單一的 JSON 語料庫,以及代理用檔案 /llms-full.txt 與 /experience.json。未知的標籤或鏡頭、錯誤的日期、遺失的圖片或缺少的章節都會使建置中止。管理 API 在提交前也會執行「相同」的驗證,因此不良的編輯——不論是人為或 AI 所為——都會在破壞任何東西之前被拒絕。

媒體

照片、影片剪輯與 PDF 不放在 git。它們會透過管理介面上傳到由開發與正式環境共用的 Cloudflare R2 儲存桶,並由 Worker 以 /media/<year>/<month>/<name>-<fingerprint>.<ext> 路徑、為期一年的快取進行服務。內容以該路徑引用;管理 API 會在提交前檢查每個被引用的檔案是否存在。

網站

網站是由 Next.js 產出的靜態匯出,透過 Cloudflare Workers Static Assets 服務。在它前面有一個小型 Worker,負責處理重新導向(jenksguo.com 與 www 主機 → jenksguo.xyz)、安全性標頭與 API。

網站有兩個位址,但顯示內容始終相同。https://jenksguo.pages.dev 是正本,會出現在履歷與 QR 碼上:公司網路常會封鎖新註冊網域,而 pages.dev 歷史較久且普遍允許。https://jenksguo.xyz 是鏡像站。pages.dev 位址是一個 Cloudflare Pages 專案(mirror/),其唯一的程式碼就是將每個請求轉發給網站的 Worker,因此一次部署即可更新兩個位址,且無需手動同步。英文位於 /;其他六種語言位於 /zh、/zh-hant、/ja、/fr、/es 與 /eo。每個條目在每種語言中都有自己的頁面。

Ask Jenks 助理

此助理是可使用工具的代理,而不是一大段提示詞。它的 system prompt 只包含核心個人檔案與每個條目、鏡頭與技能的一行式索引。當需要細節時,便呼叫工具:

  • 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/*),
  • jenks CLI 與其本地 MCP 模式(jenks mcp),
  • 參考文件 與 /openapi.json。

在一處變更工具,所有介面皆隨之更新,因此文件不會與行為脫節。

發佈流程

管理端的編輯是透過 GitHub API 進行的 commits。每次 push 都會執行 CI:

  1. 編譯並驗證語料庫,
  2. 僅「重新翻譯變更過的條目」為其他六種語言(翻譯以英文原文的雜湊做快取;固定詞彙表用於標題與鏡頭名稱),
  3. 建置網站與代理用檔案,
  4. 部署——main 到 https://jenksguo.pages.dev,dev 到 https://dev.jenksguo.xyz(不被索引)。

適用於 macOS、Linux 與 Windows 的 CLI 可執行檔會發佈在 /downloads。

為何採取此設計

個人網站規模不大,但讀者包含人類、搜尋引擎,且越來越多是代理;同時支援多種語言,並且由 AI 與人工同樣頻繁地編輯。以單一可驗證來源生成各種介面,是讓上述各方維持一致性的最簡設計。

.md本頁內容在 AI 協助下翻譯;官方職稱保留英文。