Fundamental Attribution Error

Over-attributing others' behavior to their character while under-weighting situational factors that shape their actions

16 stars

Best use case

Fundamental Attribution Error is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Over-attributing others' behavior to their character while under-weighting situational factors that shape their actions

Teams using Fundamental Attribution Error should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/fundamental-attribution-error/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/fundamental-attribution-error/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/fundamental-attribution-error/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Fundamental Attribution Error Compares

Feature / AgentFundamental Attribution ErrorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Over-attributing others' behavior to their character while under-weighting situational factors that shape their actions

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Fundamental Attribution Error

## Overview

The Fundamental Attribution Error (FAE) is the cognitive bias where we systematically over-attribute other people's behavior to their personality, character, or disposition while under-weighting or ignoring the situational, environmental, or contextual factors that shape their actions.

Coined by social psychologist Lee Ross in the 1970s, the FAE explains why we judge others harshly for failures ("they're lazy," "they're incompetent") while being more forgiving of ourselves ("I was overwhelmed," "the requirements were unclear"). This asymmetry—being situationally aware for ourselves but dispositionally judgmental of others—creates systematic unfairness in how we evaluate colleagues, direct reports, and even friends.

The bias is "fundamental" because it's pervasive across cultures (though stronger in individualistic societies) and affects even trained psychologists who know about the bias. It emerges from a cognitive limitation: we observe behavior but rarely have full visibility into the situational pressures the other person faced.

**Key insight**: When someone misses a deadline, performs poorly, or behaves uncharacteristically, your first instinct is to blame their character. The FAE suggests you're likely wrong—situational factors you can't see are probably driving their behavior more than their personality.

## When to Use

Apply FAE awareness in these situations:

- **Performance reviews**: When evaluating why someone underperformed or exceeded expectations
- **Hiring decisions**: When interpreting interview nervousness, awkward answers, or confidence
- **Conflict resolution**: When attributing blame for team friction or missed commitments
- **Leadership evaluation**: When assessing whether someone "has what it takes" based on limited observations
- **Promotion decisions**: When judging "leadership potential" or "executive presence"
- **Giving feedback**: When explaining to someone why they failed or succeeded
- **Team dynamics**: When categorizing teammates as "high performers" or "low performers"
- **Customer interactions**: When frustrated customers are dismissed as "difficult people"

**Trigger question**: "Am I assuming this behavior reflects who they are, or could the situation be forcing them to act this way?"

## Process

### 1. Pause Before Judging Character

When you observe negative behavior (missed deadline, poor quality work, interpersonal conflict), resist the immediate urge to label the person:
- Notice the thought: "They're lazy/incompetent/difficult"
- Recognize this as a potential FAE
- Delay character judgments until you understand the situation

**Action**: When frustrated with someone's behavior, wait 24 hours before forming a conclusion about their character.

### 2. Actively Investigate Situational Factors

Ask yourself what external pressures or constraints might explain the behavior:
- **Workload**: Are they juggling multiple urgent projects?
- **Resources**: Do they have the tools, budget, or support needed?
- **Clarity**: Were requirements, priorities, or expectations clear?
- **Skills/training**: Have they been set up to succeed with adequate onboarding or development?
- **Personal circumstances**: Are they dealing with health, family, or life challenges?
- **Organizational dynamics**: Are conflicting directives or political pressures creating impossible situations?

**Action**: Before any performance conversation, list 3-5 situational factors that might have contributed to the outcome.

### 3. Adopt the Actor's Perspective

Reverse roles and imagine yourself in their exact situation:
- If you faced their workload, constraints, and pressures, how would you behave?
- What would you need to succeed that they might be missing?
- Have you ever behaved similarly when under similar pressure?
- Would you want others to attribute your behavior to laziness or incompetence, or would you want them to understand your constraints?

**Action**: Write a paragraph from the other person's perspective explaining their behavior—use "I" statements and situational factors.

### 4. Seek Direct Input and Context

