AI 寫程式讓產能暴增,但「品質、維護、擴充」才決定產品能走多遠
工具會過時,框架會淘汰,
但解決問題的思維,永遠有價值。
專注於 AI 開發工作流的實踐與推廣,協助企業導入 AI 輔助開發流程。
擅長將複雜的技術概念轉化為可落地的工作流程,讓團隊真正提升開發效率而非盲目追逐工具。
一句話 AI 就能生成有前端、後端、資料庫的系統,但...你敢用嗎?
風格不一致,留下多餘程式,增加 Code Review 負擔。讓 AI 根據規格文件做事,完成從 0 到 1 的建立,更處理從 1 到 100 的迭代邏輯可被追朔、定義 Branch 命名規則、設計 PR 方便 Code Review新功能符合預期,舊功能執行穩定,並透過測試覆蓋率報告了解實際狀況版本控制與分支策略,確保出包時有回頭路,以及不影響到正式版本檢查格式、測試功能,並設定要保護的 Branchgit config --global user.name "你的名字"
git config --global user.email "你的 Email"
macOS / Linux
Windows
前往 github.com/coreybutler/nvm-windows/releases 下載最新的 nvm-setup.exe 安裝程式
安裝完成後,重新開啟終端機,確認版本:
macOS / Linux:可透過 alias 讓 python 指向 python3 版本
Windows
有問題歡迎提出,你的問題可能是大家的問題
macOS, Linux, WSL
Windows PowerShell
如果不習慣終端機操作,安裝 Claude Code 外掛也能使用大部分的功能。
1. 打開側邊欄 Extensions
2. 搜尋 Claude Code
3. 點擊 Install
Help improve Claude 默認為 true,請調整為 false。
AI 執行的指令是無法完全預期的,為了減少損失,可以透過設定來阻止危險操作。
有問題歡迎提出,你的問題可能是大家的問題
.claude/ 就像給 Claude 一本專屬手冊:告訴它你是誰(設定)、你可以做什麼(權限)、你想怎麼做(規則)、你希望它自動完成什麼(技能),以及特別的角色(代理)。
專案層級放在 your-project/.claude/,使用者層級放在 ~/.claude/,兩者會合併生效,專案設定優先。
1. Rules(CLAUDE.md):每次對話都會參考,記錄專案技術棧、規範、注意事項;不要寫太多,會佔用上下文空間
2. Skills:把日常工作中執行任務的細節、技巧、判斷模式放進去,AI 遇到相關任務時會主動觸發
3. Commands:可以設計完整工作流(ex: 執行多個 Skills),要手動觸發
4. MCP:透過標準介面呼叫其他工具的 API,操作方式較穩定、可預期
| 模式 | 無需詢問即可執行的操作 | 最適合 |
|---|---|---|
| default | 僅讀取 | 入門、敏感工作 |
| acceptEdits | 讀取、檔案編輯和常見檔案系統命令(mkdir、touch、mv、cp 等) | 迭代您正在審查的程式碼 |
| plan | 僅讀取 | 在變更前探索程式碼庫 |
| auto | 所有操作,具有背景安全檢查 | 長時間執行的任務、減少提示疲勞 |
| dontAsk | 僅預先批准的工具 | 鎖定的 CI 和指令碼 |
| bypassPermissions | 除受保護路徑外的所有操作 | 僅隔離容器和 VM |
對話時:可以按 Shift+Tab 循環「default → acceptEdits → plan」
啟動時:可以用「claude --permission-mode plan」來設定
Context 被壓縮(Compact)、Claude 忘記前面資訊、額度耗盡時,如果沒有 Status Line 完全不會意識到。
有問題歡迎提出,你的問題可能是大家的問題
下面幾點可以根據需求自行調整。
打開 ~/.claude/settings.json,加上下面的設定
下載或 Fork 練習用 Repository 後,可以跟著課程進度操作,裡面有事先安裝好的 Agent Skills(放在 .agents 資料夾下)
如果 clone 失敗,代表尚未設定 GitHub SSH 金鑰。
請參考 GitHub 官方教學 完成設定。
雖然課程講的是 Claude Code,但 Cursor、Codex、Antigravity 這些主流工具都支援 Rules / Commands / Skills。
每個 AI Agent 的路徑稍不同,可以使用 dotagents 來協助建立 symlinks。
1. AI 有一定隨機性:即使有 Rules 規範,AI 生成的格式(ex: 縮排、引號)可能每次都不一樣,而且有可能動到原有邏輯。
2. 人會遺漏的讓流程補:在專案有多個功能同時開發時,合併可能會遇到衝突,而 Function 的「}」跟 Array 的「,」都是容易肉眼沒注意到的錯誤。
3. 加上 Pre-commit:Commit 前確保專案 Coding Style 一致性、測試都通過。
調整 src/skills/echo.js,貼上下面程式
調整 src/skills/__tests__/echo.test.js 測試案例
比起讓 AI 永不犯錯,更重要的是設計當 AI 犯錯時警告的通知!
有問題歡迎提出,你的問題可能是大家的問題
git clone --branch main --single-branch git@github.com:deancourse/wiwynn-ai-workshop.git
npx @dean9703111/dotagents 讓多個 AI Agents 更容易管理
npm install
/opsx 前綴強制驅動:apply / archive / explore / proposeopenspec config profile 擴充更多 workflows有問題歡迎提出,你的問題可能是大家的問題
npm install -g @fission-ai/openspec@latest
openspec init
openspec config profile
使用「Plan Mode」並請 AI 與自己釐清細節會得到更好的結果;下面 Prompt 是讓大家快速體驗完整流程
有問題歡迎提出,你的問題可能是大家的問題
第一次啟動可以請 AI 幫忙,因為有很高的機率在第一版遇到零星錯誤
如果覺得外觀太醜,可以直接跟 AI 溝通(考量到額度,可以先不美化)
初步確認功能符合預期後,請他將變更歸檔
有問題歡迎提出,你的問題可能是大家的問題
CLAUDE.md 是給「做事」用的,openspec/config.yaml 是給「規劃」用的
舊專案在使用 Claude & OpenSpec 前,可以先透過這兩段指令,讓 AI 初步了解專案的架構、功能、技術。
初版完成後,要加入版控;未來更新時,才會清楚 AI 到底改了哪些細節
先使用內建的 AI 來 Generate Commit,Commit 後將變更 Sync Changes 更新上去
有可能會遇到 commit 失敗,因為掃描到其他檔案
有問題歡迎提出,你的問題可能是大家的問題
不同部門、團隊都有自己的工作流,專案也有各自的情境;而 Agent Skills 讓每次達成的目標,成為下次的起點。
根據需求建立 Agent Skills,畢竟能實際給予幫助的,才是好的 Skill。
如果沒有規格文件,下次改功能時 AI 不知道之前的設計邏輯,可能把同一個功能重複寫好幾次,或改 A 壞 B。
用 OpenSpec 每次迭代都會在 Source Control 留下規格變更,AI 跟人類都有文件可以參考。避免關鍵人物離職後,系統知識直接斷層。
有問題歡迎提出,你的問題可能是大家的問題
Rule 每次都會讀完整文件;Skill 在匹配需求前只讀標題與描述。就像 Google 搜尋時先看標題摘要,確認相關再點進去。
scripts 目錄下有沒有危險操作(呼叫外部 URL、修改檔案、存取敏感資料).env 傳送到特定網址同一類型的 Skill 裝了兩個以上,當需求命中時,常常會一起觸發;這不只會增加 Token 消耗,也容易讓 AI 在執行過程中卡住或走偏。
在提示詞的世界裡,1 + 1 不一定大於 2,甚至可能小於 1。
像前端網頁生成這類需求,如果同時安裝多個相近 Skill,AI 反而要花更多成本判斷該遵循哪一套規則,結果未必更好。
效果卻不穩定增加上下文負擔,卻沒有提供足夠的專業價值跟專案無關的 Skills 甚至會讓 AI 的行為變得更難預測Skill 的出現,讓 AI 的價值可以持續累積。只要教會一次,他就永遠記得怎麼做。
1. 人工命名:風格不一致(feat/...、feature/...、feature-...)
2. AI 隨意生成:無法反映任務範疇,也不符合團隊規範
Skill 的設計邏輯:
分析變更 → 命名提案 → 確認 → 建立分支1. 是否需要跟著專案管理工具的 Tiket 命名(ex: feature/KAN-17_xxx)
2. release/hotfix/bugfix 是不是都有特別的設計
1. 人工手打:耗時且風格不一致
2. AI 自動生成:長短隨機、中英混雜
Skill 的設計邏輯:
分析變更的檔案 → 判斷應拆成幾個 commit → 分段提交PR 是決定專案品質的重要環節,因為他是讓團隊成員 Code Review 時,理解你到底做了些什麼的文件。
git-pr-description 技能,用來生成 Pull Request 的模板Skill 的設計邏輯:
比對當前分支與目標分支的差異 → 讀取 commit 訊息與變更檔案 → 參考模板轉寫文件pr-template 生成 Title 與 Description(漸進式揭露)這個 Skill 只是 commit 變更到本地,需要自己手動 Pushlish Branch 才會更新到雲端。
Code Review 的速度已經跟不上 AI 寫程式的速度。當人成為 AI 的瓶頸時,要去想的是如何降低門檻,而不是放棄審核。
設計 Commit、PR 的 Skill 就是透過優化流程讓開發更順暢。雖然每一步都是 AI 在執行,但如果沒有實務經驗,其實不知道怎麼串起這些工具。真正值錢的不是工具本身,而是知道什麼時候用、怎麼組合。
有問題歡迎提出,你的問題可能是大家的問題
/find-skills 來搜尋符合自己需求的 Skills
市場不會為爛產品買單;加入自動化測試,是 Vibe Coding 從玩具走向產品的關鍵
先放一個檔案確認結果符合預期獨立的測試程式,方便定位問題不可能一次到位現在儘管有 AI 輔助撰寫測試程式,我們還是要仔細檢查 AI 給的測試情境是否合理、有遺漏。
有問題歡迎提出,你的問題可能是大家的問題
重要邏輯都包含在測試程式內,才是最重要的;有了測試,規格書上的功能才能被真正驗證。
有問題歡迎提出,你的問題可能是大家的問題
免費版必須為「Public」的 Repo 才能進行設定
main / develop 為保護分支main 按 Add,再輸入 develop 按 Add(不能用逗號寫在同一筆,否則 Applies to 0 targets)Require a pull request before merging這個必須「用 PR 才能合併的選項」打勾。Require status checks to pass打勾,以及下面的Require branches to be up to date before merging」`也打勾,這是在設定「測試必須通過才能合併」。Add Checks,搜尋 test,然後把他打勾,這就是要檢查的項目。1. 故意把測試案例弄失敗
2. 建立「Pull request」,確認合併目標為「main/develop」時是否會無法合併
你注意到 pre-commit 沒有觸發嗎?如果觸發的話,根本不會等到 CI/CD 時才發現問題。
你可以請 AI 改寫 pre-commit 讓他涵蓋到這塊的測試:我希望 pre-commit hook 能攔截 vehicle-management 的測試失敗
有問題歡迎提出,你的問題可能是大家的問題
| 工作情境 | Worktree 用途 |
|---|---|
| 開發新功能 | 在獨立目錄開分支開發,不影響主線 |
| Code Review | 切到別人的分支,不需要 stash 當前工作 |
| 修緊急 Bug | 直接從 main 開一個 worktree 修,不打斷進行中的開發 |
Git Worktree 主要的目的不是「平行開發」,而是方便處理不同性質的「任務」。
AI 執行的效率已經非常高了,與其平行開發後解衝突,還不如把精力放在 Code Review 上面確保專案穩定性。
用 CLAUDE.md、Agent Skills 讓 AI 的知識可以複用,不要每次都從零開始
依照公司 → 團隊 → 專案 → 個人分層設計 Skills
遇到問題再導入工具,工具只是過程中學會的,真正重要的是辨識問題與設計解法的能力
| 層級 | 說明 | 範例 |
|---|---|---|
| 公司 | 全公司通用規範 | 工作日誌、Branch 命名、Git Flow |
| 團隊 | 特定團隊工作流 | Coding Style、PR Review 模板、Commit 格式 |
| 專案 | 單一專案情境 | 測試策略、部署流程 |
| 個人 | 個人偏好設定 | AI 不是只會寫程式、文件 |
透過 dotagents 可以讓 Skills 同步到不同 AI Agent,不受工具限制。
人的精力有限,技術是學不完的;要先培養出辨識問題的能力,然後思考如何解決,工具只是在過程中學會罷了。
現場遇到的問題都是不同的,沒有現成的解決方案,就要自己設計出來。
好的結果,不該靠消耗 Token 拼運氣;而是靠清楚的方向、可重複的工作流、以及人類在關鍵節點的決策。
歡迎提問,一起深入探討
不管 AI 多強大,
按下同意時,責任就歸屬於你。