thinking-bounded-rationality
Use when a search or investigation could run indefinitely and you need a stopping rule. Set an explicit "good enough" threshold and stop at the first option that clears it.
What this skill does
# Bounded Rationality and Satisficing
## Overview
Herbert Simon's Bounded Rationality recognizes that any agent operating under finite resources cannot exhaustively optimize: the search space is too large, information is incomplete, and acting has a cost. Rather than pursuing the optimal solution, Simon proposed "satisficing"—a portmanteau of satisfy + suffice—choosing the first solution good enough to meet an explicit threshold, then stopping.
For an autonomous coding agent the binding constraint is a **budget**: tool calls, search/read operations, context window, and wall-clock time per turn. A grep that could keep matching, a file tree you could keep traversing, a doc set you could keep reading — each has steeply diminishing returns. Satisficing converts "search until certain" (which never terminates) into "search until the threshold is met, then act."
**Core Principle:** Define "good enough" *before* you search, and stop at the first option that clears the bar. Optimizing is correct only when the gap between good and best is worth more than the budget it costs to close it.
## When to Use
- An investigation or search has no natural endpoint (greps, file reads, doc crawls, candidate solutions) and could consume the whole budget.
- Multiple options would all clear the requirement and you're tempted to keep comparing.
- You're gathering more context than the decision actually needs.
- A reversible, low-stakes choice is consuming optimization-level effort.
- You need to commit and ship before the turn/budget runs out.
Decision flow:
```
Search/investigation that could run indefinitely? → yes → Is closing the gap to "best" worth the budget? → no → SATISFICE (threshold + stop)
↘ yes → Optimize (and cap the budget)
↘ no → just answer
```
## When NOT to Use
- **Irreversible or high-stakes choices** (data deletion, security boundaries, schema/migration decisions, public commitments) — the gap between good and best is worth the budget; optimize and verify.
- **Correctness gates** — tests, security checks, and "did the fix actually work?" are not satisficeable; you need the right answer, not a sufficient-looking one.
- **The answer is cheaply knowable** — if one more grep or a single file read would settle it definitively, just do it; don't satisfice your way past a quick fact.
- **The threshold can't be stated** — if you can't articulate what "good enough" means, you can't satisfice responsibly; clarify the requirement first.
## Trigger Card
When a search or investigation could run indefinitely and you need to ship:
1. **Set an explicit aspiration level** — what does "good enough" look like? Define a concrete, measurable threshold.
2. **Search sequentially** — evaluate options one at a time in the order you encounter them. Do not enumerate exhaustively.
3. **Stop at the first option that clears the threshold.** Commit and move on.
If the threshold can't be articulated or the cost of a wrong choice is catastrophic, don't satisfice — run the full procedure. For a single cheaply-knowable fact, just look it up.
## The Three Constraints
### 1. Information Bounds
**What you can know is limited**
- Complete information rarely exists
- Gathering more information has costs
- Information has diminishing returns
- Future states are inherently uncertain
```
Example: Choosing a technology stack
Reality: You can't test every option in production
You can't predict 5-year industry shifts
You can't know your future team composition
Satisfice: Pick a well-supported option that meets current needs
```
### 2. Processing Bounds (the budget)
**What you can compute and attend to is limited**
- Each turn has a finite budget of tool calls, reads, and context-window tokens
- Adding more options/criteria to a comparison degrades signal, not improves it — past ~3-5 criteria, marginal context rarely flips the decision
- Long, sprawling investigations crowd out the context needed to act on what you found
- More search reduces uncertainty with sharply diminishing returns
```
Example: Choosing among architecture options
Reality: Reading every doc and modeling every interaction effect
burns the budget before you produce an answer
Satisfice: Fix the 3-5 criteria that actually decide it, evaluate
against those, and stop at the first option that clears them
```
### 3. Action-Cost Bounds
**Deciding and re-deciding both cost budget and time**
- Every additional search/read consumes budget that can't be spent elsewhere
- The user is waiting; an answer now usually beats a marginally better answer later
- Re-opening a settled, reversible decision is rarely worth the cost
- Perfect is the enemy of shipped
```
Example: Picking a library for a reversible internal task
Reality: You could compare ten options across a dozen dimensions
Reversibility means a wrong-but-adequate pick is cheap to swap
Satisfice: Pick the first well-supported option that meets the requirement, move on
```
## Satisficing vs. Optimizing
### When to Satisfice
| Signal | Why Satisfice |
|--------|---------------|
| Reversible decision | Can adjust later with more information |
| Time pressure | Cost of delay exceeds value of more analysis |
| Diminishing returns | 80% solution found, 100% would take 10x effort |
| High uncertainty | More analysis won't reduce uncertainty meaningfully |
| Many acceptable options | Several solutions meet requirements adequately |
| Low stakes | Consequences of suboptimal choice are minor |
### When to Optimize
| Signal | Why Optimize |
|--------|--------------|
| Irreversible decision | Mistakes are permanent or very costly to undo |
| High stakes | Wrong choice has severe consequences |
| Clear criteria | You know exactly what "best" means |
| Bounded search space | All options can actually be evaluated |
| Available time | Deadline allows for thorough analysis |
| Clear value of optimal | Difference between good and best is significant |
## The Satisficing Process
### Step 1: Define Aspiration Level
Set the minimum acceptable threshold for each criterion:
```
Example: Hiring a senior engineer
Optimizing: Find the absolute best candidate
Satisficing: Find a candidate who:
- Has 5+ years relevant experience ✓
- Can pass technical interview ✓
- Salary expectations fit budget ✓
- Available to start within 4 weeks ✓
- Culture fit (team confirms) ✓
First candidate who meets all criteria → Hire
```
### Step 2: Search Sequentially
Evaluate options one at a time against aspiration level:
```
Option A: Meets 4/5 criteria → Continue search
Option B: Meets 3/5 criteria → Continue search
Option C: Meets 5/5 criteria → STOP, choose this one
```
Key insight: You don't compare options against each other, you compare each option against your threshold.
### Step 3: Adjust Aspiration If Needed
If search is too long or too short, recalibrate:
```
Too many options qualify → Raise aspiration level
Nothing qualifies after reasonable search → Lower aspiration level
```
### Step 4: Commit and Move On
Once threshold is met:
- Stop searching
- Accept the decision
- Resist second-guessing
- Redirect energy to execution
## Application Patterns
### For Technical Design
```
Scenario: Choose a message queue for new service
Satisficing approach:
1. Define requirements (aspiration level):
- At-least-once delivery ✓
- Handles 10k msg/sec ✓
- Team familiarity or fast learning curve ✓
- Managed option available ✓
- Within cost budget ✓
2. Evaluate sequentially:
- RabbitMQ: Meets all → STOP, use RabbitMQ
3. Don't continue researching Kafka, SQS, etc.
unless RabbitMQ fails threshold
```
### For Code Review
```
Scenario: Reviewing a PR under time pressure
Satisficing approach:
1. Define "good enough" criteria:
- No security vulnerabilities ✓
- Tests Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.