在這個單元中,你將親手建立第一個真正實用的 Skill!
這個 Skill 的完整功能說明:
當使用者說「初始化專案」、「建立新專案」、「setup project」等指令時自動觸發
AI 會詢問使用者:專案名稱、專案描述
根據模板自動建立三個檔案:
README.md - 專案說明文件.gitignore - Git 忽略清單package.json - Node.js 專案設定我們將按照以下四個步驟完成這個 Skill:
在正確位置建立 Skill 所需的資料夾和檔案結構
定義 Skill 的名稱、觸發條件、執行步驟
準備 README、.gitignore、package.json 的模板
實際測試並確認功能正常運作
根據你使用的 AI 工具,在專案根目錄執行對應指令:
# 建立 Skill 主目錄
mkdir -p .agent/skills/project-initializer
# 建立模板資源目錄
mkdir -p .agent/skills/project-initializer/resources
# 建立 Skill 主目錄
mkdir -p .claude/skills/project-initializer
# 建立模板資源目錄
mkdir -p .claude/skills/project-initializer/resources
.agent/ 是 Google Antigravity 的設定目錄.claude/ 是 Claude Code 的設定目錄建立完成後,你的目錄結構應該長這樣:
在對應的 skills 目錄下建立 SKILL.md 檔案:
首先是最重要的 Frontmatter(YAML 設定區):
---
name: project-initializer
description: "Initialize new projects with standard files. Triggers: init project, initialize, create project, setup project, start new project, new project setup. Creates: README.md, .gitignore, package.json with customized content."
---
description 欄位決定了 AI 何時會觸發這個 Skill:
---
以下是 SKILL.md 的完整內容:
---
name: project-initializer
description: "Initialize new projects with standard files. Triggers: init project, initialize, create project, setup project, start new project, new project setup. Creates: README.md, .gitignore, package.json with customized content."
---
# Project Initializer Skill
這個 Skill 協助使用者快速初始化新專案,自動建立標準的專案檔案。
## 執行步驟
### Step 1: 詢問專案資訊
首先向使用者詢問以下資訊:
- **專案名稱**(英文,用於 package.json 的 name)
- **專案描述**(中英文皆可,用於 README 和 package.json)
### Step 2: 讀取模板檔案
從 `resources/` 目錄讀取以下模板:
- `resources/readme-template.md`
- `resources/gitignore-template.txt`
- `resources/package-template.json`
### Step 3: 替換變數
將模板中的變數替換為使用者提供的資訊:
- `{{PROJECT_NAME}}` -> 專案名稱
- `{{PROJECT_DESCRIPTION}}` -> 專案描述
### Step 4: 寫入檔案
在專案根目錄建立以下檔案:
- `README.md`
- `.gitignore`
- `package.json`
### Step 5: 報告完成
告知使用者已完成初始化,列出建立的檔案清單。
在 resources/ 目錄下建立 readme-template.md:
# {{PROJECT_NAME}}
{{PROJECT_DESCRIPTION}}
## 安裝
```bash
npm install
```
## 使用方式
```bash
npm start
```
## 開發
```bash
npm run dev
```
## 授權
MIT License
{{PROJECT_NAME}} - 會被替換為使用者輸入的專案名稱{{PROJECT_DESCRIPTION}} - 會被替換為使用者輸入的專案描述{{ }} 包住變數名稱,這是常見的模板語法。
在 resources/ 目錄下建立 gitignore-template.txt:
# Dependencies
node_modules/
package-lock.json
# Environment variables
.env
.env.local
.env.*.local
# Build output
dist/
build/
.next/
# IDE and OS
.DS_Store
.vscode/
.idea/
*.swp
*.swo
# Logs
*.log
npm-debug.log*
# Test coverage
coverage/
# Temporary files
tmp/
temp/
在 resources/ 目錄下建立 package-template.json:
{
"name": "{{PROJECT_NAME}}",
"version": "1.0.0",
"description": "{{PROJECT_DESCRIPTION}}",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "node --watch index.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "MIT"
}
{{PROJECT_NAME}} 要包在字串的雙引號裡面現在來實際測試我們建立的 Skill!
在終端機中執行 claude 開啟 Claude Code
試著輸入:「幫我初始化一個新專案」或「init project」
AI 應該會詢問你專案名稱和描述
檢查專案根目錄是否出現 README.md、.gitignore、package.json
解決方案:檢查 SKILL.md 的 description 欄位
解決方案:使用線上 YAML 驗證器檢查
--- 前後各三個減號yamllint.com解決方案:確認檔案位置正確
.agent/skills/project-initializer/resources/ 目錄下.claude/skills/project-initializer/resources/ 目錄下在下方編輯你的 SKILL.md,完成後可以複製或一鍵打包下載完整 Skill 資料夾。
.agent/skills/ 或 .claude/skills/ 即可使用!
這只是開始!在下一個單元,我們將挑戰更複雜的任務:
Design (構想) -> Code (撰寫) -> Test (測試) -> Iterate (優化)