工具索引

每週工具的最小回憶卡:心智模型、關鍵字,以及卡住時可以直接丟給 agent 的問法。

這裡不教操作,操作問 agent 就好。每張卡只放三樣東西:這個工具在解決什麼、上課講過的幾個名詞、卡住的時候怎麼問。

Agent 環境與 vibe coding 第一版

第一堂就要能動:裝好 agent,vibe coding 出一版簡易地震監測系統。

  • Claude Code / Codex:裝其中一個,能在終端機對話、能改檔案就算通過。
  • vibe coding 的第一版:用自己的想法讓 agent 做一版地震監測系統,能動就好,不評分——玩的過程就是在探索需求。留著,之後每週拿來對照,看工程方法帶你走了多遠。

關鍵字:Claude Code、Codex、CLI、API key、終端機

卡住就問:「幫我確認這台電腦的 Claude Code 能不能用,帶我跑一次最小的測試。」

Agent loop

Agent 不是想完才動手,是一圈一圈跑:拿到目標和脈絡 → 判斷下一步 → 呼叫工具 → 看結果 → 修正。

  • 能力來源:模型+工具+權限+回饋。
  • 不確定性來源:每一步都靠當下的 context 猜,背景不完整就一路錯下去。

關鍵字:agentic loop、tool call、context、feedback

卡住就問:「你剛剛那步是根據什麼判斷的?把你看到的資訊列出來。」

Git

改壞了可以回去,忘記為什麼這樣改可以翻紀錄。

  • commit:存檔點,訊息寫為什麼改。
  • diff:改動前後的差異,agent 改完先看這個再決定收不收。
  • branch:開一條線試東西,不影響能動的版本。
  • PR:合回主線前的檢查點。

循環:agent 改之前確認狀態乾淨 → 改完看 diff → commit;大改動走 branch + PR。

關鍵字:repository、commit、diff、branch、merge conflict、PR、revert、git log、.gitignore

卡住就問:「剛剛改壞了,幫我看最近幾個 commit 改了什麼,回到還能動的版本。」

生命週期與迭代

需求不是答案,是假設;做出來給人用過才知道對不對。

  • MVP:先做最小能用的版本,快點拿到回饋。
  • 迭代:需求 → 做 → 驗 → 修,一圈一圈來,不要想一次到位。

關鍵字:SDLC、MVP、iteration、需求變更

卡住就問:「這個需求我想先做最小版本,幫我列出可以砍掉的部分。」

Harness 與 Skill

Agent 的能力不是只有模型,外面那圈也算。

  • Harness:模型外面的框架——工具、權限、執行環境,決定它實際做得到什麼。
  • Skill:把會重複用的流程寫成文件,讓 agent 每次照著做。

關鍵字:harness、skill、tool、permission、sandbox

卡住就問:「幫我把剛剛這套流程整理成一個 skill,下次直接用。」

Context 工程

不是塞越多越好,是給對的東西。

  • 注意力有限:塞太多,重點會被稀釋。
  • 入口文件(agents.md):專案是什麼、怎麼啟動、規則是什麼,讓每個新開的 agent 一看就懂。

關鍵字:context window、attention、agents.md、知識庫

卡住就問:「幫這個專案寫一份 agents.md,讓新的 agent 不用問我就知道怎麼上手。」

SDD 與資料管理

把「我想要的」變成「可以檢查的」。

  • 規格:背景、目標、限制、驗收條件寫清楚,再開工。
  • 資料管理:資料是最難改的地基。想清楚存什麼、存多久、用什麼形式存; AI 的 context 就從你的資料來——資料架構選錯,AI 不知道自己不知道。
  • 資料契約:時間、單位、取樣率、欄位格式先固定,兩邊才接得起來——資料管理最小的一塊。

關鍵字:SDD、specification、資料管理、data model、資料契約、驗收條件、task list

卡住就問:「把這個需求整理成規格,包含驗收條件,我確認後你再開始做。」

TDD

「我覺得它是對的」不算數,測試過了才算。

  • 先寫測試再寫程式,測試就是可執行的規格。
  • fixture:固定的測試資料,結果才能重跑比對。

關鍵字:TDD、unit test、fixture、test case

卡住就問:「先為這個功能寫測試,我確認測試合理之後你再實作。」

Debug 與 Code Review

出錯不是亂試,是修正因果模型。

  • Debug:先假設哪裡錯 → 設計實驗驗證 → 看證據 → 再修。
  • Code Review:檢查跟規格一不一致、有沒有看不懂的地方。

關鍵字:debug、hypothesis、code review、log

卡住就問:「不要直接改,先列出三個最可能的原因,和你打算怎麼驗證。」

Docker

「我這裡能跑」不等於別人能跑。

  • 把依賴和環境打包,換一台電腦也能重現。

關鍵字:Docker、Dockerfile、image、container、compose

卡住就問:「把這個專案容器化,讓另一台電腦 clone 下來就能跑。」

CI/CD

產出越快,檢查越要自動。

  • 每次 PR 自動跑測試和建置,壞的擋在合併之前。

關鍵字:CI/CD、GitHub Actions、pipeline、smoke test

卡住就問:「加一個 GitHub Actions,每次 PR 自動跑測試。」

可觀測性

系統跑起來之後看不到裡面,要靠它自己說。

  • log 記發生什麼、metrics 記多快多少;出錯先看訊號,不要用猜的。

關鍵字:log、metrics、trace、monitoring

卡住就問:「在資料處理的關鍵步驟加 log,讓出錯時看得出卡在哪。」

Agent 資安

Agent 能做什麼,應該由你決定,不是它。

  • 最小權限:只給這次任務需要的檔案和權限。
  • 信任邊界:外部來的資料是資料,不是指令。

關鍵字:least privilege、secrets、prompt injection、信任邊界

卡住就問:「檢查這個專案有沒有 secrets 被寫進程式碼或 commit 過。」

舊專案入口

接手陌生系統,從外部證據拼出它在幹嘛。

  • 先找入口:怎麼啟動、設定在哪、資料從哪進從哪出。
  • 不用讀完每一行,先建立「主要模組在做什麼」的地圖。

關鍵字:legacy、entry point、依賴、資料流

卡住就問:「研究這個專案怎麼啟動、輸入輸出是什麼,整理成一頁筆記。」

模組邊界與重構

好架構在保護你的理解。

  • 邊界清楚,改一個地方不用怕動到全部。
  • 重構時機:每次都要跨好幾個檔案才能改一件事的時候。

關鍵字:module boundary、coupling、refactoring

卡住就問:「這次修改動到了哪些模組?怎麼讓下次同類的改動只動一個地方?」

整合與資料追溯

每一段都對,接起來不一定對。

  • 介面先固定:兩段之間傳什麼格式,先講好。
  • 資料追溯:結果要能一路查回原始資料和參數。

關鍵字:integration、interface、PhaseNet、association、traceability

卡住就問:「這個 pick 是從哪筆波形、哪個模型版本、什麼參數算出來的?讓這件事查得到。」

Demo 與工程回顧

交付不是「能動」,是「有證據」。

  • Demo:走一次完整流程給人看。
  • 回顧:這學期做了哪些取捨、留了哪些債、什麼訊號出現要回來改。

關鍵字:demo、decision log、retrospective、交付證據

卡住就問:「從 commit 和 PR 整理出這個專案做過的重要決定和理由。」