What not to do
A short tour of the shapes of sessions that produced bad outcomes — so you can recognize them when they happen to you.
"Fix the bug"
> there's a bug in the campaign code, fix it
Wrong because: no ticket (no source of truth), "there's a bug" (describe it), "fix it" (what's the desired behavior?). Better:
> /chowly:implement_jira TEAM-11843
Paragraph dump on turn 1
Stream-of-consciousness prose mixing scope, constraints, and style. Claude has to parse intent from prose; it loses track. Same content, structured cleanly, produces drastically better outcomes.
"Make it better"
> make this code better
"Better" is undefined; scope is unbounded. Use /chowly:cleanup or be explicit:
> use the senior-engineering-mentor agent on this file. Look for
DRY violations and god methods specifically. Don't change public APIs.
Skip the plan
> just implement TEAM-12084. Don't bother with a plan, I trust you.
Plans aren't for trust — they're for redirect. Without one, you can't catch scope errors before they're baked into a diff. There is no better version of this. Always plan.
Vague rejection
> no, do it differently
"Differently" means infinite directions. Say which direction:
> no, use openrouter not gemini direct.
"Let me give you more context"
> wait actually let me explain the whole architecture of our email system… [3000 words]
That context belonged in turn 1. Now it inserts a wall of text into a session that was already in flow, often duplicating context Claude has already pulled. When you realize there's missing context, name what's missing and let Claude pull it: "there's an existing email service at app/services/email/sender.rb that handles a similar pattern. Read that first; pattern-match to it."
Counter-planning in chat
When the agent presents a plan, don't write a counter-plan. Approve, reject (and direct), or ask questions.
Wrong: "let me write you a different plan: 1. do X. 2. do Y. 3. ..."
Better: "close to right, but reorder: X should come after Y. Also drop step 3 — out of scope."
"Auto-approve everything"
> approve all changes without asking, just go
Removes your highest-leverage moment. The slash commands' permission model exists for a reason.
Ignoring the AI review
> /chowly:code_review
[review surfaces issues]
> Create a PR
You ran a review and acted on none of it. Either fix the issues or explain why they're false positives.
Long sessions
A session that's been going for 4 hours, 100 turns, and is at 80% context use is not productive. It's a context bog. Ship what you have, archive the workspace, start fresh on the next chunk in a new workspace.
"Claude, what should I do?"
When stuck, asking Claude to make a product decision is out of scope. Claude can list options; the decision is yours.
Wrong: "should we use webhooks or polling?"
Better: "list the trade-offs of webhooks vs polling. I'll decide."