원클릭으로
validate
Run the full quality gate (ruff + mypy + pytest + tsc + vitest) and report PASS/FAIL for each command. Run before any commit or PR.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Run the full quality gate (ruff + mypy + pytest + tsc + vitest) and report PASS/FAIL for each command. Run before any commit or PR.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Read a plan file, execute every task in dependency order with per-task validation, then write an implementation report to reports/<feature-slug>-implementation-report.md.
Analyze a ticket or feature description, read the codebase, identify risks, and write a context-rich implementation plan to plans/<feature-slug>-plan.md. No code is written in this phase.
Delegate the latest implementation diff to the code-reviewer sub-agent for a PASS/CONCERNS verdict against CLAUDE.md rules, then write the verdict to reports/<feature>-review.md.
SOC 직업 분류 기준
| name | validate |
| description | Run the full quality gate (ruff + mypy + pytest + tsc + vitest) and report PASS/FAIL for each command. Run before any commit or PR. |
| disable-model-invocation | true |
Run the complete quality gate and report PASS/FAIL for each command.
This is the same gate the Stop hook enforces automatically. Run it explicitly before any commit or PR.
# Backend
cd app/backend && uv run ruff check app
cd app/backend && uv run mypy app
cd app/backend && uv run pytest
# Frontend
# NOTE: this brownfield app ships NO ESLint config, so `next lint` prompts
# interactively (it would hang an automated gate). Static checking is done with
# the TypeScript compiler; vitest covers unit tests. Wiring up ESLint is a
# real follow-up the harness/workshop would flag.
cd app/frontend && npx tsc --noEmit
cd app/frontend && npm run test
After running all commands, output:
Validation Gate Results
=======================
Backend
ruff check app : PASS / FAIL
mypy app : PASS / FAIL
pytest : PASS (N tests) / FAIL (N failed, N passed)
Frontend
tsc --noEmit : PASS / FAIL
vitest (npm test) : PASS / FAIL
Overall: PASS / FAIL
If FAIL: list each failing command with the first error or failure message. Fix the issue and re-run /validate before proceeding.
If PASS: the working tree is clean and ready to commit.
Stop hook (stop_validate.py) runs this gate automatically when Claude finishes a turn. If it blocks, you'll see the reason in the hook output — fix and let Claude continue.app/backend/pyproject.toml. The jose module has ignore_missing_imports = true (see pyproject.toml:40).