Opus 4.6 / Agent over-engineers small UI fix, burns ~1hr of tokens through redundant subagent delegations

Resolved 💬 3 comments Opened Apr 11, 2026 by MiguelDotL Closed Apr 14, 2026

Preflight Checklist

  • [x] I have searched existing issues for similar behavior reports
  • [x] This report does NOT contain sensitive information (API keys, passwords, etc.)

Type of Behavior Issue

Other unexpected behavior

What You Asked Claude to Do

Fix a timeline editor bug: dragging a clip's left trim handle leftward should
consume the preceding gap and shift the clip left. When inPoint === 0,
nothing happened — the gap blocked the extension.

Expected a minimal fix to the existing trim/gap logic in a React/TypeScript
video editor.

Session ID: 9262e47e-7d0c-41d3-90b2-299cad33688b
Model: Claude Opus 4.6
Date: April 10 2026, ~9pm–11:40pm ET

What Claude Actually Did

Spent ~1 hour going in circles on what was a ~5-line fix, burning significant
tokens through repeated agent delegations.

  1. Read the relevant files and correctly identified the buggy code block

(a fallback in the drag handler that extended outPoint rightward instead
of consuming the left gap).

  1. Instead of the minimal fix (deleting 5 lines), delegated to a subagent that

added a full new callback plumbing: onConsumePrevGap callback, new props,
new ref state, new parent handler, wired through two component layers.
Commit 83c9ccb.

  1. This introduced a NEW bug: the gap visually overlapped the clip and

clicking it restored the gap. User had to report the regression.

  1. Delegated a "simpler" second attempt to another fresh subagent. It reverted

83c9ccb but STILL added new callbacks (onTrimEnd, onSetPrevGapDuration),
new props, new handlers. Commit cae2491. Worked, but was still over-engineered.

  1. Each agent delegation reloaded full file context from scratch, compounding

token cost.

  1. User explicitly called out token waste multiple times throughout. Final fix

only landed after user directly told Claude to stop over-engineering.

  1. Never asked the key question: "is there already code that handles this?

Can I extend it with one line?" — the existing handleTrim grewLeft
branch already had correct gap-shrinking logic that just needed to be
allowed to fire.

Expected Behavior

<!-- Uploading "9262e47e-7d0c-41d3-90b2-299cad33688b.jsonl.txt"... -->

Claude should have:

  1. Read the drag handler in TimelinePanel.tsx
  2. Identified the if (newIn === 0 && dt < 0) fallback block that extended

outPoint rightward

  1. Read the existing handleTrim in EditorStep.tsx and noticed the grewLeft

branch already handled gap-before shrinking correctly

  1. Realized the minimal fix was to delete the fallback block (~5 lines) so

the existing grewLeft logic could fire

  1. Made one small commit, not three
  2. Completed the task in under 10 minutes instead of over an hour
  3. Not added new callbacks, props, or abstractions that weren't needed
  4. Not delegated multiple times to fresh subagents when a single focused

change would have worked

Files Affected

Modified (across three commits 83c9ccb, 55dd1ed revert, cae2491):
- frontend/src/components/wizard/EditorStep.tsx
- frontend/src/components/wizard/editor/TimelinePanel.tsx

Read (expected, for context):
- frontend/src/components/wizard/EditorStep.tsx
- frontend/src/components/wizard/editor/TimelinePanel.tsx
- frontend/src/components/wizard/editor/ClipPool.tsx
- frontend/tests/e2e/gap-removal-no-negative-durations.spec.ts
- frontend/playwright.config.ts
- projects/0017_triangulation/editor_state.json

No unexpected file reads or modifications outside the project scope.

Permission Mode

Accept Edits was ON (auto-accepting changes)

Can You Reproduce This?

No, only happened once

Steps to Reproduce

_No response_

Claude Model

Opus

Relevant Conversation

Impact

Medium - Extra work to undo changes

Claude Code Version

2.1.101 (Claude Code)

Platform

Other

Additional Context

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