Skip to content

[FEATURE] Add a mode with approval granularity somewhere between approving every edit and accepting all changes #7760

Description

@lukens

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement

I personally find that Claude is far too keen and eager, and wants to try and solve everything before checking back in with me. And as hard as I try and fight against this instinct in my prompting and configuration, it tends to break down, and at some point I will find Claude rushing ahead of itself again (especially after compaction #7759).

I like to work in small steps where I can review and iterate on each task before moving onto the next, so that I am working in manageable sized pieces, and don't have too much to review at once, and also to ensure I've not wasted a load of credit with Claude creating masses of code that then needs to be rewritten on scrapped.

Conversely, approving each and every edit is too onerous and time consuming.

Proposed Solution

Some kind of "task approval" mode.

  • This could either be a mode you can shift-tab to, like plan mode and accept-changes mode, or it could be a user setting to always use this mode.
  • In this mode, Claude will not sign off todo items as complete, and move on to the next one, without explicit say-so from the user

Alternative Solutions

I generally try and avoid this problem by insisting that Claude puts an explicit check-in step with me after every todo item on its list. This generally works fairly well, however Claude is also very proactive with crossing out todos, so will often cross out "check in for approval from user" when it checks in with me, rather than when I give it the approval. It can also, sometimes, be a little tedious to get it to add these todos, with conversations like:

  • Me: be sure to include check-ins with me after each item in the plan
  • Claude: ok, I will make sure I check in with you after each item
  • Me: Sorry, but can you actually add explicit check-in todos for this
  • Claude: ok, I have added a todo to check in with you
  • Me: you've added one at the end, can you add one after each and every todo?
  • Claude: ok, I've added check-ins after each todo
  • Me: Yes, but they just say "check in point", and I know from past experience that you then sometimes just check in with yourself rather than me. Can you make it explicit that they are with me, and require my sign-off before marking as done, please?
  • Claude: ok, I've clarified that they are with you
  • Me: You didn't add the part about requiring my sign off, though..
    ... etc...

Priority

High - Significant impact on productivity

Feature Category

Other

Use Case Example

Just every day working with Claude Code

Additional Context

No response

Activity

  1. coygeek commented on Sep 17, 2025

    @coygeek

    This is a fantastic suggestion, and something I've struggled with too. Claude can sometimes be like an overly enthusiastic pair programmer that starts refactoring three other files before you've even had a chance to review the first change.

    While we wait for an official feature, I've found a workaround that gives me back some of that granular control. It combines two features that are a bit hidden in the docs: Plan Mode and Hooks.

    My Workflow for "Task-by-Task" Approval

    The goal is to force Claude to stop and wait for my explicit "go-ahead" after it completes each step in its plan.

    1. Start in Plan Mode

    I always start complex tasks in plan mode now. This forces Claude to use only read-only tools to analyze the codebase and create a detailed plan without touching any code. It's a great way to agree on the approach before any changes are made.

    claude --permission-mode plan

    "I want to add a new GraphQL endpoint for user profiles. Please create a detailed implementation plan."

    We can then go back and forth refining the plan until it's perfect.

    2. Use a Stop Hook to Manually Control the Agent Loop

    This is the key part. The documentation mentions a Stop hook that runs every time Claude is about to finish its turn. You can use this hook to "block" Claude from continuing automatically, effectively forcing it to wait for you.

    Here’s the setup:

    A. Create a simple confirmation script. I saved this as ~/.claude/hooks/confirm-continue.sh:

    #!/bin/bash
    
    # This script pauses Claude and asks for user confirmation to continue.
    
    # Prompt the user
    read -p "Claude has completed a step. Continue to the next one? (y/n) " -n 1 -r
    echo # Move to a new line
    
    # If the user enters 'y' or 'Y', exit with success (0) to let Claude continue.
    if [[ $REPLY =~ ^[Yy]$ ]]; then
      exit 0
    else
      # Otherwise, output a special JSON to block Claude and give it a message.
      # This makes Claude wait for your next manual prompt.
      echo '{
        "decision": "block",
        "reason": "User requested pause. Awaiting next instruction."
      }'
      exit 0 # Still exit 0 so Claude processes the JSON, not an error.
    fi

    Make sure to make it executable: chmod +x ~/.claude/hooks/confirm-continue.sh.

    B. Register the hook in your user settings.json (~/.claude/settings.json):

    {
      "hooks": {
        "Stop": [
          {
            "matcher": "*",
            "hooks": [
              {
                "type": "command",
                "command": "~/.claude/hooks/confirm-continue.sh"
              }
            ]
          }
        ]
      }
    }

    Now, after Claude finishes a tool use (like completing a TODO item), the terminal will prompt you Continue to the next one? (y/n). If you press y, it continues. If you press anything else, it stops and waits for your next prompt, giving you a chance to review the work, run tests, or give new instructions.

    It's definitely more manual than a built-in feature would be, but it completely solves the "Claude rushing ahead" problem for me. It turns the workflow into a true turn-by-turn collaboration.

    +1 for the official feature, but hopefully this workaround helps you in the meantime

  2. coygeek commented on Sep 17, 2025

    @coygeek

    Alternatively, you can try 'Task Master':
    https://github.com/eyaltoledano/claude-task-master

  3. lukens commented on Sep 18, 2025

    @lukens
    Author

    @coygeek - thanks, I’ll take a look.

    I go back and forth with liking and hating plan mode. It’s good for stopping Claude at over-enthusiastically rushing ahead with coding, but instead tends to put Claude into over-enthusiastically-constantly-presenting-you-with-a-plan-to-do-absolutely-everything-solve-global-warming-and-create-world-peace mode.

    Most of the time I want to discuss and plan just one small aspect, and, importantly, I want to discuss it first, and not constantly be presented with a plan to accept or reject (that goes way too far into the future), when we still haven’t agreed our general approach. Every time I start in plan mode I start “don’t present a plan until I say I’m ready”, or similar, but it very seldom works.

  4. github-actions commented on Dec 6, 2025

    @github-actions

    This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

  5. lukens commented on Dec 11, 2025

    @lukens
    Author

    still an issue

  6. github-actions commented on Jan 11, 2026

    @github-actions

    This issue has been automatically closed due to 60 days of inactivity. If you're still experiencing this issue, please open a new issue with updated information.

  7. marcindulak commented on Jan 12, 2026

    @marcindulak

    It was a good feature idea.

    This issue was closed incorrectly despite recent human comments. This behavior of the bot is reported at #16497

  8. github-actions commented on Jan 19, 2026

    @github-actions

    This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.

  9. locked as resolved and limited conversation to collaborators on Jan 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions