今天是鐵人挑戰第二天,今天主要是程式撰寫開始前準備,我會依序講解我的步驟。
第一步我會先準備第一天提到的 mgalpert 分享的 AI 角色提示詞 ,使用git工具 git clone https://github.com/contains-studio/agents.git
將資料下載到資料夾。
第二步我會這個專案的資料夾開啟命令提示字元(CMD),使用gemini -m gemini-2.5-flash -c -y
指令去啟動gemini cli,參數意思為:
第三步我會請AI準備三個檔案,AI_CONTEXT.md 、 README.md 與 軟體核心架構規劃.md,來確保AI同事在撰寫時不會偏離主軸忘記原本要做什麼。
我給AI的指令:
@agents/engineering/ai-engineer.md 我現在想跟你合作建構一個專案管理系統,不過我想先請你產生出三個檔案,1.ai_context.md:主要讓AI知道規劃跟進度,讓你能掌握專案現況,避免做出不符合業務邏輯的功能。2.readme.md:裡面主要提供給人類看的資訊,包含技術棧、架構、開發日誌等人類開發者會需要的內容。3.軟體核心架構規劃.md:這個主要是包含軟體整體架構與全局規劃。
第四步有了基礎的檔案後,我會請AI透過問答的方式,讓我跟AI同事對專案管理系統有共識。
我給AI的指令:
接下來採用一問一答的方式,問我問題來釐清軟體功能。
AI就會開始針對相關內容跟你進行釐清跟核對,期間你也可以隨時補充跟請他給選項跟建議你回答。
功能需求總覽如下:
由於我對整理的功能需求不太確定,我拿出studio-producer.md的提示詞去詢問功能建議
我給AI的指令:
@agents/project-management/studio-producer.md 請以你的角度,假如有一套為專案管理設計的程式,除了上面那些敘述,還可能需要哪些功能,請列點出來
讓我驚喜的是,他給出了很多我原本沒設想的過的情況跟需求,下面是整合後的新功能需求總覽
一、核心專案管理功能
二、AI 輔助功能
三、通用與管理功能
暫不實作的功能:
這時我發現自己犯了一個錯誤:在第三步產生 AI_CONTEXT.md、README.md 與 軟體核心架構規劃.md 時,當時還沒和 AI 同事充分討論就先生成了這些檔案。結果這些內容充斥著 AI 憑空想像的假設,後續我試圖請他更新時,他又會夾帶原先錯誤的資訊,造成更多混淆,嚴重影響了後續的討論節奏。
為了修正這個問題,我選擇重新開啟命令提示字元以清除先前的對話歷史,並刪除這三個檔案,改為先請他讀取上一階段產出的 功能需求總表.md,再依據這份需求文件重新生成新的三個檔案。
但接著又遇到另一個狀況。由於我的功能需求中包含一些 AI 功能,如果使用原本的指令,他會誤以為 AI_CONTEXT.md 是某種系統依賴檔案,導致產出錯誤。為了解決這個問題,我請教了我的 Debug 小幫手 ChatGPT,請他協助優化生成指令,他給了我一份中英文版本的建議,我發現英文版本的描述更為精確清楚,因此採用了英文版,並順勢請他協助我優化另外兩個檔案的說明內容。
我給AI的指令最終版:
@agents/engineering/ai-engineer.md 我現在跟你合作建構一個專案管理系統,請根據我的 @功能需求總覽.md 所提到的功能需求去規劃以下三個檔案。1.ai_context.md is a human-readable context file that provides background information, project goals, and progress updates. It is not required for code execution, but is used to help AI agents maintain continuity and avoid generating features that conflict with business logic. Treat it as an external reference to improve contextual understanding across sessions.2.README.md 是提供給人類開發者閱讀的說明文件,內容包含技術選型、系統架構說明、開發日誌等資訊。這些資訊不影響程式執行邏輯,但能幫助人類理解專案設計與進度。AI 在理解專案時也可參考本檔案,但請勿視為執行程式所需的依賴。3.軟體核心架構規劃.md 是一份系統設計層級的藍圖文件,用來描述整體系統架構、功能模組的組成、資料流向與邏輯依賴關係。內容包含各模組的設計思路、資料流動路徑以及元件之間的互動方式,幫助開發者與 AI agent 理解系統的運作邏輯與設計原則。本文件屬於設計層面的參考資料,不包含實作程式碼或執行邏輯,但對於維持架構一致性、避免邏輯衝突至關重要。
建立好基礎的檔案後,我開始去選擇後端要使用的各項技術,由於我本身對Python比較熟,所以我請我的AI同事去以使用Python去建構後端的環境。
我給AI的指令:
@agents/engineering/backend-architect.md 現在,請根據軟體核心需求決定後端相關要使用的技術,以Python為主,剩下的請用一問一答的方式,並在每一個問題下列一些建議,並提供各建議的優缺點
經過一連串的問答與跟AI同事釐清後,以下是我目前的技術棧
最後,我將今天的討論的內容更新到 readme.md 與 ai_context.md 與 軟體核心架構規劃.md 上
我給AI的指令:
請幫我把資訊更新到 @ai_context.md @README.md @軟體核心架構規劃.md
今天多花了一點時間在跟AI同事討論釐清我想實作的程式,感覺有越來越大的趨勢XD
有些技術我也加入了一點私心,順便玩一下n8n,希望AI同事能穩的住
今天都在討論後端技術,明天應該會以前端部分來作討論。
我花了比較多時間在跟AI做前期討論,主要是之前我都是請AI同事直接上,結果就是常常做到一半發生用的技術不支援我想要的功能,AI就會弄一些奇怪的方式想繞過去,結果就是越改越糟。
這次我想透過鐵人賽去嘗試假如前期充分討論,能不能抑制AI的暴走,讓他能快速又安全的架設一個可以使用的系統~