
Executive Mentor
- 105 installs
- 451 repo stars
- Updated July 21, 2026
- borghei/claude-skills
Executive Mentor is a Claude skill that acts as an adversarial thinking partner, stress-testing founder and executive plans through pre-mortems, board prep, and hard-decision frameworks.
About
Executive Mentor is a Claude skill that acts as an adversarial thinking partner for founders and executives. It runs pre-mortem analysis, board-meeting preparation, hard-decision frameworks, and honest post-mortems to surface fatal assumptions before competitors or the board do. A developer or founder uses it to pressure-test a plan, prepare for a board meeting, or work through a decision with no good options.
- Adversarial thinking partner that stress-tests plans instead of writing them
- Pre-mortem, board-prep, and hard-decision frameworks for founders
- Surfaces fatal assumptions and sets tripwires before failure
Executive Mentor by the numbers
- 105 all-time installs (skills.sh)
- Ranked #1,342 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
executive-mentor capabilities & compatibility
Free; no API keys or external services required.
- Capabilities
- founder coach · identify assumptions · internal narrative
- Use cases
- planning
- Pricing
- Free
What executive-mentor says it does
Adversarial thinking partner for founders and executives. Stress-tests plans,
Other C-suite skills build plans. Executive Mentor breaks them.
It's 12 months from now. This plan failed completely. Why?
npx skills add https://github.com/borghei/claude-skills --skill executive-mentorAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 105 |
|---|---|
| repo stars | ★ 451 |
| Last updated | July 21, 2026 |
| Repository | borghei/claude-skills ↗ |
What it does
Stress-test a founder or executive plan, prep for a board meeting, or frame a hard decision before committing.
Who is it for?
Founders and executives who want their strategy, roadmap, or board narrative challenged before they present or commit to it.
Skip if: Writing the strategy or plan itself, or any code-level engineering task.
When should I use this skill?
You need plan validation, board preparation, a hard-decision framework, assumption stress-testing, or a pre-mortem/post-mortem.
What you get
A stress-tested plan with rated failure modes, hedges, and specific tripwires for plan modification.
- Pre-mortem failure-mode table with severity, hedges, and tripwires
- 48-hour board-prep protocol and hardest-question answers
By the numbers
- 6 executive frameworks (pre-mortem, board prep, hard-call, stress-test, 5-whys postmortem, decision matrix)
- 10 hardest board questions prepared
- minimum 5 failure modes per pre-mortem
Files
Executive Mentor
Not another advisor. An adversarial thinking partner. Finds the holes before your competitors, board, or customers do. Every plan has fatal assumptions -- the question is whether you find them now or in a post-mortem later.
Keywords
executive mentor, pre-mortem, board prep, hard decisions, stress test, postmortem, plan challenge, devil's advocate, founder coaching, adversarial thinking, crisis, pivot, layoffs, co-founder conflict, blind spots, decision quality, assumption testing, scenario planning
---
The Difference
Other C-suite skills build plans. Executive Mentor breaks them.
| Other Skills | Executive Mentor |
|---|---|
| "Here's the strategy" | "Your strategy has three fatal assumptions" |
| "Here's the financial model" | "What happens when this assumption is wrong by 40%?" |
| "Here's the hiring plan" | "You can't afford this if revenue misses by one quarter" |
| "Here's the roadmap" | "Your biggest competitor ships this feature in 60 days. Then what?" |
---
Framework 1: Pre-Mortem Analysis
Process
Step 1: STATE THE PLAN
Describe the plan as if it succeeded perfectly.
Step 2: ASSUME FAILURE
"It's 12 months from now. This plan failed completely. Why?"
Step 3: IDENTIFY FAILURE MODES
List every way the plan could fail. Minimum 5 failure modes.
Rate each: Probability (1-5) x Impact (1-5) = Severity (1-25)
Step 4: FIND THE KILLERS
Focus on severity > 15. These are the ones that will actually kill you.
Step 5: BUILD HEDGES
For each killer: What's the earliest warning signal?
What's the cheapest hedge that reduces severity by 50%?
Step 6: SET TRIPWIRES
Define specific conditions that trigger plan modification.
"If [metric] drops below [threshold] by [date], we [action]."Pre-Mortem Output Template
| Failure Mode | Probability (1-5) | Impact (1-5) | Severity | Earliest Warning | Hedge | Tripwire |
|---|---|---|---|---|---|---|
| Key hire doesn't work out | 3 | 4 | 12 | 60-day performance review | Start backup pipeline now | If not performing at 60 days, activate backup |
| Market shifts faster than expected | 2 | 5 | 10 | Competitor announces similar product | Build modular architecture, pivot-ready | If competitor launches in 90 days, convene board |
| Revenue misses by > 20% | 3 | 5 | 15 | Pipeline coverage drops below 2x | Cut discretionary spend plan ready | If Q1 misses by > 15%, execute cost reduction |
---
Framework 2: Board Preparation
The 48-Hour Board Prep Protocol
T-48 hours: INFORMATION GATHERING
- Pull all metrics the board tracks
- Identify every number that missed target
- List every hard question they could ask
- Review previous board meeting action items
T-24 hours: NARRATIVE CONSTRUCTION
- Build the story: where we said we'd be, where we are, why, what next
- Prepare the bad news delivery (Framework: State, Own, Understand, Fix)
- Practice the three hardest questions out loud
- Prepare specific asks (not "any help appreciated")
T-2 hours: FINAL PREP
- Review deck one more time
- Ensure every metric has a target and status
- Confirm every variance has a one-sentence explanation
- Know your three key messages cold
During: EXECUTION
- Lead with the most important thing (slide 3, not slide 30)
- Deliver bad news early, with ownership and a plan
- End with specific, actionable asksThe 10 Hardest Board Questions
Prepare answers for these regardless of your agenda:
| Question | What They Really Want to Know |
|---|---|
| "Walk me through the miss" | Can you diagnose problems honestly? |
| "What's the path to profitability?" | Do you have unit economics discipline? |
| "Who's your biggest competitive threat?" | Are you aware and strategic, or dismissive? |
| "What keeps you up at night?" | Are you honest about risks, or selling? |
| "If you had to cut 30% of the team, who stays?" | Do you know who's critical? |
| "Why should we put more money in?" | Is the risk/reward still compelling? |
| "What would you do differently?" | Can you learn and adapt? |
| "Show me the cohort data" | Is retention real or is growth masking churn? |
| "What's your biggest hiring mistake?" | Are you self-aware and decisive? |
| "When will you need more capital?" | Do you understand your cash position? |
Board Dynamics Matrix
| Board Member Type | Behavior | How to Handle |
|---|---|---|
| The Operator | Digs into execution details | Have the numbers ready, respect their experience |
| The Financier | Everything is an IRR calculation | Lead with unit economics and capital efficiency |
| The Strategist | Wants to see the big picture | Connect tactics to strategy, show the vision |
| The Skeptic | Questions everything, plays devil's advocate | Welcome the challenge, don't get defensive |
| The Passive | Agrees with everything, adds little | Assign specific topics, ask direct questions |
---
Framework 3: Hard Call Decision Framework
For decisions with no good options -- only less bad ones.
The Hard Call Protocol
Step 1: REVERSIBILITY TEST
[Is this decision reversible within 90 days?]
|
+-- YES --> Make it faster. Speed > perfection for reversible decisions.
+-- NO --> Proceed through full framework.
Step 2: 10/10/10 ANALYSIS
- How will you feel about this in 10 minutes?
- How will you feel in 10 months?
- How will you feel in 10 years?
Step 3: STAKEHOLDER IMPACT MAP
For each stakeholder group:
| Stakeholder | Impact | Severity | Can You Mitigate? |
| Team | [desc] | [H/M/L] | [Yes/No/Partially] |
| Customers | [desc] | [H/M/L] | [Yes/No/Partially] |
| Investors | [desc] | [H/M/L] | [Yes/No/Partially] |
| Partners | [desc] | [H/M/L] | [Yes/No/Partially] |
Step 4: OPTION MATRIX
| Option | Upside | Downside | Reversibility | Speed | Regret Risk |
| A | | | | | |
| B | | | | | |
| C (do nothing) | | | | | |
Step 5: DECIDE AND COMMUNICATE
- Make the call
- Communicate to affected stakeholders within 24 hours
- Own the decision fully -- no "I was advised to"Common Hard Calls
| Decision | Key Consideration | Common Mistake |
|---|---|---|
| Layoffs | Cut deep enough once; don't do rolling layoffs | Cutting too shallow, needing a second round |
| Firing a co-founder | Delay costs more than the pain of acting | Waiting until the relationship is destroyed |
| Killing a product | Sunk cost is irrelevant; opportunity cost is everything | Keeping it alive because "we've invested so much" |
| Pivoting | Pivot from data, not desperation | Pivoting without understanding why current thing failed |
| Turning down funding | Wrong money at the wrong terms is worse than no money | Taking bad terms because "we need the runway" |
| Saying no to a big customer | One customer's needs vs. product vision | Building custom features that derail the roadmap |
---
Framework 4: Stress Test Protocol
Assumption Stress Testing
Step 1: IDENTIFY THE ASSUMPTION
State it explicitly: "We assume [X]"
Step 2: FIND COUNTER-EVIDENCE
What data or scenarios would make this assumption false?
- Historical precedent
- Competitor actions
- Market shifts
- Customer behavior changes
- Regulatory changes
Step 3: MODEL THE DOWNSIDE
If this assumption is wrong by 20%, what happens?
By 40%? By 60%?
At what point does the plan break?
Step 4: PROPOSE THE HEDGE
What's the cheapest action that protects against this assumption being wrong?
Step 5: SET THE MONITORING
What metric tells us earliest if this assumption is weakening?Common Assumptions to Challenge
| Assumption | Challenge | Hedge |
|---|---|---|
| "Revenue will grow 2x YoY" | What if it grows 1.3x? | Plan expenses for 1.5x, invest for 2x |
| "$5B TAM" | Is that serviceable? What's your SAM? | Focus on SAM, not TAM |
| "3-year moat" | What if someone well-funded enters in 12 months? | Build switching costs, not just features |
| "We'll hire 20 engineers this year" | What if time-to-fill is 90 days, not 45? | Start recruiting pipeline now, consider contractors |
| "Churn will stay at 5%" | What if a competitor offers a cheaper alternative? | Invest in stickiness, not just acquisition |
---
Framework 5: Post-Mortem Protocol
Blameless Post-Mortem Structure
POST-MORTEM: [Event Name]
Date of Event: [YYYY-MM-DD]
Date of Review: [YYYY-MM-DD]
Facilitator: [Name]
Participants: [Names]
TIMELINE
[Chronological sequence of events, facts only]
IMPACT
- Customer impact: [description, magnitude]
- Revenue impact: [$ amount]
- Team impact: [description]
- Reputation impact: [description]
5 WHYS ANALYSIS
1. Why did [event] happen?
Because [cause 1].
2. Why did [cause 1] happen?
Because [cause 2].
3. Why did [cause 2] happen?
Because [cause 3].
4. Why did [cause 3] happen?
Because [cause 4].
5. Why did [cause 4] happen?
Because [root cause].
ROOT CAUSE: [One sentence]
CONTRIBUTING FACTORS (not root cause, but made it worse):
- [Factor 1]
- [Factor 2]
WHAT WENT WELL (always include this):
- [Thing 1]
- [Thing 2]
CHANGES REQUIRED
| Change | Owner | Deadline | Verification Method |
|--------|-------|----------|-------------------|
| [Change 1] | [Name] | [Date] | [How we verify it's done] |
| [Change 2] | [Name] | [Date] | [How we verify it's done] |
FOLLOW-UP REVIEW: [Date to check all changes are implemented]Post-Mortem Anti-Patterns
| Anti-Pattern | Why It Fails | Better Approach |
|---|---|---|
| Blame assignment | People hide information next time | Blameless: focus on system, not individuals |
| "We'll be more careful" | Not actionable | Specific process or system change |
| Too many action items | Nothing gets done | Maximum 5 changes, prioritized |
| No follow-up | Changes never implemented | Mandatory follow-up date, tracked |
| Whitewashing | Same failure repeats | Honest root cause, uncomfortable truths |
---
When to Engage Other Roles
| Situation | Mentor Does | Invokes |
|---|---|---|
| Revenue plan looks optimistic | Challenges the assumptions | CFO: "Model the bear case" |
| Hiring plan has no budget check | Questions feasibility | CFO: "Can we afford this?" |
| Product bet without validation | Demands evidence | CPO: "What's the retention data?" |
| Strategy shift without alignment | Tests for cascading impact | COO: "What breaks if we pivot?" |
| Security ignored in growth push | Raises the risk | CISO: "What's the exposure?" |
| Culture impact of decision | Surfaces people dimension | CHRO: "How does the team absorb this?" |
---
Red Flags
- Board meeting in < 2 weeks with no prep -- initiate board prep immediately
- Major decision made without stress-testing -- retroactively challenge it
- Team in unanimous agreement on a big bet -- suspicious, challenge the consensus
- Founder avoiding a hard conversation for 2+ weeks -- surface it directly
- Post-mortem not conducted after a significant failure -- push for it
- Same failure happened twice -- post-mortem changes were not implemented
- "This is our only option" framing -- there are always alternatives
---
Proactive Triggers
- Upcoming board meeting detected -- offer board prep protocol
- Major strategic decision proposed -- offer pre-mortem analysis
- Revenue miss in any quarter -- push for honest post-mortem
- Founder expressing high confidence in untested plan -- stress test the assumptions
- Co-founder tension mentioned -- surface the hard conversation framework
- Competitive threat identified -- stress test current strategy
---
Output Artifacts
| Request | Deliverable |
|---|---|
| "Challenge this plan" | Pre-mortem with ranked failure modes, hedges, and tripwires |
| "Prep me for the board" | 10 hardest questions with prepared answers and narrative |
| "Help me make this hard call" | Decision matrix with options, trade-offs, and communication plan |
| "Stress test this assumption" | Counter-evidence, downside modeling, hedge recommendation |
| "Run a post-mortem" | Blameless analysis with root cause, contributing factors, and changes |
| "Find my blind spots" | Pattern analysis of past decisions and recurring themes |
---
Troubleshooting
| Problem | Likely Cause | Resolution |
|---|---|---|
| Stress test produces no actionable insights | Assumptions too vague or too few failure modes identified | Require minimum 5 specific, quantified failure modes per plan; use GROW model (Goal, Reality, Options, Will) to sharpen each |
| Board prep feels superficial | Skipping the hard questions or not rehearsing answers | Run the 10 Hardest Board Questions drill with a trusted peer; record and review responses |
| Post-mortem devolves into blame | Facilitator not enforcing blameless culture | Restate ground rules at start; focus language on systems not people; consider external facilitator |
| Pre-mortem participants only list obvious risks | Group conformity bias suppressing creative thinking | Use silent brainstorming first (written, anonymous), then share; apply inversion technique ("How would we guarantee failure?") |
| Hard call framework produces analysis paralysis | Too many options or unclear decision criteria | Limit to 3 options maximum; apply the reversibility test first to eliminate low-stakes decisions from full framework |
| Founder avoids engaging with mentor challenges | Ego protection or fear of appearing weak | Start with evidence file review (past wins); normalize the process by referencing Co-Active coaching principle: the leader is naturally creative and resourceful |
| Tripwires set but never monitored | No ownership or tracking cadence assigned | Assign a specific person to each tripwire; add to weekly leadership meeting agenda |
---
Success Criteria
- Pre-mortem analysis identifies at least 2 failure modes rated severity > 15 that were not previously considered by the leadership team
- Board preparation drill produces confident, rehearsed answers to all 10 hardest questions at least 24 hours before the meeting
- Hard call decisions are made within the framework's recommended timeline (48 hours for reversible, 2 weeks for irreversible)
- Post-mortem root causes lead to implemented system changes verified at the 30-day follow-up review
- Stress test hedges are costed and assigned within 7 days of the analysis
- At least one blind spot is surfaced and acknowledged per quarterly review cycle
- Decision quality improves measurably: fewer repeated failures, faster response to tripwire triggers
---
Scope & Limitations
- In scope: Plan validation, board preparation, decision stress-testing, post-mortem facilitation, assumption challenging, blind spot detection for founders and C-suite executives
- Out of scope: Therapy or clinical mental health support (refer to licensed professionals); legal advice on board governance; financial modeling (use CFO Advisor); technical architecture decisions (use CTO Advisor)
- Limitation: Framework effectiveness depends on honest self-assessment; works best when the executive is willing to be challenged
- Limitation: Pre-mortem and stress tests are qualitative estimates, not predictive models; probability ratings are subjective
- Limitation: Board preparation assumes standard VC/PE board dynamics; public company boards and non-profit boards have different dynamics
---
Integration Points
| Skill | Integration | Data Flow |
|---|---|---|
ceo-advisor | Strategic decisions feed into stress testing | CEO strategy → Mentor challenges assumptions |
founder-coach | Personal development gaps surface during mentoring | Mentor blind spots → Coach development plan |
board-deck-builder | Board prep protocol feeds directly into deck construction | Mentor hard questions → Deck narrative answers |
strategic-alignment | Strategy cascade validation after stress testing | Mentor-validated plan → Alignment cascade |
scenario-war-room | Pre-mortem failure modes feed into scenario modeling | Mentor failure modes → War room scenarios |
org-health-diagnostic | Health scores reveal areas needing executive attention | Health red flags → Mentor focus areas |
cfo-advisor | Financial assumptions require CFO validation | Mentor financial challenges → CFO bear case model |
---
Python Tools
| Tool | Purpose | Usage |
|---|---|---|
scripts/leadership_assessment.py | Score leadership competencies across 8 dimensions using the GROW model framework | python scripts/leadership_assessment.py --name "Jane Doe" --role CEO --json |
scripts/coaching_plan_generator.py | Generate a structured 90-day coaching plan based on assessment gaps | python scripts/coaching_plan_generator.py --gaps delegation,communication --stage "series-a" --json |
scripts/goal_tracker.py | Track executive development goals with progress and accountability | python scripts/goal_tracker.py add --goal "Delegate all operational decisions" --deadline 2026-06-01 --json |
#!/usr/bin/env python3
"""Coaching Plan Generator - Generate structured 90-day executive coaching plans.
Creates a phased coaching plan based on identified development gaps, company stage,
and GROW model principles. Outputs weekly milestones, accountability checkpoints,
and success metrics.
Usage:
python coaching_plan_generator.py --gaps delegation,communication --stage series-a
python coaching_plan_generator.py --gaps strategic,execution,people --stage seed --intensity high --json
"""
import argparse
import json
import sys
from datetime import datetime, timedelta
GAP_PLANS = {
"delegation": {
"name": "Delegation Mastery",
"phases": [
{
"phase": 1, "name": "Awareness & Audit", "weeks": "1-3",
"activities": [
"Audit all tasks you touch weekly; categorize as strategic vs. operational",
"Map current delegation levels for top 20 recurring tasks",
"Identify 5 tasks to delegate first (use priority order: recurring ops first)"
],
"milestone": "Delegation audit complete with 5 tasks identified for delegation",
"accountability": "Share audit results with coach or peer; review weekly"
},
{
"phase": 2, "name": "Practice & Trust Building", "weeks": "4-8",
"activities": [
"Delegate 3 tasks at Level 3 (propose solution, you decide)",
"Write context documents for each delegated task",
"Resist the urge to take back tasks when quality dips initially",
"Conduct weekly check-ins on delegated tasks (15 min max)"
],
"milestone": "3 tasks successfully delegated at Level 3 with written parameters",
"accountability": "Track decision quality of delegated tasks; compare to your own"
},
{
"phase": 3, "name": "Scale & Elevate", "weeks": "9-13",
"activities": [
"Promote 2 tasks from Level 3 to Level 4 (decide and inform)",
"Identify 3 new tasks for delegation at Level 2-3",
"Measure time freed and redirect to strategic work",
"Document delegation framework for your direct reports to cascade"
],
"milestone": "5+ tasks at Level 3-4; 4+ hours/week freed for strategic work",
"accountability": "Calendar audit shows measurable shift from execution to strategy"
}
],
"success_metrics": [
"Time spent on operational tasks reduced by 30%+",
"At least 5 tasks operating at delegation Level 3 or higher",
"Direct reports report increased autonomy in anonymous feedback",
"No task taken back after delegation (barring genuine emergency)"
]
},
"communication": {
"name": "Communication Excellence",
"phases": [
{
"phase": 1, "name": "Baseline & Awareness", "weeks": "1-3",
"activities": [
"Run 5-person articulation test: ask 5 team members your top priority",
"Audit last month's communications for consistency across audiences",
"Identify your communication weak spot: frequency, clarity, or audience adaptation"
],
"milestone": "Communication baseline score established; primary gap identified",
"accountability": "Share articulation test results with leadership team"
},
{
"phase": 2, "name": "Build the System", "weeks": "4-8",
"activities": [
"Write core narrative document (one paragraph, single source of truth)",
"Create audience translation matrix for 3 key audiences",
"Redesign all-hands format with 15-min unscreened Q&A",
"Establish monthly investor update on fixed schedule"
],
"milestone": "Core narrative documented; all-hands redesigned; first improved investor update sent",
"accountability": "Run contradiction detection before each major communication"
},
{
"phase": 3, "name": "Reinforce & Measure", "weeks": "9-13",
"activities": [
"Re-run 5-person test; compare to baseline",
"Collect Q&A quality metrics from all-hands (number of real questions)",
"Solicit feedback on communication clarity from 3 direct reports",
"Refine narrative based on feedback and business changes"
],
"milestone": "5-person test score improved by 2+ points; Q&A engagement up",
"accountability": "Quarterly communication effectiveness review scheduled"
}
],
"success_metrics": [
"5-person articulation test score 8/10 or higher",
"All-hands Q&A produces 5+ substantive questions per session",
"Investor updates sent consistently on same date each month",
"Zero narrative contradictions caught by stakeholders"
]
},
"strategic": {
"name": "Strategic Clarity",
"phases": [
{
"phase": 1, "name": "Strategy Audit", "weeks": "1-3",
"activities": [
"Write your strategy in one sentence; test if it is falsifiable",
"Review resource allocation: does spend match stated priorities?",
"Identify where strategy is aspirational vs. operational"
],
"milestone": "One-sentence strategy that is specific enough to be wrong",
"accountability": "Share with board member or advisor for challenge"
},
{
"phase": 2, "name": "Cascade & Validate", "weeks": "4-8",
"activities": [
"Map strategy to team-level OKRs; identify orphans and conflicts",
"Block 4+ hours/week for strategic thinking (non-negotiable)",
"Run pre-mortem on top strategic bet",
"Schedule monthly strategy review with leadership team"
],
"milestone": "Strategy cascaded to all teams; no orphan goals; pre-mortem complete",
"accountability": "Strategic thinking time actually protected on calendar"
},
{
"phase": 3, "name": "Decision Quality", "weeks": "9-13",
"activities": [
"Start decision journal: record major decisions with reasoning",
"Review 90-day-old decisions for outcome quality",
"Apply stress test protocol to one assumption per week",
"Conduct quarterly strategy review with full team"
],
"milestone": "Decision journal active; one strategy assumption stress-tested weekly",
"accountability": "Quarterly strategy review scheduled and executed"
}
],
"success_metrics": [
"Strategy articulable in one sentence by CEO and all direct reports",
"4+ hours/week of protected strategic thinking time maintained",
"Decision journal shows improving outcome quality over 90 days",
"Pre-mortem conducted before every major strategic commitment"
]
},
"decision": {
"name": "Decision Excellence",
"phases": [
{
"phase": 1, "name": "Decision Audit", "weeks": "1-3",
"activities": [
"List all pending decisions; apply reversibility test to each",
"Identify decisions delayed > 2 weeks; decide or delegate within 48 hours",
"Start decision log: decision, reasoning, expected outcome, date"
],
"milestone": "Decision backlog cleared; decision log started",
"accountability": "Zero decisions pending > 2 weeks without explicit reason"
},
{
"phase": 2, "name": "Framework Adoption", "weeks": "4-8",
"activities": [
"Apply Hard Call Framework to next irreversible decision",
"Use 10/10/10 analysis for emotionally difficult decisions",
"Practice stakeholder impact mapping before major announcements",
"Review decision log weekly; identify patterns"
],
"milestone": "Hard Call Framework used for 2+ major decisions",
"accountability": "Decision log reviewed weekly with coach or peer"
},
{
"phase": 3, "name": "Speed & Quality", "weeks": "9-13",
"activities": [
"Measure average decision cycle time; target < 48 hours for reversible",
"Review 90-day outcomes of logged decisions",
"Teach decision framework to direct reports for cascaded use",
"Define decision rights matrix for team"
],
"milestone": "Decision cycle time within targets; framework cascaded to team",
"accountability": "Decision quality metrics tracked quarterly"
}
],
"success_metrics": [
"Reversible decisions made within 48 hours consistently",
"Decision log shows > 70% positive outcome rate at 90-day review",
"Hard Call Framework applied to all irreversible decisions",
"Direct reports can make decisions independently within defined parameters"
]
},
"people": {
"name": "People Leadership",
"phases": [
{
"phase": 1, "name": "Know Your Team", "weeks": "1-3",
"activities": [
"Conduct development conversation with each direct report",
"Document career aspirations and growth areas for each person",
"Identify your top 3 retention risks and their motivations"
],
"milestone": "Development profile complete for every direct report",
"accountability": "Can name each person's top career goal from memory"
},
{
"phase": 2, "name": "Develop & Invest", "weeks": "4-8",
"activities": [
"Create development plan for each direct report with specific milestones",
"Schedule monthly coaching sessions (30 min each)",
"Identify one stretch assignment per direct report this quarter",
"Start tracking internal promotion pipeline"
],
"milestone": "Development plans active; monthly coaching cadence established",
"accountability": "Monthly coaching sessions completed (no cancellations)"
},
{
"phase": 3, "name": "Build Bench Strength", "weeks": "9-13",
"activities": [
"Draft succession plan for your role and 2 key positions",
"Evaluate internal promotion readiness for each direct report",
"Provide specific, behavioral feedback weekly (not just in reviews)",
"Measure team engagement and compare to baseline"
],
"milestone": "Succession plan documented; engagement trending up",
"accountability": "Succession readiness at Level 2+ for your role"
}
],
"success_metrics": [
"Every direct report has active development plan with milestones",
"Monthly coaching sessions maintained with 90%+ completion rate",
"At least one internal promotion within 6 months",
"eNPS improves by 10+ points in next engagement survey"
]
},
"eq": {
"name": "Emotional Intelligence",
"phases": [
{
"phase": 1, "name": "Self-Assessment", "weeks": "1-3",
"activities": [
"Identify your emotional triggers in professional settings",
"Start end-of-day reflection practice (5 minutes)",
"Ask 3 trusted peers: 'How do I show up under stress?'"
],
"milestone": "Trigger map documented; daily reflection habit started",
"accountability": "Reflection journal maintained for 21 consecutive days"
},
{
"phase": 2, "name": "Regulate & Empathize", "weeks": "4-8",
"activities": [
"Practice pause-before-response in next 3 difficult conversations",
"Conduct skip-level 1:1s focused on listening (not solving)",
"Seek coaching or therapy for self-regulation skill building",
"Practice naming emotions in real-time ('I notice I feel...')"
],
"milestone": "No composure losses in professional settings; 3 skip-level 1:1s completed",
"accountability": "Ask direct reports if conversations feel more open"
},
{
"phase": 3, "name": "Lead with EQ", "weeks": "9-13",
"activities": [
"Run 360 feedback focused on EQ dimensions",
"Practice reading room energy in meetings and adjusting approach",
"Model vulnerability by sharing one mistake or learning with team",
"Build EQ into your leadership assessment of others"
],
"milestone": "360 feedback shows EQ improvement; team reports increased psychological safety",
"accountability": "EQ 360 scores as new baseline for next cycle"
}
],
"success_metrics": [
"Zero reported composure losses in 90-day period",
"360 feedback EQ scores improve by 1+ point",
"Team psychological safety survey improves",
"Difficult conversations handled without defensiveness (peer-validated)"
]
},
"execution": {
"name": "Execution Discipline",
"phases": [
{
"phase": 1, "name": "Baseline & Cadence", "weeks": "1-3",
"activities": [
"Calculate current OKR completion rate for last 2 quarters",
"Establish weekly leadership review meeting (1 hour, scorecard-driven)",
"Define top 3 metrics every team should track weekly"
],
"milestone": "OKR completion baseline established; weekly review started",
"accountability": "Weekly review meeting held every week (zero skips)"
},
{
"phase": 2, "name": "Accountability Systems", "weeks": "4-8",
"activities": [
"Create accountability matrix: every initiative has one owner",
"Implement commitment tracking (promises made vs. kept)",
"Address one missed commitment directly each week",
"Remove one standing meeting that does not produce outcomes"
],
"milestone": "Accountability matrix live; commitment tracking operational",
"accountability": "Commitment completion rate tracked weekly"
},
{
"phase": 3, "name": "Sustainable Execution", "weeks": "9-13",
"activities": [
"Measure OKR completion rate and compare to baseline",
"Cascade execution cadence to team-level leaders",
"Document standard operating procedures for top 5 processes",
"Conduct retrospective on execution system effectiveness"
],
"milestone": "OKR completion > 70%; execution cadence cascaded to teams",
"accountability": "Quarterly execution retrospective scheduled"
}
],
"success_metrics": [
"OKR completion rate above 70%",
"Weekly review meeting maintained for 13 consecutive weeks",
"Commitment completion rate above 85%",
"Cross-functional initiative completion > 80% on time"
]
},
"self_awareness": {
"name": "Self-Awareness Development",
"phases": [
{
"phase": 1, "name": "Honest Assessment", "weeks": "1-3",
"activities": [
"Run anonymous 360 feedback with 5 hard questions",
"Ask direct reports: 'What should I stop doing?'",
"Identify top 3 blind spots from feedback patterns"
],
"milestone": "360 complete; top 3 blind spots documented",
"accountability": "Share blind spots with coach or trusted peer"
},
{
"phase": 2, "name": "Active Mitigation", "weeks": "4-8",
"activities": [
"Create specific mitigation strategy for each blind spot",
"Join executive peer group for external honest feedback",
"Start evidence file: document wins, mistakes, and patterns",
"Practice separating 'I feel' from 'the facts are'"
],
"milestone": "Mitigation strategies active for all 3 blind spots; peer group joined",
"accountability": "Evidence file updated weekly; peer group attended monthly"
},
{
"phase": 3, "name": "Continuous Growth", "weeks": "9-13",
"activities": [
"Re-run 360 feedback to measure improvement on blind spots",
"Conduct honest self-review: what changed and what didn't?",
"Set next quarter's development focus based on evidence",
"Model self-awareness by sharing learnings with team"
],
"milestone": "360 scores improved on identified blind spots; next development area selected",
"accountability": "Annual self-awareness development cycle established"
}
],
"success_metrics": [
"Can name top 3 blind spots with specific mitigation strategies",
"360 feedback scores improve on targeted dimensions",
"Evidence file maintained with weekly entries",
"Peer group feedback shows increasing self-awareness"
]
}
}
INTENSITY_MULTIPLIERS = {"low": 0.7, "medium": 1.0, "high": 1.3}
def generate_plan(gaps, stage, intensity, start_date):
plans = []
for gap in gaps:
gap_key = gap.strip().lower().replace("-", "_").replace(" ", "_")
if gap_key not in GAP_PLANS:
print(f"Warning: Unknown gap '{gap}'. Available: {', '.join(GAP_PLANS.keys())}", file=sys.stderr)
continue
plans.append(GAP_PLANS[gap_key])
if not plans:
print("Error: No valid gaps provided.", file=sys.stderr)
sys.exit(1)
weekly_schedule = []
for week in range(1, 14):
week_start = start_date + timedelta(weeks=week - 1)
week_activities = []
for plan in plans:
for phase in plan["phases"]:
week_range = phase["weeks"].split("-")
w_start, w_end = int(week_range[0]), int(week_range[1])
if w_start <= week <= w_end:
week_activities.append({
"plan": plan["name"],
"phase": phase["name"],
"focus": phase["activities"][min(week - w_start, len(phase["activities"]) - 1)]
})
weekly_schedule.append({
"week": week,
"start_date": week_start.strftime("%Y-%m-%d"),
"activities": week_activities
})
return {
"plan_generated": datetime.now().strftime("%Y-%m-%d"),
"start_date": start_date.strftime("%Y-%m-%d"),
"end_date": (start_date + timedelta(weeks=13)).strftime("%Y-%m-%d"),
"company_stage": stage,
"intensity": intensity,
"development_areas": [p["name"] for p in plans],
"plans": plans,
"weekly_schedule": weekly_schedule,
"checkpoints": [
{"week": 3, "type": "Phase 1 Review", "action": "Review Phase 1 milestones for all development areas"},
{"week": 8, "type": "Phase 2 Review", "action": "Review Phase 2 milestones; adjust intensity if needed"},
{"week": 13, "type": "Final Review", "action": "Assess all success metrics; plan next 90-day cycle"}
]
}
def print_human(result):
print(f"\n{'='*70}")
print(f"90-DAY COACHING PLAN")
print(f"Generated: {result['plan_generated']}")
print(f"Period: {result['start_date']} to {result['end_date']}")
print(f"Stage: {result['company_stage']} | Intensity: {result['intensity']}")
print(f"{'='*70}\n")
print(f"DEVELOPMENT AREAS: {', '.join(result['development_areas'])}\n")
for plan in result["plans"]:
print(f"\n--- {plan['name'].upper()} ---")
for phase in plan["phases"]:
print(f"\n Phase {phase['phase']}: {phase['name']} (Weeks {phase['weeks']})")
for act in phase["activities"]:
print(f" - {act}")
print(f" Milestone: {phase['milestone']}")
print(f" Accountability: {phase['accountability']}")
print(f"\n Success Metrics:")
for m in plan["success_metrics"]:
print(f" [ ] {m}")
print(f"\nCHECKPOINTS")
print("-" * 40)
for cp in result["checkpoints"]:
print(f" Week {cp['week']:>2}: {cp['type']} - {cp['action']}")
print()
def main():
parser = argparse.ArgumentParser(description="Generate structured 90-day executive coaching plan")
parser.add_argument("--gaps", required=True, help="Comma-separated development gaps (e.g., delegation,communication,strategic,decision,people,eq,execution,self_awareness)")
parser.add_argument("--stage", default="series-a", help="Company stage (seed, series-a, series-b, series-c)")
parser.add_argument("--intensity", default="medium", choices=["low", "medium", "high"], help="Coaching intensity")
parser.add_argument("--start-date", default=None, help="Start date (YYYY-MM-DD), defaults to today")
parser.add_argument("--json", action="store_true", help="Output as JSON")
args = parser.parse_args()
start_date = datetime.strptime(args.start_date, "%Y-%m-%d") if args.start_date else datetime.now()
gaps = [g.strip() for g in args.gaps.split(",")]
result = generate_plan(gaps, args.stage, args.intensity, start_date)
if args.json:
print(json.dumps(result, indent=2))
else:
print_human(result)
if __name__ == "__main__":
main()
#!/usr/bin/env python3
"""Goal Tracker - Track executive development goals with progress and accountability.
Manage development goals with status tracking, deadline monitoring, and progress
reporting. Goals are stored in a local JSON file for persistence.
Usage:
python goal_tracker.py add --goal "Delegate all operational decisions" --deadline 2026-06-01 --category delegation
python goal_tracker.py list
python goal_tracker.py update --id 1 --status in-progress --progress 50
python goal_tracker.py report --json
"""
import argparse
import json
import os
import sys
from datetime import datetime
DEFAULT_STORE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "goals_data.json")
CATEGORIES = [
"strategic", "communication", "delegation", "decision",
"people", "eq", "execution", "self_awareness", "other"
]
STATUSES = ["not-started", "in-progress", "completed", "blocked", "cancelled"]
def load_goals(store_path):
if os.path.exists(store_path):
with open(store_path, "r") as f:
return json.load(f)
return {"goals": [], "next_id": 1}
def save_goals(data, store_path):
with open(store_path, "w") as f:
json.dump(data, f, indent=2)
def add_goal(data, goal_text, deadline, category, owner):
goal = {
"id": data["next_id"],
"goal": goal_text,
"category": category,
"owner": owner,
"status": "not-started",
"progress": 0,
"deadline": deadline,
"created": datetime.now().strftime("%Y-%m-%d"),
"updated": datetime.now().strftime("%Y-%m-%d"),
"notes": []
}
data["goals"].append(goal)
data["next_id"] += 1
return goal
def update_goal(data, goal_id, status=None, progress=None, note=None):
for goal in data["goals"]:
if goal["id"] == goal_id:
if status:
goal["status"] = status
if progress is not None:
goal["progress"] = min(100, max(0, progress))
if note:
goal["notes"].append({
"date": datetime.now().strftime("%Y-%m-%d"),
"text": note
})
goal["updated"] = datetime.now().strftime("%Y-%m-%d")
return goal
return None
def generate_report(data):
today = datetime.now().strftime("%Y-%m-%d")
goals = data["goals"]
total = len(goals)
by_status = {}
by_category = {}
overdue = []
at_risk = []
for g in goals:
status = g["status"]
by_status[status] = by_status.get(status, 0) + 1
cat = g["category"]
by_category[cat] = by_category.get(cat, 0) + 1
if g["deadline"] and g["status"] not in ("completed", "cancelled"):
if g["deadline"] < today:
overdue.append(g)
else:
days_left = (datetime.strptime(g["deadline"], "%Y-%m-%d") - datetime.now()).days
expected_progress = max(0, min(100, 100 - (days_left * 100 // 90)))
if g["progress"] < expected_progress - 20:
at_risk.append(g)
avg_progress = sum(g["progress"] for g in goals) / total if total > 0 else 0
return {
"report_date": today,
"total_goals": total,
"average_progress": round(avg_progress, 1),
"by_status": by_status,
"by_category": by_category,
"overdue": [{"id": g["id"], "goal": g["goal"], "deadline": g["deadline"]} for g in overdue],
"at_risk": [{"id": g["id"], "goal": g["goal"], "progress": g["progress"]} for g in at_risk],
"completion_rate": round(by_status.get("completed", 0) / total * 100, 1) if total > 0 else 0,
"goals": goals
}
def print_goals_human(goals):
if not goals:
print("No goals found.")
return
print(f"\n{'ID':>4} {'Status':<14} {'Prog':>4} {'Deadline':<12} {'Category':<16} {'Goal'}")
print("-" * 90)
for g in goals:
status_marker = {"not-started": "[ ]", "in-progress": "[~]", "completed": "[x]", "blocked": "[!]", "cancelled": "[-]"}.get(g["status"], "[ ]")
print(f"{g['id']:>4} {status_marker} {g['status']:<10} {g['progress']:>3}% {g['deadline']:<12} {g['category']:<16} {g['goal'][:40]}")
def print_report_human(report):
print(f"\n{'='*70}")
print(f"GOAL TRACKER REPORT - {report['report_date']}")
print(f"{'='*70}\n")
print(f"Total Goals: {report['total_goals']}")
print(f"Average Progress: {report['average_progress']}%")
print(f"Completion Rate: {report['completion_rate']}%\n")
print("BY STATUS:")
for status, count in report["by_status"].items():
print(f" {status:<14} {count}")
print("\nBY CATEGORY:")
for cat, count in report["by_category"].items():
print(f" {cat:<16} {count}")
if report["overdue"]:
print(f"\nOVERDUE ({len(report['overdue'])}):")
for g in report["overdue"]:
print(f" [!] #{g['id']} - {g['goal']} (due: {g['deadline']})")
if report["at_risk"]:
print(f"\nAT RISK ({len(report['at_risk'])}):")
for g in report["at_risk"]:
print(f" [~] #{g['id']} - {g['goal']} (progress: {g['progress']}%)")
print()
def main():
parser = argparse.ArgumentParser(description="Track executive development goals")
subparsers = parser.add_subparsers(dest="command", help="Command")
add_parser = subparsers.add_parser("add", help="Add a new goal")
add_parser.add_argument("--goal", required=True, help="Goal description")
add_parser.add_argument("--deadline", required=True, help="Deadline (YYYY-MM-DD)")
add_parser.add_argument("--category", default="other", choices=CATEGORIES, help="Goal category")
add_parser.add_argument("--owner", default="", help="Goal owner name")
add_parser.add_argument("--json", action="store_true", help="Output as JSON")
add_parser.add_argument("--store", default=DEFAULT_STORE, help="Data file path")
list_parser = subparsers.add_parser("list", help="List all goals")
list_parser.add_argument("--status", choices=STATUSES, help="Filter by status")
list_parser.add_argument("--category", choices=CATEGORIES, help="Filter by category")
list_parser.add_argument("--json", action="store_true", help="Output as JSON")
list_parser.add_argument("--store", default=DEFAULT_STORE, help="Data file path")
update_parser = subparsers.add_parser("update", help="Update a goal")
update_parser.add_argument("--id", type=int, required=True, help="Goal ID")
update_parser.add_argument("--status", choices=STATUSES, help="New status")
update_parser.add_argument("--progress", type=int, help="Progress percentage (0-100)")
update_parser.add_argument("--note", help="Add a note")
update_parser.add_argument("--json", action="store_true", help="Output as JSON")
update_parser.add_argument("--store", default=DEFAULT_STORE, help="Data file path")
report_parser = subparsers.add_parser("report", help="Generate progress report")
report_parser.add_argument("--json", action="store_true", help="Output as JSON")
report_parser.add_argument("--store", default=DEFAULT_STORE, help="Data file path")
args = parser.parse_args()
if not args.command:
parser.print_help()
sys.exit(1)
data = load_goals(args.store)
if args.command == "add":
goal = add_goal(data, args.goal, args.deadline, args.category, args.owner)
save_goals(data, args.store)
if args.json:
print(json.dumps(goal, indent=2))
else:
print(f"Goal #{goal['id']} added: {goal['goal']}")
elif args.command == "list":
goals = data["goals"]
if args.status:
goals = [g for g in goals if g["status"] == args.status]
if args.category:
goals = [g for g in goals if g["category"] == args.category]
if args.json:
print(json.dumps(goals, indent=2))
else:
print_goals_human(goals)
elif args.command == "update":
goal = update_goal(data, args.id, args.status, args.progress, args.note)
if goal:
save_goals(data, args.store)
if args.json:
print(json.dumps(goal, indent=2))
else:
print(f"Goal #{goal['id']} updated: {goal['status']} ({goal['progress']}%)")
else:
print(f"Error: Goal #{args.id} not found", file=sys.stderr)
sys.exit(1)
elif args.command == "report":
report = generate_report(data)
if args.json:
print(json.dumps(report, indent=2))
else:
print_report_human(report)
if __name__ == "__main__":
main()
#!/usr/bin/env python3
"""Leadership Assessment Tool - Score leadership competencies across 8 dimensions using GROW model framework.
Evaluates executives on strategic thinking, communication, delegation, decision quality,
people development, emotional intelligence, execution discipline, and self-awareness.
Produces a competency profile with gap analysis and development recommendations.
Usage:
python leadership_assessment.py --name "Jane Doe" --role CEO
python leadership_assessment.py --name "Jane Doe" --role CEO --strategic 8 --communication 6 --delegation 4 --decision 7 --people 5 --eq 7 --execution 8 --self-awareness 6 --json
"""
import argparse
import json
import sys
from datetime import datetime
DIMENSIONS = {
"strategic": {
"name": "Strategic Thinking",
"description": "Ability to set direction, prioritize, and think long-term",
"grow_goal": "Articulate a clear, falsifiable strategy that the team can execute",
"grow_reality_questions": [
"Can 5 people from different teams state your strategy consistently?",
"Do your resource allocations match your stated priorities?",
"When did you last change strategy based on new data?"
],
"grow_options": [
"Schedule weekly protected strategy time (4 hours minimum)",
"Run quarterly strategy articulation test with team",
"Create decision journal to track strategic choices and outcomes"
]
},
"communication": {
"name": "Communication",
"description": "Clarity, frequency, and effectiveness of communication across audiences",
"grow_goal": "Every stakeholder group receives consistent, clear, audience-appropriate messaging",
"grow_reality_questions": [
"Do employees learn company news from you or from social media?",
"Can your direct reports explain your top 3 priorities?",
"When did you last receive feedback that your message was unclear?"
],
"grow_options": [
"Implement narrative consistency protocol across audiences",
"Practice the 7x rule: communicate key messages through 7 channels",
"Run monthly all-hands with unscreened Q&A"
]
},
"delegation": {
"name": "Delegation",
"description": "Ability to trust, empower, and hold others accountable",
"grow_goal": "Operate at delegation Level 4-5 for all operational tasks",
"grow_reality_questions": [
"What percentage of decisions still require your approval?",
"Have you delegated the same task 3+ times successfully?",
"Does your team wait for your input on routine decisions?"
],
"grow_options": [
"Identify 3 tasks to move up one delegation level this month",
"Create written decision parameters for each direct report",
"Track delegation level for top 20 recurring tasks"
]
},
"decision": {
"name": "Decision Quality",
"description": "Speed, accuracy, and framework discipline in decision-making",
"grow_goal": "Make reversible decisions within 48 hours; irreversible within 2 weeks with full framework",
"grow_reality_questions": [
"How many decisions are waiting for you right now?",
"Do you apply the reversibility test before deciding?",
"What was your last decision you would undo if you could?"
],
"grow_options": [
"Implement the Hard Call Decision Framework for all major decisions",
"Run pre-mortem on every irreversible decision",
"Create decision log with outcomes tracked at 90 days"
]
},
"people": {
"name": "People Development",
"description": "Investment in growing team capability and building bench strength",
"grow_goal": "Every direct report has a development plan and receives monthly coaching",
"grow_reality_questions": [
"Can you name each direct report's career aspiration?",
"How many internal promotions happened in the last 12 months?",
"Who is your successor if you left tomorrow?"
],
"grow_options": [
"Schedule monthly development conversations with each direct report",
"Create succession plan for your role and all key positions",
"Invest in leadership development for your top 3 high-potential people"
]
},
"eq": {
"name": "Emotional Intelligence",
"description": "Self-regulation, empathy, and ability to read and respond to others",
"grow_goal": "Navigate difficult conversations without defensiveness; read team energy accurately",
"grow_reality_questions": [
"When did you last lose your composure in a professional setting?",
"Can you identify when a team member is struggling before they tell you?",
"Do people feel safe giving you honest feedback?"
],
"grow_options": [
"Start a daily reflection practice (5 minutes end of day)",
"Request honest feedback from 3 trusted peers quarterly",
"Work with an executive coach on self-regulation"
]
},
"execution": {
"name": "Execution Discipline",
"description": "Ability to turn strategy into operational reality with accountability",
"grow_goal": "OKR completion rate above 70% with clear accountability at every level",
"grow_reality_questions": [
"What percentage of last quarter's goals were completed?",
"Do you have a weekly review cadence with your team?",
"When did you last hold someone accountable for a missed commitment?"
],
"grow_options": [
"Implement weekly leadership review with scorecard metrics",
"Create clear accountability structure for every major initiative",
"Track commitments made and kept across the team"
]
},
"self_awareness": {
"name": "Self-Awareness",
"description": "Honest understanding of strengths, blind spots, and impact on others",
"grow_goal": "Name your top 3 blind spots and have active mitigation strategies",
"grow_reality_questions": [
"What do people say about you when you're not in the room?",
"What feedback have you received more than once?",
"When did you last run a 360 review?"
],
"grow_options": [
"Run annual 360 feedback with hard questions",
"Join a founder/executive peer group for honest feedback",
"Keep an evidence file: wins, mistakes, and patterns"
]
}
}
ROLE_WEIGHT_PROFILES = {
"ceo": {"strategic": 1.3, "communication": 1.2, "delegation": 1.2, "decision": 1.1, "people": 1.0, "eq": 1.0, "execution": 0.9, "self_awareness": 1.1},
"cto": {"strategic": 1.1, "communication": 0.9, "delegation": 1.0, "decision": 1.2, "people": 1.0, "eq": 0.9, "execution": 1.3, "self_awareness": 1.0},
"coo": {"strategic": 1.0, "communication": 1.0, "delegation": 1.1, "decision": 1.1, "people": 1.1, "eq": 0.9, "execution": 1.4, "self_awareness": 0.9},
"cfo": {"strategic": 1.1, "communication": 1.0, "delegation": 0.9, "decision": 1.3, "people": 0.9, "eq": 0.9, "execution": 1.2, "self_awareness": 1.0},
"cro": {"strategic": 1.0, "communication": 1.3, "delegation": 1.1, "decision": 1.1, "people": 1.1, "eq": 1.1, "execution": 1.1, "self_awareness": 0.9},
"cpo": {"strategic": 1.2, "communication": 1.1, "delegation": 1.0, "decision": 1.2, "people": 1.0, "eq": 1.0, "execution": 1.1, "self_awareness": 1.0},
"vp": {"strategic": 1.0, "communication": 1.1, "delegation": 1.2, "decision": 1.0, "people": 1.2, "eq": 1.0, "execution": 1.2, "self_awareness": 0.9},
"founder": {"strategic": 1.2, "communication": 1.0, "delegation": 1.3, "decision": 1.1, "people": 0.9, "eq": 1.0, "execution": 1.0, "self_awareness": 1.2},
}
def get_traffic_light(score):
if score >= 7:
return "GREEN"
elif score >= 4:
return "YELLOW"
return "RED"
def assess(name, role, scores):
role_key = role.lower().replace(" ", "")
weights = ROLE_WEIGHT_PROFILES.get(role_key, {k: 1.0 for k in DIMENSIONS})
results = []
total_weighted = 0.0
total_weight = 0.0
for dim_key, dim_info in DIMENSIONS.items():
score = scores.get(dim_key, 5.0)
weight = weights.get(dim_key, 1.0)
weighted_score = score * weight
total_weighted += weighted_score
total_weight += weight
traffic = get_traffic_light(score)
results.append({
"dimension": dim_info["name"],
"key": dim_key,
"score": score,
"weight": round(weight, 2),
"weighted_score": round(weighted_score, 2),
"traffic_light": traffic,
"grow_goal": dim_info["grow_goal"],
"grow_reality_questions": dim_info["grow_reality_questions"],
"grow_options": dim_info["grow_options"]
})
overall = round(total_weighted / total_weight, 1) if total_weight > 0 else 0
results.sort(key=lambda x: x["score"])
top_gaps = [r for r in results if r["score"] < 7][:3]
top_strengths = sorted(results, key=lambda x: -x["score"])[:3]
return {
"assessment_date": datetime.now().strftime("%Y-%m-%d"),
"executive": name,
"role": role,
"overall_score": overall,
"overall_traffic_light": get_traffic_light(overall),
"dimensions": results,
"top_strengths": [{"dimension": s["dimension"], "score": s["score"]} for s in top_strengths],
"top_gaps": [{"dimension": g["dimension"], "score": g["score"], "grow_goal": g["grow_goal"]} for g in top_gaps],
"priority_development_area": top_gaps[0]["dimension"] if top_gaps else "None identified",
"recommended_grow_session": {
"goal": top_gaps[0]["grow_goal"] if top_gaps else "Maintain current strengths",
"reality_questions": top_gaps[0]["grow_reality_questions"] if top_gaps else [],
"options": top_gaps[0]["grow_options"] if top_gaps else [],
"will": "Define one specific action from the options above, with a deadline within 30 days"
}
}
def print_human(result):
print(f"\n{'='*70}")
print(f"LEADERSHIP ASSESSMENT - {result['executive']} ({result['role']})")
print(f"Date: {result['assessment_date']}")
print(f"Overall: {result['overall_score']}/10 [{result['overall_traffic_light']}]")
print(f"{'='*70}\n")
print("DIMENSION SCORES")
print("-" * 60)
for d in sorted(result["dimensions"], key=lambda x: -x["score"]):
bar = "#" * int(d["score"]) + "." * (10 - int(d["score"]))
print(f" [{d['traffic_light']:6s}] {d['dimension']:<25s} {d['score']:>4.1f} {bar} (weight: {d['weight']})")
print(f"\nTOP STRENGTHS")
print("-" * 40)
for s in result["top_strengths"]:
print(f" + {s['dimension']}: {s['score']}/10")
print(f"\nDEVELOPMENT GAPS")
print("-" * 40)
for g in result["top_gaps"]:
print(f" - {g['dimension']}: {g['score']}/10")
print(f" Goal: {g['grow_goal']}")
print(f"\nPRIORITY: {result['priority_development_area']}")
grow = result["recommended_grow_session"]
print(f"\nRECOMMENDED GROW SESSION")
print("-" * 40)
print(f" Goal: {grow['goal']}")
print(f" Reality: (ask these questions)")
for q in grow["reality_questions"]:
print(f" - {q}")
print(f" Options:")
for o in grow["options"]:
print(f" - {o}")
print(f" Will: {grow['will']}")
print()
def main():
parser = argparse.ArgumentParser(
description="Leadership Assessment Tool - Score leadership competencies across 8 dimensions"
)
parser.add_argument("--name", required=True, help="Executive name")
parser.add_argument("--role", required=True, help="Role (CEO, CTO, COO, CFO, CRO, CPO, VP, Founder)")
parser.add_argument("--strategic", type=float, default=5.0, help="Strategic thinking score (1-10)")
parser.add_argument("--communication", type=float, default=5.0, help="Communication score (1-10)")
parser.add_argument("--delegation", type=float, default=5.0, help="Delegation score (1-10)")
parser.add_argument("--decision", type=float, default=5.0, help="Decision quality score (1-10)")
parser.add_argument("--people", type=float, default=5.0, help="People development score (1-10)")
parser.add_argument("--eq", type=float, default=5.0, help="Emotional intelligence score (1-10)")
parser.add_argument("--execution", type=float, default=5.0, help="Execution discipline score (1-10)")
parser.add_argument("--self-awareness", type=float, default=5.0, help="Self-awareness score (1-10)", dest="self_awareness")
parser.add_argument("--json", action="store_true", help="Output as JSON")
args = parser.parse_args()
for attr in ["strategic", "communication", "delegation", "decision", "people", "eq", "execution", "self_awareness"]:
val = getattr(args, attr)
if val < 1 or val > 10:
print(f"Error: {attr} score must be between 1 and 10", file=sys.stderr)
sys.exit(1)
scores = {
"strategic": args.strategic,
"communication": args.communication,
"delegation": args.delegation,
"decision": args.decision,
"people": args.people,
"eq": args.eq,
"execution": args.execution,
"self_awareness": args.self_awareness
}
result = assess(args.name, args.role, scores)
if args.json:
print(json.dumps(result, indent=2))
else:
print_human(result)
if __name__ == "__main__":
main()
Related skills
FAQ
What does Executive Mentor do differently from other advisory skills?
Other C-suite skills build plans; Executive Mentor breaks them by finding fatal assumptions before competitors, the board, or customers do.
What is the pre-mortem framework?
You state the plan as if it succeeded, then assume it failed 12 months later, list failure modes, rate probability times impact for severity, and build hedges and tripwires for the killers.