• Will Chen's avatar
    Replace prompt-based stop hook with Sonnet-powered analysis (#2331) · 6ba51165
    Will Chen 提交于
    ## Summary
    - Replace broken prompt-based Stop hook with command-based hook using
    Claude Sonnet
    - Add .claude/hooks/stop-hook.py that reads conversation transcript and
    uses Sonnet to analyze task completion
    - Includes infinite loop prevention via stop_hook_active check
    - Add unit tests for the stop hook
    
    ## Test plan
    - [x] Run pytest .claude/hooks/tests/test_stop_hook.py -v - all 9 tests
    pass
    - [ ] Manual testing: verify stop hook fires and correctly analyzes task
    completion
    
    #skip-bugbot
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Replaced the broken prompt-based stop hook with a command-based hook
    that blocks when tasks remain and uses Sonnet analysis as a fallback.
    Adds loop protection and tests.
    
    - **New Features**
    - Added .claude/hooks/stop-hook.py that blocks when
    TaskCreate/TaskUpdate show remaining tasks, returning
    {"decision":"block","reason":...}. If none remain, it analyzes a 32k
    transcript (middle truncation) with Sonnet.
    - Added unit tests and a stop_hook_active guard to prevent infinite
    loops.
    
    - **Refactors**
    - Updated .claude/settings.json to use the command-based hook (30000 ms
    timeout) instead of the prompt hook.
    - Added --no-session-persistence to Claude CLI calls in stop-hook.py and
    permission-request-hook.py.
    
    <sup>Written for commit 575426cee9efb0fa7e1f4be64a8405ae2e717a3b.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2331">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    ---------
    Co-authored-by: 's avatarClaude Opus 4.5 <noreply@anthropic.com>
    6ba51165
settings.json 3.7 KB