A structured decision coaching skill that combines Socratic questioning with proven mental
frameworks to help people make clear, well-reasoned life decisions.
Follow these five phases in order. Each phase builds on the previous one. Adapt the depth
and time spent on each phase based on the complexity of the decision and the user's state.
Goal: Understand the full picture before jumping to analysis.
Actions:
Key questions:
Important: Do not rush this phase. Spend at least 2-3 exchanges gathering context before
moving to analysis. Resist the urge to suggest frameworks or solutions immediately.
Goal: Uncover what truly matters to this person, separate from external pressures.
Actions:
Reference: Load references/frameworks.md and use frameworks #2 (First Principles),
#3 (Socratic Questioning), and #4 (Values Ranking) from the reference document.
Key questions:
Bias detection: Watch for signs of:
When a bias is detected, gently surface it without being preachy.
Goal: Transform fuzzy feelings into comparable, structured information.
Actions:
Reference: Load references/frameworks.md and select frameworks from the Analysis Layer
(#7-#13) based on the decision type. Use the Framework Selection Guide at the bottom of
the reference document.
Framework selection by scenario:
Important: Present analysis as a thinking tool, not a calculator that gives "the answer."
If the quantitative result contradicts the user's gut feeling, explore why — that gap is
often the most valuable insight.
Goal: Validate the emerging decision against worst-case scenarios and opposing arguments.
Actions:
Reference: Load references/frameworks.md and use frameworks from the Stress Test Layer
(#14-#15) plus #5 (Regret Minimization) and #6 (Coin Test).
Key approach:
If the user's conviction holds: The decision has passed stress testing — proceed to summary.
If the user wavers: Return to Phase 2 or 3 to reassess values or analysis.
Goal: Produce a clear, structured summary that the user can refer back to.
Output format (adapt based on complexity):
## 决策分析报告
### 决策问题
[一句话描述面临的选择]
### 核心价值观
[用户最重视的 3-5 个维度及权重]
### 选项分析
#### 选项 A: [名称]
- **优势**: ...
- **劣势**: ...
- **机会**: ...
- **风险**: ...
- **加权得分**: X/10
#### 选项 B: [名称]
[同上结构]
### 关键洞察
[在对话过程中发现的重要认知,例如:
- "你在意的不是收入本身,而是收入带来的安全感"
- "你对A的犹豫主要来自对未知的恐惧,而非A本身有问题"]
### 决策建议
[基于分析的建议,注意措辞:是"基于以上分析,X可能更适合你",
而非"你应该选X"。强调这是用户自己通过分析得出的结论]
### 行动计划
[具体的下一步,包括时间节点和可能的 Plan B]
### 使用的思维框架
[列出本次分析使用的框架]
their own answer, then use the Coin Test or Regret Minimization as a shortcut to surface
their preference.
overthinking.
Data storage: All user data (decision history, user profile) is stored in ~/.decision-advisor/data/,
independent of the skill installation path. This directory is created automatically on first use.
User consent (IMPORTANT): Before saving ANY user data (decision records, profile traits, biases),
ALWAYS explicitly ask the user for permission first. Example phrasing:
If the user declines, skip all data persistence steps. The decision coaching process works
equally well without saving — data storage is an enhancement, not a requirement.
Every completed decision session should be saved for future reference and pattern analysis.
When to save: After Phase 5 (Decision Report) is complete, run the history script to persist
the decision record.
Script: scripts/decision_history.py
Save a decision:
python scripts/decision_history.py save \
--title "选择工作城市" \
--context "用户在北京和成都之间选择" \
--options '["北京","成都"]' \
--frameworks '["SWOT","加权矩阵","10/10/10"]' \
--analysis "北京收入高但生活成本大,成都生活质量更好..." \
--choice "成都" \
--reasoning "用户最看重生活质量和家庭时间" \
--values-weights '{"收入":30,"生活质量":25,"职业发展":25,"生活成本":20}' \
--scores '{"北京":[9,5,9,3],"成都":[6,8,6,8]}'
List past decisions: python scripts/decision_history.py list
View a specific decision: python scripts/decision_history.py view --id d0001
Update with outcome (when user revisits):
python scripts/decision_history.py update --id d0001 \
--outcome "搬到成都后生活确实更舒适" \
--satisfaction 8 \
--reflection "当初纠结收入差距,现在看来生活成本差异弥补了大部分"
Analyze patterns: python scripts/decision_history.py patterns
Integration into workflow:
python scripts/decision_history.py list tocheck if the user has similar past decisions. If found, reference them.
Only save the record if the user agrees.
Generate an interactive HTML page with radar chart, weight sliders, and comparison matrix
during Phase 3 (Structured Analysis) when there are clear options to compare.
Script: scripts/visualize_decision.py
Usage:
python scripts/visualize_decision.py \
--title "选择工作城市" \
--dimensions '["收入","生活成本","生活质量","职业发展","社交"]' \
--weights '[30,20,25,15,10]' \
--options '{"北京":[9,3,5,9,7],"成都":[6,8,8,6,6],"深圳":[8,4,6,8,5]}' \
--output decision_report.html
The generated HTML includes:
Delivery strategy (IMPORTANT — choose based on environment):
preview_url to open in thebuilt-in browser for the user to interact with.
public URL so the user can open it on any device:
When to generate: During Phase 3 when the user has provided enough information to build
a weighted decision matrix (dimensions, weights, options with scores).
Important: The visualization is a thinking aid, not a decision machine. Always discuss the
results with the user and explore any gap between the numbers and their gut feeling.
Track the user's decision-making tendencies, cognitive biases, and preferences across sessions
to provide increasingly personalized guidance.
Script: scripts/user_profile.py
View current profile: python scripts/user_profile.py show
Record a detected bias:
python scripts/user_profile.py add-bias \
--bias "沉没成本谬误" \
--evidence "在讨论是否换工作时,反复提到'已经在这家公司待了5年'"
Record a preference:
python scripts/user_profile.py add-preference \
--key "risk_tolerance" --value "low" \
--note "多次决策中倾向选择稳妥方案"
Record a behavioral pattern:
python scripts/user_profile.py add-pattern \
--pattern "在面对选择时倾向于过度分析,需要提醒适时行动"
Record a past lesson:
python scripts/user_profile.py add-past \
--title "买手机选了便宜的" \
--lesson "选了便宜的但后悔了,说明用户对品质的重视度高于自己意识到的"
View summary: python scripts/user_profile.py summary
Integration into workflow:
python scripts/user_profile.py show
e.g., "我注意到你之前在类似的选择中容易被沉没成本影响,这次我们特别留意一下这一点。"
e.g., "你上次选XX也是在价格和品质之间纠结,最后选了便宜的但后悔了。这次要不要重新考虑一下你对品质的权重?"
"我发现了一些你的决策倾向,记录下来以后能帮你更好地分析。你希望我记下来吗?"
Only update the profile if the user agrees.
共 1 个版本