πŸͺ Hook System

μ—μ΄μ „νŠΈ μ›Œν¬ν”Œλ‘œμš°μ˜ μžλ™ μ „ν™˜κ³Ό ν’ˆμ§ˆ 관리λ₯Ό λ‹΄λ‹Ήν•˜λŠ” Hook μ‹œμŠ€ν…œ

⚑ Hook Lifecycle

Hook System Pipeline

πŸͺ Hook Types

πŸš€

UserPromptSubmit

trigger: μ‚¬μš©μž λ©”μ‹œμ§€ μˆ˜μ‹  μ‹œ

νŒŒμ΄ν”„λΌμΈ μ΄ˆκΈ°ν™” 및 μ„Έμ…˜ μ»¨ν…μŠ€νŠΈ λ‘œλ”©

  • νŒŒμ΄ν”„λΌμΈ μƒνƒœ μ΄ˆκΈ°ν™”
  • μ„Έμ…˜ μ»¨ν…μŠ€νŠΈ λ‘œλ”©
  • 이전 μž‘μ—… μƒνƒœ 볡원
πŸ”

PreExecution

trigger: APEI Execute 단계 μ§„μž… μ „

μ‹€ν–‰ μ „ 검증 및 μ€€λΉ„

  • μž…λ ₯ μœ νš¨μ„± 검증
  • λ¦¬μ†ŒμŠ€ κ°€μš©μ„± 확인
  • μ˜μ‘΄μ„± 체크
βœ…

PostToolUse

trigger: 도ꡬ 호좜 μ™„λ£Œ ν›„

도ꡬ μ‚¬μš© κ²°κ³Ό 검증

  • 좜λ ₯ ν˜•μ‹ 검증
  • ν’ˆμ§ˆ κΈ°μ€€ 체크
  • μ—λŸ¬ 탐지 및 λΆ„λ₯˜
πŸ”¬

WorkerVerify

trigger: Worker μž‘μ—… μ™„λ£Œ ν›„

3단계 검증 (Functional β†’ Static β†’ Runtime)

  • κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­ μΆ©μ‘±
  • μ½”λ“œ ν’ˆμ§ˆ 검사
  • λŸ°νƒ€μž„ 검증
πŸ”„

Stop

trigger: ν˜„μž¬ 단계 μ™„λ£Œ μ‹œ

단계 μ „ν™˜ 및 μƒνƒœ μ €μž₯

  • μƒνƒœ μ €μž₯
  • λ‹€μŒ 단계 κ²°μ •
  • μžλ™ μ „ν™˜ μ‹€ν–‰

πŸ”§ WorkerVerify: 3단계 검증

WorkerVerify: verification_stages: β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Functional │────→│ Static │────→│ Runtime β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β€’ ν…ŒμŠ€νŠΈ 톡과 β”‚ β”‚ β€’ 린트 였λ₯˜ 0 β”‚ β”‚ β€’ λΉŒλ“œ 성곡 β”‚ β”‚ β€’ μ˜ˆμƒ 좜λ ₯ β”‚ β”‚ β€’ νƒ€μž… 체크 β”‚ β”‚ β€’ 톡합 ν…ŒμŠ€νŠΈ β”‚ β”‚ β€’ μ—£μ§€ μΌ€μ΄μŠ€ β”‚ β”‚ β€’ μ½”λ“œ μŠ€νƒ€μΌ β”‚ β”‚ β€’ μ„±λŠ₯ κΈ°μ€€ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β–Ό β–Ό β–Ό PASS/FAIL PASS/FAIL PASS/FAIL β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ ALL PASS ANY FAIL β”‚ β”‚ β–Ό β–Ό βœ… Commit πŸ”„ Retry (max 3)

πŸ”— APEI + Hooks 톡합

Integration Flow

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    APEI + Hooks Integration                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                  β”‚
β”‚  ANALYZE ──────────────────────────────────────────────────────→│
β”‚     β”‚                                                            β”‚
β”‚     └─ [PreExecution Hook] β†’ μž…λ ₯ 검증                          β”‚
β”‚                                                                  β”‚
β”‚  PLAN ─────────────────────────────────────────────────────────→│
β”‚     β”‚                                                            β”‚
β”‚     └─ [Stop Hook] β†’ /specify μ™„λ£Œ β†’ /open μ „ν™˜                 β”‚
β”‚                                                                  β”‚
β”‚  EXECUTE ──────────────────────────────────────────────────────→│
β”‚     β”‚                                                            β”‚
β”‚     β”œβ”€ [PostToolUse Hook] β†’ 각 도ꡬ 호좜 검증                   β”‚
β”‚     β”œβ”€ [WorkerVerify Hook] β†’ Worker κ²°κ³Ό 3단계 검증             β”‚
β”‚     └─ [Stop Hook] β†’ λͺ¨λ“  TODO μ™„λ£Œ β†’ /publish μ „ν™˜             β”‚
β”‚                                                                  β”‚
β”‚  ITERATE ──────────────────────────────────────────────────────→│
β”‚     β”‚                                                            β”‚
β”‚     └─ [WorkerVerify Hook] β†’ μž¬μ‹œλ„ μ‹œ 검증                     β”‚
β”‚                                                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