validating-pre-commit

Pre-Commit Quality Gate

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "validating-pre-commit" with this command: npx skills add saleor/configurator/saleor-configurator-validating-pre-commit

Pre-Commit Quality Gate

Overview

Ensure all code quality standards are met before committing or pushing changes. Runs the mandatory quality checklist and reports failures with actionable fixes.

When to Use

  • Before creating a commit or pushing to remote

  • After making significant changes

  • When CI is failing and you need to reproduce locally

Quick Reference

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

Mandatory Quality Checklist

Execute these steps in order. All must pass before committing.

Step 1: Auto-Fix Linting and Formatting

pnpm check:fix

Auto-fixes Biome issues (imports, commas, quotes, indentation). If issues remain, manually fix complexity warnings, unused variables, or type errors.

Step 2: Verify TypeScript Compilation

pnpm build

Ensures the project compiles. Check recent changes for type mismatches, missing exports, or import resolution errors.

Step 3: Run All Tests

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> .

Step 4: Strict TypeScript Check

npx tsc --noEmit

Catches more than build: implicit any , unused imports/variables, stricter null checking.

Step 5: Final CI Validation

pnpm check:ci

Runs the same checks CI will run (linting without auto-fix, format checking, TypeScript compilation).

E2E CLI Testing Protocol

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).

Common Mistakes

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

Automated Checks

The project has Husky pre-push hooks (.husky/pre-push ) that auto-generate schema documentation. These run automatically.

References

  • scripts/validate-all.sh

  • One-command validation script

  • docs/TESTING_PROTOCOLS.md

  • E2E testing details

  • biome.json

  • Linting configuration

Related Skills

  • Code standards: See reviewing-typescript-code for quality criteria

  • CI integration: See managing-github-ci for workflow troubleshooting

  • Test failures: See analyzing-test-coverage for test debugging

Quick Reference Rule

For a condensed quick reference, see .claude/rules/deployment-safety.md (always loaded - applies to all files).

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

creating-changesets

No summary provided by upstream source.

Repository SourceNeeds Review
General

designing-zod-schemas

No summary provided by upstream source.

Repository SourceNeeds Review
General

understanding-saleor-domain

No summary provided by upstream source.

Repository SourceNeeds Review