[FEATURE] Make the native /goal evaluator timeout configurable

Status Open
Reported on v2.1.281
Maintainer reply None cached
Activity 0 comments · opened Sep 24, 2026

Prior request

I searched existing issues and found #66448.
It was closed by the stale bot with an invitation to open a new issue if the request remained relevant.
The request remains relevant in Claude Code 2.1.281.

Problem Statement

The native /goal command registers a session-scoped prompt-based Stop hook without a timeout value.
The prompt-hook evaluator uses its 30-second default when that value is absent.
Users can set timeout for hooks they define, but cannot set it for the hook created by /goal.

Inspection of the installed 2.1.281 binary shows the registration shape sessionHooksRegistry.add(r,"Stop","",{type:"prompt",prompt:t}) and the evaluator fallback e.timeout ? e.timeout * 1000 : 30000.
This establishes the configuration gap, not a reproducible timeout failure in every session.

Proposed Solution

Expose a documented timeout override for the native /goal evaluator through a setting or environment variable.
Keep the current 30-second default when no override is set.
Apply the override to the session-scoped prompt Stop hook created by /goal.
This should control evaluator execution, not the background check-in interval controlled by CLAUDE_CODE_GOAL_CHECKIN_MINUTES.

Alternative Solutions

A /goal command option could work, but a persistent setting would avoid repeating it for each goal.
Manually defining a prompt Stop hook supports a timeout, but does not provide the native /goal experience.

Priority

Medium - Would be very helpful

Feature Category

Configuration and settings

Use Case Example

For a multi-part goal in a long session, a user could set the evaluator timeout to 120 seconds without changing the goal text or other Stop hooks.

View original on GitHub ↗