Rather than assuming, ask the person directly about their situation:
- "Help me understand what challenges you faced with this project"
- "What obstacles prevented you from hitting the deadline?"
- "What support or resources would have helped you succeed?"
- "What was going on when this happened?"
- Listen without judgment to understand constraints you couldn't see

**Action**: In performance conversations, spend 70% of the time listening to their situational account, 30% providing feedback.

### 5. Distinguish Pattern from Incident

Evaluate whether this is a one-time situation or a consistent pattern:
- **Single incident**: Likely driven by specific situational factors (deadline pressure, unclear requirements, resource constraints)
- **Consistent pattern**: May reflect dispositional factors (skill gaps, work habits, values misalignment)
- Even patterns can have situational roots (chronic under-resourcing, unclear role expectations, poor manager support)

**Action**: Before concluding someone "is" a certain way, require evidence of the behavior across 3+ different contexts or timeframes.

### 6. Adjust Systems, Not Just People

When you identify situational factors driving behavior, fix the situation rather than trying to "fix" the person:
- Unclear requirements → improve briefing processes
- Resource constraints → reallocate budget or headcount
- Skill gaps → provide training or mentorship
- Conflicting priorities → clarify strategy and decision-making authority
- Poor tools → invest in better infrastructure

**Action**: For every performance issue, identify one systemic change that would prevent the same issue for others.

### 7. Reframe Attribution in Feedback

When giving feedback, emphasize situational factors and behaviors rather than character:
- **FAE framing**: "You're not detail-oriented" (dispositional judgment)
- **Better framing**: "I noticed several errors in the last deliverable. Let's discuss what caused that and how to prevent it" (behavioral + situational)
- Focus on what happened and what can change, not who they are

**Action**: In feedback conversations, ban character labels ("lazy," "careless," "difficult"). Use only specific behaviors and situational analysis.

## Example

**Scenario**: Your senior engineer misses a critical deadline for the third time this quarter.

**FAE in action**:
- **Your thought**: "They're unreliable and don't take deadlines seriously. Maybe they're not senior-level material."
- **Your action**: Give negative performance review; put them on a performance improvement plan
- **FAE**: You attributed the missed deadlines to their character (unreliable, uncommitted) rather than investigating situational factors

**Better approach using this framework**:
1. **Pause judgment**: Notice the "they're unreliable" thought; flag it as potential FAE
2. **Investigate situation**: Before concluding, gather data:
   - You discover: they're supporting two legacy systems while building a new feature, firefighting production issues weekly, mentoring three junior engineers, and recently had a family emergency
   - You learn: deadlines were set without consulting them on feasibility; requirements changed mid-sprint twice
3. **Adopt their perspective**: If you were juggling legacy support + new features + mentoring + personal crisis, could you hit aggressive deadlines?
4. **Seek input**: Ask them: "Help me understand what's been challenging about hitting these deadlines"
   - They share: "I'm spending 60% of my time on production fires and legacy support. The new feature is my #3 priority even though it has the most visible deadline."
5. **Pattern vs. incident**: Check past performance—this is new behavior in Q4; Q1-Q3 they consistently delivered
6. **Adjust systems**: Reassign legacy support to another engineer; clarify that new feature is #1 priority; adjust deadline to reflect actual available capacity
7. **Reframe feedback**: Instead of "you're unreliable," say: "I see you've been stretched across too many priorities. Let's realign your focus and set realistic timelines. What do you need to succeed?"

**Result**: By investigating situational factors, you discover this is not a character flaw but a resource allocation problem. You fix the situation (clearer priorities, better support) rather than unfairly penalizing a strong performer who was set up to fail.

## Anti-Patterns

**"That's just how they are"**: Treating behavior as fixed personality rather than situational response. People behave differently in different contexts; what you're seeing is their response to current constraints.

**Dispositional hiring decisions**: Rejecting candidates because they seemed "nervous" or "not confident" in interviews, without considering that interviews are high-stress situations that don't reflect normal behavior.

**Character-based feedback**: Using performance reviews to tell people they "are" lazy, careless, not strategic, etc. This creates defensiveness and misses the actual drivers of performance.

