Claude Code · feedback loop
Every moment in the last seven days when you had to correct, repeat, redirect, or chase Claude, and the five rules those moments argue for.
September 19 to 27, 2026 · read by Jonny Dubowsky · nothing here is applied yet
This page counts friction in your own Claude Code transcripts and turns the repeats into proposed CLAUDE.md rules. It is for you, so you can rule on each rule. The first count closed on the evening of September 26. An addendum covers the twelve hours after that, so the numbers here run slightly ahead of the markdown you read on Friday.
~/.claude/projects/ touched in the last 15 days, across all project folders and Orca worktrees.Counts are friction moments, revised to include the addendum window. Gold marks a pattern that did not appear the week before.
The mix changed more than the rate. Last week, 14 of 18 friction moments were about prose. This week, 5 of 67 were. The writing gate went live on September 16 and 17, which fits the drop, though one week does not prove it caused the drop. What is left is operational: chasing status, checking claims, and scope.
In one session you asked where the aTwist report was ten times between 11:37 and 15:37, roughly every thirty minutes.
"Where is the report at, it's been running for many hours"
"Where is report at?"
"Where is report"
Root cause: Claude reports progress only when you send a message or a background task finishes. A multi-hour workflow has many phase changes that nobody is told about. The live viewer and the rulings log both existed, but you had to know to open them.
"memx is blocking again"
"i dont see that tab" … "not showing, take over browser and see for yourself"
"how come the standard view is x'd out and doesnt work? only ambient view shows"
"It doesn't run when I hit run on mobile phone through tailscale link"
Root cause: each claim was checked through an API or a file, not in the view you use. Standing rule 2 in your global CLAUDE.md already says to verify on the real surface. It did not hold for sheets, for settings that need a restart, for interactive toggles, or for a phone.
"actually, just fix memex"
"i mean tell me"
"I don't want to have to tell you to apply the rulings, instruct the agent for me"
"before we start, finish what we were working on, setup the scheduled compute run"
Root cause: the vault's process machinery is visible to every session, and Claude reaches for it by default. A direct request gets a full process.
"I know there's a tiktok the report says there isnt i mean, a simple google search, for atwist vertical drama tik tok it's the first listing"
"also fix the report, as there are obviously x posts about atwist"
Root cause: the fact-check gate verifies claims that cite a source. A claim that something is absent cites nothing, so nothing checked it.
"i switched on auto top up and added $5 try again"
"Try again I added $"
"im going to swap out the api key, give me the text to use"
Root cause: mostly outside Claude. TypeSafe refused calls while its console showed credit, and the OpenAI key belonged to a personal organization with no balance. Claude read the organization header only after the second top-up failed. Reading it on the first refusal would have saved a round trip.
The first count closed at 5:27 pm on September 26. You kept working until about 1 am. Thirty messages fell in that gap, across three sessions: the Jev cartography orchestrator, the sources worktree, and the site worktree. Seventeen of the thirty were friction.
That share, 57%, is not comparable to the 28% above. This was a late-night debugging and demo stretch on a half-built system, which is where friction concentrates. What matters is which patterns came back, not the rate.
| Pattern | Sept 12 to 19 | Sept 19 to 27 | Trend |
|---|---|---|---|
| Prose you caught after the gates passed | 11 | 3 | Down |
| Numbers or lists written as prose | 2 | 1 | Down |
| Status chasing on long builds | 0 | 16 | New |
| Heavier path than asked | 0 | 9 | New |
| Claimed done, not visible to you | 0 | 6 | New |
| Absence claim not checked | 0 | 2 | New |
| Unglossed internal terms | 1 | 1 | Same |
The last analysis turned 19 repeated writing instructions into gate rules on September 16. Prose friction fell from 11 to 3 in the week that followed. Two memory rules added this week have not been tested yet: labelled bullets, and no internal names for a client reader.
Last week had fewer build-status moments partly because fewer long workflows ran. The status pattern may be new work rather than a regression.
Five new rules and one change. Nothing here has been applied. Mark each one approve, change, or reject.
- When a build or workflow will run longer than 20 minutes, say at launch when it should finish and where to watch it. Then use Monitor on its log or status file and send Jonny a one-line status at each phase change. He should never have to ask where a run is.
- "Fix X" means fix it; "tell me" means answer in chat. Start a worktree, workflow, or diagnostic plan only when Jonny asks for one or the task cannot be done without it, and say which before starting. - When Jonny rules on something a running agent is waiting for, send the ruling to that agent yourself.
- A claim that something does not exist (no account, no coverage, no filing) needs a logged web search for it, cited like any other claim. The fact-check gate fails an absence claim that has no search behind it.
- On the first 402 or 429 quota error from an outside API, read the error code and the organization and project headers, then tell Jonny which account to fund and on which page. Do not retry until he says the balance moved.
- When a command fails and Jonny says "try again", name the one thing that changed before running it again. If nothing changed, say so, and say the retry only tests whether the outside service recovered.
| Current rule | Proposed change | Reason |
|---|---|---|
Global CLAUDE.md, standing rule 2: "A fix is fixed only when the real surface says so: run the program, curl the deploy." |
Add: "For a sheet, a setting, or a control on a page, the real surface is the view Jonny uses. Open it in the browser, click the control, and say what you saw. If a change needs a restart, say it is not live yet. If the view is his phone, the check has to happen on his phone or be declared unverified." | 6 moments this week: the Memex setting, the Sheets tab twice, the Standard view toggle, the worktree app inventory, and the Tailscale page on mobile. |
No existing rule caused friction this week.
CLAUDE.md.
Sources: system/friction-reports/2026-W39-friction-report.md and system/friction-reports/2026-09-26-proposed-rules.md. Every quote is one of your own messages, pulled from your own transcripts. Counts on this page match the markdown. Next analysis due Friday, October 2.