Runs quality gate checks before commit or push. Use when preparing to commit, reproducing CI failures locally, or validating changes pass all checks.
Ensure all code quality standards are met before committing or pushing changes. Runs the mandatory quality checklist and reports failures with actionable fixes.
| Check | Command | Purpose |
|-------|---------|---------|
| Auto-fix | pnpm check:fix | Fix lint/format issues |
| Build | pnpm build | Compile TypeScript |
| Test | pnpm test | Run all tests |
| Type check | npx tsc --noEmit | Strict TS validation |
| CI check | pnpm check:ci | Full CI validation |
| Lint only | pnpm lint | Check linting |
| Format only | pnpm format | Check formatting |
| All at once | pnpm check:fix && pnpm build && pnpm test && pnpm check:ci | Full pipeline |
Execute these steps in order. All must pass before committing.
pnpm check:fix
Auto-fixes Biome issues (imports, commas, quotes, indentation). If issues remain, manually fix complexity warnings, unused variables, or type errors.
pnpm build
Ensures the project compiles. Check recent changes for type mismatches, missing exports, or import resolution errors.
pnpm test
If tests fail: read the failure message, check if expectations match new behavior, update test or fix implementation, re-run with pnpm test -- --filter=<test-file>.
npx tsc --noEmit
Catches more than build: implicit any, unused imports/variables, stricter null checking.
pnpm check:ci
Runs the same checks CI will run (linting without auto-fix, format checking, TypeScript compilation).
When to Run: Before pushing changes that affect core CLI functionality (commands, services, repositories).
# Credentials from .env.local (see .env.example for template)
# source .env.local
# 1. Clean slate
rm -rf config.yml
# 2. Fresh introspection
pnpm dev introspect --url=$SALEOR_URL --token=$SALEOR_TOKEN
# 3. Deploy changes
pnpm dev deploy --url=$SALEOR_URL --token=$SALEOR_TOKEN
# 4. Test idempotency (deploy again - should have no changes)
pnpm dev deploy --url=$SALEOR_URL --token=$SALEOR_TOKEN
# 5. Clean and re-introspect
rm config.yml
pnpm dev introspect --url=<URL> --token=<TOKEN>
# 6. Verify no drift
pnpm dev diff --url=<URL> --token=<TOKEN>
Success Criteria: Step 4 shows no changes (idempotency). Step 6 shows no diff (round-trip consistency).
| Mistake | Fix |
|---------|-----|
| any type in production code | Use proper type or unknown + type guard |
| Unused import left behind | Remove it or use it (Biome auto-fix handles this) |
| Object possibly undefined | Use optional chaining (?.) or early return guard |
| Type not assignable | Check type definitions and ensure compatibility |
| Mock not returning expected value | vi.mocked(service.method).mockResolvedValue(expected) |
| Skipping check:ci after check:fix | Always run both; check:ci catches non-auto-fixable issues |
| Forgetting E2E test for core changes | Run full E2E protocol above for any CLI command changes |
The project has Husky pre-push hooks (.husky/pre-push) that auto-generate schema documentation. These run automatically.
scripts/validate-all.sh - One-command validation scriptdocs/TESTING_PROTOCOLS.md - E2E testing detailsbiome.json - Linting configurationreviewing-typescript-code for quality criteriamanaging-github-ci for workflow troubleshootinganalyzing-test-coverage for test debuggingFor a condensed quick reference, see .claude/rules/deployment-safety.md (always loaded - applies to all files).
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer