{"id":"912080c4-4367-455c-9c19-b74f34f72d6b","shortId":"by3nbR","kind":"skill","title":"planning-under-uncertainty","tagline":"Plan under uncertainty: uncertainty map, hypotheses + experiments, buffers + triggers, cadence.","description":"# Planning Under Uncertainty\n\n## Scope\n\n**Covers**\n- Turning ambiguity into an executable plan via **hypotheses, experiments, and decision triggers**\n- Diagnosing “what’s actually happening” before acting (especially in **crisis / wartime** situations)\n- Using data as a **compass (directional checks)** rather than a GPS (false precision)\n- Building **buffers and contingencies** so the plan survives chaos\n- Setting a **cadence** for learning, decision-making, and stakeholder communication\n\n**When to use**\n- “We need a plan, but the requirements are unclear and the outcome is uncertain.”\n- “Create a hypothesis-driven plan (experiments + decision rules) for this initiative.”\n- “We’re in a crisis (drop in retention/revenue/reliability) and need a wartime diagnosis + action plan.”\n- “Help us build contingencies, buffers, and pivot triggers before we commit.”\n\n**When NOT to use**\n- You don’t agree on the underlying problem/opportunity (use `problem-definition`).\n- You need to choose what to do among many options (use `prioritizing-roadmap`).\n- You already have a clear plan and only need dates/milestones and stakeholder cadence (use `managing-timelines`).\n- You need a decision-ready PRD/spec for build execution (use `writing-prds` / `writing-specs-designs`).\n- You’re weighing a specific binary or multi-option decision with known trade-offs (use `evaluating-trade-offs`).\n- You need to map systemic interdependencies and feedback loops, not plan under ambiguity (use `systems-thinking`).\n- You need to cut scope to hit a fixed timebox, not explore unknowns (use `scoping-cutting`).\n\n## Inputs\n\n**Minimum required**\n- The initiative context and desired outcome (“what are we trying to change?”)\n- Time horizon and urgency (wartime vs peacetime)\n- Constraints/guardrails (quality, compliance, brand, budget, “must not worsen” metrics)\n- Stakeholders and decision rights (who decides pivot/stop/scale?)\n- Top unknowns/assumptions (what would change the plan?)\n- Current signals (what data exists; what feels true but unproven?)\n\n**Missing-info strategy**\n- Ask up to 5 questions from [references/INTAKE.md](references/INTAKE.md).\n- If answers aren’t available, proceed with explicit assumptions and list **Open questions** that could change the plan.\n\n## Outputs (deliverables)\n\nProduce an **Uncertainty Planning Pack** in Markdown (in-chat; or as files if the user requests), containing:\n\n1) **Decision frame** (objective, “why now”, success + guardrails, time horizon, decision owner)\n2) **Uncertainty map** (assumptions/unknowns, confidence, impact, validation plan)\n3) **Hypotheses + experiment portfolio** (what we’ll learn, how, and what decision it enables)\n4) **Plan v0 with buffers + contingencies** (phases/options, triggers, fallbacks, pivot criteria)\n5) **Cadence + comms** (learning review ritual, update template, decision log)\n6) **Risks / Open questions / Next steps** (always included)\n\nTemplates: [references/TEMPLATES.md](references/TEMPLATES.md)  \nExpanded guidance: [references/WORKFLOW.md](references/WORKFLOW.md)\n\n## Workflow (7 steps)\n\n### 1) Intake + mode setting (wartime vs peacetime)\n- **Inputs:** User request; [references/INTAKE.md](references/INTAKE.md).\n- **Actions:** Clarify urgency, stakes, and what decision is needed. Decide whether you’re in **diagnosis-first wartime mode** or **exploration peacetime mode**.\n- **Outputs:** Short decision frame draft + mode declaration.\n- **Checks:** You can state: “We’re optimizing for <fast stabilization / learning / growth>. The decision we need by <date> is <pivot/stop/scale/commit>.”\n\n### 2) Diagnose reality (humility first)\n- **Inputs:** Current signals, anecdotes, dashboards, incident reports, qualitative inputs.\n- **Actions:** Separate symptoms from hypotheses. Write 3–7 plausible explanations, and identify what evidence would falsify each. Avoid prematurely picking a favorite story.\n- **Outputs:** “What we know / don’t know” + initial hypothesis set.\n- **Checks:** At least one hypothesis contradicts the team’s initial intuition (to reduce confirmation bias).\n\n### 3) Build the uncertainty map (assumptions → validation plan)\n- **Inputs:** Hypotheses; constraints; stakeholders; time horizon.\n- **Actions:** Create an uncertainty map of assumptions/unknowns with confidence and impact; prioritize the top items that would change the plan.\n- **Outputs:** Uncertainty map table + prioritized “top 5 unknowns”.\n- **Checks:** Every top unknown has a clear validation method and an owner.\n\n### 4) Define hypotheses + decision rules (learning over “wins”)\n- **Inputs:** Top unknowns; success/guardrails; risk tolerance.\n- **Actions:** Turn unknowns into testable hypotheses. For each hypothesis, define: expected learning, success signal(s), guardrails, and the decision the result enables (stop/pivot/scale).\n- **Outputs:** Hypothesis statements + decision rules.\n- **Checks:** Each hypothesis ties to a decision; “winning” is defined as learning, not just positive results.\n\n### 5) Design a reproducible testing process (many shots at bat)\n- **Inputs:** Hypothesis set; available tools; team capacity.\n- **Actions:** Create an experiment portfolio that balances speed vs confidence (smoke tests, prototypes, A/Bs, customer calls, operational drills). Set a cadence to run and review tests continuously.\n- **Outputs:** Experiment portfolio table + review cadence.\n- **Checks:** At least 1 fast test can run within the next 1–2 weeks (or faster in wartime).\n\n### 6) Turn learning into a plan with buffers, contingencies, and triggers\n- **Inputs:** Experiment portfolio; constraints; dependencies; timeline needs.\n- **Actions:** Draft Plan v0 with phases/options; add buffers; define contingencies and explicit triggers for pivot/rollback/escalation. Use data as a compass: focus on directional signals and early warnings, not false certainty.\n- **Outputs:** Plan v0 + buffer/contingency section + trigger list.\n- **Checks:** There is a clear “if X happens, we will do Y” for the top risks/unknowns.\n\n### 7) Quality gate + finalize\n- **Inputs:** Full draft pack.\n- **Actions:** Run [references/CHECKLISTS.md](references/CHECKLISTS.md) and score with [references/RUBRIC.md](references/RUBRIC.md). Ensure **Risks / Open questions / Next steps** exist with owners and time bounds.\n- **Outputs:** Final Uncertainty Planning Pack.\n- **Checks:** A stakeholder can approve the plan async and the team can execute without re-litigating the ambiguity.\n\n## Anti-patterns (common failure modes)\n\n1. **Analysis paralysis.** Mapping every possible unknown without prioritizing. The team spends weeks building an exhaustive uncertainty map but never runs an experiment to resolve the top unknowns.\n2. **Premature commitment.** Skipping the hypothesis phase and committing to a delivery timeline before the core assumptions are validated. The plan looks precise but is built on unproven foundations.\n3. **Experiment theater.** Defining experiments that cannot actually falsify the hypothesis (e.g., “talk to 2 users and see if they like it”). The team goes through the motions but learns nothing actionable.\n4. **Buffer hoarding.** Adding excessive buffers to every phase without tying them to specific risks. Buffers become hidden slack instead of targeted contingency for named unknowns.\n5. **Compass-to-GPS drift.** Starting with directional signals (good) but gradually treating early data as definitive proof. The team locks into a path before the data warrants it.\n\n## Quality gate (required)\n- Use [references/CHECKLISTS.md](references/CHECKLISTS.md) and [references/RUBRIC.md](references/RUBRIC.md).\n- Always include: **Risks**, **Open questions**, **Next steps**.\n\n## Examples\n\n**Example 1 (ambiguous initiative):** “We think onboarding is hurting conversion, but we’re not sure why. Create an uncertainty plan with hypotheses, experiments, and pivot triggers.”\nExpected: an uncertainty map + experiment portfolio (qual + quant) + a Plan v0 that commits to learning milestones, not premature delivery dates.\n\n**Example 2 (wartime):** “Retention dropped 15% this week after a release. We need a wartime plan: diagnose root causes, run rapid tests, and decide whether to rollback or patch.”\nExpected: diagnosis-first workflow with falsifiable hypotheses, tight guardrails, and explicit rollback/escalation triggers.\n\n**Boundary example (timeline management):** “We know what we’re building; just need a milestone plan with dates and stakeholder cadence.”\nResponse: if the scope and approach are clear, use `managing-timelines` directly; this skill is for when the *what* or *how* is still uncertain.\n\n**Boundary example (trade-off decision):** “Should we build vs buy this component? Help us evaluate the trade-offs.”\nResponse: use `evaluating-trade-offs` for a structured decision between known options; this skill is for when you don’t yet know what the options are.\n\n**Boundary example (PRD):** “Write a full PRD for Feature X.”\nResponse: clarify uncertainty first (this skill), then use `writing-prds` once the hypotheses, constraints, and decision gates are clear.","tags":["planning","under","uncertainty","lenny","skills","plus","liqiongyu","agent-skills","ai-agents","automation","claude","codex"],"capabilities":["skill","source-liqiongyu","skill-planning-under-uncertainty","topic-agent-skills","topic-ai-agents","topic-automation","topic-claude","topic-codex","topic-prompt-engineering","topic-refoundai","topic-skillpack"],"categories":["lenny_skills_plus"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/liqiongyu/lenny_skills_plus/planning-under-uncertainty","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add liqiongyu/lenny_skills_plus","source_repo":"https://github.com/liqiongyu/lenny_skills_plus","install_from":"skills.sh"}},"qualityScore":"0.474","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 49 github stars · SKILL.md body (9,058 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:23.939Z","embedding":null,"createdAt":"2026-04-18T22:16:50.376Z","updatedAt":"2026-04-22T00:56:23.939Z","lastSeenAt":"2026-04-22T00:56:23.939Z","tsv":"'1':357,430,714,722,859,1022 '15':1072 '2':369,487,723,887,930,1068 '3':377,507,549,916 '4':391,603,948 '5':314,402,589,661,974 '6':412,729 '7':428,508,800 'a/bs':691 'act':38 'action':119,442,501,563,617,678,747,808,947 'actual':35,923 'ad':951 'add':753 'agre':139 'alreadi':163 'alway':418,1013 'ambigu':21,230,852,1023 'among':155 'analysi':860 'anecdot':495 'answer':320 'anti':854 'anti-pattern':853 'approach':1135 'approv':838 'aren':321 'ask':311 'assumpt':327,554,903 'assumptions/unknowns':372,569 'async':841 'avail':323,674 'avoid':518 'balanc':684 'bat':670 'becom':964 'bias':548 'binari':202 'bound':828 'boundari':1110,1155,1202 'brand':277 'budget':278 'buffer':12,58,125,395,736,754,949,953,963 'buffer/contingency':780 'build':57,123,187,550,872,1119,1163 'built':912 'buy':1165 'cadenc':14,68,174,403,698,710,1129 'call':693 'cannot':922 'capac':677 'caus':1085 'certainti':776 'chang':266,294,334,580 'chao':65 'chat':348 'check':50,472,534,591,645,711,784,834 'choos':151 'clarifi':443,1213 'clear':166,597,788,1137,1231 'comm':404 'commit':131,889,895,1059 'common':856 'communic':76 'compass':48,766,976 'compass-to-gp':975 'complianc':276 'compon':1167 'confid':373,571,687 'confirm':547 'constraint':559,743,1226 'constraints/guardrails':274 'contain':356 'context':257 'conting':60,124,396,737,756,970 'continu':704 'contradict':539 'convers':1030 'core':902 'could':333 'cover':19 'creat':94,564,679,1037 'crisi':41,110 'criteria':401 'current':297,493 'custom':692 'cut':238,251 'dashboard':496 'data':45,300,763,989,1001 'date':1066,1126 'dates/milestones':171 'decid':288,451,1090 'decis':30,72,101,183,207,285,358,367,388,410,448,467,481,606,635,643,651,1160,1184,1228 'decision-mak':71 'decision-readi':182 'declar':471 'defin':604,626,654,755,919 'definit':147,991 'deliver':338 'deliveri':898,1065 'depend':744 'design':196,662 'desir':259 'diagnos':32,488,1083 'diagnosi':118,457,1098 'diagnosis-first':456,1097 'direct':49,769,982,1142 'draft':469,748,806 'drift':979 'drill':695 'driven':98 'drop':111,1071 'e.g':927 'earli':772,988 'enabl':390,638 'ensur':817 'especi':39 'evalu':215,1170,1178 'evaluating-trade-off':214,1177 'everi':592,863,955 'evid':514 'exampl':1020,1021,1067,1111,1156,1203 'excess':952 'execut':24,188,846 'exhaust':874 'exist':301,823 'expand':423 'expect':627,1047,1096 'experi':11,28,100,379,681,706,741,881,917,920,1043,1051 'explan':510 'explicit':326,758,1107 'explor':246,462 'failur':857 'fallback':399 'fals':55,775 'falsifi':516,924,1102 'fast':715 'faster':726 'favorit':522 'featur':1210 'feedback':225 'feel':303 'file':351 'final':803,830 'first':458,491,1099,1215 'fix':243 'focus':767 'foundat':915 'frame':359,468 'full':805,1207 'gate':802,1005,1229 'goe':940 'good':984 'gps':54,978 'gradual':986 'guardrail':364,632,1105 'guidanc':424 'happen':36,791 'help':121,1168 'hidden':965 'hit':241 'hoard':950 'horizon':268,366,562 'humil':490 'hurt':1029 'hypothes':10,27,378,505,558,605,622,1042,1103,1225 'hypothesi':97,532,538,625,641,647,672,892,926 'hypothesis-driven':96 'identifi':512 'impact':374,573 'in-chat':346 'incid':497 'includ':419,1014 'info':309 'initi':105,256,531,543,1024 'input':252,437,492,500,557,611,671,740,804 'instead':967 'intak':431 'interdepend':223 'intuit':544 'item':577 'know':527,530,1115,1197 'known':209,1186 'learn':70,384,405,608,628,656,731,945,1061 'least':536,713 'like':936 'list':329,783 'litig':850 'll':383 'lock':995 'log':411 'look':908 'loop':226 'make':73 'manag':177,1113,1140 'managing-timelin':176,1139 'mani':156,667 'map':9,221,371,553,567,585,862,876,1050 'markdown':345 'method':599 'metric':282 'mileston':1062,1123 'minimum':253 'miss':308 'missing-info':307 'mode':432,460,464,470,858 'motion':943 'multi':205 'multi-opt':204 'must':279 'name':972 'need':81,115,149,170,180,219,236,450,483,746,1079,1121 'never':878 'next':416,721,821,1018 'noth':946 'object':360 'off':212,217,1174,1180 'onboard':1027 'one':537 'open':330,414,819,1016 'oper':694 'optim':478 'option':157,206,1187,1200 'outcom':91,260 'output':337,465,524,583,640,705,777,829 'owner':368,602,825 'pack':343,807,833 'paralysi':861 'patch':1095 'path':998 'pattern':855 'peacetim':273,436,463 'phase':893,956 'phases/options':397,752 'pick':520 'pivot':127,400,1045 'pivot/rollback/escalation':761 'pivot/stop/scale':289 'pivot/stop/scale/commit':486 'plan':2,5,15,25,63,83,99,120,167,228,296,336,342,376,392,556,582,734,749,778,832,840,907,1040,1056,1082,1124 'planning-under-uncertainti':1 'plausibl':509 'portfolio':380,682,707,742,1052 'posit':659 'possibl':864 'prd':1204,1208 'prd/spec':185 'prds':192,1222 'precis':56,909 'prematur':519,888,1064 'priorit':160,574,587,867 'prioritizing-roadmap':159 'problem':146 'problem-definit':145 'problem/opportunity':143 'proceed':324 'process':666 'produc':339 'proof':992 'prototyp':690 'qual':1053 'qualit':499 'qualiti':275,801,1004 'quant':1054 'question':315,331,415,820,1017 'rapid':1087 'rather':51 're':107,198,454,477,849,1033,1118 're-litig':848 'readi':184 'realiti':489 'reduc':546 'references/checklists.md':810,811,1008,1009 'references/intake.md':317,318,440,441 'references/rubric.md':815,816,1011,1012 'references/templates.md':421,422 'references/workflow.md':425,426 'releas':1077 'report':498 'reproduc':664 'request':355,439 'requir':86,254,1006 'resolv':883 'respons':1130,1175,1212 'result':637,660 'retent':1070 'retention/revenue/reliability':113 'review':406,702,709 'right':286 'risk':413,615,818,962,1015 'risks/unknowns':799 'ritual':407 'roadmap':161 'rollback':1093 'rollback/escalation':1108 'root':1084 'rule':102,607,644 'run':700,718,809,879,1086 'scope':18,239,250,1133 'scoping-cut':249 'score':813 'section':781 'see':933 'separ':502 'set':66,433,533,673,696 'short':466 'shot':668 'signal':298,494,630,770,983 'situat':43 'skill':1144,1189,1217 'skill-planning-under-uncertainty' 'skip':890 'slack':966 'smoke':688 'source-liqiongyu' 'spec':195 'specif':201,961 'speed':685 'spend':870 'stake':445 'stakehold':75,173,283,560,836,1128 'start':980 'state':475 'statement':642 'step':417,429,822,1019 'still':1153 'stop/pivot/scale':639 'stori':523 'strategi':310 'structur':1183 'success':363,629 'success/guardrails':614 'sure':1035 'surviv':64 'symptom':503 'system':222,233 'systems-think':232 'tabl':586,708 'talk':928 'target':969 'team':541,676,844,869,939,994 'templat':409,420 'test':665,689,703,716,1088 'testabl':621 'theater':918 'think':234,1026 'tie':648,958 'tight':1104 'time':267,365,561,827 'timebox':244 'timelin':178,745,899,1112,1141 'toler':616 'tool':675 'top':290,576,588,593,612,798,885 'topic-agent-skills' 'topic-ai-agents' 'topic-automation' 'topic-claude' 'topic-codex' 'topic-prompt-engineering' 'topic-refoundai' 'topic-skillpack' 'trade':211,216,1158,1173,1179 'trade-off':210,1157,1172 'treat':987 'tri':264 'trigger':13,31,128,398,739,759,782,1046,1109 'true':304 'turn':20,618,730 'uncertain':93,1154 'uncertainti':4,7,8,17,341,370,552,566,584,831,875,1039,1049,1214 'unclear':88 'under':142 'unknown':247,590,594,613,619,865,886,973 'unknowns/assumptions':291 'unproven':306,914 'updat':408 'urgenc':270,444 'us':122,1169 'use':44,79,135,144,158,175,189,213,231,248,762,1007,1138,1176,1219 'user':354,438,931 'v0':393,750,779,1057 'valid':375,555,598,905 'via':26 'vs':272,435,686,1164 'warn':773 'warrant':1002 'wartim':42,117,271,434,459,728,1069,1081 'week':724,871,1074 'weigh':199 'whether':452,1091 'win':610,652 'within':719 'without':847,866,957 'workflow':427,1100 'worsen':281 'would':293,515,579 'write':191,194,506,1205,1221 'writing-prd':190,1220 'writing-specs-design':193 'x':790,1211 'y':795 'yet':1196","prices":[{"id":"9c1ae2d8-7711-4326-bb83-7d3b47cd1502","listingId":"912080c4-4367-455c-9c19-b74f34f72d6b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"liqiongyu","category":"lenny_skills_plus","install_from":"skills.sh"},"createdAt":"2026-04-18T22:16:50.376Z"}],"sources":[{"listingId":"912080c4-4367-455c-9c19-b74f34f72d6b","source":"github","sourceId":"liqiongyu/lenny_skills_plus/planning-under-uncertainty","sourceUrl":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/planning-under-uncertainty","isPrimary":false,"firstSeenAt":"2026-04-18T22:16:50.376Z","lastSeenAt":"2026-04-22T00:56:23.939Z"}],"details":{"listingId":"912080c4-4367-455c-9c19-b74f34f72d6b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"liqiongyu","slug":"planning-under-uncertainty","github":{"repo":"liqiongyu/lenny_skills_plus","stars":49,"topics":["agent-skills","ai-agents","automation","claude","codex","prompt-engineering","refoundai","skillpack"],"license":"apache-2.0","html_url":"https://github.com/liqiongyu/lenny_skills_plus","pushed_at":"2026-04-04T06:30:11Z","description":"86 agent-executable skill packs converted from RefoundAI’s Lenny skills (unofficial). Works with Codex + Claude Code.","skill_md_sha":"973f92605ef50b3c9186b089093da23d68f16525","skill_md_path":"skills/planning-under-uncertainty/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/planning-under-uncertainty"},"layout":"multi","source":"github","category":"lenny_skills_plus","frontmatter":{"name":"planning-under-uncertainty","description":"Plan under uncertainty: uncertainty map, hypotheses + experiments, buffers + triggers, cadence."},"skills_sh_url":"https://skills.sh/liqiongyu/lenny_skills_plus/planning-under-uncertainty"},"updatedAt":"2026-04-22T00:56:23.939Z"}}