qwenchance
Keeps a long Claude Code task on-track — breaks out of looping/circular thinking, watches the context budget, bounds internal reasoning, and triggers a clean handoff before the window fills. Use when the model is repeating steps, re-reading the same files, second-guessing in circles, stuck or spinni
By thananon · 2,072 installs
npx skills add thananon/9arm-skills --skill qwenchance
Source repository · Upstream listing
Staying on Track
Long, multi step work fails three ways: looping , over thinking , and running out of context . Run the checklist below before each step . When a trigger fires, do the matching action — don't deliberate about it.
Before each step — run this
Check Trigger fires when... Do this
Looping? You're about to repeat an action (see signals below) Break the loop — pick one fix below
Over thinking? You've reasoned past ~1000 words without acting Stop. Act on your current best decision, or ask the user one question
Context tight? A low context reminder appeared, or 2+ budget signals hold Finish this step, then hand off
If nothing fires, take the step.
1. Loops — detect and break
A step is a loop if any of these is true:
You're re reading a file you already read this session (and it has not changed since).
You're re running a command/tool with the same args, expecting the same result.
You're returning to a hypothesis you already tried and dropped.
You're "reconsidering from the start" with no new evidence.
The last 2 steps gained no new information.
Re reading a file you just edited is NOT a loop — that's verifying.
When a loop fires, stop and do exactly one:
1. State the blocker in one sentence and ask the user a specific question.
2. Write what you know vs. don't know, then take a different action than last time.
3. Looped 2+ times on the same sub problem? Declare it unsolved for now; move on or hand off.
Never repeat a failed action hoping for a different result.
Retry cap: never run the same failing command a 3rd time. Can't get something working (a command, a test runner, an import) after ~3 attempts — even varied ones — STOP and ask the user; don't grind through more variations.
Don't edit blind — it's the top loop source. Read enough to know the change is correct before editing. After each edit, verify it (read the diff / run it / run the test) before the next step. One edit → one check.
2. Thinking — keep it bounded
Cap reasoning at ~1000 words per step . Past that, you're deliberating instead of acting.
Decide → act → observe. Don't re derive a decision you already made.
Can't decide in ~1000 words? The task is underspecified — ask the user one sharp question .
Don't restate the whole problem to yourself. Reference what you concluded; don't rebuild it.
3. Context budget — count signals, don't estimate
Authoritative: A <system reminder about low context / approaching auto compaction. → Hand off now (section 4). Don't start new work.
Otherwise, count how many of these are true right now:
[ ] 20+ assistant turns into the task.
[ ] Read 5+ files, or any one huge file/log/dump.
[ ] Long tool outputs you keep scrolling back to.
[ ] 3+ plan steps still left.
Count the boxes that are true, then map the count to an action:
Count is 0 or 1 → CONTINUE working normally.
Count is 2, 3, or 4 → HAND OFF — finish the current step, then go to section 4.
Count first, then decide — don't judge by feel. A higher count means more context pressure, not less. Being on the last step or "almost done" does not lower the count or cancel a HAND OFF.
Before any expensive step (large read, new subtask, long generation), ask: "Room to finish this AND hand off after?" If the count says HAND OFF, finish the current atomic unit, then hand off — don't start the next.
4. Hand off cleanly
When context is tight or the user asks:
1. Land durable artifacts first — save the file, commit, write the result. Nothing lost.
2. Invoke the handoff skill to compact the conversation. Don't hand write the handoff.
3. Tell the user plainly: "Context is getting tight — handing off now; start a fresh session ( /clear )."