/verify + /run — Confirm feature works
Skill mới trong bộ claudekit — Type-check pass ≠ feature works.
/verify chạy tests, /run thực sự launch app + quan sát UI. Together: đảm bảo code không chỉ correct mà còn usable.Tổng quan
Hai skill bổ sung cho nhau:-
/verify— “Code có chạy không?”- Type-check pass
- Unit tests pass
- Linting clean
- Build succeed
- ✅ Proof: code valid & logic correct
-
/run— “Feature có dùng được không?”- Launch dev server
- Manually drive UI / API
- Observe real behavior
- ✅ Proof: feature usable end-to-end
- Sau refactor →
/verify(lên máy từng bộ phận) - Sau UI change →
/run(thấy UI trên browser) - Sau API endpoint change →
/verify+/run(test API, test từ frontend) - Trước ship → cả hai (proof + confidence)
Prefix & flags
Workflow
1
Bước 1: Type-check
/verify bắt đầu:- TypeScript compile check
- ESLint pass
- Import/export validation
- ❌ Nếu fail → fix type errors
2
Bước 2: Unit tests
Tiếp tục:
- Jest / Vitest run
- Test coverage check
- ❌ Nếu fail → fix logic
3
Bước 3: Build
Verify production build:
- Build optimizer pass
- No unused code warnings
- ✅ If pass → code valid
4
Bước 4: Launch app
- Start dev server (hot reload)
- Browser open tự động
- Console ready for debugging
5
Bước 5: Manual test
Drive UI:
- Click buttons, fill forms
- Check network requests
- Observe console (no errors)
- Test happy path + edge cases
Ví dụ thực tế
Case 1: Sau UI change
- Edit
PageHeader.tsx: change button color, position /verify→ “Types OK, button test pass”/run→ Open browser, click button, confirm visually- Close dev server, ship PR
Case 2: Sau API endpoint refactor
- Refactor
/api/sites/:id/pagesendpoint /verify --coverage→ “All tests pass, 85% coverage”/run→ Open app, create page via UI, check network tab for correct request/response- Try edge case (invalid input), confirm error handling
- Ship PR
Case 3: Complex form, many edge cases
- Just need to see form in browser
/run→ Dev server live- Fill form: valid → submit ✅
- Try invalid: empty field → error message ✅
- Try cancel → modal closes ✅
- Reload page → form state persisted? (if required)
- All good → ship
So sánh với skill khác
Tóm tắt:
/verify= dev validation, local only/run= dev interactive test, local only/qa-full:verify-issue= QA sign-off, staging, formal
Common pitfalls
Sai lầm phổ biến:
- Skip
/verifyvì “types compile”: TypeScript compiler ≠ linter + tests. Full verify catch more - Skip
/runvì “tests pass”: Test pass ≠ UI works. Refactor could break layout / visual - Use
/runnhưng không test manually:/runlaunch app, nhưng dev phải drive UI manually. Không auto-test - Chạy
/verifytrên dirty worktree: Staged vs unstaged files → verify result unreliable. Commit trước - Verify port conflict:
/rundefault port 3000 taken → use--port 3001 - Forget to close dev server:
/runkeep listening → take resource. Kill process sau testing
FAQ
Q: /verify vs /run — cần cả hai không?
Q: /verify vs /run — cần cả hai không?
A: Tùy tình huống:
- Pure backend (API endpoint) →
/verifyenough - Pure frontend (UI / component) →
/runenough - Full feature (API + UI) → cả hai tốt nhất
/verify trước (faster), rồi /run nếu cần visual confirmationQ: Nếu /verify fail, có cần /run không?
Q: Nếu /verify fail, có cần /run không?
A: Không. Dừng tại
/verify:- Fix type errors / test failures
/verifylại đến khi pass- Rồi mới
/run
/run là bước sau /verify passQ: App already running, /run có start new server không?
Q: App already running, /run có start new server không?
A:
/run check:- Port available? → start new server
- Port taken? → error, ask kill existing hoặc use
--port
pkill node trước /runQ: /run có thể run headless (non-interactive)?
Q: /run có thể run headless (non-interactive)?
A: Có, dùng flag:Sẽ chạy e2e tests thay vì interactive. (Tương tự
/verify)Q: Coverage report tại đâu sau /verify --coverage?
Q: Coverage report tại đâu sau /verify --coverage?
A: Output ở:
- Console: summary
- File:
coverage/folder (HTML report) - CI: Uploaded to coverage dashboard nếu CI configured
coverage/index.html để xem detail