Help us improve
Share bugs, ideas, or general feedback.
From craft
This skill should be used when the user asks to "pre-flight check", "validate before commit", "validate before PR", "validate before deploy", "is this ready to ship", "check readiness", "run pre-flight", "validate project state", or wants context-aware validation across commit/PR/release/deploy boundaries. Orchestrates universal validators (lint, tests, types, version sync, stale refs, docs, hook conflicts) and supports generating new custom validators.
npx claudepluginhub data-wise/craft --plugin craftHow this skill is triggered — by the user, by Claude, or both
Slash command
/craft:checkThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Universal pre-flight validation across commit, PR, release, and deploy boundaries. Orchestrates the validator suite that lives under `.claude-plugin/skills/validation/` and dispatches the right check set for the current context.
Guides technical evaluation of code review feedback: read fully, restate for understanding, verify against codebase, respond with reasoning or pushback before implementing.
Share bugs, ideas, or general feedback.
Universal pre-flight validation across commit, PR, release, and deploy boundaries. Orchestrates the validator suite that lives under .claude-plugin/skills/validation/ and dispatches the right check set for the current context.
/craft:checkgen-validator flow)This skill is broader than its siblings — understand the seams:
| Skill | Concern | Does NOT cover |
|---|---|---|
| preflight-check (this) | Cross-cutting validators: lint, tests, types, version sync, stale refs, link integrity, hook conflicts, CLAUDE.md health, docs staleness, badge URLs, formula desc | Detection logic, release orchestration, guard rule editing |
project-detector (skills/ci/) | Detect project type / build tool / test framework to recommend a CI template | Validation orchestration. It answers "what kind of project is this?" not "is it ready?" |
release (skills/release/) | The full release pipeline (version bump → PR → merge → GitHub release → Homebrew → verify). Calls this skill internally for its Step 2 pre-flight gate | Standalone commit/PR validation |
guard-audit (skills/guard-audit/) | Tune branch-guard.sh rules via .claude/branch-guard.json to reduce false positives | Running checks. It edits guard config, doesn't validate the project |
Rule of thumb: if the user wants to run validators, use this skill. If they want to change which rules block them, route to guard-audit. If they want a release, route to release (which calls back into this skill).
/craft:check — primary entry point; mode-aware, context-aware orchestrator/craft:check:gen-validator — scaffold a new validator into .claude-plugin/skills/validation/The skill should prefer invoking the commands rather than re-implementing their logic. The commands handle dry-run, orchestration, and hot-reload validator discovery.
--for ...)Pick the check set by what the user is preparing for. This is the primary axis of behavior:
--for | Run when user is about to... | Adds beyond default |
|---|---|---|
commit | Stage and commit on a feature branch | Fast lint on changed files, fail-fast tests, basic version-sync, no-secrets scan |
pr | Open a PR to dev/main | Full lint, full test suite, coverage ≥ 80%, internal links, merge-conflict detect, stale-ref scan, hook-conflict audit, CLAUDE.md health |
release | Cut a release (called by skills/release/) | Full audit: strict lint, all tests + coverage ≥ 90%, all links, full version audit (fatal on drift), security audit, badge URL both-branch check, formula desc count check |
deploy | Deploy docs site or downstream artifact | Same as release minus formula-desc; plus tag-exists check |
If no --for is specified, run the "general" check set (lint + tests + git status + docs if changed).
Modes are orthogonal to --for — they tune verbosity, fail-fast, and threshold strictness:
| Mode | Budget | Behavior |
|---|---|---|
default | < 30s | Fast path, fail-fast, summary output |
debug | < 120s | Verbose output, no fail-fast, surface all warnings |
thorough | < 180s | Full lint + types + security + docs sweep |
release | < 300s | Strictest thresholds (coverage ≥ 90%, version drift = fatal) |
Mode applies to the hot-reload validators too via $CRAFT_MODE — see the validator template generator output for the per-mode threshold table.
commit/pr/release/deploy) if the user didn't say. Default to the most conservative reasonable guess based on the current branch (feature/* → commit or pr; dev → release).--for release or --for deploy, suggest /craft:check --for release --dry-run to preview the validator plan and time estimate before executing./craft:check --for <context> [mode]. Let the command's Step 0 plan + AskUserQuestion gate handle confirmation./craft:code:ci-fix or /craft:code:lint/craft:check --version release for the focused validator/craft:docs:claude-md:syncguard-audit skillGenerating a new custom validator is a distinct workflow from running checks. Trigger conditions:
/craft:check with project-specific validation logicIn that flow:
/craft:check:gen-validator <name> [--languages ...] [--interactive].claude-plugin/skills/validation/<name>.md with hot_reload: true so /craft:check picks it up on next run with no restart.CRAFT_MODE=default bash .claude-plugin/skills/validation/<name>.md then /craft:check to confirm auto-discovery.Do not auto-generate a validator while the user is running checks — these are independent concerns. If both are in flight, finish the check pass first.
--context)The check command supports a --context flag that skips validation and emits only a one-screen session header (project, branch, worktree, base, guard status, phase, test count, docs status, insights). When the user asks "what's the state of this branch?" or "what session am I in?", prefer /craft:check --context over running validators. It's read-only and < 1s.
The backing command uses box-drawing output (see commands/check.md). When this skill summarizes results in chat, mirror that structure compactly:
Project: <name> (<type>) Context: <for-value> Mode: <mode>
Lint: PASS / N issues
Tests: N/M passed
Version: in sync / DRIFT (file:line)
Docs: GREEN / YELLOW / RED
Status: READY / BLOCKED — <reason>
Next: <single actionable suggestion or none>
Keep summaries terse. The command's own output is the system of record.
project-detector via the command.guard-audit.release explicitly. This skill stops at "READY FOR RELEASE."--for commit, don't also run the release-tier validators just because "they're cheap." Mode budgets exist for a reason.commands/check.md — full check command spec (validators, modes, dry-run output)commands/check/gen-validator.md — validator scaffolding.claude-plugin/skills/validation/ — hot-reload validator directoryskills/release/SKILL.md — orchestrates this skill at Step 2 of releasesskills/ci/SKILL.md — project detection (used internally to pick check set)skills/guard-audit/SKILL.md — tune what blocks operations (not what validates them)