verify
Run this after every code change in this Vue project, before committing, before opening a PR, or whenever the user says "verify", "check", "lint", "run tests", "build", "audit". Diff audit (router gua
SKILL.md.claude/skills/verify/SKILL.md
GitHubVerify Skill
Steps
Diff audit — review all changes (
git diff master...HEADor staged changes) using your knowledge of the stack:- Read
CLAUDE.mdandERRORS.mdfor conventions, architecture, and known pitfalls - Read the
tasksreference module structure for layer/naming conventions - Check
/uiskill for design system and Vuetify conventions - Analyze the diff: architecture, security, UX, logic, consistency, error handling
- No hardcoded checklist — reason from context. Examples of what to catch:
- Router guards with permissive matching (startsWith vs exact)
- Silent error swallowing (catch without user feedback)
- Store mutations from outside the store
- Cross-module store imports (only
useAuthStore/useCoreStoreallowed) - Missing form validation or confirmation dialogs on destructive actions
- Inconsistent selectors in E2E tests (prefer getByRole/getByPlaceholder)
- Broken or nonexistent route references
- Store-contract tests that only assert a mock was called, not the resulting store state (interaction-only assertions let a dropped field slip through)
- Fix all issues found before proceeding
- Read
Lint —
npm run lintTests + coverage — check if Node API is reachable (
curl -sf http://localhost:3000/api/home):- Infra up →
npm run test:coverage(unit + coverage enforcement) thennpm run test:e2e(Playwright E2E) - Infra down →
npm run test:coverage(unit + coverage) + warn: "E2E skipped — rundocker compose -f docker-compose.test.yml up -dfor full coverage" - If coverage drops below thresholds (vitest.config.js) → fail. Add tests, never lower thresholds.
- Infra up →
Build —
npm run buildSummary: ✅ All passed → ready to commit | ❌ Failed → show failures, fix, re-run