C# IT 全自動批次迴圈。掃描 features 目錄,為每個 .feature 展開 5 phase TODO 清單 (schema-analysis → step-template → red → green → refactor),逐一執行直到全數完成。 當使用者說「control-flow」「批次執行」時觸發。
掃描 feature 檔案 → 建立 TodoWrite 任務清單 → 逐一執行每個 feature 的 5 phases。
驗證 C# IT 骨架是否存在:
*.sln 存在src/${ProjectName}/${ProjectName}.csproj 存在tests/${ProjectName}.IntegrationTests/${ProjectName}.IntegrationTests.csproj 存在tests/${ProjectName}.IntegrationTests/CustomWebApplicationFactory.cs 存在tests/${ProjectName}.IntegrationTests/Hooks/TestHooks.cs 存在docker info)不存在 → 詢問使用者「偵測到尚未建立 C# IT 骨架,是否先執行 /aibdd.auto.csharp.it.starter?」→ 使用者確認後觸發 starter,完成後繼續。
存在 → 進入 Step 1。
讀取 ${FEATURE_SPECS_DIR},找出所有 .feature 檔案。
若 ${FEATURE_SPECS_DIR} 下存在 句型.md,讀取其「覆蓋矩陣」或「操作清單」,以該文件的操作順序作為 feature 排序依據。此順序反映業務流程依賴(核心 → 延伸)。
若無 句型.md,啟發規則:
排序結果展示給使用者確認後再建立任務清單。
對每個 feature 檔案,建立 5 個任務:
TodoWrite([
{ content: "{feature} — Schema Analysis", status: "pending" },
{ content: "{feature} — Step Template", status: "pending" },
{ content: "{feature} — Red", status: "pending" },
{ content: "{feature} — Green", status: "pending" },
{ content: "{feature} — Refactor", status: "pending" },
...
])
Mark → in_progress
↓
Skill tool 呼叫對應 skill(帶入 feature file 路徑)
↓
Mark → completed
↓
前進到下一個 pending
| Phase | 呼叫的 Skill |
|---|---|
| Schema Analysis | /aibdd.auto.csharp.it.schema-analysis |
| Step Template | /aibdd.auto.csharp.it.step-template |
| Red | /aibdd.auto.csharp.it.red |
| Green | /aibdd.auto.csharp.it.green |
| Refactor | /aibdd.auto.csharp.it.refactor |
每個 skill 自我包含(self-contained),不需要額外路由。
所有任務 completed 後執行:
dotnet test --filter "Category!=Ignore"
# 特定 feature(開發迭代用)
dotnet test --filter "FullyQualifiedName~LessonProgress"
# 特定 scenario(最快)
dotnet test --filter "DisplayName~更新課程進度"
# 全部非 @ignore(回歸測試)
dotnet test --filter "Category!=Ignore"
# 全部(含 ignore)
dotnet test
dotnet test --filter "Category!=Ignore" 全綠dotnet build -warnaserror 無警告(可選)