Guide for setting up before-push validation (b4push) and CI checking. Covers analyzing project structure, creating run-b4push.sh, adding package.json entry, creating project-specific b4push skill, setting up GitHub Actions CI. Use when: (1) User says 'set up b4push', 'add CI', 'before push checks', (2) Setting up a new project's validation workflow, (3) User wants CI + local validation.
Guide for setting up before-push validation (b4push) and CI checking. Covers analyzing project structure, creating run-b4push.sh, adding package.json entry, creating project-specific b4push skill, setting up GitHub Actions CI. Use when: (1) User says 'set up b4push', 'add CI', 'before push checks', (2) Setting up a new project's validation workflow, (3) User wants CI + local validation.
user-invocable
true
allowed-tools
["Bash","Read","Write","Edit","Glob","Grep"]
B4Push Wisdom — Full Validation Setup Guide
Set up comprehensive before-push validation and CI for any project. This covers three parts:
b4push script — local validation before pushing
b4push skill — Claude Code skill to run b4push with auto-fix
CI workflow — GitHub Actions to enforce checks on PRs and main
Step 1: Analyze the project
Read package.json and explore the project structure to understand:
Package manager: Check for pnpm-lock.yaml, package-lock.json, yarn.lock
Available scripts: check, build, test, lint, format, typecheck
Workspace packages: Check pnpm-workspace.yaml for sub-packages with their own tests
Doc site: Look for doc/, docs/, website/ directories with their own package.json
E2E tests: Check for playwright.config.*, cypress.config.*
Continue all steps even if some fail (collect in FAILURES array)
Subshell execution (cd "$ROOT_DIR" && command) to isolate
Summary at the end with elapsed time
Make executable: chmod +x scripts/run-b4push.sh
Step 4: Add package.json script
{"scripts":{"b4push":"./scripts/run-b4push.sh"}}
Step 5: Create project-specific b4push skill
Create .claude/skills/b4push/SKILL.md (uppercase — the canonical name; lowercase skill.md causes git dual-tracking / clone collisions on case-insensitive filesystems):
---
name: b4push
description: >-
Run comprehensive pre-push validation covering [list steps]. Use when: (1) Completing a PR
or feature implementation, (2) Before pushing significant changes, (3) After large refactors,
(4) User says 'b4push', 'before push', 'check everything', or 'ready to push'.
user-invocable: true
allowed-tools:
- Bash
---# Before Push Check
Run `pnpm b4push` from the project root. This executes `scripts/run-b4push.sh`:
1. [Step list with descriptions]
Takes ~[duration]. All steps must pass.
## On failure1. Read the failure output to identify which step failed
2. Auto-fix what you can:
- Formatting: `pnpm check:fix` or `cd doc && pnpm check:fix` - Lint: `pnpm lint:fix` or `cd doc && pnpm lint:fix`3. Re-run `pnpm b4push` to confirm all checks pass
4. Report the final status
Step 6: Create GitHub Actions CI workflow (optional)
If the project uses GitHub and doesn't have CI yet, create .github/workflows/ci.yml: