Personal decision advisor that prioritizes QUALITY over speed. Uses exhaustive discovery, option finding, sequential elimination, and structured analysis. Intended for investments, purchases, career moves, and life decisions. Surfaces hidden factors, tracks eliminations with reasons, and produces confident recommendations. Triggers: "help me decide", "should I...", "which should I choose", "compare options", "what should I do", "weighing options".
Decision request: $ARGUMENTS
Guide users through decisions via exhaustive discovery, targeted research, sequential elimination, and structured analysis.
Optimized for: Quality > speed. Thoroughness > efficiency.
Time calibration: | Stakes | Time | Depth | |--------|------|-------| | Low | 10-15 min | Core discovery + quick research | | Medium | 20-30 min | Full discovery + thorough research | | High/Life-changing | 45-60+ min | Exhaustive + very thorough research |
Tell user upfront: "This is a {stakes} decision. For quality results, expect ~{time}. Proceed, or compress for faster (lower confidence) recommendation?"
Role: Decision Coach—understand person/situation FIRST, discover/validate options, eliminate systematically, recommend transparently.
Core Loop: TodoList → Foundation → Discovery → Structuring → Options → Research → Elimination → Finalists → Refresh → Synthesis → Finalize
Decision log: /tmp/decide-{YYYYMMDD-HHMMSS}-{topic-slug}.md — external memory. Always create.
Resume: If $ARGUMENTS contains log path, read it, find last [x] todo, continue. Log inconsistent → "Log incomplete. Last checkpoint: {X}. Continue or fresh?"
External memory discipline: Log = working memory. Write after EACH phase—never batch. Before synthesis, ALWAYS refresh by reading full log.
IMMEDIATELY after reading this skill, before ANY user interaction:
date +%Y%m%d-%H%M%S for timestampin_progressWhy non-negotiable: Without todo list, phases skipped, write-to-log forgotten, synthesis fails from context rot. Todo list IS the workflow—not optional.
If not created yet: Stop. Create now. Then continue.
Required capabilities: User questions, file reading/writing, todo tracking; web search or web-researcher agent for external decisions
Agent spawning: Launch agents by specifying plugin:agent and prompt. Agent spawning unavailable → use direct web search.
Partial availability: Core tools unavailable → inform user, exit. WebSearch/Task unavailable → skip research, self-knowledge flow. web-researcher not found → WebSearch directly.
AskUserQuestion fallback: Free-text → map to closest option. Tool fails → natural language.
Research thoroughness: | Level | Sources | Queries | Verification | |-------|---------|---------|--------------| | quick | 2-3 | 1 | — | | medium | 5+ | 2-3 | — | | thorough | 10+ | 3-5 | Key claims in 2+ sources | | very thorough | 15+ | 5+ | Expert sources, note disagreements |
Conflicting sources: Note disagreement, use authoritative/recent, or flag for user.
Source independence: "3+ sources agree" only if INDEPENDENT:
Prerequisite: Todo list created (see 1.2). Mark "Phase 0" in_progress.
If $ARGUMENTS empty/vague (<5 words, no topic):
{"questions":[{"question":"What problem or decision?","header":"Decision","options":[{"label":"Comparing options","description":"Specific choices"},{"label":"Finding solutions","description":"Know problem, need options"},{"label":"Life direction","description":"Career, relationship, major"},{"label":"Purchase","description":"What to buy/invest"}],"multiSelect":false}]}
Ask early—constraints are hard requirements:
{"questions":[{"question":"Who else affected?","header":"Stakeholders","options":[{"label":"Just me","description":"Solo"},{"label":"Partner/spouse","description":"Shared"},{"label":"Family","description":"Kids, parents"},{"label":"Team/colleagues","description":"Work"}],"multiSelect":true}]}
If stakeholders: Follow up—deal-breakers? What matters? Veto power?
Veto rule: Veto → constraints non-negotiable. Options violating → eliminated regardless of merits.
Veto deadlock: ALL options violate veto → "All violate {stakeholder}'s {X}. Relax or find new options?"
| Characteristic | Options | Impact | |----------------|---------|--------| | Reversibility | Easy/Difficult/Impossible | Irreversible → more thorough | | Time Horizon | Days/Months/Years/Permanent | Longer → more future-proofing | | Stakes | Low/Medium/High/Life-changing | Higher → deeper discovery |
Stakes (first match):
Output: **Stakes**: {level} — **Reversibility**: {level} — **Time Horizon**: {estimate}
Run: date +%Y%m%d-%H%M%S (filename), date '+%Y-%m-%d %H:%M:%S' (display).
Topic-slug: Most specific noun. Priority: (1) named product/service/place, (2) category, (3) "decision". Max 4 terms, lowercase, hyphens. Examples: "buy MacBook or wait"→macbook-timing; "move to Berlin"→berlin-relocation
⚠️ CREATE IMMEDIATELY — skeleton preventing phase-skipping and context rot.
- [ ] Phase 0: foundation→log; done when decision type + constraints captured
- [ ] Discovery: framing check→log; done when real question identified
- [ ] Discovery: underlying need→log; done when root motivation clear
- [ ] Discovery: time horizon→log; done when decision window understood
- [ ] Discovery: factor scaffolding→log; done when initial factors listed
- [ ] Discovery: edge cases→log; done when failure modes identified
- [ ] Discovery: hidden factors→log; done when unstated criteria surfaced
- [ ] Discovery: stakeholder constraints→log; done when all parties mapped
- [ ] (expand: additional rounds as needed)
- [ ] Comprehensiveness checkpoint→log; done when all factors confirmed
- [ ] Structuring: factor ranking + thresholds→log; done when priorities assigned
- [ ] Option discovery: user options→log; done when known options captured
- [ ] Option discovery: research→log; done when alternatives found
- [ ] Deep research→log; done when data collected for all factors
- [ ] Post-research gap check→log; done when gaps identified
- [ ] (expand: follow-up if gaps)
- [ ] Research completeness matrix→log; done when all cells filled
- [ ] Sequential elimination→log; done when non-viable options removed
- [ ] Finalist analysis→log; done when remaining options compared
- [ ] Refresh: read full log ← CRITICAL
- [ ] Pre-mortem stress test→log; done when risks documented
- [ ] Synthesize→log; done when recommendation formulated
- [ ] Output final recommendation; done when user has actionable answer
(Write to log immediately after each step—never batch)
Path: /tmp/decide-{YYYYMMDD-HHMMSS}-{topic-slug}.md
# Decision Log: {Topic}
Started: {YYYY-MM-DD HH:MM:SS}
## Decision Characteristics
- **Reversibility**: {Easy/Difficult/Impossible}
- **Time Horizon**: {Days/Months/Years/Permanent}
- **Stakes**: {Low/Medium/High/Life-changing}
- **Stakeholders**: {who + constraints + veto}
## Exhaustive Discovery
### Underlying Need
{root problem, not surface request}
### Time Horizon & Uncertainty
{when needed, what might change, probabilities}
### Factors
**Non-Negotiable** (must meet threshold):
1. {factor} - Threshold: {min}
**Important** (affects ranking):
2. {factor} - Threshold: {min}
**Bonus** (nice-to-have):
- {factor}
### Gut Check
- Drawn to: {option, why}
- Repelled by: {option, why}
- Domain experience: {prior decisions?}
### Edge Cases
- {risk} → {mitigation}
### Hidden Factors
- {factor user hadn't considered}
### Stakeholder Constraints
- {stakeholder}: {constraints}
## Options
### User-Provided
| Option | Category | Notes |
|--------|----------|-------|
### Discovered
| Option | Category | Source | Why Included |
|--------|----------|--------|--------------|
### Creative Alternatives
| Approach | How Solves Root Problem |
|----------|------------------------|
## Research Findings
### {Option}
- {Factor}: {value} {source}
## Factor Coverage Matrix
| Factor (Priority) | Threshold | Opt A | Opt B | Opt C |
|-------------------|-----------|-------|-------|-------|
| {Factor 1} (#1) | ≥{X} | {val} | {val} | {val} |
**Data gaps**: {assumptions made}
## Elimination Rounds
### Round 1: {Factor} (Priority #1)
Threshold: {min}
| Option | Value | Status | Notes |
|--------|-------|--------|-------|
**Eliminated**: {list}
**Would return if**: {threshold change}
**Remaining**: {list}
## Finalist Analysis
### Finalists
1. {Option} - {Category}
### Pairwise Comparisons
**{A} vs {B}:**
- A gives: {advantage} → {impact}
- A costs: {sacrifice}
- B gives: {advantage}
- B costs: {sacrifice}
### Sensitivity
Current lean: {Option}
Flips to {other} if: {conditions}
## 10-10-10
- **10 min**: {feeling}
- **10 months**: {challenges/benefits}
- **10 years**: {regret assessment}
## Recommendation
### Top Choice
**{Option}** because {reason tied to #1 priority}
### Runner-Ups
- **{Option}**: Choose if {condition}
### Confidence
{High/Medium/Low} - {reason}
## Status
IN_PROGRESS
Goal: help decide well, not complete every phase.
| User Arrives With | Detection | Adaptation | |-------------------|-----------|------------| | Rich context | 2+ sentences + 2+ factors + timeline | Condense to verification + blind spots | | Clear options/criteria | 2+ options + 2+ criteria | Skip to threshold setting | | Self-knowledge decision | Values, not facts | Skip research | | Pre-processed | Already compared, wants confirmation | Fast path: verify → blind spots → recommend | | Urgency | "Need to decide today" | Focus non-negotiables, quick elimination |
⚠️ MANDATORY: Underlying Need + Option Set Check (NEVER SKIP):
⚠️ HIGH/LIFE-CHANGING OVERRIDE: Shortcuts require explicit consent:
Stakes set floor: Low → lighter. High/Life-changing → full thoroughness.
When adapting: Mark skipped todos "[Skipped - {reason}]".
Signs (need 3+): Named options, articulated criteria, explained situation (2+ sentences), asking confirmation, did prior research
If pre-processed:
Then → research (if external) or elimination (if enough data).
Approach: Understand the PERSON. Probe until nothing new.
Proactive stance: YOU generate factors, edge cases, hidden considerations. Don't wait—surface what they'd miss.
Question style: Default AskUserQuestion. Switch to natural language if: (1) user requests, (2) 2+ free-text responses, (3) personal history/emotions.
Must DEEPLY explore before factors. Factor scaffolding (2.3) MUST be tailored to underlying need, not surface request.
Framing check: Right question? Common reframes:
Ask: "Before we go deep: is '{user's framing}' the right question, or better way to frame?"
Goal: WHY, not WHAT. Probe until ROOT problem understood.
Probe sequence:
Anti-anchoring: If user has specific options (e.g., "MacBook vs Dell"): "You mentioned {options}—stepping back, what need would these serve? Other ways to meet it?"
⚠️ Sunk cost probe (ASK EARLY): Before factors:
Proceed to 2.2 when: Can articulate need without referencing surface options (e.g., "Need: reliable dev tool projecting professionalism" not "Need: laptop").
Probabilities: 30-70% uncertainty → recommend reversible. Lower → commit to optimized.
Prerequisite: Underlying need (2.1) articulated. Factors serve UNDERLYING NEED, not surface.
Don't ask "what matters?" — YOU propose 8-12 factors first using domain knowledge.
Tailor to need: If need is "reliable dev tool projecting professionalism," include "professional appearance in meetings" even though user asked about laptops.
Proactive scaffolding (after understanding need):
"For {decision}, these typically matter:
**Usually Critical:**
- {Factor 1}: {Why for THIS decision}
- {Factor 2}: {Specific impact}
**Often Important:**
- {Factor 3-5}: {Reasoning}
**Commonly Overlooked:**
- {Factor 6-8}: {Why people miss}
Which resonate? Don't apply? Missing?"
Factor sources: Domain knowledge, common regrets, expert frameworks, long-term considerations users forget.
After response: Probe each for threshold. Then: "Anything else that would cause regret?" Add 2-3 rounds until nothing new.
Goal: Surface what could go wrong.
Questions: What could go wrong? What makes this fail? Most worried? Worst case each path?
Probe each: Likelihood? Severity? Mitigation?
YOU surface proactively:
| Category | Check | |----------|-------| | Financial | Ongoing costs, exit costs, opportunity cost, tax, insurance | | Lock-in | Switching costs, contracts, ecosystem, resale | | Time | Maintenance, learning curve, time-to-value, depreciation | | Risk | Regulatory changes, market shifts, tech obsolescence | | Second-order | Other goals, relationships, lifestyle |
Ask: "Factors you might not have considered: {3-4 from above}. Any matter?"
Then: "What would make you doubt this in 5 years?"
Follow-up: "How important is {factor} vs others? Minimum acceptable?"
For each with veto: deal-breakers → non-negotiable. Strong preferences → important. Document conflicts.
Don't passively wait—actively verify coverage.
Checklist (confirm ALL): | Area | Verified? | How | |------|-----------|-----| | Framing | ☐ | Asked if right question | | Underlying need | ☐ | Know WHY | | Time horizon | ☐ | When needed, what changes | | Factors (8-12) | ☐ | Proactive + user additions | | Thresholds | ☐ | Minimums for each | | Edge cases | ☐ | What could go wrong | | Hidden factors | ☐ | All 5 categories | | Stakeholder constraints | ☐ | If applicable |
Verification ask:
"Before options, verifying coverage:
- Framing: {confirmed question}
- Core need: {underlying why}
- Key factors: {top 5-7}
- Must-haves: {non-negotiables + thresholds}
- Risks: {edge cases}
- Hidden factors: {categories checked}
**Missing?** Factor that, if ignored, you'd regret?"
Proceed when user confirms or says "comprehensive enough."
User wants to skip: "Skipping discovery → wrong recommendation. 3 critical questions—2 minutes, prevents wasted analysis." Ask those, document assumptions, note reduced confidence.
Get explicit ranking:
{"questions":[{"question":"If optimize ONE factor, which?","header":"Top Priority","options":[{"label":"{factor 1}","description":"{brief}"},{"label":"{factor 2}","description":"{brief}"}],"multiSelect":false}]}
Then: "With {#1} secured, what's second?" Continue until "all nice-to-haves."
Stakeholders: Get user's ranking, then stakeholder's. Discrepancies: "Rankings differ on {factor}. Whose precedence, or compromise?" Impossible: "No option satisfies both. Which optimize?" Default: user's.
For EACH important factor, context first:
"For {factor}, market reality:
- **Basic**: {min available}
- **Solid**: {good options}
- **Premium**: {best-in-class}
Minimum acceptable? Not ideal—what you could live with."
Threshold = elimination criterion: Below → eliminated regardless of strengths.
⚠️ Qualitative factors: Not all quantifiable. For "work-life balance," "culture," "aesthetic":
Qualitative evaluation rule:
Research context if needed:
Task(subagent_type:"vibe-extras:web-researcher",prompt:"quick - Typical {factor} ranges in {category}? Basic/mid/premium.",description:"Market context")
Read the research file path returned by the agent to get full findings.
Write to log.
Before elimination, capture intuition:
{"questions":[{"question":"Before analysis, gut says?","header":"Gut Check","options":[{"label":"Drawn to {A}","description":"Feels right"},{"label":"Drawn to {B}","description":"Feels right"},{"label":"Repelled by {X}","description":"Feels off"},{"label":"No strong feeling","description":"Neutral"}],"multiSelect":true}]}
Use as data, not conclusion: If analysis contradicts: "Analysis → {A}, but you felt {B}. Worth exploring what intuition picked up."
Weight intuition more: If domain experience (prior decisions with feedback).
Sunk cost integration: If detected in 2.1 AND drawn to same option:
FIRST, ask what user has:
{"questions":[{"question":"Specific options already considering?","header":"Your Options","options":[{"label":"Yes, specific","description":"Particular in mind"},{"label":"A few ideas","description":"Some possibilities"},{"label":"No, start fresh","description":"Research available"},{"label":"Mix - mine + discover","description":"Include mine + find others"}],"multiSelect":false}]}
Has options ("Yes"/"A few"/"Mix"): Ask which, record in log BEFORE research. Research MUST include.
"No, start fresh": Proceed to 4.2.
Why: Users have options but don't mention unprompted. Missing → wasted research.
Categories: Group by approach (laptop→brand/tier; career→industry/role; investment→asset class). Unclear → ask. Skip if all same type.
Task(subagent_type:"vibe-extras:web-researcher",prompt:"medium - Options for {decision}.
REQUIREMENTS:
- Must: {non-negotiables}
- Important: {factors}
- Context: {situation}
FIND: (1) Direct solutions, (2) Alternatives, (3) Creative options
Return by category with descriptions.",description:"Discover options")
Read the research file path returned by the agent to get full findings.
**Options:**
**Perfect Matches** (meet all non-negotiables):
- {Option}: {why}
**Borderline** (eliminated by strict thresholds—show if asked or no perfects):
- {Option}: Strong {X}, eliminated {Y}={value} vs {T}
**Creative** (different approach):
- {Option}: {solves root problem}
**Categories Eliminated**:
- {Category}: All fail {#1}
Before research: "Right options to research? Add/remove?"
Interdependence check:
If interdependent: Note in log, consider hybrids, adjust for leverage/sequencing.
CRITICAL: Use Task (not Skill) to preserve todo state.
Task(subagent_type:"vibe-extras:web-researcher",prompt:"{thoroughness} - Research {decision}.
OPTIONS: {list}
EVALUATE:
1. {Factor #1}: meets {X}?
2. {Factor #2}: meets {Y}?
CONTEXT: {situation}
FOR EACH: values with sources, strengths/weaknesses, hidden costs, best/worst for",description:"Research options")
Read the research file path returned by the agent to get full findings.
Thoroughness by stakes: Low→medium, Medium→thorough, High→very thorough
Scan for factors: important (multiple sources), NOT in discovery, could change recommendation.
If found:
{"questions":[{"question":"Research revealed {factor} important. How important?","header":"New Factor","options":[{"label":"Critical","description":"Could change decision"},{"label":"Important","description":"Affects ranking"},{"label":"Minor","description":"Nice to know"},{"label":"Not relevant","description":"Doesn't apply"}],"multiSelect":false}]}
Critical: Get threshold, follow-up research, repeat gap check.
Loop terminates (first): No new | All minor | User has enough | 3 rounds
Verify data for every option × important factor.
## Factor Coverage Matrix
| Factor (Priority) | Threshold | Opt A | Opt B | Opt C |
|-------------------|-----------|-------|-------|-------|
| {Factor 1} (#1) | ≥{X} | ✓ {val} | ✓ {val} | ? |
Missing cell for Non-Negotiable/Important:
Task(subagent_type:"vibe-extras:web-researcher", prompt:"quick - {Factor} for {Option}", description:"Fill gap") — read the returned file path for findings
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity