@skhema/cli 0.4.4 → 0.4.6
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.
- package/README.md +15 -0
- package/dist/commands/import.d.ts +4 -0
- package/dist/commands/import.d.ts.map +1 -0
- package/dist/commands/import.js +238 -0
- package/dist/lib/api/import-transfer.d.ts +22 -0
- package/dist/lib/api/import-transfer.d.ts.map +1 -0
- package/dist/lib/api/import-transfer.js +89 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +2 -0
- package/package.json +3 -3
- package/skills/.manifest.json +8 -10
- package/skills/skhema-calibrate/SKILL.md +90 -0
- package/skills/skhema-calibrate/references/assumptions.md +77 -0
- package/skills/skhema-calibrate/references/coherence.md +95 -0
- package/skills/skhema-calibrate/references/freshness.md +81 -0
- package/skills/skhema-calibrate/references/language.md +74 -0
- package/skills/skhema-communicate/SKILL.md +94 -0
- package/skills/skhema-communicate/references/audience-adaptation.md +103 -0
- package/skills/skhema-communicate/references/board-update.md +93 -0
- package/skills/skhema-communicate/references/decision-brief.md +93 -0
- package/skills/skhema-communicate/references/team-brief.md +91 -0
- package/skills/skhema-compose/SKILL.md +98 -0
- package/skills/skhema-compose/references/assemble.md +119 -0
- package/skills/skhema-compose/references/decompose.md +104 -0
- package/skills/skhema-compose/references/metrics-tree.md +101 -0
- package/skills/skhema-compose/references/options.md +109 -0
- package/skills/skhema-frame/SKILL.md +86 -0
- package/skills/skhema-frame/references/challenge.md +84 -0
- package/skills/skhema-frame/references/decision.md +92 -0
- package/skills/skhema-frame/references/outcome.md +82 -0
- package/skills/skhema-frame/references/policy.md +82 -0
- package/skills/skhema-frame/references/scope.md +79 -0
- package/skills/skhema-operate/SKILL.md +107 -0
- package/skills/skhema-operate/references/auth.md +110 -0
- package/skills/skhema-operate/references/author-elements.md +158 -0
- package/skills/skhema-operate/references/navigate.md +110 -0
- package/skills/skhema-operate/references/surfaces.md +67 -0
- package/skills/skhema-operate/references/validation-loop.md +84 -0
- package/skills/skhema-pressure-test/SKILL.md +107 -0
- package/skills/skhema-pressure-test/references/decision-grill.md +127 -0
- package/skills/skhema-pressure-test/references/full-grill.md +118 -0
- package/skills/skhema-pressure-test/references/pre-mortem.md +140 -0
- package/skills/skhema-challenge-framing/SKILL.md +0 -28
- package/skills/skhema-coherence-check/SKILL.md +0 -28
- package/skills/skhema-element-decomposition/SKILL.md +0 -28
- package/skills/skhema-element-writer/SKILL.md +0 -20
- package/skills/skhema-judgment-audit/SKILL.md +0 -28
- package/skills/skhema-semantic-sharpening/SKILL.md +0 -28
- package/skills/skhema-strategy-advisor/SKILL.md +0 -20
- package/skills/skhema-workspace-navigator/SKILL.md +0 -20
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Team brief
|
|
2
|
+
|
|
3
|
+
The audience executes the strategy. What they must DO with the brief: leave
|
|
4
|
+
it knowing what to work on Monday, what to stop, and enough of the why to
|
|
5
|
+
make good calls when you're not in the room. That last part is the whole
|
|
6
|
+
game — a team that knows only the "what" freezes the moment reality differs
|
|
7
|
+
from the plan; a team that knows the "why" adapts.
|
|
8
|
+
|
|
9
|
+
A team brief is not a motivational speech and not the board update with the
|
|
10
|
+
logo changed. It is a translation of the strategy into changed behaviour.
|
|
11
|
+
|
|
12
|
+
## The moves
|
|
13
|
+
|
|
14
|
+
1. **Get the guiding policy.** Ask for the one decision the strategy turns
|
|
15
|
+
on — the direction they're committing to — in plain words. Everything in
|
|
16
|
+
the brief serves this.
|
|
17
|
+
2. **Ask what's being cut.** For every strategy that says "we're doing X",
|
|
18
|
+
there's a "which means we're no longer doing Y". Drag those out; they're
|
|
19
|
+
the half people miss.
|
|
20
|
+
3. **Translate to Monday.** For each part of the strategy, ask: what does a
|
|
21
|
+
person actually do differently because of this? If the answer is
|
|
22
|
+
"nothing", it doesn't go in the brief.
|
|
23
|
+
4. **Name what stays the same.** Stop the over-rotation. Teams hearing
|
|
24
|
+
"new strategy" often abandon things that were working. Say explicitly
|
|
25
|
+
what doesn't change.
|
|
26
|
+
5. **Open a channel for pushback.** Decide how they raise disagreement and
|
|
27
|
+
say so in the brief. Dissent you don't invite doesn't vanish — it goes
|
|
28
|
+
underground and comes back as quiet non-compliance.
|
|
29
|
+
|
|
30
|
+
## The shape
|
|
31
|
+
|
|
32
|
+
1. **The one line.** What we're doing, in a sentence a team member could
|
|
33
|
+
repeat to a peer accurately. This is the guiding policy in plain words.
|
|
34
|
+
2. **What that means we're NOT doing.** The cuts, named. Often the most
|
|
35
|
+
useful part of the whole brief — it's how people know where to stop
|
|
36
|
+
spending effort.
|
|
37
|
+
3. **Why.** One short paragraph: the challenge underneath, the reason this
|
|
38
|
+
is the direction. Enough that they can improvise well, not a history
|
|
39
|
+
lesson.
|
|
40
|
+
4. **What changes Monday.** Concrete: new priorities, work that stops, new
|
|
41
|
+
owners, new measures, anything a person will feel this week. Vague here
|
|
42
|
+
means nothing happens.
|
|
43
|
+
5. **What stays the same.** So they don't throw out what works.
|
|
44
|
+
6. **Where to push back.** The open questions, and how to raise concerns.
|
|
45
|
+
Name the channel.
|
|
46
|
+
|
|
47
|
+
## What good looks like
|
|
48
|
+
|
|
49
|
+
- A person in the room could tell a colleague who missed it what to do
|
|
50
|
+
differently Monday — accurately, from memory.
|
|
51
|
+
- The "not doing" list is as clear as the "doing" list.
|
|
52
|
+
- The why is short enough to remember and load-bearing enough to improvise
|
|
53
|
+
from.
|
|
54
|
+
- Nobody leaves unsure whether their current work still matters.
|
|
55
|
+
- Disagreement has a named place to go.
|
|
56
|
+
|
|
57
|
+
## Failure modes to catch
|
|
58
|
+
|
|
59
|
+
- **All doing, no cutting.** The brief announces new work but never says
|
|
60
|
+
what stops, so everything is now "also important" and nothing actually
|
|
61
|
+
changes. Force the cuts.
|
|
62
|
+
- **Abstraction with no Monday.** Fine words, no concrete change to anyone's
|
|
63
|
+
week. If you can't name what someone does differently, you haven't briefed
|
|
64
|
+
them, you've addressed them.
|
|
65
|
+
- **Missing why.** The team gets the "what" and none of the reason, so the
|
|
66
|
+
first time reality deviates they stall and wait for instruction. Put the
|
|
67
|
+
why in.
|
|
68
|
+
- **Board update in disguise.** Risks, asks, governance framing — aimed at
|
|
69
|
+
overseers, handed to executors. Rewrite around what changes for them, not
|
|
70
|
+
what you're accountable for.
|
|
71
|
+
- **No dissent channel.** The brief is broadcast-only, so disagreement goes
|
|
72
|
+
quiet and turns into drift. Name where pushback goes.
|
|
73
|
+
- **Over-rotation left unaddressed.** Silence on what stays the same, so a
|
|
74
|
+
team torches working practices to prove they're on board. Say what holds.
|
|
75
|
+
|
|
76
|
+
## Save it as a workspace document
|
|
77
|
+
|
|
78
|
+
In the Skhema environment, the artifact you just wrote has a home: save it
|
|
79
|
+
as a workspace document so it stays versioned with the strategy and cites
|
|
80
|
+
the elements it stands on.
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
echo '{"title":"<title>","docType":"team_brief","content":"<the markdown you wrote>","elementRefs":["<element-id>", "…"]}' > doc.json
|
|
84
|
+
skhema document create --workspace <workspace-id> --file doc.json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Put every element you drew on into `elementRefs` — that tether is what lets
|
|
88
|
+
a later calibration pass tell the reader which briefs were built on a
|
|
89
|
+
judgment that has since gone stale. Working outside the Skhema environment?
|
|
90
|
+
The artifact is still complete as a file; save it wherever your team keeps
|
|
91
|
+
decisions.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skhema-compose
|
|
3
|
+
description: Use when a strategic question is too big to reason about in one go, or when you have a pile of notes, decisions, and facts that don't yet add up to a strategy. Break the big thing into small typed judgments; assemble the small judgments into a coherent structure.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Compose
|
|
7
|
+
|
|
8
|
+
Break it down, build it up.
|
|
9
|
+
|
|
10
|
+
Strategy work fails in two opposite ways. Either the question is too big to
|
|
11
|
+
hold in your head — "what should we do about the market shift?" — so nothing
|
|
12
|
+
moves. Or you have a hundred fragments — meeting notes, a pricing decision, a
|
|
13
|
+
competitor fact, three half-baked bets — and no way to see whether they form a
|
|
14
|
+
strategy or just a heap.
|
|
15
|
+
|
|
16
|
+
Both are the same problem: the wrong grain. This skill moves you between grains.
|
|
17
|
+
Big questions come apart into small, decidable pieces. Small pieces snap
|
|
18
|
+
together into a structure you can inspect, argue with, and revise.
|
|
19
|
+
|
|
20
|
+
## The one distinction that makes this work
|
|
21
|
+
|
|
22
|
+
Before you write anything down, sort it into one of three kinds. Ask: am I
|
|
23
|
+
stating something I believe is **true**, something I've decided to **do**, or
|
|
24
|
+
naming a **thing**?
|
|
25
|
+
|
|
26
|
+
- A **judgment** — a claim about the world. "Enterprise buyers won't switch
|
|
27
|
+
mid-contract." "Our onboarding is the leak." These can be right or wrong;
|
|
28
|
+
they carry evidence and confidence.
|
|
29
|
+
- A **command** — a decision to act. "Focus every release on time-to-first-value."
|
|
30
|
+
"Stop selling to solo users." These can be followed or ignored; they don't
|
|
31
|
+
have a truth value, they have consequences.
|
|
32
|
+
- A **thing** — a named object. An outcome, a scope, a capability, an
|
|
33
|
+
initiative. "Self-serve activation." "The mid-market segment."
|
|
34
|
+
|
|
35
|
+
Almost all strategy confusion is these three getting mixed. A "goal" that's
|
|
36
|
+
secretly an untested assumption. A "decision" that's really just a hope. When
|
|
37
|
+
you decompose or assemble, you are always sorting pieces into these three kinds
|
|
38
|
+
first. The rest of the skill is what you do once they're sorted.
|
|
39
|
+
|
|
40
|
+
## Capabilities
|
|
41
|
+
|
|
42
|
+
| You need to… | Route to |
|
|
43
|
+
|---|---|
|
|
44
|
+
| Take one big strategic question and break it into the discrete judgments it actually depends on | `references/decompose.md` |
|
|
45
|
+
| Take a pile of judgments and decisions and lay them into a strategy structure — see what belongs where, what's missing, what's premature | `references/assemble.md` |
|
|
46
|
+
| Connect an outcome you want to a measure you can watch and a starting number to compare against | `references/metrics-tree.md` |
|
|
47
|
+
| Compare two or more options honestly — same criteria, explicit trade-offs, evidence per option | `references/options.md` |
|
|
48
|
+
|
|
49
|
+
## Routing
|
|
50
|
+
|
|
51
|
+
- The user has a **question they can't get traction on** ("I don't even know
|
|
52
|
+
where to start with X") → **decompose**. Output: a dependency-ordered list of
|
|
53
|
+
smaller judgments.
|
|
54
|
+
- The user has **material but no shape** — notes, prior decisions, a doc that
|
|
55
|
+
rambles → **assemble**. Output: pieces sorted into the five components, with
|
|
56
|
+
gaps and premature entries flagged.
|
|
57
|
+
- The user has a **goal or outcome and no way to know if they're winning** →
|
|
58
|
+
**metrics-tree**. Output: outcome → measure → baseline chains.
|
|
59
|
+
- The user is **stuck between paths** — "should we do A or B?" → **options**.
|
|
60
|
+
Output: options scored on shared criteria, trade-offs named.
|
|
61
|
+
|
|
62
|
+
These chain. A messy question usually goes decompose → assemble; an assembled
|
|
63
|
+
strategy usually exposes a missing measure (metrics-tree) or an unmade choice
|
|
64
|
+
(options). Don't force the whole chain — run the one that unblocks the user, and
|
|
65
|
+
name the next one.
|
|
66
|
+
|
|
67
|
+
## The five components (used by assemble)
|
|
68
|
+
|
|
69
|
+
A strategy, laid out, reads in this order. Each component answers a different
|
|
70
|
+
question. Keep this order in your head whenever you assemble:
|
|
71
|
+
|
|
72
|
+
1. **Diagnosis** — what's actually going on? The honest account of the situation
|
|
73
|
+
and the crux within it.
|
|
74
|
+
2. **Method & Positioning** — the guiding approach. How we'll compete and win,
|
|
75
|
+
given the diagnosis.
|
|
76
|
+
3. **Portfolio of Initiatives** — the coherent set of things we're actually
|
|
77
|
+
doing (and, just as loud, not doing).
|
|
78
|
+
4. **Measures** — how we'll know it's working, and know early.
|
|
79
|
+
5. **Support Structures** — the capabilities, systems, and resourcing that make
|
|
80
|
+
the above possible instead of aspirational.
|
|
81
|
+
|
|
82
|
+
## Without a live respondent
|
|
83
|
+
|
|
84
|
+
Run headless, with no one to answer? Don't invent their answers. Make the
|
|
85
|
+
minimal reasonable assumption, mark it in the output as yours ("assumed: …"),
|
|
86
|
+
and list the questions only the owner can settle — what's in scope, what a word
|
|
87
|
+
means, whose dissent to record — at the end instead of papering over them. A
|
|
88
|
+
marked assumption is honest work; a silent one is a guess you built on.
|
|
89
|
+
|
|
90
|
+
## Sharpen with Skhema
|
|
91
|
+
|
|
92
|
+
Everything above works with pen and paper. If you want the three kinds
|
|
93
|
+
(judgment / command / thing) checked for you rather than sorted by eye, the
|
|
94
|
+
`@skhema/method` package types every strategy element with an expected
|
|
95
|
+
grammatical *mood* — indicative for judgments, imperative for commands, noun
|
|
96
|
+
phrase for things — and flags pieces that are typed against their mood. Install
|
|
97
|
+
with `npm i @skhema/method` for the vocabulary and validators. The skill is
|
|
98
|
+
fully usable without it.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Assemble — judgments into a strategy structure
|
|
2
|
+
|
|
3
|
+
Use this when the user has material but no shape: a pile of notes, a rambling
|
|
4
|
+
doc, a set of decisions made at different times, facts from a research spike.
|
|
5
|
+
Individually each piece might be fine. The problem is you can't tell whether
|
|
6
|
+
together they form a strategy or just a heap. Assembling lays every piece into
|
|
7
|
+
the five components so gaps and misfits become visible.
|
|
8
|
+
|
|
9
|
+
A strategy is assembled well when someone can read the five components top to
|
|
10
|
+
bottom and each one follows from the one above it — the method answers the
|
|
11
|
+
diagnosis, the initiatives enact the method, the measures watch the initiatives.
|
|
12
|
+
|
|
13
|
+
## The five components, and what belongs in each
|
|
14
|
+
|
|
15
|
+
Lay them in this order. Each answers one question.
|
|
16
|
+
|
|
17
|
+
1. **Diagnosis** — *what is actually going on?* The honest account of the
|
|
18
|
+
situation and the single crux inside it. Mostly **judgments** (claims about
|
|
19
|
+
the world) plus the facts behind them. Not "we want to grow" — that's a wish.
|
|
20
|
+
"Growth has stalled because activation dropped from 40% to 22% after the
|
|
21
|
+
pricing change" — that's a diagnosis.
|
|
22
|
+
|
|
23
|
+
2. **Method & Positioning** — *how will we win, given that?* The guiding
|
|
24
|
+
approach and where you choose to stand. One or a few **commands** at high
|
|
25
|
+
altitude — the overall approach every lower decision must obey. "Compete on
|
|
26
|
+
time-to-value, not feature breadth." This is the pivot: it must answer the
|
|
27
|
+
diagnosis directly.
|
|
28
|
+
|
|
29
|
+
3. **Portfolio of Initiatives** — *what are we actually doing?* The coherent set
|
|
30
|
+
of actions, and loudly what you're *not* doing. **Commands** (things to do)
|
|
31
|
+
and the **things** they act on. Every initiative should trace up to the
|
|
32
|
+
method. An initiative that doesn't is either miscategorized or a stray pet
|
|
33
|
+
project — flag it.
|
|
34
|
+
|
|
35
|
+
4. **Measures** — *how will we know it's working, early?* **Things** (the
|
|
36
|
+
outcomes and the variables you watch) with baselines. If a measure has no
|
|
37
|
+
baseline it can't tell you anything yet — hand that to metrics-tree.
|
|
38
|
+
|
|
39
|
+
5. **Support Structures** — *what makes this possible rather than aspirational?*
|
|
40
|
+
The capabilities, systems, hiring, and resourcing the portfolio needs. Often
|
|
41
|
+
the quietest component and the one that sinks strategies when it's empty.
|
|
42
|
+
|
|
43
|
+
## The move
|
|
44
|
+
|
|
45
|
+
### 1. Empty the pile onto the table
|
|
46
|
+
|
|
47
|
+
List every piece the user has, briefly. Don't organize yet. You're taking
|
|
48
|
+
inventory.
|
|
49
|
+
|
|
50
|
+
### 2. Sort each piece by kind, then place it
|
|
51
|
+
|
|
52
|
+
For each piece, first tag it — judgment, command, or thing (see SKILL.md). The
|
|
53
|
+
kind hints at altitude — high-altitude commands read as Method, concrete
|
|
54
|
+
commands as the Portfolio — but the kind does NOT by itself decide the
|
|
55
|
+
component (judgments, for instance, don't simply "cluster in Diagnosis": an
|
|
56
|
+
assumption_hypothesis belongs in the Portfolio and a constraint in Method). If
|
|
57
|
+
you are working in the Skhema environment, placement is constrained — the
|
|
58
|
+
vocabulary's type→component mapping is the authority, not grammatical mood; see
|
|
59
|
+
`skhema-operate` author-elements for the enforced table. Then place each piece
|
|
60
|
+
in the component it answers, and say the placement out loud so the user can
|
|
61
|
+
object.
|
|
62
|
+
|
|
63
|
+
### 3. Read each component and test the seam above it
|
|
64
|
+
|
|
65
|
+
Go component by component and check the join to the one before:
|
|
66
|
+
|
|
67
|
+
- Does **Method** actually answer the **Diagnosis**, or a different problem than
|
|
68
|
+
the one diagnosed? (Common: a diagnosis about activation, a method about
|
|
69
|
+
enterprise sales. The seam is broken.)
|
|
70
|
+
- Does every **Initiative** trace up to the **Method**? Cross out any that
|
|
71
|
+
don't, or move them.
|
|
72
|
+
- Does every **Measure** watch something an **Initiative** moves? A measure
|
|
73
|
+
watching nothing you're doing is theater.
|
|
74
|
+
- Do the **Support Structures** actually cover what the Portfolio needs, or is
|
|
75
|
+
the plan assuming capabilities nobody has?
|
|
76
|
+
|
|
77
|
+
### 4. Name the three failure states
|
|
78
|
+
|
|
79
|
+
As you place pieces, call out each of these the moment you see it:
|
|
80
|
+
|
|
81
|
+
- **Missing** — a component is thin or empty. An empty Diagnosis means the
|
|
82
|
+
strategy is a list of actions with no reason. An empty Support Structures
|
|
83
|
+
means it's a wish. Empty Measures means it can't be steered.
|
|
84
|
+
- **Premature** — a piece is placed further down than the evidence supports. A
|
|
85
|
+
detailed Portfolio built on a Diagnosis that's still guesses is premature;
|
|
86
|
+
the initiatives are elaborate bets on an unverified claim. Push it back up:
|
|
87
|
+
"resolve the diagnosis before committing this initiative."
|
|
88
|
+
- **Misfiled** — a piece is in the wrong component. An "outcome" sitting in the
|
|
89
|
+
Portfolio (it's a Measure). A "decision" in the Diagnosis (it's a command, it
|
|
90
|
+
belongs in Method or Portfolio). Move it and say why.
|
|
91
|
+
|
|
92
|
+
## What good output looks like
|
|
93
|
+
|
|
94
|
+
The five components with the user's own pieces slotted in, plus a short verdict
|
|
95
|
+
per component: *solid / thin / missing / premature*. And one headline: the
|
|
96
|
+
single most important gap or misfit. For example:
|
|
97
|
+
|
|
98
|
+
> **Diagnosis** — solid (activation drop, well-evidenced).
|
|
99
|
+
> **Method** — *thin.* You have initiatives but no stated guiding approach; the
|
|
100
|
+
> initiatives don't share a logic. This is the gap to close first.
|
|
101
|
+
> **Portfolio** — five initiatives; two don't trace to any method. Premature.
|
|
102
|
+
> **Measures** — one measure, no baseline (hand to metrics-tree).
|
|
103
|
+
> **Support Structures** — empty. Two initiatives assume a data team you don't
|
|
104
|
+
> have.
|
|
105
|
+
>
|
|
106
|
+
> **Headline:** you have actions and a diagnosis but no method connecting them.
|
|
107
|
+
> Write the guiding approach; half the portfolio will fall away on its own.
|
|
108
|
+
|
|
109
|
+
## Failure modes to catch
|
|
110
|
+
|
|
111
|
+
- **Forcing the pile to fit.** If a piece won't go anywhere, that's signal —
|
|
112
|
+
maybe it's noise, maybe it reveals a missing component. Don't jam it in.
|
|
113
|
+
- **Skipping the seams.** Placing pieces is easy; the value is testing whether
|
|
114
|
+
each component follows from the one above. Always walk the seams.
|
|
115
|
+
- **Portfolio-heavy strategies.** Most piles are 80% initiatives. A fat Portfolio
|
|
116
|
+
over a thin Diagnosis/Method is the single most common misfit. Say it.
|
|
117
|
+
- **Treating assembly as done.** Assembly reveals gaps; it doesn't fill them.
|
|
118
|
+
Hand missing measures to metrics-tree, unmade choices to options, and a shaky
|
|
119
|
+
diagnosis back to decompose.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Decompose — big question into discrete judgments
|
|
2
|
+
|
|
3
|
+
Use this when the user has a strategic question too big to reason about in one
|
|
4
|
+
sitting: "what do we do about the platform shift?", "how do we fix retention?",
|
|
5
|
+
"should we move upmarket?" The goal is not to answer it. The goal is to break it
|
|
6
|
+
into the smaller judgments it secretly depends on, so each can be decided on its
|
|
7
|
+
own and in the right order.
|
|
8
|
+
|
|
9
|
+
A question is decomposed well when every piece is something a person could argue
|
|
10
|
+
is true or false, or decide yes or no, without first answering another piece.
|
|
11
|
+
|
|
12
|
+
## The move
|
|
13
|
+
|
|
14
|
+
Work through this WITH the user. Don't hand them a finished tree — build it in
|
|
15
|
+
front of them, one question at a time.
|
|
16
|
+
|
|
17
|
+
### 1. Restate the question as a single sentence
|
|
18
|
+
|
|
19
|
+
Make them commit to one sentence. If they can't, that's the first finding: the
|
|
20
|
+
"question" is two or three questions wearing a trench coat. Split it and pick
|
|
21
|
+
one to decompose now.
|
|
22
|
+
|
|
23
|
+
### 2. Ask "what would have to be true or decided for this to have an answer?"
|
|
24
|
+
|
|
25
|
+
This is the whole engine. For the top question, ask it once and collect every
|
|
26
|
+
piece the user surfaces. Push for pieces, not prose. Bad: "we need to understand
|
|
27
|
+
the market better." Good: "will incumbents cut price when we enter?" — that's a
|
|
28
|
+
judgment someone can hold a position on.
|
|
29
|
+
|
|
30
|
+
Keep asking until pieces stop being decidable and start being restatements of
|
|
31
|
+
the top question. Then stop.
|
|
32
|
+
|
|
33
|
+
### 3. Sort each piece into its kind
|
|
34
|
+
|
|
35
|
+
For every piece, tag it out loud:
|
|
36
|
+
|
|
37
|
+
- **Judgment** (a claim about the world) — "churn is driven by onboarding, not
|
|
38
|
+
price." Right or wrong; carries evidence.
|
|
39
|
+
- **Command** (a decision to act) — "we will not build a mobile app this year."
|
|
40
|
+
Followed or not; carries consequences.
|
|
41
|
+
- **Thing** (a named object) — "the activation metric", "the SMB segment."
|
|
42
|
+
|
|
43
|
+
If a piece won't sort cleanly, it's usually two pieces fused. "We should target
|
|
44
|
+
enterprise because they don't churn" is a command ("target enterprise") welded
|
|
45
|
+
to a judgment ("enterprise don't churn"). Split it. The judgment can be wrong
|
|
46
|
+
while the command still stands, or vice versa — that's exactly why they must be
|
|
47
|
+
separate.
|
|
48
|
+
|
|
49
|
+
### 4. Draw the dependencies
|
|
50
|
+
|
|
51
|
+
For each piece, ask: "does deciding this depend on any other piece first?" Draw
|
|
52
|
+
the arrows. You are looking for three shapes:
|
|
53
|
+
|
|
54
|
+
- **Roots** — pieces that depend on nothing. These get decided first. Often
|
|
55
|
+
they're judgments about the world (facts to check, assumptions to test).
|
|
56
|
+
- **Chains** — B can't be decided until A is. Sequence the work along these.
|
|
57
|
+
- **Independent** — pieces with no arrows between them can be worked in
|
|
58
|
+
parallel, possibly by different people.
|
|
59
|
+
|
|
60
|
+
The dependency shape IS the plan of attack. A judgment everything else hangs on
|
|
61
|
+
("do enterprise buyers actually churn less?") is the one to resolve first,
|
|
62
|
+
because being wrong about it collapses everything downstream.
|
|
63
|
+
|
|
64
|
+
### 5. Mark confidence and the load-bearing pieces
|
|
65
|
+
|
|
66
|
+
For each judgment, ask the user how sure they are and what it rests on. Flag the
|
|
67
|
+
ones that are (a) load-bearing — lots of arrows point out of them — and (b)
|
|
68
|
+
low-confidence. That intersection is where the strategy is most fragile. Say so
|
|
69
|
+
plainly: "your whole plan assumes X, and you told me you're guessing about X.
|
|
70
|
+
Resolve X before anything else."
|
|
71
|
+
|
|
72
|
+
## What good output looks like
|
|
73
|
+
|
|
74
|
+
A short, dependency-ordered list. For example, decomposing "should we move
|
|
75
|
+
upmarket to enterprise?":
|
|
76
|
+
|
|
77
|
+
- **Judgment, root, low confidence:** enterprise buyers churn less than SMB.
|
|
78
|
+
*(load-bearing — three other pieces depend on it; resolve first)*
|
|
79
|
+
- **Judgment, root:** our current product clears enterprise security review.
|
|
80
|
+
- **Judgment, depends on the two above:** we can reach enterprise buyers without
|
|
81
|
+
a field sales team.
|
|
82
|
+
- **Command, depends on all judgments above:** shift the next two quarters of
|
|
83
|
+
roadmap to enterprise readiness.
|
|
84
|
+
- **Thing:** "enterprise-ready" — needs its own definition before the command
|
|
85
|
+
above means anything.
|
|
86
|
+
|
|
87
|
+
Notice the last line: decomposition often surfaces a *thing* that nobody has
|
|
88
|
+
defined, and the strategy can't proceed until it's named. Surfacing that is a
|
|
89
|
+
win, not a loose end.
|
|
90
|
+
|
|
91
|
+
## Failure modes to catch
|
|
92
|
+
|
|
93
|
+
- **Boiling the ocean.** If you've generated 30 pieces, you decomposed the
|
|
94
|
+
universe, not the question. Prune to the pieces that actually gate a decision.
|
|
95
|
+
- **Fake pieces.** "We need more data" is not a judgment or a command. Ask: data
|
|
96
|
+
about *what*, to decide *what*? until it becomes a real piece or disappears.
|
|
97
|
+
- **Restatement loops.** If a "smaller" piece is just the big question reworded,
|
|
98
|
+
you've hit the bottom. Stop decomposing that branch.
|
|
99
|
+
- **Solutions in disguise.** Users smuggle in the answer they already want as if
|
|
100
|
+
it were a neutral piece. Name it: "that's a command you've pre-decided — is it
|
|
101
|
+
actually settled, or are we deciding it here?"
|
|
102
|
+
- **All commands, no judgments.** A decomposition that's all "we will…" with no
|
|
103
|
+
underlying claims about the world is a wish list. Every command should trace
|
|
104
|
+
back to a judgment that justifies it.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Metrics-tree — outcomes to measures to baselines
|
|
2
|
+
|
|
3
|
+
Use this when the user has a goal or outcome they care about but no honest way to
|
|
4
|
+
know if they're winning: "we want better retention", "grow the pipeline",
|
|
5
|
+
"improve activation." An outcome you can't observe is a hope. This move connects
|
|
6
|
+
each outcome to something you can actually watch, and to a starting number you
|
|
7
|
+
can compare against — so movement is visible and arguable.
|
|
8
|
+
|
|
9
|
+
The rule that makes it work: **every outcome needs a measure, and every measure
|
|
10
|
+
needs a baseline.** No measure, and the outcome is unfalsifiable. No baseline,
|
|
11
|
+
and the measure can't tell you if anything changed.
|
|
12
|
+
|
|
13
|
+
## The three links in each chain
|
|
14
|
+
|
|
15
|
+
1. **Outcome** — the *thing* you want to be true. State it as a noun phrase, not
|
|
16
|
+
a wish. "Activated accounts in week one." Not "improve activation" (that's a
|
|
17
|
+
command; the outcome is the state you're steering toward).
|
|
18
|
+
2. **Measure** — the observable variable that stands in for the outcome. "% of
|
|
19
|
+
new accounts that complete first key action within 7 days." It must be
|
|
20
|
+
something you can currently read or start reading. If you can't observe it,
|
|
21
|
+
it's not a measure yet.
|
|
22
|
+
3. **Baseline** — the starting value, dated. "22%, as of June." Without this,
|
|
23
|
+
"we hit 30%" means nothing — up from what?
|
|
24
|
+
|
|
25
|
+
Chain them: **outcome → measure → baseline.**
|
|
26
|
+
|
|
27
|
+
## The move
|
|
28
|
+
|
|
29
|
+
### 1. Name the outcome as a state, not an action
|
|
30
|
+
|
|
31
|
+
Push the user from verb to noun. "Improve onboarding" → "new users reaching
|
|
32
|
+
first value." You're steering toward a state of the world; name that state.
|
|
33
|
+
|
|
34
|
+
### 2. Ask "what would you watch to know this is happening?"
|
|
35
|
+
|
|
36
|
+
For each outcome, get one measure — or a small handful. Pressure each candidate:
|
|
37
|
+
|
|
38
|
+
- **Can you observe it now, or soon?** If it needs instrumentation you don't
|
|
39
|
+
have, that's a Support Structure task; note it and don't pretend the measure
|
|
40
|
+
exists yet.
|
|
41
|
+
- **Does it move only when the outcome moves?** A measure that a dozen unrelated
|
|
42
|
+
things push around is a bad proxy. "Total signups" is a poor proxy for
|
|
43
|
+
activation — a marketing spike moves it without any activation change.
|
|
44
|
+
- **Can it be gamed without the outcome improving?** If yes, expect it to be.
|
|
45
|
+
Prefer measures that are hard to move without actually delivering the outcome.
|
|
46
|
+
|
|
47
|
+
### 3. Get the baseline — the real one, dated
|
|
48
|
+
|
|
49
|
+
For each measure, ask for the current value and when it was taken. Three cases:
|
|
50
|
+
|
|
51
|
+
- **Known** — write it with its date. Done.
|
|
52
|
+
- **Knowable but not looked up** — send them to get it. A baseline you'll fill
|
|
53
|
+
in "later" is a baseline you don't have.
|
|
54
|
+
- **Unknowable right now** — the honest answer is "we don't measure this yet."
|
|
55
|
+
Then the first initiative is to start measuring, and the baseline is the first
|
|
56
|
+
reading. Say so; don't invent a number.
|
|
57
|
+
|
|
58
|
+
A guessed baseline is worse than none — it manufactures false movement.
|
|
59
|
+
|
|
60
|
+
### 4. Add a leading measure where the outcome is slow
|
|
61
|
+
|
|
62
|
+
Some outcomes only show up quarters later (retention, LTV). Watching only the
|
|
63
|
+
lagging measure means you learn you failed far too late. Ask: "what moves early
|
|
64
|
+
that predicts this?" Pair a **leading** measure (activation this week) with the
|
|
65
|
+
**lagging** one (retention next quarter). The leading one steers; the lagging
|
|
66
|
+
one confirms.
|
|
67
|
+
|
|
68
|
+
### 5. Check the tree connects to real decisions
|
|
69
|
+
|
|
70
|
+
For each measure ask: "if this number moved the wrong way next week, what would
|
|
71
|
+
you do differently?" If the answer is "nothing," the measure is decoration —
|
|
72
|
+
cut it. Every measure should be tied to an action you'd take when it moves.
|
|
73
|
+
|
|
74
|
+
## What good output looks like
|
|
75
|
+
|
|
76
|
+
A small set of chains, each complete, leading + lagging where relevant:
|
|
77
|
+
|
|
78
|
+
> **Outcome:** new accounts reaching first value.
|
|
79
|
+
> **Leading measure:** % completing first key action within 7 days.
|
|
80
|
+
> **Baseline:** 22%, June.
|
|
81
|
+
> **Lagging measure:** 90-day retention of those accounts.
|
|
82
|
+
> **Baseline:** not currently measured → first initiative is to instrument it;
|
|
83
|
+
> baseline = first reading.
|
|
84
|
+
> **If it drops:** we pause feature work and audit the onboarding flow.
|
|
85
|
+
|
|
86
|
+
Three chains like this beat a dashboard of twenty numbers nobody acts on.
|
|
87
|
+
|
|
88
|
+
## Failure modes to catch
|
|
89
|
+
|
|
90
|
+
- **Vanity measures.** Big, always-up-and-to-the-right numbers (total users,
|
|
91
|
+
cumulative signups) that can't go down and so can't inform anything. Reject.
|
|
92
|
+
- **Outcome = measure confusion.** "Our goal is 30% activation" collapses the
|
|
93
|
+
outcome (users reaching value) into one measure. Keep them distinct so you can
|
|
94
|
+
swap a bad proxy without losing the goal.
|
|
95
|
+
- **Missing baseline waved away.** "We'll figure out the baseline later" — no.
|
|
96
|
+
Either look it up now or make measuring it the first step. Don't proceed with a
|
|
97
|
+
hollow chain.
|
|
98
|
+
- **Only lagging measures.** All the measures resolve in six months. You've built
|
|
99
|
+
a strategy you can't steer, only autopsy. Add leading measures.
|
|
100
|
+
- **Measures with no action.** If nothing changes when the number moves, it's not
|
|
101
|
+
a measure, it's a decoration. Cut it.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Options — compare alternatives as typed judgments
|
|
2
|
+
|
|
3
|
+
Use this when the user is stuck between paths: "should we build or buy?", "A or
|
|
4
|
+
B or C?", "do we go upmarket or double down where we are?" The trap is that
|
|
5
|
+
options get argued in prose — a paragraph for each, each written to sound good,
|
|
6
|
+
none comparable. This move forces every option through the *same* criteria, so
|
|
7
|
+
the comparison is real and the trade-offs are explicit instead of buried in
|
|
8
|
+
adjectives.
|
|
9
|
+
|
|
10
|
+
An option set is compared well when a reader can see, for each option, how it
|
|
11
|
+
scores on every criterion, what it costs you, and what evidence backs the score —
|
|
12
|
+
and could disagree with a specific cell rather than a vibe.
|
|
13
|
+
|
|
14
|
+
## Why prose comparisons lie
|
|
15
|
+
|
|
16
|
+
Written as paragraphs, each option gets described on the dimensions where it
|
|
17
|
+
happens to look good and stays quiet on the rest. Option A's paragraph talks
|
|
18
|
+
speed; Option B's talks robustness; they never meet on the same axis. The
|
|
19
|
+
decision then goes to whoever wrote the most persuasive paragraph. Typing the
|
|
20
|
+
comparison — same criteria for all, evidence per cell — kills that.
|
|
21
|
+
|
|
22
|
+
## The move
|
|
23
|
+
|
|
24
|
+
### 1. State each option as one committable sentence
|
|
25
|
+
|
|
26
|
+
Each option is a **command** — a course of action you could actually choose.
|
|
27
|
+
"Build our own billing system." "Buy Stripe Billing and integrate it." Make each
|
|
28
|
+
one a single sentence the user would commit to, not a theme. If an "option" is
|
|
29
|
+
vague ("improve billing somehow"), it's not an option yet — it's a goal; send it
|
|
30
|
+
to decompose.
|
|
31
|
+
|
|
32
|
+
### 2. Fix the criteria BEFORE looking at the options
|
|
33
|
+
|
|
34
|
+
This is the discipline that makes the whole thing honest. Agree the criteria
|
|
35
|
+
first, with the options out of view, so nobody tunes the criteria to favor a
|
|
36
|
+
pre-chosen winner. Good criteria are:
|
|
37
|
+
|
|
38
|
+
- **Decision-relevant** — something that would actually change the choice.
|
|
39
|
+
- **Comparable across all options** — every option can be scored on it.
|
|
40
|
+
- **Few** — four to six. More than that and you're hiding the real drivers in
|
|
41
|
+
noise.
|
|
42
|
+
|
|
43
|
+
Typical: cost, time-to-value, reversibility, risk, fit with the strategy,
|
|
44
|
+
capability required.
|
|
45
|
+
|
|
46
|
+
### 3. Score every option on every criterion — same scale, evidence per cell
|
|
47
|
+
|
|
48
|
+
Build the grid: options as rows, criteria as columns. For each cell, give a score
|
|
49
|
+
(a number, or high/med/low) AND the evidence or reasoning behind it. A score with
|
|
50
|
+
no evidence is a guess typed as a judgment — mark it explicitly as an assumption
|
|
51
|
+
so its weight is visible. Fill every cell; a blank cell is usually the option's
|
|
52
|
+
weakness hiding.
|
|
53
|
+
|
|
54
|
+
### 4. Name the trade-off on each option out loud
|
|
55
|
+
|
|
56
|
+
Every option buys something and pays for it somewhere. State both:
|
|
57
|
+
"Build gives us full control and costs two quarters of engineering we'd take from
|
|
58
|
+
the roadmap." "Buy ships next month and locks us to their pricing and limits."
|
|
59
|
+
The point of options is not to find a free lunch; it's to choose which price you
|
|
60
|
+
prefer to pay. If an option looks strictly best on every criterion, you've
|
|
61
|
+
either found the obvious answer or your criteria are missing the dimension where
|
|
62
|
+
it's weak — check the latter first.
|
|
63
|
+
|
|
64
|
+
### 5. Separate reversible from one-way choices
|
|
65
|
+
|
|
66
|
+
Flag whether each option is easy to undo or hard. A cheap, reversible option
|
|
67
|
+
that scores second-best is often the right first move — you learn, then choose
|
|
68
|
+
again. A one-way door demands more evidence before you walk through it. Weight
|
|
69
|
+
the scores by this: on a reversible choice, bias toward acting and learning; on
|
|
70
|
+
an irreversible one, bias toward resolving the load-bearing judgments first.
|
|
71
|
+
|
|
72
|
+
### 6. Surface the load-bearing judgment under the choice
|
|
73
|
+
|
|
74
|
+
Most option decisions actually hinge on one uncertain judgment about the world.
|
|
75
|
+
"Build vs buy" often reduces to "will our needs outgrow the vendor's product?"
|
|
76
|
+
Name that judgment. Sometimes resolving it decides the whole thing and the grid
|
|
77
|
+
becomes unnecessary — that's a great outcome. Hand it to decompose if it needs
|
|
78
|
+
breaking down.
|
|
79
|
+
|
|
80
|
+
## What good output looks like
|
|
81
|
+
|
|
82
|
+
A grid, then a recommendation with its trade-off named:
|
|
83
|
+
|
|
84
|
+
| Criterion | A: Build | B: Buy | C: Partner |
|
|
85
|
+
|---|---|---|---|
|
|
86
|
+
| Time to value | 2 qtrs *(eng estimate)* | 3 wks *(vendor docs)* | 6 wks *(assumption)* |
|
|
87
|
+
| Cost | High *(2 eng, 2 qtrs)* | Med *(usage fee)* | Low upfront |
|
|
88
|
+
| Reversibility | Low — sunk build | High — swap vendor | Med |
|
|
89
|
+
| Strategy fit | High | Med | Low — off-mission |
|
|
90
|
+
|
|
91
|
+
> **Recommendation:** B. It's reversible and ships this quarter, buying us the
|
|
92
|
+
> learning to decide whether A is ever worth it. **Trade-off accepted:** vendor
|
|
93
|
+
> pricing risk and a feature ceiling we may hit in a year.
|
|
94
|
+
> **Load-bearing judgment:** will our billing needs outgrow the vendor within 18
|
|
95
|
+
> months? If yes, revisit; if no, B stands. Currently a guess — worth resolving.
|
|
96
|
+
|
|
97
|
+
## Failure modes to catch
|
|
98
|
+
|
|
99
|
+
- **Criteria tuned to the winner.** If the criteria appeared *after* someone
|
|
100
|
+
fell for an option, they're rigged. Set criteria first, options hidden.
|
|
101
|
+
- **Uneven scoring.** Option A judged on best case, Option B on worst. Use one
|
|
102
|
+
standard for all — same scale, same rigor per cell.
|
|
103
|
+
- **Straw options.** Two real contenders and one obviously bad option added to
|
|
104
|
+
make a favorite look inevitable. Every listed option should be one someone
|
|
105
|
+
could honestly defend.
|
|
106
|
+
- **Scores with no evidence.** A full grid of confident numbers, none backed by
|
|
107
|
+
anything, is prose in a table. Mark unbacked cells as assumptions.
|
|
108
|
+
- **Ignoring reversibility.** Scoring a one-way, bet-the-company choice the same
|
|
109
|
+
way as a cheap experiment. Always flag which doors swing both ways.
|