週一早上九點零七分
週一早上。一位新工程師加入你的團隊。她叫小美。她打開 Slack,47 個未讀頻道。有人在某個頻道釘選了一份 Google Doc,標題是「入職指南(2025 年 2 月更新)」-- 十四個月前的版本。她點進去。第一個連結指向一個已經不存在的 wiki 頁面。第二個連結打開一個上季度已結案的 Jira 看板。第三個連結能開,但描述的是六個月前就改掉的 deploy 流程。
到了中午,小美已經私訊了四個人問東西在哪。三個人給了不太一樣的答案。其中一個轉寄了一封 2024 年的 email,主旨是「RE: RE: FWD: 新人設定筆記 (最終版 v2)」。
這不是人的問題。是知識的問題。資訊存在。它散落在 Notion 頁面、Slack 書籤、Google Docs、以及那些待得夠久才知道哪些 wiki 頁面是騙人的同事腦中。沒有人有時間為每個新人組裝一份全新、正確、角色專屬的指南。所以每個人拿到同一份過期文件,真正的入職靠的是打斷別人的工作來問問題。
有更好的做法。它從一個叫 CLAUDE.md 的檔案開始。
核心概念:把公司知識變成程式碼
把入職知識想像成一座圖書館。一座巨大、雜亂無章的圖書館,書隨便放,目錄上次更新是兩年前。新人走進來,你遞給他一張 2024 年的影印地圖,祝他好運。
如果圖書館有一份活的索引呢?知道每一個書架、每一本書,而且能根據特定的人 -- 他的角色、他的團隊、他會用到的工具 -- 即時組裝一份專屬書單。
這就是 CLAUDE.md 的角色。它是一個純文字檔,放在專案根目錄,告訴 AI agent 關於你組織的一切必要資訊。不是全世界的知識 -- 只是那些你的程式碼和工具本身無法揭示的東西。當你的入職知識住在這個檔案裡,產生一份個人化指南就從四小時的任務變成十秒鐘的操作。
Anthropic 自己的文件展示過一個用例:「建立新人入職指南」。你把公司資訊貼進聊天視窗,Claude 產出一份歡迎文件。能用。但那是一次性互動。公司資訊活在你的剪貼簿裡,不在你的系統裡。每次產生指南,你重新貼、重新解釋、重新排版。
我們可以做得更好。讓知識永久存在,讓生成自動化,讓輸出針對每個人量身打造。
架構:三個層次
這個系統有三個層次。每一層解決不同的問題。
第一層:CLAUDE.md -- 永久知識庫。 編碼那些不會因新人而改變的資訊。你的技術棧。你的溝通規範。你的團隊結構。你的資安政策。它在每個 Claude Code session 自動載入,所以 agent 永遠知道組織脈絡。
第二層:Skill 檔案 -- 入職模板。 Skill 是一個按需載入的 markdown 檔案,不是每次 session 都載入。它定義入職指南的結構:包含哪些章節、用什麼語氣、輸出什麼格式。把它想成食譜。CLAUDE.md 提供食材,Skill 提供做法。
第三層:MCP 伺服器 -- HR 系統的即時資料。 MCP 是 Model Context Protocol 的縮寫。它是 AI agent 連接外部工具的標準方式 -- 把 MCP 伺服器想成你的終端機與外部世界之間的橋樑。一個 MCP 伺服器可以從你的 HR 系統(BambooHR、Rippling、甚至 Google Sheet)拉取新人的角色、團隊、到職日和主管。不用複製貼上。資料自動流入。
第一層:在 CLAUDE.md 編碼公司知識
你的專案層級 CLAUDE.md 如果使用 Claude Code 應該已經存在。如果還沒有,請參考 CLAUDE.md 撰寫指南 的完整教學。這裡我們加入入職專屬的區塊。
核心原則:只放 agent 無法從程式碼找到的資訊。團隊名稱、Slack 頻道、工具存取流程、資安要求 -- 這些不在你的 package.json 裡。
## Onboarding Context
### Team Structure
- Engineering: backend (Python/FastAPI), frontend (React/Next.js), platform (Terraform/K8s)
- Product: PM + designer pairs per squad
- Security: all new hires complete security training in Week 1 via KnowBe4
### Communication
- Slack: #general, #engineering, #deployments, #incidents
- Each team has a private channel: #team-backend, #team-frontend, #team-platform
- Standups: async in Slack threads, daily by 10 AM local time
- All-hands: Thursdays 2 PM UTC on Google Meet
### Tools & Access
- Code: GitHub (org: your-company), branch protection on main
- CI/CD: GitHub Actions, deploys via ArgoCD
- Monitoring: Datadog (request access via IT ticket)
- Docs: Notion workspace (auto-provisioned on first SSO login)
- Secrets: 1Password Teams (IT provisions on Day 1)
### Repositories
- your-company/api -- backend services (Python, FastAPI)
- your-company/web -- frontend app (Next.js 15, TypeScript)
- your-company/infra -- Terraform configs, Helm charts
- your-company/docs -- internal documentation site (Astro)
### First Week Milestones
- Day 1: laptop setup, SSO login, Slack introductions, 1:1 with manager
- Day 2: dev environment running locally, first PR (typo fix or README update)
- Day 3: shadow a deployment, read incident runbook
- Day 5: present a 5-minute "what I learned" to the team
大約 35 行。精簡到可以每次 session 都載入而不浪費 token。豐富到 agent 不需要追問就能產出指南。
注意這裡沒有什麼:各 repo 的詳細設定步驟(那應該在各 repo 自己的 README)、HR 福利資訊(那來自 MCP 層)、或任何因人而異的內容(那是 Skill 處理的)。
第二層:入職 Skill
Skill 檔案放在 .claude/skills/,在 agent 需要時啟動。建立 .claude/skills/generate-onboarding-guide.md:
# Skill: Generate Onboarding Guide
## Trigger
When asked to generate an onboarding guide, welcome doc, or new hire document.
## Inputs Required
- New hire name
- Role (e.g., "Senior Backend Engineer")
- Team (e.g., "Platform")
- Start date
- Manager name
- Any role-specific notes (optional)
## Output Format
Generate a markdown document with these sections:
1. **Welcome** -- personal greeting, team intro, manager intro
2. **Your First Week** -- day-by-day schedule based on First Week Milestones in CLAUDE.md, customized for role
3. **Tools & Access** -- only the tools relevant to this role/team, with setup steps
4. **Key Repositories** -- only the repos this person will work in, with a one-line description of each
5. **Communication** -- relevant Slack channels (team-specific + general), meeting schedule
6. **Key Contacts** -- manager, team lead, buddy (if provided), IT support, security contact
7. **Learning Resources** -- internal docs, architecture decision records, relevant past incident postmortems
8. **FAQ** -- common questions for this role, pulled from historical onboarding feedback
## Tone
Warm but efficient. The reader is smart and anxious. Reduce uncertainty. Every link must be real and current.
## Output Filename
`onboarding-guide-{name}-{date}.md` in the `onboarding/` directory.
Skill 是一張食譜卡。它不包含食材 -- 食材來自 CLAUDE.md 和 MCP。它只告訴 agent 如何組合它們。
第三層:用 MCP 串接 HR 即時資料
如果你的公司使用有 API 的 HR 平台,可以透過 MCP 串接,讓 agent 自動拉取新人資料。不需要手動輸入。
以下是 .mcp.json 中通用 HR API MCP 伺服器的設定:
{
"mcpServers": {
"hr-system": {
"command": "node",
"args": ["./mcp-servers/hr-bridge/index.js"],
"env": {
"HR_API_BASE": "https://api.bamboohr.com/api/gateway.php/yourcompany/v1",
"HR_API_KEY": "${BAMBOOHR_API_KEY}"
}
}
}
}
MCP 伺服器暴露 get_new_hires_this_week、get_employee_details、get_team_members 等工具。當你要求 agent 產生入職指南時,它呼叫這些工具取得新人的角色、團隊、主管和到職日 -- 然後餵入 Skill。
如果你沒有 HR API,備案很簡單:把細節當作指令參數傳入。MCP 層是最佳化,不是必要條件。
執行
三個層次都到位後,生成指令只要一行:
claude "Generate an onboarding guide for Mei Chen, Senior Backend Engineer,
Platform team, starting 2026-03-24, reporting to James Wu"
Agent 讀取 CLAUDE.md 取得公司脈絡、啟動入職 Skill 取得結構、產出一份 markdown 檔案在 onboarding/onboarding-guide-mei-chen-2026-03-24.md。
如果有設定 MCP,可以更簡短:
claude "Generate onboarding guides for all new hires starting next Monday"
Agent 查詢 HR 系統,取得名單,為每個人產生一份指南。每份指南都是量身打造:後端工程師的指南強調 API repo、Python 工具鏈和 FastAPI 慣例。前端工程師的指南強調 web repo、React pattern 和設計系統。平台工程師的指南強調 infra repo、Terraform workflow 和 incident response 程序。
轉換為 PDF
Markdown 適合版本控制。但 HR 可能需要 PDF 在第一天寄出。Pandoc 處理這件事:
pandoc onboarding/onboarding-guide-mei-chen-2026-03-24.md \
-o onboarding/onboarding-guide-mei-chen-2026-03-24.pdf \
--pdf-engine=weasyprint \
-V margin-top=2cm -V margin-bottom=2cm
或者讓 agent 做。在 Skill 加一行:
## Post-Generation
After generating the markdown guide, also produce a PDF version using Pandoc.
現在 claude "generate onboarding guide for Mei Chen..." 會同時輸出兩份檔案。
版本控制:隱藏的優勢
這是聊天式方法做不到的事:版本控制。
每份生成的指南都是 repo 中的 markdown 檔案。當團隊結構改變 -- 新的 Slack 頻道、停用的工具、不同的 deploy 流程 -- 你更新 CLAUDE.md。下一份指南會自動反映這些變更。
但你同時擁有歷史紀錄。git log onboarding/ 顯示每份曾經產生的指南。對同一個角色、相隔三個月的兩份指南做 git diff,精確顯示你的入職流程改變了什麼。這是自動產生的文件紀錄。
如果你同時管理多個入職專案 -- 比方說同一個週一有五位新人報到 -- 每份指南可以在自己的 workspace 中進行。這時終端機 workspace 工具就真正派上用場:一個面板一份指南,各自跑生成指令,全部一目了然。
為什麼這比 Google Doc 好
比較的重點不是 AI 對上非 AI。是架構。
Google Doc 是快照。寫下的那一刻就開始腐敗。連結壞掉。工具換了。團隊重組。沒有人的工作是維護入職文件,所以沒有人做。
這個系統有三個 Google Doc 缺少的特性:
可組合。 公司知識(CLAUDE.md)、指南結構(Skill)、即時資料(MCP)是獨立的層。你各別更新。團隊結構的變動只改 CLAUDE.md 的一個區塊。Skill 和 MCP 層不需要動。
預設就是個人化。 沒有「通用」輸出。每份指南都是角色專屬的,因為 agent 讀取角色後會自動篩選。後端工程師不會看到前端工具的設定步驟。設計師不會看到 Terraform 設定。
有版本控制。 每份指南是 repo 裡的檔案。變更被追蹤。歷史可稽核。你可以 diff、code review、rollback。
開始動手
如果你想今天就試,從小處開始:
- 在你現有的 CLAUDE.md 加入入職區塊。十行團隊結構、工具和頻道。
- 在
.claude/skills/建立 Skill 檔案。複製本文的模板,調整章節。 - 用一個真實新人的資料執行指令。
先跳過 MCP 層。等價值被驗證後再加。前兩層本身 -- 永久知識加結構化的模板 -- 就已經消除了「過期 Google Doc」的問題。
目標不是把入職的人性面自動化。和 team lead 的第一杯咖啡、走廊上的對話、「我示範一下我們實際上怎麼做」的那些時刻 -- 這些很重要。目標是自動化機械的部分:組裝正確的連結、正確的頻道、正確的 repo、正確的聯絡人,給正確的人。讓小美在週一早上打開入職指南時,每一個連結都能用,而且那份文件是專門為她寫的。
那才是更好的第一天。