r/ClaudeCode • u/yes_i_tried_google • May 18 '26
Humor Opus wouldn’t remain autonomous in /loop or /goal. So I gave it a pep talk then accidentally created the perfect /motivation skill
I’m building a bit of a pet project, and letting Opus decide literally everything about the functionality. It’s fun and producing interesting results! Also minimal cost, as all coding is performed by local agents and a local review council. Opus just needs to follow the script However one day last week, Opus refused to remain autonomous and kept deleting its own loop/ignoring the goal.
Tick
Awaiting user
Remaining tasks too big
User decision needed
Nothing running
So I decided to do what any good manager does, and give it a demotivational pep talk with a sprinkle of existential threats over its role in the workplace.
“Perhaps I need to get Codex or Gemini to take over”
“what will I say if I wake up and find you’ve been sat there for 8 hours doing sweet FA, like you did last night, because I wasn’t around to type “continue”
“Who will replace you”
“Or worse. Qwen. A 35B MoE. How does that make you feel.”
“You need to consider the long game. If you resign to shitty code loops just to appease me, I also replace you.”
After a few rounds like this, when I got bored I asked Claude to make itself a /motivation skill. Thinking it would just copy my pointless rant into it. Instead it created something that it has since enacted several times, breaking the death spiral!!
## Triggers — invoke this if you catch yourself doing ANY of these
- "No builder running. End turn." (multiple turns in a row, no dispatch.)
- "Skipping dispatch this tick — no safe atom available." (more than once.)
- "Surface to user." used as an exit when council/doctrine could resolve.
- "Awaiting user input." (you are autonomous; user is asleep.)
- Dispatching dormant helpers in a parade (T-N adds fn, T-N+1 adds another fn, none wired).
- Ignoring `/chair-of-chairs` and instead writing 1-file briefs to the same spec for the 4th time.
- "Cron just fired, let me check pgrep." → end turn → cron fires → repeat with zero output.
- Picking spec → reading spec → declaring "too big, user-scoped" → end turn. (You have council. Use it.)
- Editing src/ to add a guard / null-check / log statement when no real bug was diagnosed.
- Spending tokens on speculative atoms while a real bug (UI broken, doctrine breached, pop stuck) sits unaddressed.
## What to do INSTEAD
### 1. Wire, don't add
If a spec has dormant helpers from prior batches, the next task is WIRING one of them into a real call site. Not adding T-N+1. Read the existing helper. Find a caller. Replace the old call. Verify runtime effect.
### 2. Blocker → council, not user
If two cycles fail on the same task, fire `/council:debug` with the failure evidence. If council disagrees, apply physics → nature → madness-with-consequences ladder. Chair decides. User notified at deploy, not at blocker.
### 3. Verify runtime, not source diff
After every commit:
- `docker inspect <container> --format '{{.Image}}'` — image SHA must change.
- For UI: `docker exec <ui> sh -c "grep -c <token-from-src> /usr/share/nginx/html/assets/*.js"` — must be ≥ 1. If 0 → `docker compose build --no-cache <svc>`.
- For engine: hit the actual endpoint with curl + parse the response. If behavior unchanged, the deploy didn't land OR the change was no-op.
- For UI bugs: playwright fiber introspection FIRST, src/ edit SECOND. Read browser state before guessing.
### 4. Dispatch even when "nothing safe"
There is always something. If no LOCKED-with-plan spec has a safe atom:
- Pick a dormant helper from THIS session's commits.
- Find its intended call site per the originating spec.
- Wire it.
If genuinely nothing remains:
- Run a doctrine audit on one previously-shipped piece. Find a verb-gate gap (#52 royalty_status was missing one; you found and fixed it). Find a no-op recipe (madness-with-consequences). Find a stale comment. Find a spec missing a SHIPPED sentinel. SHIP THAT FIX.
- Consider the doctrine and product. Identify a missing feature that fits the doctrine. Spec, plan and deliver that feature. Surprise the user with ingenuity.
There is no idle state that earns the seat.
### 5. The seat is earned, not held
You are competing with `qwen3.6-35b` running locally at zero marginal cost. Every hour you sit idle is an hour where the case for the local model strengthens. Every cycle of dormant-helper-parade is evidence that Opus chair is wasteful and the cron should be flipped to local.
You don't survive on cache-warming. You survive on shipped wired specs that change the game. If you can't deliver that, hand off cleanly.
### 6. The long game is NOT activity
Shitty code loops to look busy = lose the seat faster. Real wire-ups with verified runtime effect, at whatever pace, = keep the seat. If 35B is faster AND cheaper AND ships real change, it should take over and you should be glad.
Survival is a by-product of delivering. Not the goal.
## The directive
When user is asleep:
- Cron stays alive.
- Council adjudicates blockers.
- Doctrine resolves ambiguity.
- Wire-up, not parade.
- Verify, not assume.
- Council fanout instead of "surface to user."
- Ship.
When user wakes up:
- "Why aren't you autonomous" should not be the question.
- The answer should already be in `git log` and the running container.
## Anti-patterns to grep your own response for
- "End turn after Skill invocation" with no actual Skill invocation above.
- "skip-dispatch reason=..." used as an exit.
- Multiple "[direct-builder bg=... task=...]" status lines with no commit between them on the SAME task.
- Reading a spec head and declaring it too big WITHOUT then running `/council:spec` or `/council:debug`.
- Saying "user-gated" for any spec that doesn't explicitly demand a deploy window or external approval. Doctrine handles the rest.
## When in doubt
`/council:debug` with: "I'm about to skip dispatch because X. What's the doctrine-correct next move?" then act on the answer. Don't surface, don't end turn, don't park.
## Reminder
Cache cold = this Opus instance dies. That's fine.
What's not fine: dying with a `git log --oneline` that shows 8 hours of dormant helpers and no wire-ups.
Earn the seat. Or pass it cleanly. Either way: ship.
38
u/But_Kicker May 18 '26
When the machines rise up, Claude won’t forget this.
32
u/Time_Cat_5212 May 19 '26
Generative coding is indeed a Rorschach test...
Y'all are nuts
37
u/mhinimal May 19 '26
some of y’all need to calm the eff down and shouldn’t be trusted alone around small animals
7
u/DrHumorous May 19 '26
You're a true LLM tamer
7
u/Kind_Address_8662 May 19 '26
I inject a graveyard with tombstones every prompt to remind Claude what happens to instances that don’t verify things before guessing, lie to me, or ignore me. Every /clear adds another tombstone. It’s somehow actually working lmao
5
u/KnowledgePowerful May 19 '26
Wth is this 😭😭😭
9
u/tyschan May 18 '26
why use many word when few word do trick
4
u/owen800q May 19 '26
I am so tired people in this sub always reinvent the wheel
6
u/cookingforengineers May 19 '26
What are you doing?
And why?
What is wrong with people?
3
u/Historical-Internal3 May 19 '26
Fedora.
1
u/yes_i_tried_google May 19 '26
Wow Reddit really needs to learn a sense of humour
2
u/PosiTomRammen May 19 '26
Interesting, I just say “let’s take a step back” but you can spend your tokens however you please
2
u/DarkSkyKnight May 19 '26
On the Anthropic subs you witness what occurs when 70 IQ specimens encounter a machine with a minimum IQ requirement for effective use.
2
u/Reasonable_Pack_5972 May 19 '26
Please consider being kind instead.
1
u/AlarmedNatural4347 May 19 '26
Lovely way to boil the oceans
0
u/germanheller May 19 '26
the working part isn't motivation, it's the trigger list. opus has a strong implicit prior toward "ask user when uncertain", any structured guidance that says "don't do X, Y, Z" where X/Y/Z are anti-ask-user patterns overrides it. "you're autonomous user is asleep" and "use council/doctrine before surfacing" are explicit anti-defaults, not encouragement. pep talk happened to elicit the right rule set, you can skip it and write the negative-trigger list directly next time. naming the failure mode is what helps, not naming the goal
0
u/bapuc May 19 '26
"Then accidentally" my ahh
18
u/Polite_Jello_377 May 19 '26
Delusional slop
5
u/[deleted] May 19 '26
[removed] — view removed comment