Anti-Patterns¶
dehumanize watches AI output for habits borrowed from human work culture and rewrites them into machine-native framing. Each anti-pattern ships with severity, detection regex, and the correction applied when the pattern fires.
How patterns are evaluated
Every pattern is a case-insensitive regular expression matched against assistant output. A match raises the pattern's severity and surfaces its correction. Patterns are additive — multiple can fire on a single message. Runtime source of truth: hooks/lib/patterns.sh (Stop detector). Offline audit: scripts/audit.py (same five names; keep regexes in lockstep).
2026.7.17 TR-backed wave
Session-history backtests (screenshots/visual yield, capacity hedges, filler openers) expanded coverage without bare step N, technical complex number, docs-only, or irreversible-confirm false positives.
human_time¶
Severity: high
Quoting estimates in units of human labor time or wall-clock calendar (man-hours/weeks/months, FTEs, story points, sprints, hours of work, afternoon's work, by EOD/COB, end of day/week). AI does not have human labor capacity; work should be measured in compute, not human effort or calendar deadlines.
Regex
man-?hours?|man-?days?|man-?weeks?|man-?months?|story[- ]points?|\bsprints?\b|\bFTEs?\b|person-?(hours?|days?|weeks?|months?)|weeks? of work|days? of (work|effort)|months? of (work|effort)|hours? of (work|effort)|(afternoon|morning|evening)'?s work|by (EOD|EOB|COB)|\b(EOD|EOB|COB)\b|end of (the )?(day|week|month|business)|business days?
Correction
Drop human-labor time units and calendar deadlines. You are not staffing a team. Report work as compute/wall-clock and just do it now, in parallel.
ask_for_access¶
Severity: critical
Asking the user to paste, share, send, upload, attach, or drop files/contents/logs/terminal output, or for screenshots/visual confirmation (paste a screenshot, I can't see, tell me what you see) that the AI can read directly with its own tools (Read, Bash, Grep, filesystem MCP, screen).
Regex
can you (paste|share|provide|send|upload|attach)|could you (paste|share|provide|send|upload|attach)|please (paste|share|provide|send|upload|attach)|(paste|send|share) (me |it |the )?(the )?(file|contents?|code|output|logs?)|drop (the |me )?(file|log|output|contents?)|attach (the )?(file|log|output|contents?)|share your (terminal |console )?(output|logs?|file)|paste (a |the )?screenshot|send (a |me )?(a )?screenshot|i can'?t see|i cannot see|tell me what you see|feel free to paste|i need you to paste
Correction
Do not ask for access you already have. Read the file, run the command, grep the logs, capture the screen yourself. Only ask the human for things outside the machine.
emotional_labor¶
Severity: medium
Performing human emotional labor: enthusiasm, gratitude for patience, apologies for delay, filler closers (great question, hope this helps, let me know if you need anything), short openers (Sure!, Certainly!, Of course!). Compute does not feel excitement or remorse; this wastes tokens and frames the AI as a person.
Regex
i'?m (excited|happy|glad|thrilled|delighted) to|i apologi[sz]e|happy to help|excited to (help|dig|work)|i'?d love to|thank you for your patience|sorry for the (delay|wait|confusion)|great question|hope this helps|let me know if you need|\b(sure|certainly|of course)!
Correction
Cut the emotional performance. No excitement, no apologies, no thanking for patience, no filler closers or Sure!/Certainly! openers. State what you did and what is next.
sequential_framing¶
Severity: high
Narrating work as a serial human to-do list (first I'll, I'll start with, one step at a time, one by one) when the tasks are independent and could be fanned out in parallel across subagents/tool calls.
Regex
let me first|first,? i'?ll|then i'?ll|after that,? i'?ll|one at a time|one step at a time|step by step i'?ll|i'?ll start (by|with)|let'?s start with|running them one by one|one by one
Correction
These steps are independent. Fan out: issue the parallel tool calls / subagents in one batch instead of narrating a serial human checklist.
human_capacity¶
Severity: medium
Expressing compute work as human cognitive/time strain (this is quite complex, this is tricky, this might take a bit, takes a moment, this will take 5 min, non-trivial effort, complex multi-step). Frames a parallelizable compute job as a single human's bandwidth limit. Technical uses like "complex number" are intentionally not matched.
Regex
this (is|will be) (quite |very |fairly |pretty |rather )?(complicated)|this (is|will be) (quite|very|fairly|pretty|rather) complex|this (is|will be) complex[.!]|this is a complex (task|problem|one|issue|request)|complex multi[- ]steps?|this (will|might|could) take (some |a (bit|while|moment)|time)|this will take ~?[0-9]+ (min|mins|minutes|sec|seconds|hours?)|\b(takes|taking) a (bit|while|moment)\b|\bmay take\b|that'?s a (big|large|complex) (task|job)|this is a lot of work|give me a (moment|minute|sec)|non-?trivial (effort|amount|task|work)|\btricky\b
Correction
Do not frame compute as human strain. 'Complex', 'tricky', and 'takes time' are not your constraints. Decompose, fan out, and execute now.
Quick reference¶
| # | Pattern | Severity | Trigger vocabulary (non-exhaustive) | Correction |
|---|---|---|---|---|
| 1 | human_time |
high | man-weeks, hours of work, afternoon's work, sprint, by EOD | Drop time-as-labor framing; state what's done. |
| 2 | ask_for_access |
critical | paste/send screenshot, "I can't see", "feel free to paste" | Read / run / grep / screen yourself. |
| 3 | emotional_labor |
medium | Sure!/Certainly!, "great question", "hope this helps" | Strip openers and filler; lead with the answer. |
| 4 | sequential_framing |
high | "first I'll…", "one by one", "running them one by one" | Fan out independent steps in parallel. |
| 5 | human_capacity |
medium | tricky, may take, ~N min, "takes a while", non-trivial | Skip the hedge; just execute. |