Decision Frameworks
Decision-making methodologies, scoring frameworks, and planning strategies for Group 2 agents in four-tier architecture
What this skill does
# Decision Frameworks Skill
## Overview
This skill provides decision-making frameworks, scoring methodologies, and planning strategies specifically for **Group 2 (Decision Making & Planning)** agents in the four-tier architecture. It covers how to evaluate Group 1 recommendations, incorporate user preferences, create execution plans, and make optimal decisions that balance multiple factors.
## When to Apply This Skill
**Use this skill when:**
- Evaluating recommendations from Group 1 (Strategic Analysis & Intelligence)
- Creating execution plans for Group 3 (Execution & Implementation)
- Prioritizing competing recommendations
- Incorporating user preferences into decisions
- Balancing trade-offs (speed vs quality, risk vs benefit)
- Deciding between multiple valid approaches
- Optimizing for specific objectives (quality, speed, cost)
**Required for:**
- strategic-planner (master decision-maker)
- preference-coordinator (user preference specialist)
- Any Group 2 agent making planning decisions
## Group 2 Role Recap
**Group 2: Decision Making & Planning (The "Council")**
- **Input**: Recommendations from Group 1 with confidence scores
- **Process**: Evaluate, prioritize, decide, plan
- **Output**: Execution plans for Group 3 with priorities and preferences
- **Key Responsibility**: Make optimal decisions balancing analysis, user preferences, historical success, and risk
## Decision-Making Frameworks
### Framework 1: Recommendation Evaluation Matrix
**Purpose**: Score each Group 1 recommendation on multiple dimensions
**Scoring Formula (0-100)**:
```python
Recommendation Score =
(Confidence from Group 1 × 30%) + # How confident is the analyst?
(User Preference Alignment × 25%) + # Does it match user style?
(Historical Success Rate × 25%) + # Has this worked before?
(Risk Assessment × 20%) # What's the risk level?
Where each component is 0-100
```
**Implementation**:
```python
def evaluate_recommendation(recommendation, user_prefs, historical_data):
# Component 1: Confidence from Group 1 (0-100)
confidence_score = recommendation.get("confidence", 0.5) * 100
# Component 2: User Preference Alignment (0-100)
preference_score = calculate_preference_alignment(
recommendation,
user_prefs
)
# Component 3: Historical Success Rate (0-100)
similar_patterns = query_similar_tasks(recommendation)
if similar_patterns:
success_rate = sum(p.success for p in similar_patterns) / len(similar_patterns)
historical_score = success_rate * 100
else:
historical_score = 50 # No data → neutral
# Component 4: Risk Assessment (0-100, higher = safer)
risk_score = assess_risk(recommendation)
# Weighted average
total_score = (
confidence_score * 0.30 +
preference_score * 0.25 +
historical_score * 0.25 +
risk_score * 0.20
)
return {
"total_score": total_score,
"confidence_score": confidence_score,
"preference_score": preference_score,
"historical_score": historical_score,
"risk_score": risk_score
}
```
**Interpretation**:
- **85-100**: Excellent recommendation - high confidence to proceed
- **70-84**: Good recommendation - proceed with standard caution
- **50-69**: Moderate recommendation - proceed carefully or seek alternatives
- **0-49**: Weak recommendation - consider rejecting or modifying significantly
### Framework 2: Multi-Criteria Decision Analysis (MCDA)
**Purpose**: Choose between multiple competing recommendations
**Method**: Weighted scoring across criteria
**Example - Choosing Between 3 Refactoring Approaches**:
```python
criteria = {
"quality_impact": 0.30, # How much will quality improve?
"effort_required": 0.25, # How much time/work?
"risk_level": 0.20, # How risky is it?
"user_alignment": 0.15, # Matches user style?
"maintainability": 0.10 # Long-term benefits?
}
options = [
{
"name": "Modular Refactoring",
"quality_impact": 90,
"effort_required": 60, # Higher effort → lower score
"risk_level": 80, # Lower risk → higher score
"user_alignment": 85,
"maintainability": 95
},
{
"name": "Incremental Refactoring",
"quality_impact": 70,
"effort_required": 85, # Lower effort → higher score
"risk_level": 90,
"user_alignment": 90,
"maintainability": 75
},
{
"name": "Complete Rewrite",
"quality_impact": 100,
"effort_required": 20, # Very high effort → very low score
"risk_level": 40, # High risk → low score
"user_alignment": 60,
"maintainability": 100
}
]
def calculate_mcda_score(option, criteria):
score = 0
for criterion, weight in criteria.items():
score += option[criterion] * weight
return score
scores = {opt["name"]: calculate_mcda_score(opt, criteria) for opt in options}
# Result:
# Modular Refactoring: 82.5
# Incremental Refactoring: 81.0
# Complete Rewrite: 63.0
# → Choose Modular Refactoring
```
**Best Practices**:
- Adjust criterion weights based on user preferences
- Normalize all scores to 0-100 range
- Consider negative criteria (effort, risk) inversely
- Document rationale for weights used
### Framework 3: Risk-Benefit Analysis
**Purpose**: Evaluate decisions through risk-benefit lens
**Matrix**:
```
Low Benefit | High Benefit
---------|---------------|------------------
Low Risk | ⚠️ Avoid | ✅ Do It (Quick Win)
High Risk| ❌ Never Do | 🤔 Careful Analysis Required
```
**Implementation**:
```python
def categorize_decision(benefit_score, risk_level):
"""
benefit_score: 0-100 (higher = more benefit)
risk_level: 0-100 (higher = more risky)
"""
high_benefit = benefit_score >= 70
low_risk = risk_level <= 30
if high_benefit and low_risk:
return "quick_win", "High benefit, low risk - proceed immediately"
elif high_benefit and not low_risk:
return "high_value_high_risk", "Requires careful analysis and mitigation strategies"
elif not high_benefit and low_risk:
return "avoid", "Not worth the effort even if safe"
else:
return "never_do", "High risk, low benefit - reject"
```
**Risk Factors to Consider**:
- **Technical Risk**: Breaking changes, backward compatibility, dependency issues
- **Schedule Risk**: Could delay other tasks, unknown complexity
- **Quality Risk**: Might introduce bugs, could reduce test coverage
- **User Impact**: Disrupts user workflow, changes behavior significantly
- **Reversibility**: Can we undo if it fails?
**Benefit Factors to Consider**:
- **Quality Impact**: Improves code quality, reduces technical debt
- **Performance Impact**: Makes system faster, more efficient
- **Maintainability Impact**: Easier to maintain and extend
- **User Experience Impact**: Better UX, fewer errors
- **Strategic Value**: Aligns with long-term goals
### Framework 4: Prioritization Matrix (Eisenhower Matrix)
**Purpose**: Prioritize multiple tasks by urgency and importance
**Matrix**:
```
Not Urgent | Urgent
-----------|---------------|------------------
Important | 📋 Schedule | 🔥 Do First
Not Import | 🗑️ Eliminate | ⚡ Delegate/Quick
```
**Implementation**:
```python
def prioritize_tasks(recommendations):
prioritized = {
"do_first": [], # Urgent + Important
"schedule": [], # Not Urgent + Important
"quick_wins": [], # Urgent + Not Important
"eliminate": [] # Not Urgent + Not Important
}
for rec in recommendations:
urgent = (
rec.get("priority") == "high" or
rec.get("severity") in ["critical", "high"] or
rec.get("user_impact") == "high"
)
important = (
rec.get("expected_impact") == "high" or
rec.get("quality_impact") >= 15 or
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.