refactor: Playwright + sprint work log + auto-flow#3
Conversation
… auto-flow
- Replace agent-browser with Playwright for browser testing across all files
- Add sprint work log mechanism (specs/logs/sprint-{N}-log.md) generated
by verifier after each sprint verification
- Remove manual release gate — sprint progression is now fully automatic
(test pass → verify → work log → close milestone → next sprint)
- /specflow:release now only handles production deployment
- Both API and browser test failures create bug issues with screenshots
- Update GitHub Actions workflow for Playwright
- Update permissions settings (npx playwright)
Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 86414cab8d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| RESULT=$(npx playwright test --reporter=json 2>&1) || true | ||
| EXIT_CODE=$? |
There was a problem hiding this comment.
Preserve Playwright failure status in CI
The browser-test step masks Playwright’s exit code by using RESULT=$(...) || true and then reading $?, which will always be 0 from true. That means this step reports success even when Playwright itself fails, and downstream logic can miss real browser-test failures (especially setup/config/runtime failures that do not produce reliable stats), causing the workflow to publish misleading PASS results.
Useful? React with 👍 / 👎.
| for report in test/reports/sprint-*-test-report.md; do | ||
| [ -f "$report" ] || continue | ||
| if ! grep -q "ALL TESTS PASSED" "$report"; then |
There was a problem hiding this comment.
Block deployment when no test reports are found
The release gate now iterates over test/reports/sprint-*-test-report.md but immediately continues when files are missing, so BLOCK remains false when there are zero reports. In that case deployment can proceed without any sprint test evidence, which violates the stated gate requirement that all sprint reports must be ALL TESTS PASSED (the same missing-file pattern is also used for verify reports).
Useful? React with 👍 / 👎.
Summary
specs/logs/sprint-{N}-log.md),每個 sprint 完成後自動產出格式一致的日誌Changes
Playwright 替換(8 個檔案)
.claude/agents/qa-engineer.md— 完整改寫 browser test 範例、Playwright 設定、API 速查表.github/workflows/sprint-test.yml— 安裝 Playwright + 執行npx playwright test.claude/settings.json— 權限agent-browser→npx playwrightCLAUDE.md/README.md— 前置需求、範例、目錄結構Sprint 工作日誌
.claude/agents/verifier.md— 驗證通過後自動產出工作日誌(固定格式,含所有 issue/PR 連結)specs/logs/sprint-{N}-log.md自動化流程
.claude/skills/specflow:start/SKILL.md— Phase 6 改為自動產出日誌 + 關閉 milestone,Phase 7 自動推進.claude/skills/specflow:release/SKILL.md— 從「sprint release gate」改為「production 部署確認」CLAUDE.md— 流程圖更新Test Plan
grep -r agent-browser)🤖 Generated with Claude Code