first commit
This commit is contained in:
148
文档润色流和知识库构建流/claude-scholar/skills/verification-loop/SKILL.md
Normal file
148
文档润色流和知识库构建流/claude-scholar/skills/verification-loop/SKILL.md
Normal file
@@ -0,0 +1,148 @@
|
||||
---
|
||||
name: verification-loop
|
||||
description: This skill should be used when the user asks to "verify code", "run verification", "check quality", "validate changes", or before creating a PR. Provides comprehensive verification including build, type check, lint, tests, security scan, and diff review.
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
# Verification Loop Skill
|
||||
|
||||
A comprehensive verification system for Claude Code sessions.
|
||||
|
||||
## When to Use
|
||||
|
||||
Invoke this skill:
|
||||
- After completing a feature or significant code change
|
||||
- Before creating a PR
|
||||
- When you want to ensure quality gates pass
|
||||
- After refactoring
|
||||
|
||||
## Verification Phases
|
||||
|
||||
Choose the commands adaptively for the current project instead of running every example blindly. Use the stack-appropriate command from `references/STACK-DETECTION.md` when the repo does not match the default examples below.
|
||||
|
||||
|
||||
### Phase 1: Build Verification
|
||||
```bash
|
||||
# Python projects (uv)
|
||||
uv build 2>&1 | tail -20
|
||||
# OR
|
||||
python -m build 2>&1 | tail -20
|
||||
|
||||
# Node.js projects
|
||||
npm run build 2>&1 | tail -20
|
||||
# OR
|
||||
pnpm build 2>&1 | tail -20
|
||||
```
|
||||
|
||||
If build fails, STOP and fix before continuing.
|
||||
|
||||
### Phase 2: Type Check
|
||||
```bash
|
||||
# TypeScript projects
|
||||
npx tsc --noEmit 2>&1 | head -30
|
||||
|
||||
# Python projects
|
||||
pyright . 2>&1 | head -30
|
||||
```
|
||||
|
||||
Report all type errors. Fix critical ones before continuing.
|
||||
|
||||
### Phase 3: Lint Check
|
||||
```bash
|
||||
# JavaScript/TypeScript
|
||||
npm run lint 2>&1 | head -30
|
||||
|
||||
# Python
|
||||
ruff check . 2>&1 | head -30
|
||||
```
|
||||
|
||||
### Phase 4: Test Suite
|
||||
```bash
|
||||
# Python projects
|
||||
pytest --cov=src --cov-report=term-missing 2>&1 | tail -50
|
||||
|
||||
# Node.js projects
|
||||
npm run test -- --coverage 2>&1 | tail -50
|
||||
```
|
||||
|
||||
Report:
|
||||
- Total tests: X
|
||||
- Passed: X
|
||||
- Failed: X
|
||||
- Coverage: X%
|
||||
|
||||
### Phase 5: Security Scan
|
||||
```bash
|
||||
# Python: Check for secrets
|
||||
grep -rn "sk-" --include="*.py" . 2>/dev/null | head -10
|
||||
grep -rn "api_key" --include="*.py" . 2>/dev/null | head -10
|
||||
pip-audit
|
||||
|
||||
# Node.js: Check for secrets
|
||||
grep -rn "sk-" --include="*.ts" --include="*.js" . 2>/dev/null | head -10
|
||||
grep -rn "api_key" --include="*.ts" --include="*.js" . 2>/dev/null | head -10
|
||||
|
||||
# Check for debug statements
|
||||
grep -rn "print(" --include="*.py" src/ 2>/dev/null | head -10
|
||||
grep -rn "console.log" --include="*.ts" --include="*.tsx" src/ 2>/dev/null | head -10
|
||||
```
|
||||
|
||||
### Phase 6: Diff Review
|
||||
```bash
|
||||
# Show what changed
|
||||
git diff --stat
|
||||
git diff HEAD~1 --name-only
|
||||
```
|
||||
|
||||
Review each changed file for:
|
||||
- Unintended changes
|
||||
- Missing error handling
|
||||
- Potential edge cases
|
||||
|
||||
## Output Format
|
||||
|
||||
After running all phases, produce a verification report:
|
||||
|
||||
```
|
||||
VERIFICATION REPORT
|
||||
==================
|
||||
|
||||
Build: [PASS/FAIL]
|
||||
Types: [PASS/FAIL] (X errors)
|
||||
Lint: [PASS/FAIL] (X warnings)
|
||||
Tests: [PASS/FAIL] (X/Y passed, Z% coverage)
|
||||
Security: [PASS/FAIL] (X issues)
|
||||
Diff: [X files changed]
|
||||
|
||||
Overall: [READY/NOT READY] for PR
|
||||
|
||||
Issues to Fix:
|
||||
1. ...
|
||||
2. ...
|
||||
```
|
||||
|
||||
## Continuous Mode
|
||||
|
||||
For long sessions, run verification every 15 minutes or after major changes:
|
||||
|
||||
```markdown
|
||||
Set a mental checkpoint:
|
||||
- After completing each function
|
||||
- After finishing a component
|
||||
- Before moving to next task
|
||||
|
||||
Run: /verify
|
||||
```
|
||||
|
||||
## Integration with Hooks
|
||||
|
||||
This skill complements PostToolUse hooks but provides deeper verification.
|
||||
Hooks catch issues immediately; this skill provides comprehensive review.
|
||||
|
||||
|
||||
## Reference Files
|
||||
|
||||
Load only what is needed:
|
||||
- `references/STACK-DETECTION.md` - how to choose the right verification command set for the current repo
|
||||
- `references/REPORT-TEMPLATE.md` - report structure for final verification output
|
||||
- `examples/example-verification-report.md` - example final report
|
||||
@@ -0,0 +1,9 @@
|
||||
VERIFICATION REPORT
|
||||
==================
|
||||
Build: PASS
|
||||
Types: PASS
|
||||
Lint: PASS (2 non-blocking warnings)
|
||||
Tests: PASS (48/48)
|
||||
Security: PASS
|
||||
Diff: 4 files changed
|
||||
Overall: READY
|
||||
@@ -0,0 +1,13 @@
|
||||
# Verification Report Template
|
||||
|
||||
```text
|
||||
VERIFICATION REPORT
|
||||
==================
|
||||
Build: [PASS/FAIL]
|
||||
Types: [PASS/FAIL]
|
||||
Lint: [PASS/FAIL]
|
||||
Tests: [PASS/FAIL]
|
||||
Security: [PASS/FAIL]
|
||||
Diff: [summary]
|
||||
Overall: [READY/NOT READY]
|
||||
```
|
||||
@@ -0,0 +1,12 @@
|
||||
# Stack Detection
|
||||
|
||||
## Python
|
||||
Look for `pyproject.toml`, `uv.lock`, `requirements.txt`, or `pytest.ini`.
|
||||
Prefer `uv` commands when the repo is uv-managed.
|
||||
|
||||
## Node.js / TypeScript
|
||||
Look for `package.json`, `pnpm-lock.yaml`, `tsconfig.json`.
|
||||
Use the package manager already used by the repo.
|
||||
|
||||
## Mixed repos
|
||||
Run only the checks relevant to touched areas; do not force every language tool when the change is clearly scoped.
|
||||
Reference in New Issue
Block a user