用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/sd0xdev/sd0x-dev-flow --skill precommit-fast命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | precommit-fast |
| description | Quick pre-commit checks — lint:fix -> test |
| allowed-tools | Bash(node:*), Bash(pnpm:*), Bash(yarn:*), Bash(npm:*), Bash(npx:*), Bash(python*:*), Bash(pytest:*), Bash(ruff:*), Bash(mypy:*), Bash(cargo:*), Bash(go:*), Bash(golangci-lint:*), Bash(./gradlew:*), Bash(mvn:*), Bash(bundle:*), Bash(rubocop:*), Bash(rspec:*), Bash(git:*), Read, Grep, Glob |
/precommit)/verify)| Step | Goal | Safety | Skip if Missing |
|---|---|---|---|
| lint-fix | Auto-fix code style issues | read-write | yes |
| test-unit | Run fast test suite | read-only | yes |
Failure behavior: continue-all (run all steps, report all results)
Run quick pre-commit checks: lint:fix -> test (no build step)
Use Glob to check if .claude/scripts/precommit-runner.js exists in the project root.
node .claude/scripts/precommit-runner.js --mode fast --tail 60
## Overall: ✅ PASS, use its output and skip to the Output section.## Overall: ⚠️ NO CHECKS RUN, do NOT treat it as a pass — fall through to Step 2 ecosystem detection to run the project's real checks. The marker means no project validation executed and no policy step failed (validation steps all skipped or unavailable; a policy step that FAILS is ❌ FAIL, never this marker) — whether the repo declares no runnable checks or the required tools were unavailable to the runner (which orchestrates the ecosystem table below itself: manifest detection + first-class steps). The runner self-notes its own verdict (review-state.js note precommit pass|fail); on ⚠️ NO CHECKS RUN it notes nothing — the slot is untouched and the reminder persists, which is the correct reading of "nothing validated".## Overall: ❌ FAIL), treat as a real precommit failure (do not silently fallback).package.json, pyproject.toml, Cargo.toml, go.mod, build.gradle, build.gradle.kts, pom.xml, Gemfile). None → skip, fall through to Step 2. (The runner orchestrates every ecosystem in the Step 2 table, so a non-Node manifest justifies the install just as well.)Glob: ~/.claude/plugins/**/sd0x-dev-flow/scripts/precommit-runner.jsGlob: ${REPO_ROOT}/node_modules/sd0x-dev-flow/scripts/precommit-runner.js@scripts/precommit-runner.jsDetect the project ecosystem to run steps manually.
| Manifest | Ecosystem | Lint-fix | Test |
|---|---|---|---|
package.json | Node.js | {pm} lint:fix | {pm} test:fast / test:unit / test |
pyproject.toml | Python | ruff check --fix . | pytest tests/unit/ |
Cargo.toml | Rust | cargo clippy --fix | cargo test |
go.mod | Go | golangci-lint run --fix | go test ./... |
build.gradle / build.gradle.kts | Java | ./gradlew spotlessApply | ./gradlew test |
pom.xml | Java (Maven) | mvn spotless:apply | mvn test |
Gemfile | Ruby | bundle exec rubocop -a | bundle exec rspec |
How the runner executes this table: same semantics as
skills/precommit/SKILL.md§ Ecosystem detection — a missing required tool isunavailableand blocks ✅ PASS; repo-declared capabilities (spotless / rubocop / rspec) skip only on definitive tool-native absence evidence (lockfile membership, the tool's own not-found diagnostic); an ambiguous or timed-out probe isunavailable, never a skip.
After lint:fix completes, run git diff --name-only to capture auto-fixed files.
After a conclusive fallback run, self-note the outcome — note precommit pass when every
executed check passed, note precommit fail when the checks ran and at least one failed (the
rounds count stays path-independent):
CHECKER=".claude/scripts/review-state.js"; [ -f "$CHECKER" ] || CHECKER="scripts/review-state.js"
node "$CHECKER" note precommit pass # or fail
An inconclusive run (checks could not execute) notes nothing — the slot stays untouched, like
the runner's ⚠️ NO CHECKS RUN. The note is advisory; a failed note never fails the run.
## Precommit (fast)
## Results
| Step | Status | Notes |
|------|--------|-------|
| lint:fix | ✅/❌/⏭️/⛔ | ⏭️ = repo opted out (skip); ⛔ = required tool unavailable (blocks PASS) |
| test | ✅/❌/⏭️/⛔ | same legend |
## Changed Files (after lint:fix)
- <files or "(none)">
## Overall: ✅ PASS / ❌ FAIL / ⚠️ NO CHECKS RUN (no project validation executed AND no policy step failed; fall through to Step 2, needs human if nothing runnable exists)
## Checklist
- [ ] All available checks pass
- [ ] git status reviewed