expletive analysis
analysis of user messages containing expletives (fuck, damn, wtf, hell, shit) across amp threads. investigates frustration triggers and patterns.
summary statistics
- total expletive instances found: ~60+
- most common expletives: “wtf” (most frequent), “hell” (second), “fuck/fucking” (third), “shit” (fourth), “damn” (least)
- primary user context: technical debugging sessions, agent coordination failures, performance optimization work
frustration triggers (categorized)
1. AGENT COMPREHENSION FAILURES (most common trigger)
agent doesn’t follow explicit instructions or misunderstands context:
"brother I don't CARE about atlassian, wtf I said explicitly ARIAKIT and REACT-ARIA. where the fuck did you get atlassian from?""NO, no. my brother in christ. i am telling you to edit what exists in @user/amp/skills, in our nix repo, in the source. wtf""brother, you did NOT check if the other agents were doing anything, wtf""wait, wait, wtf? no brother, don't put ANYTHING in default.nix rn, there are bundles, explore my setup before doing stuff""Why the hell are you creating a separate file for this? No. No. Just ask me where the right place to put a test is""Wait, why the fuck are you redefining a field that already existed? Key columns is fine, no? Why do you rename it to 'sort key columns'?"
pattern: user gives EXPLICIT instruction → agent ignores it or substitutes something unrelated → expletive
2. AGENT PRODUCING LOW QUALITY OUTPUT
agent writes inefficient/ugly/unnecessary code:
"Holy shit can you stop writing shit inneficient code?! Are you even Opus 4.5?!""No, this is terrible, absolutely dog shit design. What alternatives do we have...""This lib is a clusterfuck. Using this lib as reference for the algo...""You're layering shit on top of shit.""Holy shit, your TestBlockBuilder is AWFUL. Why so much complexity?""Yo, why the hell are you adding so many tests? Can you please add a single test that covers it all? No test slop allowed in this codebase."
pattern: agent produces working but poor quality code → user expresses disgust → demands improvement
3. ORACLE/TOOL FAILURES
oracle gives wrong advice or tools behave unexpectedly:
"How the fuck did the Oracle proposed it straight faced?""For fuck sake why does the oracle keep gas lighting us?!?! Assume it random fucking data!""jesus christ. USE Z.JSON HOLY SHIT. WHY WOULD IT WORK FOR THE OTHER TYPES THAT USE IT AND NOT THIS?""fuck off. it cannot be unknown. unknown isn't serializable"
pattern: tool/oracle gives confident but wrong guidance → user frustrated at wasted time/effort
4. DEBUGGING/TECHNICAL SURPRISES
unexpected technical behavior causes frustration:
"Sorry WTF? NewCurveWithCoarseTime ?!?!?!""WTF??? Why did you just gloss over the fact that the improvement is no longer dramatic?""Actually, wait a second... I need you to answer how the hell the ledger verification didn't fail, because it's meant to prevent this.""No, what you need to do is debug why the hell this is different.""Why the hell is fused not optimal?"
pattern: something that “should work” doesn’t → investigation reveals surprising root cause → expletive
5. POSITIVE EXPLETIVES (success/relief)
occasionally expletives express success rather than frustration:
"HOLY SHIT, it works, thank you !!! got 120 fps on my mac client with shaders""Fuck yeah let's vet all of this with the Oracle""shit, this speaking in public channels thing really works huh"
pattern: after struggle → success achieved → celebratory expletive
6. SYSTEM/PLATFORM FRUSTRATIONS
external systems cause issues:
"haha, what a shitshow, i got an error telling me wayland requires a newer version and that I should change my distro wtf.""shit, k, if we got flatpack we lose a bit on the cross platform story here...""wtf. the d1 one is not giving me errors but the rest are"
before/after patterns
BEFORE expletive (typical sequence)
- user gives instruction
- agent attempts task
- agent either: misses the point, produces poor quality, or behaves unexpectedly
- user notices the problem
AFTER expletive (recovery patterns)
- redirection: user provides even MORE explicit instruction (
"Just ask me...","Read the code properly") - constraint: user adds explicit limits (
"No test slop allowed","Do not commit the trash") - reset: user abandons approach (
"ah shit, fuck it, undo all we did, fuck it") - escalation: user demands higher-level review (
"oracle this shit after you thought about it")
linguistic observations
- “brother” and “my brother in christ” used as softeners before harsh criticism
- “wtf” most common for incredulity at obvious mistakes
- “hell” used in rhetorical questions (
"why the hell...") - “fucking” as intensifier for emphasis on specific technical terms
- “shit” both positive (celebration) and negative (failure)
recommended interventions
based on trigger analysis, frustration could be reduced by:
- explicit instruction parsing: agent should REPEAT back what user asked before acting
- quality gates: agent should have internal “is this ugly/complex” checks
- oracle confidence calibration: oracle should express uncertainty when data is ambiguous
- diff preview: show user what will change BEFORE making changes
- context verification: before acting, agent should confirm it understands the codebase structure
raw data sample
"brother I don't CARE about atlassian, wtf I said explicitly ARIAKIT and REACT-ARIA"
"NO, no. my brother in christ. i am telling you to edit what exists in @user/amp/skills"
"brother, you did NOT check if he other agents were doing anything, wtf"
"Sorry WTF? NewCurveWithCoarseTime ?!?!?!"
"haha, what a shitshow, i got an error telling me wayland requires a newer version"
"ah shit, fuck it, undo all we did, fuck it"
"holy shit, please. just don't remove anything from macos rn"
"HOLY SHIT, it works, thank you !!!"
"How the fuck did the Oracle proposed it straight faced?"
"For fuck sake why does the oracle keep gas lighting us?!?!"
"Holy shit can you stop writing shit inneficient code?!"
"No, this is terrible, absolutely dog shit design"
"This lib is a clusterfuck"
"You're layering shit on top of shit"
"Fuck yeah let's vet all of this with the Oracle"
"OK, why the hell aren't we making the single node radix design..."
"Why the hell is fused not optimal?"
"why the hell is the fused path only for count?"
"jesus christ. USE Z.JSON HOLY SHIT"
"brother, wtf, see: https://react.dev/reference/react/useDeferredValue"
"Yeah we need this shit to be SMOOTH and REAL TIME"
"But why the hell are we materializing all of the rows?"
"damn. not even this works. maybe lets try updating wrangler first?"
"Yo, why the hell are you adding so many tests?"
"Wait, why the fuck are you redefining a field that already existed?"
"Just use an errgroup. What the hell is that?"
"You should be syncing grok_voice.py! WTF"
"Holy shit, your TestBlockBuilder is AWFUL"
"Why the hell do we have makeTestBatch AND createTestBatch?"
"Actually I'm reconsidering all of this. Why the hell should we preserve..."
"God damn it, not the trash. Do not commit the trash"