ドキュメント / explanation
アーキテクチャ
Jenks のサイトの構成について — git にある単一のコーパス、バリデーションするコンパイラ、Cloudflare 上の静的サイト、ツールを使うアシスタント、そして MCP・REST・CLI を支える一つの仕様です。
要点
真実のソースは一つ — git にある Markdown ファイルのコーパス — で、その他すべてはそこから生成されるか、そこを参照します。7言語のウェブサイト、エージェント用ファイル、Ask Jenks アシスタント、REST API、MCP サーバー、CLI です。
コーパス
content/corpus/ には、各経験・プロジェクト・コミュニティでの役割・学歴の項目ごとに1つの 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> でワーカーにより1年間のキャッシュ付きで配信されます。コンテンツはそのパスで参照し、管理用 API はコミット前に参照される各ファイルが存在することを確認します。
ウェブサイト
サイトは Next.js の静的エクスポートで、Cloudflare Workers Static Assets から配信されます。手前の小さな Worker がリダイレクト(jenksguo.com と www ホスト → jenksguo.xyz)、セキュリティヘッダー、API を処理します。
サイトには常に同じ内容を表示する 2 つのアドレスがあります。https://jenksguo.pages.dev は履歴書や QR コードで使う正規のアドレスです。企業ネットワークは新規取得ドメインをブロックしがちですが、pages.dev は古く広く許可されています。https://jenksguo.xyz はミラーです。pages.dev のアドレスは Cloudflare Pages プロジェクト(mirror/)で、コードはすべてのリクエストをサイトの Worker に転送するだけなので、1 回のデプロイで両アドレスが更新され、同期の手間はありません。英語は /、他の 6 言語は /zh、/zh-hant、/ja、/fr、/es、/eo にあります。各エントリは各言語ごとに専用ページを持ちます。
Ask Jenks アシスタント
このアシスタントは長大なプロンプトではなく、ツールを使うエージェントです。システムプロンプトにはコアプロフィールと、各エントリ・レンズ・スキルの 1 行インデックスだけを保持します。詳細が必要なときにツールを呼び出します。
load_skill— 質問の種類(ロール適合、コンサルのスコーピング、AI 変革、STAR 事例、ガバナンス、キャリアナビゲーションなど)に応じたプレイブック、get_entries— スラッグでの完全な書き起こし、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 が実行されます。
- コーパスのコンパイルと検証、
- 変更があったエントリのみを他の 6 言語へ再翻訳(翻訳は英語ソースのハッシュでキャッシュし、固定グロッサリーで見出しとレンズ名を統一します)、
- サイトとエージェントファイルのビルド、
- デプロイ —
mainをhttps://jenksguo.pages.dev、devをhttps://dev.jenksguo.xyz(インデックスしません)へ。
macOS、Linux、Windows 向けの CLI バイナリは /downloads に公開します。
こうした形にしている理由
個人サイトは小規模ですが、人間・検索エンジン・そして増え続けるエージェントに複数言語で読まれ、手作業と同じくらいの頻度で AI によって編集されます。検証済みの単一ソースと生成されたサーフェスという設計は、それらすべての一貫性を最もシンプルに保つ方法です。
.mdこのページはAIの支援で翻訳されています。正式な肩書は英語のままです。