smithery/saleor

validating-pre-commit

Runs quality gate checks before commit or push. Use when preparing to commit, reproducing CI failures locally, or validating changes pass all checks.

Installation

$ npx skills add smithery/saleor --skill validating-pre-commit

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/saleor · top by installs.

npx skills add smithery/saleor

Browse all from smithery/saleor

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
CompatibilityClaude Code with Node.js >=20, pnpm, TypeScript 5.5+
Allowed toolsRead, Bash(pnpm:*), Bash(npx:*), Bash(rm:*)
Declared agents claude-code
More metadata
author
Ollie Shop
version
1.0.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,500 B
  • docs SUMMARY.md 303 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

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