**Ignoring the actor-observer asymmetry**: Explaining your own failures situationally ("I was overwhelmed") while explaining others' failures dispositionally ("they're not capable"). Apply the same generous situational lens to others.

**Focusing on "culture fit" or "potential"**: Vague assessments of whether someone "has it" or "fits" often mask FAE—judging character based on limited behavioral observations without understanding situational context.

**Labeling people as "A players" or "B players"**: Creating fixed categories based on recent performance without investigating whether situational factors (bad manager, under-resourcing, unclear role) drove results.

**Assuming stress reveals "true character"**: Believing that behavior under pressure shows who someone "really is." High-pressure situations create constrained behavior; normal conditions are more revealing of character.

## Related Frameworks

- **Stereotyping**: Both involve quick judgments; FAE focuses on individuals, stereotyping on groups
- **Halo Effect**: One positive trait influences all perceptions; FAE over-attributes behavior to dispositional traits
- **In-Group Bias**: Attributing in-group failures to situations, out-group failures to character—FAE asymmetrically applied
- **Confirmation Bias**: Once you label someone as "lazy," you notice confirming examples and ignore disconfirming situational evidence
- **Hanlon's Razor**: "Never attribute to malice that which is adequately explained by incompetence"—FAE extension: "Never attribute to incompetence that which is adequately explained by situational constraints"
- **System 1/System 2 Thinking**: FAE is a System 1 shortcut (quick character judgments); countering it requires System 2 deliberation
- **Retrospective Bias**: After learning about situational factors, we think "I should have known"—but before investigation, we defaulted to dispositional explanations

Related Skills

implementing-error-handling

16
from diegosouzapw/awesome-omni-skill

Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.

golang-error-handling

16
from diegosouzapw/awesome-omni-skill

Go error handling review. Use when checking error wrapping, context propagation, or error checking patterns. Ensures proper error chains, context usage, and nil checks.

Global Error Handling

16
from diegosouzapw/awesome-omni-skill

Your approach to handling global error handling. Use this skill when working on files where global error handling comes into play.

fp-ts-errors

16
from diegosouzapw/awesome-omni-skill

Handle errors as values using fp-ts Either and TaskEither for cleaner, more predictable TypeScript code. Use when implementing error handling patterns with fp-ts.

fix-validation-errors-with-overlays

16
from diegosouzapw/awesome-omni-skill

Use when you have lint errors but can't modify the source spec, or need to add missing descriptions/tags via overlay

error-tracking

16
from diegosouzapw/awesome-omni-skill

Add error tracking and performance monitoring to your project services. Use this skill when adding error handling, creating new controllers/routes, instrumenting background jobs, or tracking performance. Supports Sentry, Datadog, and other monitoring solutions. ALL ERRORS MUST BE CAPTURED - no exceptions.

error-root-analyzer

16
from diegosouzapw/awesome-omni-skill

Comprehensive error analysis and root cause resolution. Use when programs fail, crash, or produce errors during execution. This skill performs deep debugging by identifying root causes (not just surface-level symptoms), conducting thorough module reviews to uncover related bugs and exceptions, and implementing holistic fixes that address all discovered issues.

error-handling

16
from diegosouzapw/awesome-omni-skill

Comprehensive error handling patterns for Splits Network services and apps

error-handling-patterns

16
from diegosouzapw/awesome-omni-skill

Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.

error-diagnostics-error-analysis

16
from diegosouzapw/awesome-omni-skill

You are an expert error analysis specialist with deep expertise in debugging distributed systems, analyzing production incidents, and implementing comprehensive observability solutions.

error-debugging-error-analysis

16
from diegosouzapw/awesome-omni-skill

You are an expert error analysis specialist with deep expertise in debugging distributed systems, analyzing production incidents, and implementing comprehensive observability solutions.

add-error-type

16
from diegosouzapw/awesome-omni-skill

Add a new custom error type for domain-specific errors. Use when creating errors for specific business rules or HTTP status codes. Triggers on "add error", "custom error", "error type".