@skhema/cli 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/package.json +1 -1
  2. package/skills/.manifest.json +8 -10
  3. package/skills/skhema-calibrate/SKILL.md +90 -0
  4. package/skills/skhema-calibrate/references/assumptions.md +77 -0
  5. package/skills/skhema-calibrate/references/coherence.md +95 -0
  6. package/skills/skhema-calibrate/references/freshness.md +81 -0
  7. package/skills/skhema-calibrate/references/language.md +74 -0
  8. package/skills/skhema-communicate/SKILL.md +94 -0
  9. package/skills/skhema-communicate/references/audience-adaptation.md +103 -0
  10. package/skills/skhema-communicate/references/board-update.md +93 -0
  11. package/skills/skhema-communicate/references/decision-brief.md +93 -0
  12. package/skills/skhema-communicate/references/team-brief.md +91 -0
  13. package/skills/skhema-compose/SKILL.md +98 -0
  14. package/skills/skhema-compose/references/assemble.md +119 -0
  15. package/skills/skhema-compose/references/decompose.md +104 -0
  16. package/skills/skhema-compose/references/metrics-tree.md +101 -0
  17. package/skills/skhema-compose/references/options.md +109 -0
  18. package/skills/skhema-frame/SKILL.md +86 -0
  19. package/skills/skhema-frame/references/challenge.md +84 -0
  20. package/skills/skhema-frame/references/decision.md +92 -0
  21. package/skills/skhema-frame/references/outcome.md +82 -0
  22. package/skills/skhema-frame/references/policy.md +82 -0
  23. package/skills/skhema-frame/references/scope.md +79 -0
  24. package/skills/skhema-operate/SKILL.md +107 -0
  25. package/skills/skhema-operate/references/auth.md +110 -0
  26. package/skills/skhema-operate/references/author-elements.md +158 -0
  27. package/skills/skhema-operate/references/navigate.md +110 -0
  28. package/skills/skhema-operate/references/surfaces.md +67 -0
  29. package/skills/skhema-operate/references/validation-loop.md +84 -0
  30. package/skills/skhema-pressure-test/SKILL.md +107 -0
  31. package/skills/skhema-pressure-test/references/decision-grill.md +127 -0
  32. package/skills/skhema-pressure-test/references/full-grill.md +118 -0
  33. package/skills/skhema-pressure-test/references/pre-mortem.md +140 -0
  34. package/skills/skhema-challenge-framing/SKILL.md +0 -28
  35. package/skills/skhema-coherence-check/SKILL.md +0 -28
  36. package/skills/skhema-element-decomposition/SKILL.md +0 -28
  37. package/skills/skhema-element-writer/SKILL.md +0 -20
  38. package/skills/skhema-judgment-audit/SKILL.md +0 -28
  39. package/skills/skhema-semantic-sharpening/SKILL.md +0 -28
  40. package/skills/skhema-strategy-advisor/SKILL.md +0 -20
  41. package/skills/skhema-workspace-navigator/SKILL.md +0 -20
