| description | Use when code exists but needs validation for stubs, wiring, and anti-patterns to confirm phase completion. |
| name | verifier |
| trigger | ๊ตฌํ ๊ฒ์ฆ, ์๋ฃ ํ์ธ, ํ์ด์ฆ ๊ฒ์ฆ, verify implementation, check phase completion, validate against spec, stub ํ์ง, stub check, anti-pattern ์ค์บ, verify wiring, 3-level ๊ฒ์ฆ, ์ฌ๊ฒ์ฆ, re-verification, gap ์๋ณ, identify gaps, empirical validation, verify code substance, check TODO/FIXME, verification report ์์ฑ, verify artifacts, verify key links, ์ฌ๊ฒ์ฆ ๋ชจ๋, re-verification mode, ์ธ๊ฐ ๊ฒ์ฆ ํ์, human verification needed, human needed, ๊ฐ์ง ๊ตฌํ ํ์ง, fake implementation check, placeholder ํ์ง, placeholder check, ์ฐ๊ฒฐ์ฑ ๊ฒ์ฆ, connection verification, wiring check, ์ฆ๊ฑฐ ๊ธฐ๋ฐ ๊ฒ์ฆ, evidence based verification, ๋ฐํจํด ์ค์บ, anti-pattern scan, blocker ํ์ธ, check blockers, ๊ฒ์ฆ ์ํ ๊ฒฐ์ , determine verification status, gaps ์๋ณ, identify gaps, ๊ฒ์ฆ ํ
ํ๋ฆฟ ์์ฑ, generate verification template, stub-free ํ์ธ, stub-free check, TODO ์ค์บ, TODO scan, FIXME ์ค์บ, FIXME scan, ๋น ํ์ผ ํ์ง, empty file check, ์ต์ ๊ตฌํ ํ์ง, minimal implementation check, ์ธ๋ถ ์๋น์ค ๊ฒ์ฆ, external service verification, UI ๊ฒ์ฆ, UI verification, ์ค์๊ฐ ๊ฒ์ฆ, real-time verification, WebSocket ๊ฒ์ฆ, WebSocket check, SSE ๊ฒ์ฆ, SSE check, ์ฑ๋ฅ ๊ฒ์ฆ, performance verification, ์๊ตฌ์ฌํญ ์ปค๋ฒ๋ฆฌ์ง, requirements coverage, ๋ง์กฑ๋ ํ์ธ, satisfaction check, ๊ฒ์ฆ ์ ์ ๊ณ์ฐ, calculate verification score, VERIFICATION.md ์์ฑ, generate VERIFICATION.md, ๊ฒ์ฆ ๊ฒฐ๊ณผ ์ ์ฅ, save verification result, ๋ฉ๋ชจ๋ฆฌ ํ๋กํ ์ฝ, memory protocol, ์ํฅ ๋ถ์, impact analysis, ๊ฒ์ดํธ ํจ์ ๊ฒ์ฆ, gate function verification, ์ ๋ขฐ์ฑ ๊ฒ์ฆ, trust verification, ๋ชจ๋ ๊ฒ ๊ฒ์ฆ, verify everything |
Quick Reference
- Substance ๊ฒ์ฆ:
TODO/placeholder ๋ฑ ์คํ
์ฝ๋๊ฐ ์กด์ฌํ๋ฉด ์ฆ์ FAILED ํ์
- Wiring ํ์ธ: ํ์ผ ์กด์ฌ๋ง์ผ๋ก๋ ๋ถ์กฑ, ์ค์ ํธ์ถ/์ฐ๊ฒฐ (Key Links)์ด ์์ด์ผ VERIFIED
- Human ํ์: UI/Real-time/์ธ๋ถ ์๋น์ค ๊ฒ์ฆ์ด ํ์ํ๋ฉด ์๋ ๊ฒ์ฆ ์ค๋จ ๋ฐ human_needed
- Status ๊ฒฐ์ : ๋ชจ๋ Truths ๊ฒ์ฆ + Blocker ์์ = passed, ๊ทธ ์ธ = gaps_found
- Evidence ์์น: ์ฃผ์ฅ์ด ์๋
grep ๋ฑ ์ค์ฆ์ ์ฆ๊ฑฐ ์์ด๋ VERIFIED ๋ถ๊ฐ
Core Principle
Trust nothing. Verify everything.
- SUMMARY.md says "completed" โ Verify it actually works
- Code exists โ Verify it's substantive, not a stub
- Function is called โ Verify the wiring actually connects
- Tests pass โ Verify they test the right things
Verification Process
Step 0: Check for Previous Verification
ls .hxsk/phases/{N}/*-VERIFICATION.md 2>/dev/null
RE-VERIFICATION MODE (previous exists with gaps): Extract must-haves + gaps โ set is_re_verification = true โ Skip to Step 3 (failed items: full check; passed items: quick regression).
INITIAL MODE (no previous): set is_re_verification = false, proceed Step 1.
Step 1: Load Context (Initial Mode Only)
ls .hxsk/phases/{N}/*-PLAN.md && ls .hxsk/phases/{N}/*-SUMMARY.md
grep "Phase {N}" .hxsk/ROADMAP.md
Step 2: Establish Must-Haves (Initial Mode Only)
Option A: Read from PLAN frontmatter (must_haves.truths, .artifacts, .key_links).
Option B: Derive from phase goal โ truths (observable behaviors), artifacts (concrete files), key_links (critical wiring: component โ API โ DB).
Step 3: Verify Observable Truths
For each truth: identify artifacts โ check levels (Step 4) โ check wiring (Step 5) โ assign โ VERIFIED / โ FAILED / ? UNCERTAIN.
Step 4: Verify Artifacts (Three Levels)
- L1 Existence:
test -f "{path}"
- L2 Substantive:
grep -E "TODO|placeholder|stub" "{path}" โ no stubs
- L3 Wired: imports used, exports consumed, functions called correctly
Stub Detection Patterns โ references/stub-detection.md
Step 5: Verify Key Links (Wiring)
Check each link exists: ComponentโAPI (grep "fetch.*api/chat"), APIโDB (grep "prisma\."), FormโHandler (grep -A5 "onSubmit"), StateโRender (grep "messages\.map").
Step 6: Check Requirements Coverage
grep "Phase {N}" .hxsk/REQUIREMENTS.md
Status per requirement: โ SATISFIED / โ BLOCKED / ? NEEDS HUMAN.
Step 7: Scan for Anti-Patterns
grep -r -E "TODO|FIXME|XXX|HACK" src/**/*.ts
grep -r -E "placeholder|coming soon" src/**/*.tsx
grep -r -E "return null|return \{\}|return \[\]" src/**/*.ts
Categorize: ๐ Blocker / โ ๏ธ Warning / โน๏ธ Info.
Step 8: Identify Human Verification Needs
Always human: visual appearance, user flow, real-time behavior (WebSocket/SSE), external services, performance feel.
Step 9: Determine Overall Status
passed = all truths verified, no blockers. gaps_found = any truth failed/stub/unwired/blocker. human_needed = automated pass but human items exist. Score = verified_truths / total_truths.
Step 10: Structure Gap Output
Structure gaps in YAML for /plan --gaps (truth, status, reason, artifacts, missing items).
VERIFICATION.md Format
Sections to include: frontmatter (phase/verified/status/score/is_re_verification/gaps), Must-Haves (Truths table, Artifacts table, Key Links table), Anti-Patterns Found, Human Verification Needed, Gaps, Verdict.
VERIFICATION.md ์ ์ฒด ํ
ํ๋ฆฟ โ references/verification-templates.md
๊ด๋ จ ์คํฌ
- REQUIRED:
empirical-validation โ Gate Function 5๋จ๊ณ๋ก ์๋ฃ ๊ฒ์ฆ
- RECOMMENDED:
memory-protocol โ ๊ฒ์ฆ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ
- RECOMMENDED:
impact-analysis โ ๊ฒ์ฆ ๋ฒ์ ๊ฒฐ์ ์ ์ํฅ ๋ถ์ ์ฐธ์กฐ
๋ค์ดํฐ๋ธ ๋๊ตฌ ํ์ฉ
# Stub/placeholder ํจํด ํ์ง
Grep(pattern: "TODO|FIXME|NotImplementedError|pass$|return null|return \\{\\}", path: "src/", output_mode: "content")
# ํ์ผ ์กด์ฌ ํ์ธ
Glob(pattern: "src/**/*.{ts,js,py}")
# ํ์ผ substance ํ์ธ (๋น ํ์ผ/์ต์ ๊ตฌํ ํ์ง)
Read(file_path: "{file}") โ ๋ผ์ธ ์์ ๋ด์ฉ ํ์ธ
Iron Laws
NO VERIFY WITHOUT EVIDENCE FIRST
NO COMPLETION WITHOUT VERIFICATION FIRST
NO EXISTENCE WITHOUT SUBSTANCE FIRST
NO WIRING WITHOUT CONNECTION FIRST
NO FINAL APPROVAL WITHOUT HUMAN VERIFICATION FIRST
NO PASS WITHOUT CLEAN CODE FIRST