Automatically build, test, and review any project. Auto-detects project type and runs appropriate checks.
The skill automatically detects:
--test-framework vitest
--package-manager npm
--skip-lint
--skip-tests
# Detect package manager
[ -f pnpm-lock.yaml ] && echo "pnpm"
[ -f yarn.lock ] && echo "yarn"
[ -f package-lock.json ] && echo "npm"
# Detect test framework
[ -f vitest.config.ts ] && echo "vitest"
[ -f jest.config.js ] && echo "jest"
[ -f playwright.config.ts ] && echo "playwright"
# Detect build tool
grep -q '"build":' package.json && grep -q '"dev":' package.json && echo "next"
[ -f vite.config.ts ] && echo "vite"
[ -f turbo.json ] && echo "turborepo"
# Based on detected package manager
npm run build
# or
pnpm build
# or
yarn build
Check for any build errors. Report success or failure immediately.
# Based on detected linter
npx eslint . 2>&1 | head -50
# or
npx tslint .
# or
npm run lint
Report lint errors if any.
# Based on detected test framework
npx vitest run
# or
npx jest
# or
npx playwright test
# or
npm test
Report test results - passed/failed counts.
Check for uncommitted or unpushed changes:
git status --short
git diff --cached
git diff
Review the changes following these guidelines:
Format the report as:
## Project Check Results
### Build: ✅ PASS / ❌ FAIL
[summary]
### Lint: ✅ PASS / ⚠️ WARNINGS / ❌ ERRORS
[count and key issues if any]
### Tests: ✅ PASS (X/Y) / ❌ FAIL (X/Y)
[failed tests if any]
### Code Review:
[for each file changed]
- **File**: filename
- **Issues**: [list issues found with severity: HIGH/MEDIUM/LOW]
- **Notes**: [behavioral changes, if any]
## Summary
[overall assessment]
If any step fails:
# Reinstall dependencies
npm install
Check tsconfig.json and fix type mismatches.
Run tests with verbose output to see detailed errors:
npx vitest run --reporter=verbose
name: Project Check
on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: npm ci
- name: Run Project Check
run: |
npm run build
npx eslint .
npx vitest run
pre-commit:
commands:
project-check:
run: |
npm run build
npx eslint .
npx vitest run