skills/verify/SKILL.md
Verification loop — lint -> typecheck -> unit -> integration -> e2e
npx skillsauth add sd0xdev/sd0x-dev-flow verifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
/precommit or /precommit-fast)/codex-test-review)| Step | Goal | Safety | Skip if Missing | |------|------|--------|----------------| | lint | Check code style (read-only) | read-only | yes | | typecheck | Static type checking (full only) | read-only | yes | | test-unit | Run unit test suite | read-only | yes | | test-integration | Run integration tests (full only) | read-only | yes | | test-e2e | Run end-to-end tests (full only) | read-only | yes |
Failure behavior: continue-all (run all steps, report all results)
Use Glob to check if .claude/scripts/verify-runner.js exists in the project root.
node .claude/scripts/verify-runner.js $ARGUMENTS
If the runner was not found in Step 1, detect the project ecosystem to run steps manually.
Ecosystem detection (check project root for manifest files):
| Manifest | Ecosystem | Lint | Typecheck | Test |
|----------|-----------|------|-----------|------|
| package.json | Node.js | {pm} lint | {pm} typecheck | {pm} test:unit |
| pyproject.toml | Python | ruff check . | mypy . | pytest |
| Cargo.toml | Rust | cargo clippy | (implicit) | cargo test |
| go.mod | Go | golangci-lint run | go vet ./... | go test ./... |
| build.gradle | Java | ./gradlew spotlessCheck | (implicit) | ./gradlew test |
For Node.js projects, auto-detect package manager from lockfile.
$ARGUMENTS == "fast": lint + unit only
Otherwise (full): lint -> typecheck -> unit -> integration -> e2e
| Step | package.json script | If missing |
|------|---------------------|------------|
| lint | lint | Skip with note |
| typecheck | typecheck | Skip with note |
| unit | test:unit, fallback to test | Skip with note |
| integration | test:integration | Skip (requires explicit path) |
| e2e | test:e2e | Skip (requires explicit path) |
| Scenario | Behavior |
|----------|----------|
| No lint script | Skip, log "no lint script — skipped" |
| No typecheck script | Skip, log "no typecheck script — skipped" |
| No test:unit or test script | Skip, log "no test script — skipped" |
| No package.json | Report error, cannot run checks |
For fast mode:
## Verify (fast)
| Step | Status | Notes |
|------|--------|-------|
| lint | ✅/❌/⏭️ | |
| unit | ✅/❌/⏭️ | |
## Overall: ✅ PASS / ❌ FAIL
For full mode:
## Verify (full)
| Step | Status | Notes |
|------|--------|-------|
| lint | ✅/❌/⏭️ | |
| typecheck | ✅/❌/⏭️ | |
| unit | ✅/❌/⏭️ | |
| integration | ✅/❌/⏭️ | skipped unless path specified |
| e2e | ✅/❌/⏭️ | skipped unless path specified |
## Failures (if any)
- Root cause: <first error>
- Fix: <suggestion>
## Overall: ✅ PASS / ❌ FAIL
documentation
Rewrite the previous reply in Traditional Chinese
development
Monitor GitHub Actions CI runs until completion. Use when: watching CI after push, checking build status, monitoring PR checks, waiting for CI completion, user says 'watch CI', 'check CI', 'CI status', 'monitor build', or /watch-ci. Not for: pushing code (use push-ci), creating PRs (use create-pr). Output: per-run verdict (pass/fail/timeout).
development
Research current code state then update corresponding docs, ensuring docs stay in sync with code.
development
First-principles UI/IA reasoning: turns a `<scenario>` + API field set into JTBD analysis, principle-anchored field-priority decisions, anti-pattern findings, and a bidirectional UI↔API gap report. Trigger: UI、UX、資訊架構、IA、scenario-driven UI、欄位優先級、information hierarchy. Not for: visual/CSS work (use `/frontend-design`), post-build critique (use `/critique`), or simplifying existing layouts (use `/distill`).