專案引導設定(Project Bootstrap)
一個精簡的編排工具。此技能不包含其他技能——它會在適當的步驟載入正確的技能、執行確定性的腳本以建立檔案,並根據使用者的回答填入模板。如果以下步驟與複製進來的技能衝突,則以此技能為準。
優先順序規則——僅限設定階段
此排序僅在設定階段(此技能啟用期間)適用。當設定期間指令衝突時,請按此順序套用:
- 此技能(
project-bootstrap)——設定範圍、安全規則、停止規則。 - 專案自身的
CLAUDE.md——因為它正在被建立。 - 堆疊技能——例如此專案類型的 SwiftUI 或設計技能。
- 工作流程檢查清單——
references/workflow.md,預設流程。
一旦設定結束,此技能便不再啟用,排序也隨之失效:專案的 CLAUDE.md(及其文件)是未來工作階段的唯一常駐指令集。
切勿同時安裝兩個相互競爭的工作流程框架(例如,不要同時安裝一個重度規格驅動的框架和此技能的工作流程檢查清單)。如果使用者明確指定一個工作流程框架,請使用該框架取代預設檢查清單,並將選擇記錄在 docs/SETUP.md 中。
安全規則(不可被覆蓋)
- 切勿將機密、API 金鑰或令牌寫入任何產生的檔案,也切勿將伺服器端機密(例如銀行 API 金鑰)放入客戶端應用程式中。
- 未經使用者同意,切勿覆蓋任何現有檔案(
scripts/bootstrap.py預設拒絕;--force僅為選擇性加入,且使用--force時,腳本會先將每個檔案備份到<filename>.pre-bootstrap.bak)。 - 僅限設定階段:請勿在此階段開始開發產品功能。
工作流程
請依序執行這些步驟。請勿跳過。
1. 訪談
載入 references/interview.md。一次問一個問題,並在收到每個答案時立即將其寫入相關文件——不要將所有資訊保留在對話記憶中。如果使用者一次回答了多個問題,請記錄所有給出的答案,將這些問題標記為已回答,並從第一個未回答的問題繼續——切勿重新詢問已回答的問題。當每個問題都有答案或使用者明確延後回答(將延後項目記錄在 docs/STATE.md 中)時,停止訪談。
2. 執行腳本
從此技能目錄執行:
python3 scripts/bootstrap.py \
--project-name "<來自訪談的專案名稱>" \
--type <ios|web|python|generic> \
--purpose "<來自訪談的一行用途說明>" \
--target <新專案儲存庫路徑> \
--allow-placeholders
此處必須使用 --allow-placeholders:在此階段,模板仍故意包含 {{...}} 填充標記(步驟 3 會填入它們),因此腳本會通過驗證,僅對每個檔案發出 token 警告而不會失敗。目標目錄必須已存在(即新的專案儲存庫);如果目標缺失,腳本會報錯,而非建立一個拼寫錯誤的路徑——僅在使用者明確要求腳本建立該目錄時,才傳入 --create-target。
這將建立目錄並確定性地渲染模板。請準確報告腳本建立了哪些檔案、跳過了哪些檔案,或覆蓋了哪些檔案——切勿宣稱存在腳本未報告的檔案。
3. 根據訪談答案填入模板
將產生的檔案中剩餘的填充提示替換為實際答案:CLAUDE.md / AGENTS.md 中的技術棧和建置/測試指令、docs/PRD.md 中的範圍、docs/ROADMAP.md 中的階段、docs/CONTEXT.md 中的詞彙表。保持 CLAUDE.md 簡潔——若超過約 80 行,請將詳細內容移至 docs/ 目錄並留下指標。
4. 安裝堆疊技能——固定版本,安裝前閱讀
載入專案類型的參考文件,並僅安裝其所列的技能:
- iOS →
references/ios.md - Web →
references/web.md - Python / 一般類型 → 預設不安裝堆疊技能;請在 SETUP 中記錄此選擇。
每個列出的技能都固定到一個確切的 commit SHA(記錄在參考文件的 pinned-skills 表中)。安裝方式:將儲存庫複製到專案的 .claude/skills/ 目錄,然後 git checkout 固定的 SHA——切勿從移動中的分支安裝,也切勿在未記錄新 SHA 的情況下提升固定版本。
安裝前閱讀是強制性的。 在複製之後、安裝完成之前,對於每個技能:
- 完整閱讀其
SKILL.md(並注意它預設載入的其他內容)。 - 撰寫 2–3 行的摘要:此技能將為未來的工作階段載入哪些指令。
- 標記任何要求網路存取、憑證使用或破壞性指令的項目。將標記內容呈現給使用者;未經使用者同意,請勿靜默安裝任何提出此類要求的技能。
在 docs/SETUP.md 中,為每個技能記錄:名稱、確切來源 URL、固定的 SHA、安裝日期以及閱讀摘要。請勿將技能的內容複製到 CLAUDE.md 中——技能應作為一個獨立、可載入的單元存在。
5. 設定工作流程規則
如果 CLAUDE.md 中尚未包含預設迴圈,請將 references/workflow.md 中的預設迴圈寫入:規範 → 規劃 → 建置 → 獨立審查,每個階段使用一個新的工作階段,docs/STATE.md 在每個工作階段結束時更新。
6. 驗證——全新檢查,非步驟 2 的輸出
立即以全新狀態執行驗證,使用 --verify 模式(它會讀取目標檔案的當前狀態,且不修改任何內容):
python3 scripts/bootstrap.py --verify --target <專案儲存庫路徑>
請勿重複使用步驟 2 的輸出——那次執行發生在步驟 3 的填入和步驟 4 的安裝之前。請不要在驗證指令中加入 --allow-placeholders——腳本會直接拒絕該組合,因為驗證必須針對已填入內容的檔案執行。--verify 會在產生的檔案中發現任何遺留的填充標記時失敗:如果因標記而失敗,表示步驟 3 尚未完成——請回去填入剩餘的標記,並重新執行 --verify 直到通過。--verify 也會檢查內容,而不僅僅是標記:PRD 的範圍外清單必須非空,且 docs/SETUP.md 必須記錄每個已安裝技能的固定 SHA(或說明未安裝任何堆疊技能)。此外:
- 確認
.gitignore涵蓋了此技術棧的機密資訊。 - 確認專案的空白/模板應用程式仍可使用
CLAUDE.md中記錄的建置指令進行建置(如果建置指令已存在)。 - 重新讀取
docs/SETUP.md:每個已安裝的技能都必須列出其來源 URL、固定的 SHA、安裝日期和閱讀摘要。
7. 提交
一個 commit,僅此而已:
chore: initial project setup
僅包含設定檔案。如果尚未設定 git 使用者身份或遠端來源,請告知使用者,並將提交留給使用者處理——請勿自行編造。
8. 停止
向使用者顯示已建立的檔案樹和 docs/ROADMAP.md 的階段 1。然後停止。請勿開始階段 1、請勿建置功能,也請勿提議「只是把骨架建立起來」——下一個階段應屬於新的工作階段(請參閱 references/workflow.md)。
逃脫機制: 停止**,除非使用者明確指示你繼續**。如果他們要求繼續,請建議一次——階段 1 仍應在一個新的工作階段中進行——然後遵從使用者並繼續。
參考檔案——按需載入
| 檔案 | 載入時機 |
|---|---|
references/interview.md | 總是——步驟 1。 |
references/ios.md | 專案類型為 ios。 |
references/web.md | 專案類型為 web。 |
references/workflow.md | 步驟 5,以及之後在已引導設定的儲存庫中工作的任何工作階段。 |