鍵盤快捷鍵完全掌握指南
全部開啟只要先記住這幾個,基本上你就能用好 Kiro 的 80% 功能了:
|
想做的事
|
Mac 快捷鍵
|
Windows / Linux 快捷鍵
|
會發生什麼?
|
|
和 AI 對話
|
Cmd + L
|
Ctrl + L
|
打開聊天面板,開始和 AI 對話
|
|
即時喚起 AI
|
Cmd + I
|
Ctrl + I
|
在滑鼠指標處啓動 AI,可以邊寫代碼邊提問
|
|
全局搜索(命令面板)
|
Cmd + Shift + P
|
Ctrl + Shift + P
|
打開命令行介面,訪問 Kiro 所有功能
|
|
打開文件
|
Cmd + P
|
Ctrl + P
|
輸入文件名的一部分就能快速打開
|
|
保存文件
|
Cmd + S
|
Ctrl + S
|
老朋友了,必須記
|
|
項目內搜索
|
Cmd + Shift + F
|
Ctrl + Shift + F
|
在整個項目裏搜索文本內容
|
|
跳轉到定義
|
F12
|
F12
|
一鍵跳轉到函數或類的定義處
|
|
修復錯誤
|
懸停錯誤 → Quick fix
|
相同
|
AI 會自動給出修復建議
|
|
打開終端
|
Ctrl + (反引號 ) | Ctrl + (反引號)
|
顯示或隱藏集成終端
|
|
|
顯示/隱藏側邊欄
|
Cmd + B
|
Ctrl + B
|
顯示或隱藏側邊欄,適合想全屏操作時使用
|
# 多滑鼠指標編輯(學會它效率翻 3 倍)
Option + 點擊(Mac)/ Alt + 點擊(Windows)
→ 可以在多個位置同時出現光標,同時編輯多個地方
# 移動整行代碼(超級實用的小技巧)
Option + ↑/↓(Mac)/ Alt + ↑/↓(Windows)
→ 整行代碼上下移動,排版修改超方便
# 複製整行(寫測試數據時超好用)
Option + Shift + ↑/↓(Mac)/ Alt + Shift + ↑/↓(Windows)
→ 直接複製當前行並插入上下位置
# 快速註釋(最常用,沒有之一)
Cmd + /(Mac)/ Ctrl + /(Windows)
→ 選中代碼一鍵註釋/取消註釋,調試神技! README 寫得更完整一些"
Specs(規範驅動開發)— 這纔是 Kiro 的靈魂功能!
全部開啟傳統開發是不是經常是這種節奏:
-
“先幫我做個登錄功能吧” —— 要求模模糊糊
-
好吧,先寫着再說
-
“啊對了,還要加密碼重置”
-
“郵件認證也別忘了加一下”
-
最後代碼一團糟、文檔跟不上、需求越改越亂……
😵💫 完全失控。 而 Specs,就是來解決這個老問題的! 它會讓 AI 幫你整理模糊需求,變成一份結構清晰、條理清楚的規範文檔。 ——不再邊寫邊猜、不再回頭大改,你的項目,從一開始就走在正軌上。✅
1️⃣ Requirements(需求)階段 —— 明確“要做什麼”
# 實際示例:Kiro 自動生成的需求定義
## 用戶故事
As a: 用戶
I want to: 使用郵箱地址和密碼登錄
So that: 能使用服務的個性化功能
## 接受標準(EARS 語法)
When: 用戶訪問登錄頁面時
The system shall: 顯示登錄表單
With:
- 郵箱地址輸入框
- 密碼輸入框(以掩碼形式顯示)
- “登錄”按鈕
- “忘記密碼”鏈接
When: 用戶輸入正確的認證信息並點擊登錄按鈕時
The system shall: 將用戶重定向到儀錶板頁面
And: 生成 JWT 令牌並啓動會話
When: 用戶輸入了錯誤的認證信息時
The system shall: 顯示錯誤信息
But: 出於安全考慮,不顯示具體錯誤原因
是不是很驚人?僅僅一句“寫個登錄功能”,它就能把需求細化到如此詳細的程度,真是超神奇!
2️⃣ Design(設計)階段 —— 規劃「怎麼實現」
// Kiro 自動生成的技術設計文檔示例
## 架構設計
### 前端結構
```ts
介面 LoginSystem {
// UI 組件
components: {
LoginForm: {
path: "components/auth/LoginForm.tsx";
props: {
onSubmit: (credentials: LoginCredentials) => Promise<void>;
onForgotPassword: () => void;
};
};
PasswordResetModal: {
path: "components/auth/PasswordResetModal.tsx";
props: {
isOpen: boolean;
onClose: () => void;
};
};
};
// 狀態管理
stores: {
AuthStore: {
state: {
user: User | null;
isAuthenticated: boolean;
isLoading: boolean;
};
actions: {
login: (credentials: LoginCredentials) => Promise<void>;
logout: () => void;
resetPassword: (email: string) => Promise<void>;
};
};
};
// API 通信
services: {
AuthService: {
endpoints: {
login: "POST /API/auth/login";
logout: "POST /API/auth/logout";
resetPassword: "POST /API/auth/reset-password";
};
};
};
}
-
使用 Node.js + Express
-
JWT 認證
-
使用 bcrypt 進行密碼哈希
-
通過 PostgreSQL 管理用戶信息
它連技術設計都能自動幫你生成,而且還能根據你項目的技術棧量身定製!是不是超貼心?
3️⃣ **Implementation(實現)階段** —— 拆解成具體開發任務
實現任務清單
全部開啟創建 LoginForm 組件
-
實現表單校驗
-
錯誤處理
-
管理加載狀態
實現 AuthStore
-
登錄操作
-
令牌管理
-
自動登出功能
實現路由守衛
-
未認證用戶的重定向處理
-
已認證用戶的訪問控制
實現認證接口
-
/api/auth/login
-
/api/auth/logout
-
/api/auth/refresh
編寫中間件
-
JWT 驗證中間件
-
請求速率限制
數據庫設計
-
users 表
-
sessions 表
-
單元測試
-
集成測試
-
端到端(E2E)測試
只要點一下任務,AI 就會自動開始實現對應功能,就像你在給得力的部下分派工作一樣,輕鬆又高效!
Specs 的實際用法是怎樣的?
方法一:從 Kiro 面板操作
- 點擊左側邊欄的 Kiro 圖標
- 在 Specs 區域點擊「+」按鈕
- 用自然語言輸入你的需求
方法二:通過聊天窗口生成
- 使用 Cmd/Ctrl + L 打開聊天面板
- 點擊「Spec」按鈕
- 輸入你的需求內容
實際輸入示例
“我想實現一個電商網站的購物車功能, 需要包含以下幾點:
-
添加/刪除商品
-
修改商品數量
-
檢查庫存
-
自動計算總金額
-
支持優惠券
-
運費計算”
Kiro 自動生成的內容結構如下
.kiro/specs/shopping-cart/ ├── requirements.md # 詳細的需求定義
├── design.md # 技術設計文檔
└── tasks.md # 實現任務清單
🤖 什麼是 Agent Hooks?什麼時候該用它?
寫代碼的時候,你有沒有過這樣的心聲:
- “每次保存文件都要手動跑 ESLint,好麻煩……”
- “新建組件還得自己加測試文件,太懶得動手了……”
- “ import 一堆,每次都要手動整理,真心累……”
沒錯,這些重複又枯燥的操作,**Agent Hooks 全都能幫你自動搞定!**
🔧 實際 Hook 設置示例(可直接複製使用!)
1️⃣ 持代碼整潔的「保存時自動格式化 Hook」
每次保存文件時,自動幫你格式化代碼,讓項目一直保持高質量 ✨
名稱:auto-format-on-save
說明:在保存文件時自動格式化代碼並整理 import 語句
Trigger: File Save Target: “**/*.{js,ts,jsx,tsx}” Instructions: | 每當保存文件時,依次執行以下操作:
1.使用 ESLint 檢查問題
-
能自動修復的部分直接修復
-
無法自動修復的問題列出清單
2.使用 Prettier 格式化代碼
-
優先使用項目中的 .prettierrc 配置
-
如果沒有則使用默認配置
3.整理 import 語句
-
刪除未使用的 import
-
調整 import 順序(外部 → 內部 → 相對路徑)
-
合併重複的 import
4.檢查 console.log
-
如果在正式代碼中檢測到 console.log,發出警告
-
如果是調試用途,建議加上 /* debug */ 註釋說明
只要設好這個 Hook,每次保存文件時,代碼就會自動整潔如新 ✨
在團隊開發中,它能幫大家統一代碼風格,簡直不要太好用!💯👨💻👩💻
2️⃣ React 開發者的神助手「組件創建時自動 Hook」
名稱:react-component-scaffold
說明:在創建新的 React 組件時,自動生成所需的相關文件
Trigger: File Create Target: “src/components/**/*.tsx” Instructions: | 當你新建一個 React 組件時,將自動執行以下操作:
1.生成組件的基礎結構代碼
匯入 React from 'React'
匯入 styles from './ComponentName.module.css'
介面 ComponentNameProps {
// TODO: 定義組件的 props
}
匯出 const ComponentName: React.FC<ComponentNameProps> = (props) => {
return (
<div className={styles.container}>
{/* TODO: 組件實現 */}
</div>
)
}
2.創建對應的測試文件
-
在同一目錄下生成 ComponentName.test.tsx
-
包含基礎的渲染測試用例
3.創建 Storybook 的 story 文件
-
生成 ComponentName.stories.tsx
-
包含基礎的組件展示 story
4.創建 CSS 模塊樣式文件
-
生成 ComponentName.module.css
-
包含基礎樣式定義
5.自動向 index.ts 添加導出語句
每次新建組件,是不是都在手動一個個建這些文件?
現在完全不用了!Kiro 自動一次幫你搞定,真正實現**開箱即用的開發體驗**⚡🧩
3️⃣ 守護項目安全的「敏感信息檢測 Hook」
名稱:security-scanner
說明:檢查代碼中是否包含 API 密鑰或其他敏感信息
Trigger: File Save Target: “**/*” Instructions: | 掃描文件內容,檢測以下類型的敏感信息:
1.硬編碼的認證信息
-
API 密鑰(如 AWS、Google、OpenAI 等)
-
密碼
-
私鑰
-
數據庫連接字符串
2.如果發現敏感信息,執行以下處理:
-
高亮顯示包含問題的代碼行
-
建議將敏感信息移至環境變量
-
給出添加到 .env 文件的示例
-
檢查 .gitignore 中是否已包含 .env 文件
3.私有 URL 檢查
-
內部 API 端點
-
開發環境用的 URL
-
同樣建議將其環境變量化
4.提交前最終檢查
-
通過 git diff 檢查是否有敏感信息將被提交
-
如有問題,發出警告並建議中止提交操作
這個真的超級重要!🙌
有沒有人不小心把敏感信息推到 GitHub 上過?舉個手吧~(別害羞,大家都幹過…😅)
有了這個 Hook,幫你**提前踩剎車、保住安全底線**,不再心跳加速地強制刪 提交!🔥🛡️
4️⃣ 面向全球的項目福音:「多語言翻譯同步 Hook」
名稱:i18n-sync
說明:保持各語言翻譯文件的內容同步
Trigger: File Save Target: “src/locales/ja/*.json” Instructions: | 當日語語言文件被更新時,執行以下操作:
1.檢測變更內容
-
新增的 key
-
被修改的 key
-
被刪除的 key
2.檢查其他語言文件
-
src/locales/en/*.json(英文)
-
src/locales/zh/*.json(中文)
-
其他支持語言
3.執行同步操作
-
對新增的 key,添加內容爲 “TODO: 需要翻譯”
-
對修改的 key,添加前綴 “REVIEW: 需要全文翻譯內容”
-
被刪除的 key,從其他語言文件中一併刪除
4.生成翻譯狀態報告
-
列出所有待翻譯項
-
顯示各語言的翻譯完成度
-
輸出到 translation-status.md 文件中
在做多語言項目時,語言文件的同步是不是總是讓人頭大?
這些瑣碎的小事,現在通通交給 Hook 自動化搞定!再也不用手動對照、一個個更新了~ 🌍⚙️🎉
5️⃣ 試驅動開發者的福音:「自動生成測試的 Hook」
名稱:test-generator
說明:在實現文件修改時自動更新或生成對應的測試文件
Trigger: File Save Target: “src/**/*.{ts,tsx}” Exclude: “**/.test.” Instructions: | 當保存實現文件時,自動執行以下操作:
1.分析變更內容
-
新增的函數
-
修改後的函數簽名
-
新增的類
2.檢查對應的測試文件
-
如果不存在,則自動創建
-
命名格式爲:文件名.test.ts(x)
3.生成或更新測試用例
-
正常流程(happy path)測試
-
異常處理測試
-
邊界條件(edge case)測試
-
如需 mock,會自動合理配置
4.檢查測試覆蓋率
-
確保新代碼已被測試覆蓋
-
避免整體覆蓋率下降
-
目標保持在 80% 以上
5.執行測試
-
驗證自動生成的測試是否通過
-
如有失敗,提供修復建議
想實踐 TDD(測試驅動開發),卻總覺得寫測試太麻煩?
這個 Hook 簡直就是爲你量身打造的!💡
自動補上測試,讓你專注寫邏輯,測試覆蓋率穩穩在線 🧪✅
🛠️ Hook 設置的實用技巧
#如何創建 Hook
-
打開 Kiro 面板 → Agent Hooks → 點擊「+」按鈕
-
用自然語言輸入你想要實現的功能描述
-
Kiro 會自動生成配置 → 你確認後保存即可 🎉
#設計高效 Hook 的小技巧
-
一個 Hook 只做一件事(遵循單一職責原則)
-
文件匹配規則要儘量具體(避免使用 “*/” 這種全局匹配)
-
注意執行頻率(每次保存觸發可能會帶來性能壓力)
-
在指令中加入錯誤處理邏輯,增強穩定性
#啓用 / 禁用 Hook 的方法
-
點擊 👁️ 圖標即可切換 ON / OFF 狀態
-
想臨時停用某個 Hook 的時候非常方便
Steering —— 把項目知識“教”給 AI 的祕密武器!
全部開啟你有沒有在加入新項目時遇到過這些狀況:
-
“這個項目的代碼規範是怎樣的?”
-
“用的庫都是什麼版本?”
-
“目錄結構有什麼約定?”
-
“命名規則用 camelCase 還是 snake\_case?”
通常這些信息都需要每次親自講解、手動說明……
但只要用了 **Steering**,AI 就能一開始就**瞭解整個項目的背景和規則
Kiro 會自動生成的 3 個 Steering 文件
Kiro 非常聰明,它會自動分析你的項目,幫你生成最基本的 Steering 文件,讓 AI 從一開始就理解項目的全貌:
1️⃣ product.md — 項目/產品的概覽說明
#此文件會生成在 .kiro/steering/product.md
#產品概覽
##產品名稱
MyAwesomeEC 購物平臺
##使命
爲中小型在線商家提供一個簡單易用、功能強大的電商建站平臺
##目標用戶
-
個體經營者
-
中小企業的電商負責人
-
有意通過副業經營網店的個人用戶
##核心功能
-
商品管理
-
庫存管理
-
商品分類
-
支持上傳多張商品圖片
-
訂單管理
-
訂單狀態跟蹤
-
配送進度查詢
-
退換貨流程支持
-
客戶管理
-
用戶註冊與登錄
-
購買歷史記錄查看
-
商品收藏與願望清單功能
-
支付功能
-
支持信用卡支付(集成 Stripe)
-
便利店付款
-
貨到付款
#業務目標
-
月交易額突破 1 億元
-
實現 1,000 家以上活躍商戶上線運營
-
將平均訂單金額穩定在 5,000 元左右
有了這個文件,AI 就能真正理解“這個項目的目標是什麼”,從而做出更加貼合實際、符合方向的智能建議。🎯🤖
2️⃣ tech.md —— 項目的技術棧說明文件
#此文件將生成在 .kiro/steering/tech.md
#技術棧說明
##前端
-
框架:Next.js 14.2.5(使用 App Router)
-
語言:TypeScript 5.5.4
-
樣式處理:
-
Tailwind CSS 3.4.1
-
CSS Modules(組件級樣式)
-
狀態管理:Zustand 4.5.4
-
表單處理:React Hook Form 7.52.1
-
數據驗證:Zod 3.23.8
##後端
-
運行時環境:Node.js 20.x
-
框架:Express 4.19.2
-
ORM 工具:Prisma 5.17.0
-
認證機制:NextAuth.js 4.24.7
##數據庫
-
生產環境:PostgreSQL 15(託管於 AWS RDS)
-
開發環境:PostgreSQL 15(通過 Docker 本地運行)
-
緩存服務:Redis 7.2
##基礎設施 & 部署
-
前端託管:Vercel
-
API 部署:AWS Lambda + API Gateway
-
圖片分發:Cloudinary
-
監控系統:Datadog
##開發工具
-
包管理器:pnpm 8.15.6
-
代碼規範檢查:ESLint 8.57.0
-
代碼格式化工具:Prettier 3.3.3
-
測試框架:
-
Jest 29.7.0
-
React Testing Library
-
Playwright(端到端測試)
##注意事項
-
Node.js 版本通過 .nvmrc 進行管理
-
必須使用 pnpm(禁止使用 npm 或 yarn)
-
已通過 Husky 設置 pre-commit 鉤子
有了這份文件,AI 就能**完全掌握你項目的技術細節**,
不再問你“用的是什麼框架”,建議也會更貼合實際,直接對上點子上!
3️⃣ structure.md —— 項目結構說明文件
#此文件將生成在 .kiro/steering/structure.md
#項目結構說明
##目錄結構
project-root/ ├── .kiro/ # Kiro 配置目錄
│ ├── steering/ # 項目信息(AI 使用的上下文)
│ └── settings/ # Kiro 的運行設置
├── src/ │ ├── app/ # Next.js 的 App Router 頁面目錄
│ │ ├── (auth)/ # 需要身份驗證的頁面
│ │ ├── (public)/ # 公共訪問頁面
│ │ ├── api/ # API 路由
│ │ └── layout.tsx # 根級佈局組件
│ ├── components/ # UI 組件目錄
│ │ ├── common/ # 通用組件(例如按鈕、卡片等)
│ │ ├── features/ # 按功能模塊分類的組件
│ │ └── ui/ # 基礎 UI 元件(輸入框、標籤等)
│ ├── hooks/ # 自定義 React Hooks
│ ├── lib/ # 工具方法與模塊集合
│ │ ├── api/ # 封裝的 API 客戶端
│ │ ├── utils/ # 通用工具函數
│ │ └── constants/ # 常量定義
│ ├── stores/ # Zustand 狀態管理邏輯
│ └── types/ # TypeScript 類型定義
├── prisma/ │ ├── schema.prisma # 數據庫結構定義(Prisma Schema)
│ └── migrations/ # 數據庫遷移記錄
├── public/ # 靜態資源文件(圖片、圖標等)
├── tests/ # 測試文件目錄(單元測試、集成測試)
└── docs/ # 項目文檔與說明文件
###命名規範
####文件命名:
-
組件(Component):使用 PascalCase 命名,文件擴展名爲 .tsx 示例:ProductCard.tsx
-
自定義 Hook:使用 camelCase 命名,擴展名爲 .ts 示例:useAuth.ts
-
工具函數(Utility):使用 camelCase 命名,擴展名爲 .ts 示例:formatPrice.ts
-
類型定義:統一命名爲 types.ts 或 models.ts
-
常量定義:文件命名爲 constants.ts,文件內常量使用全大寫 SNAKE_CASE 命名 示例:MAX_ITEM_COUNT, DEFAULT_CURRENCY
####代碼中的命名規則:
-
變量 / 函數:使用 camelCase 命名 示例:userName, getProductList
-
常量:使用全大寫 SNAKE_CASE 命名(UPPER_SNAKE_CASE) 示例:DEFAULT_TIMEOUT, MAX_RETRY_COUNT
-
類型 / 接口(Type & Interface):使用 PascalCase 命名 示例:UserProfile, OrderItem
-
枚舉(Enum):枚舉名使用 PascalCase,枚舉值使用全大寫 SNAKE_CASE
###導入順序(Import 順序)建議如下:
-
React 相關模塊(例如 react, react-dom, next 等)
-
外部庫(如 lodash, axios, zustand 等)
-
內部路徑別名(如 @/components, @/lib 等)
-
相對路徑(例如 ../utils, ./Button)
-
樣式文件(如 .css, .scss, .module.css) 例:
‘’’ JavaScript
// 1. React 相關
import React, { useState } from 'React'
// 2. 外部庫
import { useRouter } from 'next/navigation'
import axios from 'axios'
// 3. 內部路徑別名
import { Button } from '@/components/ui'
import { formatPrice } from '@/lib/utils'
// 4. 相對路徑
import { ProductType } from './types'
// 5. 樣式文件
import styles from './Product.module.css'
...
這些文件會在你打開項目時被 AI 自動讀取,AI 會始終基於項目上下文理解並給出回答,超靠譜!
自定義 Steering 文件的創建
默認的三個 Steering 文件不夠用?
想更詳細地告訴 AI 你的項目規則?
那就來創建自定義的 Steering 文件吧!
定義 API 設計規範的示例
#.kiro/steering/api-standards.md
---
inclusion: fileMatch
fileMatchPattern: “app/api/*/”
---
#API 設計標準
##接口設計
###URL 設計原則
-
採用 RESTful 設計
-
資源名稱使用複數形式(例如 /users, /products)
-
路徑層級最多爲三層
-
使用 kebab-case(例如 /user-profiles)
###HTTP 方法使用規範
-
GET:獲取資源(冪等)
-
POST:創建資源
-
PUT:整體更新資源
-
PATCH:部分更新資源
-
DELETE:刪除資源
##響應格式
###成功響應示例
{
"success": true,
"data": {
// 實際數據內容
},
"meta": {
"timestamp": "2025-01-20T10:00:00Z",
"版本": "1.0",
"requestId": "uuid-here"
}
}
###錯誤響應(Error Responses)
‘’’JSON
{
"success": false,
"錯誤": {
"code": "VALIDATION_ERROR",
"message": "輸入值不合法",
"details": [
{
"欄位": "email",
"message": "請輸入有效的郵箱地址"
}
]
},
"meta": {
"timestamp": "2025-01-20T10:00:00Z",
"requestId": "uuid-here"
}
}
...
###錯誤代碼體系(Error Code System)
|
錯誤代碼
|
HTTP 狀態碼
|
說明
|
|
VALIDATION_ERROR
|
400
|
輸入值驗證錯誤
|
|
UNAUTHORIZED
|
401
|
認證錯誤
|
|
FORBIDDEN
|
403
|
權限錯誤
|
|
NOT_FOUND
|
404
|
找不到資源
|
|
CONFLICT
|
409
|
資源衝突
|
|
RATE_LIMIT
|
429
|
速率限制
|
|
INTERNAL_ERROR
|
500
|
服務器內部錯誤
|
###認證與授權(Authentication & Authorization)
####認證請求頭(Authentication Headers)
...
Authroization: Bearer <jwt-token>
...
####JWT 載荷(Payload)
{
"sub": "user-id",
"email": "user@example.com",
"roles": ["user", "admin"],
"iat": 1234567890,
"exp": 1234567890
}
...
###分頁(Pagination)
####請求(Request)
...
GET /API/products?page=1&limit=20&排序=createdAt:desc
...
####響應(Response)
‘’’ JSON
{
"data": [...],
"pagination": {
"page": 1,
"limit": 20,
"total": 100,
"totalPages": 5,
"hasNext": true,
"hasPrev": false
}
}
...
####校驗(Validation)
必須使用 Zod 對請求體進行校驗:
‘’’ js
const createProductSchema = z.object({
name: z.string().min(1).max(100),
price: z.number().positive(),
description: z.string().optional(),
categoryId: z.string().uuid(),
});
...
有了這份 Steering 文件,AI 在生成 API 端點時會自動遵循這些規則,幫你寫出合規的代碼。
定義測試策略示例
#.kiro/steering/testing-strategy.md
---
inclusion: fileMatch
fileMatchPattern: “*/.test.{ts,tsx}”
---
#測試策略
##測試類型與目標
###單元測試
-
覆蓋率目標:80%以上
-
對象:純函數、自定義 Hook、工具函數
-
工具:Jest
###集成測試
-
對象:API 端點、數據庫操作
-
工具:Jest + Supertest
-
數據庫:測試用 Docker 容器
###端到端測試
-
對象:主要用戶流程
-
工具:Playwright
-
執行環境:CI/CD 流水線
##測試寫法
###測試文件放置
src/
├── components/ │
├── Button.tsx
│ └── Button.test.tsx # 與組件放在同目錄
###測試結構(AAA 原則)
‘'’typescript
describe("功能名", () => {
it("期望行爲", () => {
// Arrange(準備)
const input = "測試";
// Act(執行)
const result = functionToTest(input);
// Assert(斷言)
expect(result).toBe("expected");
});
});
Steering 文件的高效使用方法
#包含模式的使用區分
#1. always(始終包含)
#影響整個項目的配置
-
編碼規範
-
安全策略
-
基本設計原則
#2. fileMatch(條件匹配)
#僅對特定文件類型生效
-
API 端點規則 → “app/api/*/”
-
React 組件規範 → “*/.tsx”
-
測試寫法 → “*/.test.*”
#3. manual(手動模式)
#偶爾才用的信息
-
故障排查指南
-
性能優化方法
-
複雜部署流程
何設置全局 Steering 文檔
Kiro v0.5.0 支持了全局 Steering 文檔,只需要在 Steering 面板中點擊加號,創建全局 Steering 文檔即可。
全局 Steering 文檔會被保存在 ~/.kiro/steering/ 目錄下
AGENTS.md
從 v0.5.0 開始,Kiro 默認會把 AGENTS.md 加入 Steering 中
項目初期設置的完美流程
#1. 在項目目錄打開 Kiro
cd my-awesome-project
kiro .
#2. 自動生成基礎 Steering 文件
打開 Kiro 面板 → 選擇 “Generate Steering Docs”
#會自動生成 product.md、tech.md、structure.md
#3. 添加項目特有的配置
cat > .kiro/steering/conventions.md << ‘EOF’
#開發規範
##提交信息規範
-
feat: 新功能
-
fix: Bug 修復
-
docs: 文檔變更
-
style: 代碼格式調整
-
refactor: 重構
-
test: 測試相關
-
chore: 其他雜項
##分支策略
-
main: 生產環境
-
develop: 開發環境
-
feature/*: 新功能開發
-
hotfix/*: 緊急修復
##代碼審查標準
-
測試通過
-
覆蓋率 80% 以上
-
無 ESLint 錯誤
-
文檔已更新
EOF
#4. 設置必備 Hooks
#保存時自動格式化
Hooks → + → 選擇 “保存文件時自動執行 ESLint 和 Prettier”
#提交前安全掃描
Hooks → + → 選擇 “git commit 前掃描敏感信息”
#5. 配置 MCP 服務器
cat > .kiro/settings/mcp.json << ‘EOF’
{
“mcpServers”: {
“web-search”: {
“command”: “npx”,
“args”: [“-y”, “@modelcontextprotocol/server-bravesearch”],
“env”: {
“BRAVE_API_KEY”: “$BRAVE_API_KEY”
}
}
}
} EOF
#6. 設置團隊共享的 .gitignore
cat >> .gitignore << ‘EOF’
#Kiro 配置文件
.kiro/settings.json
.kiro/cache/
.kiro/logs/
#但以下內容需要共享
!.kiro/steering/
!.kiro/hooks/
!.kiro/specs/
EOF
從零開始構建全棧應用
#1. 從創建項目開始
‘’’ sh
mkdir my-saas-app && cd my-saas-app
Kiro .
‘’’
#2. 將需求轉化爲 Spec
按 Cmd/Ctrl+L 打開聊天,輸入:
"SaaS 應用開發需求。
功能:
- 用戶認證(郵箱/密碼、Google OAuth)
- 訂閱管理(Stripe)
- 儀表盤
- API(REST + GraphQL)
技術棧:
- Next.js 14(App Router)
- TypeScript
- Prisma + PostgreSQL
- TailwindCSS"
#3. 執行 Spec
從上到下執行生成的任務 點擊每個任務,AI 會幫你實現
#4. 啓動開發服務器
‘’’bash
npm install
npm run dev
‘’’
#5. 通過 Spec 添加新功能
“我要添加郵件通知功能。
-
用戶註冊時發送歡迎郵件
-
密碼重置郵件
-
賬單發送 使用 SendGrid 服務”
傳統代碼現代化
#將 jQuery 時代的代碼遷移到 React 的示例
#1. 現狀分析
“請分析 @src/legacy/ 目錄下的代碼, 制定遷移到 React 的計劃”
#2. 制定分階段遷移的 Spec
“傳統代碼分階段遷移計劃:
Phase 1: 遷移共通組件
Phase 2: 按頁面單元遷移
Phase 3: 狀態管理整合
Phase 4: 路由遷移”
#3. 自動轉換 Hook 設置
‘’’yml
Trigger: Manual
Name: "jQuery to React Converter"
Instructions: |
分析選中的 jQuery 代碼:
1. 生成等效的 React 組件
2. 將事件處理器轉換爲 React 事件
3. 將 DOM 操作轉換爲 state/props
4. 將動畫轉換爲 CSS 或 Framer Motion
‘’’
#4. 添加測試
“@src/components/
爲所有組件添加測試。
使用 React Testing Library,
測試用戶交互”
構建 CI/CD 流水線
#與 AI 一起創建 GitHub Actions 配置
#1. 創建基礎工作流
創建 ‘.github/workflows/ci.yml’,在推送時執行:
-
代碼檢查(ESLint、TypeScript)
-
運行測試
-
驗證構建
-
生成覆蓋率報告
#2. 部署工作流
創建 ‘.github/workflows/deploy.yml’,在合併到 main 分支時執行:
-
構建項目
-
部署到 Vercel
-
發送 Slack 通知
#3. 監控工作流的 Hook
‘’’yml
Trigger: File Save
Target: ".GitHub/workflows/*.yml"
Instructions: |
審查 GitHub Actions 配置:
1. 語法錯誤檢查
2. 檢查 Secret 的正確使用
3. 優化並行執行建議
4. 提議緩存使用
‘’’
性能優化
#1. 現狀分析
“請分析 @src/ 目錄下項目的性能瓶頸”
#2. 優化 Spec 制定
“性能優化任務:
-
使用 React.memo 防止重複渲染
-
圖片優化與懶加載
-
減少打包體積
-
優化數據庫查詢”
#3. 自動優化 Hook
‘’’yml
Trigger: File Save
Target: "src/components/**/*.tsx"
Instructions: |
進行性能分析:
1. 檢測不必要的重複渲染
2. 提議使用 useCallback 和 useMemo
3. 檢測高開銷計算並提出優化方案
4. 建議使用動態 匯入
‘’’
#4. 監控設置
“在 Datadog 中配置性能監控,
追蹤 Core Web Vitals 指標”
🎊 總結 - Kiro 改變開發方式
用 Kiro 開始後帶來的變化
1. 編碼速度提升 3 倍
-
通過 Spec 整理需求 → AI 自動實現
-
複雜工作由 Hooks 自動完成
-
利用 MCP 減少查資料時間
2. 質量顯著提升
-
統一編碼風格
-
自動生成測試
-
自動安全檢查
3. 學習曲線更平緩
-
AI 支持不熟悉的技術
-
自然掌握最佳實踐
-
現場學習錯誤解決方案
3 個簡單步驟立刻開始體驗
#第一步:安裝(5分鐘)
從 https://kiro.dev 下載並安裝
#第二步:打開第一個項目(10分鐘)
打開現有項目,生成 Steering 文件
#第三步:與 AI 對話(無限可能)
“幫我提出改進這個項目的建議”