From zenbu-powers
BDD 紅燈實作執行器。對單一 .feature 執行完整紅燈流程: Schema Analysis(環境就緒)→ Step Template(骨架生成)→ Red Implementation(載入外部 Handler 實作測試)。 Handler 定義來自 /aibdd-form-bdd-analysis 的 web-backend 模組。 透過 arguments.yml 的 tech_stack + test_strategy 自動路由語言變體。 當 /aibdd-auto-control-flow 呼叫紅燈階段,或使用者說「紅燈」「red」時觸發。
npx claudepluginhub zenbuapps/zenbu-powers --plugin zenbu-powersThis skill uses the workspace's default tool permissions.
寫出測試程式,確認有 Failing Test(Value Difference,非環境問題)。
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Guides code writing, review, and refactoring with Karpathy-inspired rules to avoid overcomplication, ensure simplicity, surgical changes, and verifiable success criteria.
Share bugs, ideas, or general feedback.
寫出測試程式,確認有 Failing Test(Value Difference,非環境問題)。
環境的 Difference ≠ 紅燈。Value 的 Difference = 紅燈。兩者都符合,才算正式進入 Red。
讀取 arguments.yml:
| tech_stack | test_strategy | variant reference | 失敗模式 |
|---|---|---|---|
| python | e2e | web-backend/variants/python-e2e.md | HTTP 404 |
| java | e2e | web-backend/variants/java-e2e.md | HTTP 404 |
| python | ut | web-backend/variants/python-ut.md | NotImplementedError |
| nodejs | it | web-backend/variants/nodejs-it.md | HTTP 404 |
| typescript | it | (standalone: /zenbu-powers:aibdd.auto.ts.it.red) | UI element not found(TestingLibraryElementError) |
Handler 和 variant 的物理位置:bdd-analysis/references/web-backend/
特殊路由:typescript + it 組合對應 React 前端整合測試(jsdom + @testing-library + MSW),由獨立的 standalone skill set /zenbu-powers:aibdd.auto.ts.it.* 處理。統一核心 Red 階段會直接委派 /zenbu-powers:aibdd.auto.ts.it.red。與 nodejs + it(後端 Express IT)不同。
啟動時 Read 對應的 variant reference,全程保持在 context 中。
Step 1: Schema Analysis → Read references/schema-analysis.md → 確保環境就緒(條件 a)
Step 2: Step Template → Read references/step-template.md → 系統無關的骨架生成
Step 3: Red Implementation → 對每個 TODO step:
→ 讀 TODO 取得 handler type
→ Read bdd-analysis/references/web-backend/handlers/{type}.md
→ 搭配已載入的 variant reference
→ 實作測試程式碼
→ 驗證紅燈(條件 b)
Read references/schema-analysis.md。
核心任務:
完成後 schema-analysis reference 可釋放。
Read references/step-template.md。
核心任務:
bdd-analysis/references/web-backend/句型分析方針.md)pass placeholder# TODO: [事件風暴部位: {TYPE}] 標註# TODO: 參考 bdd-analysis/references/web-backend/handlers/{type}.md 實作 標註完成後 step-template reference 可釋放。
對每個含 TODO 的 step definition:
bdd-analysis/references/web-backend/handlers/{type}.md(若尚未載入)pass 替換為完整測試程式碼同時產出基礎建設(若不存在):
Command handler 只儲存 response,不做 assertion。驗證交給 Then handler。
Request/Response 欄位名以 api.yml schemas 為唯一真相來源。
建立實體後,將 ID 存入共享狀態(context.ids / ScenarioContext)。
基礎建設放在 production code 目錄,非 test 目錄。
Red 階段只定義介面。API endpoint / Service 方法體留空。測試預期失敗。
這是 TDD 紅燈階段的本質。失敗原因必須是 Value Difference。
E2E 用 Testcontainers PostgreSQL,UT 用 dict-based FakeRepository。
Feature 的 Data Table 欄位與 api.yml/erm.dbml 欄位 1:1 對應。
HTTP 路徑從 api.yml paths 讀取,不自行編造。
Red 執行前確認:
docker info → Docker daemon 運行中docker ps → 無殘留 Testcontainerspass 替換為完整測試程式碼