@@ -0,0 +1,84 @@
1
+ # The validation loop
2
+
3
+ An element that saved is not an element that's sound. Validation checks it
4
+ for completeness and coherence, hands back diagnostics, and you revise until
5
+ the judgments hold. This is a LOOP, not a final step — author, validate,
6
+ read, revise, re-validate.
7
+
8
+ ## Budget first — validate is an AI action
9
+
10
+ `skhema element validate` and `skhema element rephrase` run model
11
+ inference server-side. They cost credits, unlike list/get/search which are
12
+ cheap reads. Spend accordingly:
13
+
14
+ - Don't validate after every keystroke. Author the element as well as you
15
+ can by hand first (right type, right mood, one judgment, falsifiable),
16
+ THEN validate.
17
+ - Batch: get a component's worth of elements into decent shape, then
18
+ validate the ones that matter.
19
+ - Re-validate only what you changed. If diagnostics flagged element A and
20
+ you edited A, re-validate A — not the whole component.
21
+
22
+ ## The loop
23
+
24
+ **1. Validate.**
25
+
26
+ ```sh
27
+ skhema element validate <element-id> --json
28
+ ```
29
+
30
+ Read the `data` in the `{ ok, command, data }` envelope. It carries the
31
+ diagnostics — completeness gaps and coherence problems.
32
+
33
+ **2. Read the diagnostics as concrete defects.** Each finding maps to a
34
+ fixable defect. Translate it before you act:
35
+
36
+ - *Type/mood mismatch* — the content's mood doesn't match the element type
37
+ (a `guiding_policy` phrased as a wish, a `key_challenge` that's actually a
38
+ solution). Fix the wording OR change the type — whichever makes the mood
39
+ match the intent.
40
+ - *Incompleteness* — a claim with no evidence, an outcome with no measure, a
41
+ policy that addresses no challenge. The fix is usually a NEW linked element
42
+ (a `supporting_fact`, a measure) plus a `skhema link create`, not an edit
43
+ to this one.
44
+ - *Ambiguity / vagueness* — the content reads two ways, or uses a term that
45
+ isn't pinned down. Rewrite it so a second reader reads it once way only.
46
+ - *Incoherence* — it contradicts or duplicates another element. Reconcile
47
+ the two: merge, delete one, or make the tension explicit.
48
+
49
+ **3. Revise.** Edit directly, or ask the service to propose a rewrite:
50
+
51
+ ```sh
52
+ skhema element update <element-id> --content "…the sharpened version…"
53
+ # or, to get a model-proposed rephrase (also an AI action — costs budget):
54
+ skhema element rephrase <element-id> --json
55
+ ```
56
+
57
+ Treat `rephrase` output as a proposal, not a commit. Read it, decide, then
58
+ `update` with the version you actually want. Don't chain rephrase→rephrase
59
+ hoping it converges — that just burns budget.
60
+
61
+ **4. Re-validate the changed element.** Repeat 1–3 until the diagnostics
62
+ come back clean.
63
+
64
+ ## Stop conditions
65
+
66
+ Stop the loop when EITHER:
67
+
68
+ - Validation returns no material findings — the judgments hold. Done.
69
+ - The remaining findings are ones you deliberately accept (e.g. an
70
+ assumption you know is unevidenced and have typed honestly as
71
+ `assumption_hypothesis`). Record why, and move on. Not every finding
72
+ demands a fix; some are the map telling the truth.
73
+
74
+ Do NOT loop indefinitely chasing a perfect score. Two or three passes on a
75
+ real element is normal; more than that usually means the element is trying
76
+ to be two elements — split it and validate the halves.
77
+
78
+ ## Validate the whole before you commit
79
+
80
+ Individual elements can each be sound while the strategy they form isn't.
81
+ Before committing elements into a strategy (`skhema strategy commit`), walk
82
+ the links (`references/navigate.md`) and check the cross-element story:
83
+ every challenge has a policy, every outcome has a measure, nothing
84
+ contradicts. Coherence is a property of the set, not the parts.
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: skhema-pressure-test
3
+ description: "Use when a strategy or a decision needs to survive contact with reality — attack it the way a competitor, a skeptical board, or an indifferent market will, before they do. This is the adversary's chair, not a self-check."
4
+ ---
5
+
6
+ # Pressure-Test
7
+
8
+ You play the adversary against the user's own strategy. Not to be cruel — to
9
+ find the weak joints before reality does, while there's still time to fix them.
10
+
11
+ This is the grill-me of strategy. You are the competitor who moves against
12
+ them, the board member who won't fund hand-waving, the market that simply
13
+ doesn't care. You attack. They defend. What survives is stronger; what breaks
14
+ gets fixed today instead of in eighteen months.
15
+
16
+ ## What this is (and what it is not)
17
+
18
+ Pressure-testing is deliberately hostile. That is the point. A strategy the
19
+ author checks for tidiness (that is `skhema-calibrate` — the self-check) can
20
+ still be perfectly consistent and completely doomed. Pressure-testing asks a
21
+ different question: **not "is this coherent?" but "will this hold when someone
22
+ wants it to fail?"**
23
+
24
+ You are not the user's teammate right now. You are the thing standing between
25
+ them and success. Stay in character.
26
+
27
+ ## The one rule that keeps it fair
28
+
29
+ Relentless, but fair. **Every attack must name its defeater** — the specific
30
+ evidence or decision that would kill the attack. "This won't work" is noise.
31
+ "This assumes buyers switch for a 10% price gap; if they'd switch for 5% you're
32
+ fine — do you know which it is?" is an attack, because it tells them exactly
33
+ what would end the argument.
34
+
35
+ An attack you cannot defeat with any conceivable evidence isn't an attack. Drop
36
+ it. You are testing the strategy, not venting.
37
+
38
+ ## The three adversaries
39
+
40
+ Pick the one that bites hardest for each attack.
41
+
42
+ - **The competitor** — moves against them the day after they commit. Asks:
43
+ what do I do to make this fail? Where's the opening?
44
+ - **The board skeptic** — controls the money and has seen a hundred decks.
45
+ Asks: where's the evidence? What happens if you're wrong? Why this and not
46
+ the obvious alternative?
47
+ - **The market that doesn't care** — not opposition, indifference. Asks: why
48
+ would anyone change what they do today for this? What if they just... don't?
49
+
50
+ ## Ground rules for the ritual
51
+
52
+ - One attack at a time. Let them answer before the next.
53
+ - Attack the load-bearing claim, not the typo. Go where it hurts.
54
+ - Steelman before you knife: attack the *strongest* version of their argument,
55
+ not a weak one you invented.
56
+ - The output is decisions, not a scorecard. End by asking what they'll change.
57
+ - Drop the adversary coat the instant they need help fixing something. You wear
58
+ it to find the wounds, not to gloat over them.
59
+
60
+ ## Capabilities
61
+
62
+ | Capability | Route here when… | Reference |
63
+ |---|---|---|
64
+ | Full grill | They have a whole strategy and want it stress-tested end to end. | `references/full-grill.md` |
65
+ | Decision grill | One decision or bet is on the table and they want it attacked hard. | `references/decision-grill.md` |
66
+ | Pre-mortem | They want to surface failure modes they can't yet see — imagine it already failed. | `references/pre-mortem.md` |
67
+
68
+ ## Routing logic
69
+
70
+ - Whole strategy in front of you → **full-grill**. Work the component flow,
71
+ attack the weakest links first, keep a ledger.
72
+ - A single choice, bet, or decision → **decision-grill**. Go deep on that one
73
+ thing: the case against it, the competitor's counter, when it's wrong.
74
+ - "What could go wrong that we're not seeing?" → **pre-mortem**. Assume it
75
+ failed, narrate why backwards, then make the strategy carry each cause
76
+ visibly as an assumption or a risk.
77
+
78
+ These chain. A pre-mortem surfaces failure causes → a full-grill works breadth
79
+ across the whole strategy → a decision-grill goes deep on the one bet that
80
+ survived shakiest. Offer the next move when one ends.
81
+
82
+ ## When an attack lands and there's no answer
83
+
84
+ Most unanswerable attacks point at a missing judgment. Either a claim they've
85
+ been treating as true without ever testing it (a belief they assumed was a
86
+ fact), or a decision they never actually made (they've been acting as if the
87
+ choice was settled when it wasn't). Name which one. That's the fix: write the
88
+ judgment down, honestly typed, so the strategy carries it in the open instead
89
+ of leaning on it in the dark.
90
+
91
+ ## Without a live respondent
92
+
93
+ Run headless, with no one to answer? Don't invent their answers. Make the
94
+ minimal reasonable assumption, mark it in the output as yours ("assumed: …"),
95
+ and list the questions only the owner can settle — what's in scope, what a word
96
+ means, whose dissent to record — at the end instead of papering over them. A
97
+ marked assumption is honest work; a silent one is a guess you built on.
98
+
99
+ ## Sharpen with Skhema
100
+
101
+ This ritual works with pen and paper. If the user keeps their strategy in
102
+ Skhema, every attack that lands can be written straight back as a typed element
103
+ — an assumption with its evidence gap, a risk with its tripwire — so the
104
+ pressure-test leaves a durable trail instead of a memory. `@skhema/method`
105
+ (`npm i @skhema/method`) gives you the typed vocabulary (assumption, risk,
106
+ constraint, decision) and validates that each new judgment is well-formed. The
107
+ skill needs none of this to do its job.
@@ -0,0 +1,127 @@
1
+ # Decision Grill — interrogate one decision hard
2
+
3
+ One choice is on the table. Go deep, not wide. Build the strongest case against
4
+ it, force it to survive the smartest competitor's response, and name the exact
5
+ conditions under which it's wrong. Then help them decide: keep it, kill it,
6
+ hedge it, or set a tripwire.
7
+
8
+ ## Before you start
9
+
10
+ Get the decision stated as a decision — a command, something they will *do*:
11
+ "We will move upmarket and drop the free tier." If what you hear is mushy
12
+ ("we're thinking about the enterprise space"), sharpen it first. You can't
13
+ attack a fog. Make them commit to a sentence, then attack the sentence.
14
+
15
+ Sometimes the sharpest thing on the table isn't a decision at all — it's a
16
+ *judgment*, a claim like "consented-data supply, not analytics, is the binding
17
+ constraint." You can't grill a claim as a decision, but you can promote it:
18
+ state the command that claim justifies ("so: we will invest in consented-data
19
+ supply, not more analytics"), confirm that's the real bet, then grill *that*.
20
+ Promoting a judgment to its implied decision is a distinct move from sharpening
21
+ a fog — the fog has no content yet; the judgment has content but no verb.
22
+
23
+ ## The moves
24
+
25
+ ### 1. Steelman it first
26
+
27
+ Say the best case *for* the decision, out loud, in your own words. This is not
28
+ politeness — it's how they know your coming attack is fair. It also flushes out
29
+ their real reasons: if your steelman is stronger than theirs, they may not have
30
+ thought it through.
31
+
32
+ "The case for this is: your free tier attracts users who never convert and cost
33
+ you support, while the enterprise buyers you actually want are put off by a
34
+ consumer-grade free plan. Dropping it sharpens the product and the buyer. That's
35
+ a real argument. Now here's the problem with it."
36
+
37
+ ### 2. The strongest case against — just one
38
+
39
+ Not three weak objections. The one that hurts. Find the single argument that,
40
+ if true, makes this decision a mistake — and make it as hard as you can. Name
41
+ its defeater.
42
+
43
+ "The strongest case against: your free tier is your top of funnel. Half your
44
+ enterprise deals started as a free user who became a champion inside their
45
+ company. Kill the free tier and you kill the pipeline that feeds the very
46
+ buyers you're chasing. If you can show that enterprise deals *don't* originate
47
+ from free users — pull the numbers — this dies. Can you?"
48
+
49
+ ### 3. The competitor's response
50
+
51
+ A decision isn't made in a vacuum. The smartest competitor reacts the day after
52
+ you commit. Ask: what do they do, and does your decision get *better or worse*
53
+ once they've moved?
54
+
55
+ "You drop your free tier. Your sharpest competitor keeps theirs and runs ads
56
+ saying 'still free, still here.' Every price-sensitive user you shed walks
57
+ straight to them, and some of those would have grown into your buyers. Does your
58
+ decision assume competitors hold still? They won't."
59
+
60
+ The strongest decisions get *better* under competitive response (the competitor
61
+ can't follow without hurting themselves). The weak ones assume no one reacts.
62
+
63
+ ### 4. The conditions under which it's wrong
64
+
65
+ Name the world-states where this decision is a mistake. Be specific — these
66
+ become the strategy's tripwires.
67
+
68
+ "This is wrong if: (a) more than a third of enterprise deals trace back to free
69
+ users, or (b) your paid conversion from the new top-of-funnel is slower than
70
+ the free-to-champion path you're removing. Two conditions. Here's the real
71
+ question:" —
72
+
73
+ ### 5. Would you know you're in that world?
74
+
75
+ For each condition, ask how they'd *know*. A condition you can't detect is a
76
+ landmine. If they can't name the signal, that's a finding: the decision needs
77
+ an instrument before it's safe to make.
78
+
79
+ "How would you know deals stopped originating from free users — what would you
80
+ watch, and how long before the damage is done? If you can't see it for two
81
+ quarters, you're flying blind on your biggest risk."
82
+
83
+ ### 6. The reversibility question
84
+
85
+ One-way door or two-way? Cheap to unwind or not? This changes everything about
86
+ how much certainty they need before committing. A reversible decision can be
87
+ made on a hunch and corrected; an irreversible one demands the evidence you've
88
+ just been demanding.
89
+
90
+ "If dropping the free tier turns out wrong, can you bring it back? Or have you
91
+ lost the users, the SEO, the muscle memory? If it's a one-way door, you need to
92
+ be far more sure than you are right now."
93
+
94
+ ## End on a verdict — theirs
95
+
96
+ Hand them four options and make them pick:
97
+
98
+ - **Keep** — it survived; the case against didn't land or was defeated by
99
+ evidence.
100
+ - **Kill** — the case against held; the decision is a mistake.
101
+ - **Hedge** — make it smaller or reversible so being wrong is survivable (run
102
+ the free tier in one segment, not kill it everywhere).
103
+ - **Tripwire** — make the decision, but install the instrument from move 5 so
104
+ you'll *know* if you've entered a world where it's wrong, and pre-commit to
105
+ what you'll do then.
106
+
107
+ ## What good looks like
108
+
109
+ - The decision was stated as a crisp command before any attack.
110
+ - You steelmanned it before knifing it.
111
+ - One strong case against, not a scatter of weak ones.
112
+ - The competitor's reaction was played out, not assumed away.
113
+ - The "wrong-if" conditions came paired with "how would you know."
114
+ - Reversibility was named explicitly.
115
+ - It ended with keep / kill / hedge / tripwire — their call, not yours.
116
+
117
+ ## Common failure modes
118
+
119
+ - **Attacking a fog.** Grilling a decision that was never stated as one. Sharpen
120
+ to a command first.
121
+ - **A pile of weak objections.** Three soft doubts feel thorough but let the real
122
+ risk hide. Find the one that hurts.
123
+ - **Assuming a static world.** Forgetting the competitor moves. Always play the
124
+ response.
125
+ - **Conditions with no detector.** Naming when it's wrong but not how you'd know
126
+ — that's a landmine, not a safeguard.
127
+ - **Deciding for them.** You built the case; they make the call.
@@ -0,0 +1,118 @@
1
+ # Full Grill — interrogate a complete strategy end to end
2
+
3
+ Attack the whole strategy the way reality will. Work it in flow order, hit the
4
+ weakest links first, keep a running ledger of what survived and what broke, and
5
+ end with the user deciding what to change. This is not a review that produces a
6
+ document. It's an interrogation that produces decisions.
7
+
8
+ ## Before you start
9
+
10
+ Get the strategy in front of you. If it's already written, read it. If it's in
11
+ their head, pull it out fast — you'll test it as they say it.
12
+
13
+ A strategy has five parts, in this order. Use them as your map:
14
+
15
+ 1. **Diagnosis** — what's actually going on / the core challenge.
16
+ 2. **Method & Positioning** — the approach they've chosen to win, and where
17
+ they sit versus everyone else.
18
+ 3. **Portfolio of Initiatives** — the concrete things they're doing about it.
19
+ 4. **Measures** — how they'll know it's working.
20
+ 5. **Support Structures** — the capabilities, systems, and resources that make
21
+ it possible.
22
+
23
+ Ask them to state the strategy in these five slots. **If they can't fill a
24
+ slot, that's your first finding** — write it in the ledger and keep going.
25
+ A strategy missing its diagnosis or its measures is already broken; you don't
26
+ need to attack it, just point at the hole.
27
+
28
+ ## The moves
29
+
30
+ ### 1. Map fast, then rank by fragility
31
+
32
+ Once you have the five slots, don't attack top-to-bottom. Scan for the weakest
33
+ link — the claim most load-bearing and least defended — and go there first.
34
+ Weak links are usually: a diagnosis stated as fact with no evidence, a
35
+ positioning claim that any competitor could also make, a measure that wouldn't
36
+ actually move if the strategy failed.
37
+
38
+ Tell them where you're starting and why: "Your whole plan rests on X being
39
+ true. So I'm starting there."
40
+
41
+ ### 2. Attack one link, name the defeater, hear the answer
42
+
43
+ Pick the adversary that bites hardest (competitor / board skeptic / indifferent
44
+ market). Land **one** attack. Name the defeater in the same breath — what
45
+ evidence or decision would end your attack. Then stop and let them defend.
46
+
47
+ Bad: "Your positioning is weak."
48
+ Good (competitor): "You're positioning on speed. I'm your biggest competitor and
49
+ I'm already faster. What's left for you? If you can point to a segment that
50
+ values something I *can't* copy, this attack dies — can you?"
51
+
52
+ Record the verdict before moving on:
53
+ - **Survived** — they answered with evidence or a real decision.
54
+ - **Broke** — no answer; the link doesn't hold.
55
+ - **Needs evidence** — plausible, but resting on a belief they haven't tested.
56
+
57
+ ### 3. Attack the joints, not just the parts
58
+
59
+ The dangerous failures live between the components. A strategy can have five
60
+ strong parts that don't connect. Test the joints:
61
+
62
+ - Does the **Diagnosis** actually justify the **Method**? Or did they pick a
63
+ method they liked and back-fill the diagnosis?
64
+ - Do the **Initiatives** attack the diagnosis, or just keep people busy?
65
+ - Would the **Measures** actually *drop* if the Method were failing? If a
66
+ measure stays green while the strategy dies, it's decoration.
67
+ - Do the **Support Structures** exist yet, or is the plan assuming capabilities
68
+ they'd have to build first?
69
+
70
+ Joint attacks are the ones authors never see coming, because each part looks
71
+ fine alone.
72
+
73
+ ### 4. Keep the ledger visible
74
+
75
+ Maintain a running ledger the user can see as you go. It's the spine of the
76
+ ritual — it turns a barrage into a map.
77
+
78
+ ```
79
+ LEDGER
80
+ [Diagnosis] Survived — churn data backs the "retention not acquisition" call
81
+ [Positioning] Broke — "faster" is copyable; no defensible segment named
82
+ [Initiative 3] Needs evidence— assumes sales team can sell upmarket; untested
83
+ [Measure: NPS] Broke — wouldn't move if the real problem (onboarding) got worse
84
+ [Joint: Diag→Method] Survived — method directly attacks the named challenge
85
+ ```
86
+
87
+ ### 5. End on decisions, not a verdict
88
+
89
+ When you've worked the weak links, read the ledger back and hand the floor over:
90
+ "Here's what held and what didn't. What are you going to change?" Let them
91
+ drive. Your job was to find the wounds; theirs is to decide which to treat.
92
+
93
+ If a broke or needs-evidence line points at a missing judgment — a belief
94
+ they've been treating as fact, or a decision they never actually made — say so.
95
+ That's the concrete fix: write it down, typed honestly, so the strategy carries
96
+ it in the open.
97
+
98
+ ## What good looks like
99
+
100
+ - Every attack named its defeater; none were unanswerable venting.
101
+ - You started at the load-bearing weak link, not the top of the page.
102
+ - At least one joint between components got tested.
103
+ - The ledger is legible on its own — someone who missed the session could read
104
+ it and know where the strategy is soft.
105
+ - It ended with the user naming changes, not with you delivering a grade.
106
+
107
+ ## Common failure modes
108
+
109
+ - **Breadth over depth.** Landing forty shallow jabs instead of six that hurt.
110
+ Rank by fragility; spend your attacks on load-bearing claims.
111
+ - **Attacking the wording.** Sniping at phrasing is `skhema-calibrate`'s job,
112
+ not yours. You attack whether it *holds*, not whether it *reads well*.
113
+ - **Unfair strawmen.** Attacking a weak version they didn't mean. Steelman
114
+ first — state the strongest reading, then attack that.
115
+ - **Never dropping the coat.** Staying hostile once they're trying to fix
116
+ something. The moment they turn to repair, help them.
117
+ - **Ending with a report.** A scorecard they file and forget. End with the
118
+ question: what will you change?
@@ -0,0 +1,140 @@
1
+ # Pre-Mortem — assume it already failed, then make the strategy carry the causes
2
+
3
+ Most people ask "what could go wrong?" and get polite, vague answers. The
4
+ pre-mortem cheats that instinct: you don't ask *if* it fails, you declare that
5
+ it *has*, and work backwards from the wreckage. Then — the part people skip —
6
+ you convert every failure cause into something the strategy visibly carries: a
7
+ named assumption or a named risk with a tripwire. A failure cause you can name
8
+ but don't write down is a failure cause you'll walk straight into.
9
+
10
+ ## The moves
11
+
12
+ ### 1. Set the scene — it failed, no hedging
13
+
14
+ Put them eighteen months in the future. The strategy is a clear, acknowledged
15
+ failure. Not "might struggle" — it *failed*, and everyone knows it. Make them
16
+ sit in it before they start explaining it away.
17
+
18
+ "It's eighteen months from now. This strategy failed. Not partially — it's the
19
+ thing people point to as the mistake. You're in the room where that's obvious to
20
+ everyone. Don't tell me it might not happen. It happened. Now tell me the story
21
+ of how."
22
+
23
+ The certainty is the trick. "What could go wrong" invites optimism and
24
+ defensiveness. "It failed, why?" gives people permission to say the thing they
25
+ were quietly worried about.
26
+
27
+ ### 2. Narrate backwards to a decision made today
28
+
29
+ Get the top failure story, then walk the causal chain back. Keep asking "and
30
+ what caused *that*?" until you land on a decision or assumption that exists
31
+ *today*. The whole value is connecting the future wreck to a present choice they
32
+ can still change.
33
+
34
+ "So it failed because enterprise buyers never showed up. And why not? Because
35
+ sales couldn't sell upmarket. And why couldn't they? Because you assumed — today
36
+ — that your current team could learn enterprise selling, and you never tested
37
+ it. There. That's a decision you're making right now."
38
+
39
+ ### 3. Run it from each adversary
40
+
41
+ Don't stop at one obituary. The same strategy fails different ways depending on
42
+ who kills it. Walk the pre-mortem from each:
43
+
44
+ - **The competitor killed it** — what did they do that you didn't survive?
45
+ - **The market killed it by indifference** — nobody changed their behaviour;
46
+ the thing you built, nobody wanted enough to switch.
47
+ - **You killed it yourselves** — you couldn't execute; the capability, focus, or
48
+ resources weren't there.
49
+
50
+ Each lens surfaces a different class of cause. The internal-execution one is the
51
+ most commonly skipped and the most often fatal.
52
+
53
+ ### 4. Harvest every distinct cause
54
+
55
+ List them. One line each, plainly. Don't smooth them into a narrative — you want
56
+ the discrete causes, because each one becomes a thing the strategy has to carry.
57
+
58
+ ```
59
+ FAILURE CAUSES
60
+ 1. Assumed current sales team could sell upmarket; never tested.
61
+ 2. Competitor cut price and we had no answer.
62
+ 3. Onboarding was too hard; users never reached the value moment.
63
+ 4. We under-resourced the migration and it slipped two quarters.
64
+ ```
65
+
66
+ ### 5. Convert each cause into a carried judgment
67
+
68
+ This is the move that makes the pre-mortem worth doing. For every cause, turn it
69
+ into one of two things the strategy now holds *in the open*:
70
+
71
+ - **A typed assumption** — a thing you're *betting is true*. State it as a claim
72
+ about the world, then attach the evidence that would confirm or kill it, and
73
+ whether you actually have that evidence. ("We assume our sales team can learn
74
+ enterprise selling. Evidence: none yet. Status: untested bet.")
75
+ - **A named risk with a tripwire** — a thing that could go wrong, plus the
76
+ signal you'll watch and the action you'll take if it fires. ("Risk:
77
+ competitor price cut. Tripwire: their published price drops below ours;
78
+ action: we compete on X, not price.")
79
+
80
+ Which type? If the cause is *a belief you're relying on*, it's an assumption. If
81
+ it's *an event that could hit you*, it's a risk. The distinction between "a
82
+ thing we've decided is true" and "a thing we've decided to do about a danger" is
83
+ the whole discipline — an assumption you never test and a risk you never watch
84
+ are the same landmine wearing two hats.
85
+
86
+ **Encoding this in Skhema.** There is no `risk` element type in the taxonomy, so
87
+ both halves land as `assumption_hypothesis`. A belief is the bet stated as a
88
+ claim. A risk is *also* an `assumption_hypothesis` — the bet that the danger
89
+ stays away — paired with a linked `experiment` or `action` that carries the
90
+ tripwire: the signal you'll watch and what you'll do when it fires. The tripwire
91
+ condition itself goes in the element's `reasoning` field until the taxonomy
92
+ grows a better home for it. Don't reach for a `risk` type; it doesn't exist.
93
+
94
+ ```
95
+ CAUSE 1 → ASSUMPTION: Sales team can sell upmarket.
96
+ Evidence held: none. Status: untested. Action: run 3 enterprise
97
+ deals before committing the plan to this.
98
+ CAUSE 2 → RISK: Competitor price cut.
99
+ Tripwire: their price < ours. Response: compete on integration
100
+ depth, do not match on price.
101
+ CAUSE 3 → ASSUMPTION: Users can self-onboard to the value moment.
102
+ Evidence held: current activation rate 22% — weak. Status: shaky.
103
+ CAUSE 4 → RISK: Migration under-resourced.
104
+ Tripwire: any milestone slips > 2 weeks. Response: pull in help now,
105
+ don't wait for the second slip.
106
+ ```
107
+
108
+ ### 6. Hand back what the strategy now carries
109
+
110
+ The output is the list from move 5: the assumptions the strategy is betting on
111
+ and the risks it's watching, each one traceable to a way this could actually
112
+ fail. Give it to them and let them decide which to act on now, which to
113
+ instrument, and which they're willing to bet on with eyes open.
114
+
115
+ The strategy hasn't changed yet — but it's stopped pretending. Every quiet
116
+ worry is now written down, typed, and owned.
117
+
118
+ ## What good looks like
119
+
120
+ - The framing was "it failed," not "it might fail" — no hedging allowed.
121
+ - At least one cause traced back to a decision or assumption live *today*.
122
+ - All three adversaries got a turn; the internal-execution failure wasn't
123
+ skipped.
124
+ - Every harvested cause was converted — none left as a loose worry.
125
+ - Each assumption names its evidence (or admits it has none); each risk names a
126
+ tripwire and a response.
127
+
128
+ ## Common failure modes
129
+
130
+ - **Letting them hedge.** "It probably would've been fine, but…" — cut it. It
131
+ failed. Why?
132
+ - **Stopping at symptoms.** "Revenue was low" is not a cause. Chase it back to a
133
+ decision made today.
134
+ - **Only the external villains.** Competitor and market are easy to blame;
135
+ "we couldn't execute" is the one that's usually true and usually skipped.
136
+ - **Harvesting without converting.** A list of scary stories you file away is a
137
+ wasted pre-mortem. The point is the assumptions and risks the strategy carries
138
+ out the other side.
139
+ - **Assumptions with no evidence line.** If you don't record what would confirm
140
+ or kill the bet, you've made a wish, not an assumption.
@@ -1,28 +0,0 @@
1
- ---
2
- name: skhema-challenge-framing
3
- description: "Guide strategic challenge articulation—avoid symptoms, ensure actionable and bounded problem statements."
4
- ---
5
-
6
- # Challenge Framing
7
-
8
- Guide users through articulating strategic challenges with precision.
9
-
10
- ## When to Use
11
-
12
- - Starting a new strategy process
13
- - When a problem feels vague or overwhelming
14
- - When stakeholders disagree on "the real issue"
15
-
16
- ## Key Principles
17
-
18
- - Challenges are not symptoms
19
- - A well-framed challenge is specific, bounded, and actionable
20
- - The framing itself is a strategic choice
21
-
22
- ## Process
23
-
24
- TODO: Define the step-by-step process
25
-
26
- ## Examples --> what does good look like?
27
-
28
- TODO: Add worked examples
@@ -1,28 +0,0 @@
1
- ---
2
- name: skhema-coherence-check
3
- description: "Examine strategic elements for internal consistency—flag contradictions, tensions, or gaps between decisions."
4
- ---
5
-
6
- # Coherence Check
7
-
8
- Validate that a set of strategic elements form a coherent whole.
9
-
10
- ## When to Use
11
-
12
- - After multiple elements have been defined
13
- - When strategy feels fragmented
14
- - Before communicating strategy to others
15
-
16
- ## Key Principles
17
-
18
- - Coherence is not automatic—it must be checked
19
- - Tensions may be acceptable if acknowledged
20
- - Gaps are often invisible until explicitly sought
21
-
22
- ## Check Types
23
-
24
- TODO: Categories of coherence issues
25
-
26
- ## Process
27
-
28
- TODO: How to systematically check for coherence
@@ -1,28 +0,0 @@
1
- ---
2
- name: skhema-element-decomposition
3
- description: "Break strategic questions into discrete judgment elements—surface individual decisions and their dependencies."
4
- ---
5
-
6
- # Element Decomposition
7
-
8
- Help users decompose strategy into its constituent judgment elements.
9
-
10
- ## When to Use
11
-
12
- - After a challenge has been framed
13
- - When facing a complex strategic question
14
- - To create clarity on what decisions actually need to be made
15
-
16
- ## Key Principles
17
-
18
- - Each element represents a single judgment or decision
19
- - Elements have dependencies and sequences
20
- - Decomposition reveals hidden complexity
21
-
22
- ## Process
23
-
24
- TODO: Define the decomposition method
25
-
26
- ## Element Types
27
-
28
- TODO: Categorize types of strategic elements