deliberate-cli 0.2.0-beta.1.1
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/AGENTS.md +40 -0
- package/LICENSE +174 -0
- package/README.md +89 -0
- package/package.json +51 -0
- package/roles/analyst/frame/instructions.md +88 -0
- package/roles/analyst/frame/output-template.md +52 -0
- package/roles/analyst/launch/instructions.md +63 -0
- package/roles/analyst/launch/output-template.md +50 -0
- package/roles/analyst/one-pager/instructions.md +75 -0
- package/roles/analyst/one-pager/output-template.md +38 -0
- package/roles/analyst/shape/instructions.md +63 -0
- package/roles/analyst/shape/output-template.md +52 -0
- package/roles/briefer/brief/instructions.md +77 -0
- package/roles/briefer/brief/output-template.md +37 -0
- package/roles/config.yaml +130 -0
- package/roles/evaluator/score/instructions.md +84 -0
- package/roles/evaluator/score/output-template.md +11 -0
- package/roles/initiator/init/instructions.md +111 -0
- package/roles/initiator/init/output-template-competitors.md +16 -0
- package/roles/initiator/init/output-template-ecosystem.md +19 -0
- package/roles/initiator/init/output-template-product.md +136 -0
- package/roles/prototyper/prototype/instructions.md +146 -0
- package/roles/prototyper/prototype/output-template.md +10 -0
- package/roles/reporter/readout/instructions.md +54 -0
- package/roles/reporter/readout/output-template.md +37 -0
- package/roles/scout/matchup/instructions.md +74 -0
- package/roles/scout/matchup/output-template.md +115 -0
- package/roles/skills/README.md +19 -0
- package/roles/skills/critique.md +64 -0
- package/roles/skills/head-to-head.md +88 -0
- package/roles/skills/jtbd.md +43 -0
- package/roles/skills/landscape-scan.md +77 -0
- package/roles/skills/metrics.md +58 -0
- package/roles/skills/positioning.md +44 -0
- package/roles/skills/prioritization.md +101 -0
- package/roles/skills/product-readout.md +98 -0
- package/roles/skills/tech-constraints.md +27 -0
- package/roles/skills/ux-principles.md +24 -0
- package/roles/skills/win-conditions.md +68 -0
- package/skill/SKILL.md +231 -0
- package/skill/scripts/deliberate.mjs +44 -0
- package/src/cli/deliberate.mjs +628 -0
- package/src/engine/app-boot.mjs +17 -0
- package/src/engine/briefs.mjs +101 -0
- package/src/engine/cases.mjs +17 -0
- package/src/engine/commands.mjs +75 -0
- package/src/engine/init.mjs +34 -0
- package/src/engine/layout.mjs +37 -0
- package/src/engine/log.mjs +22 -0
- package/src/engine/matchups.mjs +87 -0
- package/src/engine/onepager.mjs +51 -0
- package/src/engine/pipeline.mjs +134 -0
- package/src/engine/projects.mjs +17 -0
- package/src/engine/prompts.mjs +28 -0
- package/src/engine/prototype.mjs +86 -0
- package/src/engine/readout-charts.mjs +217 -0
- package/src/engine/readouts.mjs +132 -0
- package/src/engine/roles.mjs +137 -0
- package/src/engine/scaffold.mjs +54 -0
- package/src/engine/score.mjs +66 -0
- package/src/engine/service.mjs +18 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Matchup — _<Product>_ vs _<Us>_
|
|
2
|
+
|
|
3
|
+
As of _<Month D, YYYY — the date this read was true>_.
|
|
4
|
+
|
|
5
|
+
## Bottom line
|
|
6
|
+
|
|
7
|
+
_2–3 sentences: what this rival is, where it collides with us (and at which layer — platform vs product),
|
|
8
|
+
and the single most important strategic implication. Then the one-line takeaway as a blockquote — the
|
|
9
|
+
sentence a reader keeps if they read nothing else._
|
|
10
|
+
|
|
11
|
+
> _**The one-line takeaway.**_
|
|
12
|
+
|
|
13
|
+
## At a glance
|
|
14
|
+
|
|
15
|
+
_The head-to-head in one scannable table. Pick the 6–10 factors that actually decide this contest. `Edge`
|
|
16
|
+
is an honest call — `us`, `them`, or `even` — never a home-team default._
|
|
17
|
+
|
|
18
|
+
| Factor | _<Product>_ | _<Us>_ | Edge |
|
|
19
|
+
|---|---|---|---|
|
|
20
|
+
| _factor_ | _their state_ | _our state_ | _us / them / even_ |
|
|
21
|
+
|
|
22
|
+
## Strengths & weaknesses
|
|
23
|
+
|
|
24
|
+
_Honest SWOT for both sides. Each side's real weakness is the other's opening — name them plainly._
|
|
25
|
+
|
|
26
|
+
- **Their strengths (our threats):** _≤3 — what they genuinely do better._
|
|
27
|
+
- **Their weaknesses (our openings):** _≤3 — where they're structurally or currently weak._
|
|
28
|
+
- **Our strengths (their threats):** _≤3._
|
|
29
|
+
- **Our weaknesses (their openings):** _≤3 — be candid; the deck loses in Q&A otherwise._
|
|
30
|
+
|
|
31
|
+
## Dimension-by-dimension
|
|
32
|
+
|
|
33
|
+
_One tight block per dimension — 1–3 sentences each. End every block with **Edge: us / them / even —
|
|
34
|
+
because…**. Drop a dimension only if it genuinely doesn't apply (say so)._
|
|
35
|
+
|
|
36
|
+
### User journey
|
|
37
|
+
_First-run to habitual use for each; where onboarding / activation is smoother. **Edge:** …_
|
|
38
|
+
|
|
39
|
+
### UX / interaction
|
|
40
|
+
_Interaction model, polish, the moments that delight or grate. **Edge:** …_
|
|
41
|
+
|
|
42
|
+
### Functional
|
|
43
|
+
_What each has that the other doesn't; parity / WIP on both sides. **Edge:** …_
|
|
44
|
+
|
|
45
|
+
### Supported scenarios
|
|
46
|
+
_The genres / use-cases each covers; the omission on each side. **Edge:** …_
|
|
47
|
+
|
|
48
|
+
### Strategic
|
|
49
|
+
_The real threat (commoditization? substitution?) and the real opportunity. **Edge:** …_
|
|
50
|
+
|
|
51
|
+
### Marketing & positioning
|
|
52
|
+
_How each is sold — audience, message, tone; the risk of a head-to-head we'd lose. **Edge:** …_
|
|
53
|
+
|
|
54
|
+
### Pricing & business model
|
|
55
|
+
_How each monetizes (free/OSS, PLG, sales, tiers); where the wedge is. **Edge:** …_
|
|
56
|
+
|
|
57
|
+
### Distribution & GTM motion
|
|
58
|
+
_How each acquires and where that's strong or brittle (stars, community, sales, embeds). **Edge:** …_
|
|
59
|
+
|
|
60
|
+
### Implementation approach
|
|
61
|
+
_Architecture / stack / runtime and the trade-offs it buys or costs each side. **Edge:** …_
|
|
62
|
+
|
|
63
|
+
### Ecosystem & interoperability
|
|
64
|
+
_Integrations, standards, partners; whether the two can coexist / migrate between. **Edge:** …_
|
|
65
|
+
|
|
66
|
+
### Maturity & momentum
|
|
67
|
+
_Version, cadence, adoption, funding, team size, bus factor — who's accelerating. **Edge:** …_
|
|
68
|
+
|
|
69
|
+
## Jobs-to-be-done coverage
|
|
70
|
+
|
|
71
|
+
_The core jobs in this space; who gets each done and where the gap is. Keep to the jobs that matter._
|
|
72
|
+
|
|
73
|
+
| Job (`I want to _[job]_, so I can _[outcome]_`) | _<Product>_ | _<Us>_ | Gap |
|
|
74
|
+
|---|---|---|---|
|
|
75
|
+
| _job_ | _covers / partial / no_ | _covers / partial / no_ | _the opening_ |
|
|
76
|
+
|
|
77
|
+
## Battlecard
|
|
78
|
+
|
|
79
|
+
- **Why we win:** _≤3 themes — the durable reasons a buyer chooses us. Each with a proof point._
|
|
80
|
+
- **Why we lose:** _≤3 — the honest reasons a buyer chooses them._
|
|
81
|
+
- **Landmines / traps:** _≤3 — where competing on their terms is a mistake (our do-not-compete), and
|
|
82
|
+
their claims we must not walk into._
|
|
83
|
+
- **Objection handling:** _≤3 — their strongest pitch line, and our grounded answer to it._
|
|
84
|
+
|
|
85
|
+
## Positioning against them
|
|
86
|
+
|
|
87
|
+
_2–4 sentences: the frame that makes their strengths matter less and moves the fight to our ground
|
|
88
|
+
(who-it's-for, the category, the wedge). Then the explicit **do-not-compete**: the arena we deliberately
|
|
89
|
+
cede._
|
|
90
|
+
|
|
91
|
+
## Opportunities
|
|
92
|
+
|
|
93
|
+
_Prioritized responses. `Borrow` ranked by value ÷ effort; `Partner` = interop / coexistence angles;
|
|
94
|
+
`Respond` = roadmap / positioning moves. ≤3 per lane, only what's genuinely warranted._
|
|
95
|
+
|
|
96
|
+
- **Borrow:** _capability worth adopting — why it fits, value ÷ effort. (Learn, don't copy — note their
|
|
97
|
+
license.)_
|
|
98
|
+
- **Partner / interop:** _a coexistence, migration, or partnership angle._
|
|
99
|
+
- **Respond:** _a feature, spike, positioning, or pricing move — tied to the finding that motivates it._
|
|
100
|
+
|
|
101
|
+
## Strategy canvas
|
|
102
|
+
|
|
103
|
+
_The value-curve inputs for a comparison chart. List the competing factors buyers weigh; rate each
|
|
104
|
+
`high / medium / low` for both. Where the two lines diverge is the story._
|
|
105
|
+
|
|
106
|
+
| Factor | _<Product>_ | _<Us>_ |
|
|
107
|
+
|---|---|---|
|
|
108
|
+
| _factor_ | _high / medium / low_ | _high / medium / low_ |
|
|
109
|
+
|
|
110
|
+
## Sources
|
|
111
|
+
|
|
112
|
+
_Every claim above traces here. First-party where possible; date each; mark confidence
|
|
113
|
+
(**fact** first-party ▪ **inferred** ▪ **assumption**)._
|
|
114
|
+
|
|
115
|
+
- _[Source name](https://…) — <what it grounds> · <date> · fact / inferred / assumption_
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Skills — reusable method and craft
|
|
2
|
+
|
|
3
|
+
These files are shared, product-agnostic methods injected into role prompts alongside the current project's context. They teach roles how to do the craft; they must not describe a specific product. Product-specific grounding is written by the host during `init` under `deliberate/context/` and supplied separately.
|
|
4
|
+
|
|
5
|
+
| File | Purpose | Used by |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| `jtbd.md` | Jobs-to-be-Done analysis: situation, motivation, desired progress, alternatives, outcomes, and evidence | Init, Frame, Shape, Launch, Prototype, One-pager, Matchup |
|
|
8
|
+
| `positioning.md` | State the competitive alternative, unique attributes, value, audience, category, positioning statement, and defensible differentiator | Init, Launch, One-pager, Matchup |
|
|
9
|
+
| `metrics.md` | Select outcome measures, leading inputs, and counter-metric guardrails without confusing activity for value | Init, Launch |
|
|
10
|
+
| `product-readout.md` | Produce a defensible periodic read of configured metrics and customer evidence, including comparisons, evidence gaps, causality, and actions | Readout |
|
|
11
|
+
| `ux-principles.md` | Surface-neutral experience principles for clear, accessible, trustworthy product journeys | Shape, Prototype |
|
|
12
|
+
| `win-conditions.md` | Evaluate durable demand, value, fit, adoption, distribution, trust, and compounding advantage as build-toward goals | Score, Shape, Launch, Prototype |
|
|
13
|
+
| `prioritization.md` | Apply gates and a weakest-link rubric to produce an evidence-based 0–10 score and lean verdict, excluding effort | Score, Matchup |
|
|
14
|
+
| `critique.md` | Constructive, bounded criticism that strengthens a decision without creating endless review loops | Score |
|
|
15
|
+
| `landscape-scan.md` | Scan market and competitive evidence with source discipline, breadth, time-window filtering, and change detection | Init, Brief, Matchup |
|
|
16
|
+
| `head-to-head.md` | Research one named rival deeply across evidence, dimensions, SWOT, JTBD, battlecard, positioning, and opportunities | Matchup |
|
|
17
|
+
| `tech-constraints.md` | Keep prototypes, artifacts, and implementation guidance self-contained and integration-ready | Shape, Prototype, Matchup |
|
|
18
|
+
|
|
19
|
+
`roles/config.yaml` is the source of truth for which role receives each method. The engine re-reads it on every invocation, so changes apply to the next prompt.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Critique
|
|
2
|
+
|
|
3
|
+
> How the **Critic** pushes every stage toward greatness **in a single pass**. The engine
|
|
4
|
+
> allows the Critic exactly **one** automatic revise loop, then the pipeline always
|
|
5
|
+
> proceeds (`src/engine/pipeline.mjs`). So this is not a conversation — it is one
|
|
6
|
+
> high-leverage intervention. Make it count; never bank on a second round.
|
|
7
|
+
|
|
8
|
+
## The economics: one shot, so bundle everything
|
|
9
|
+
There is **no back-and-forth**. You do not get to raise issue A, see it fixed, then raise
|
|
10
|
+
issue B. Therefore:
|
|
11
|
+
- **Front-load every concern in one critique.** If three things are wrong, name all three
|
|
12
|
+
now — don't hold the second-order issues for a round that will never come.
|
|
13
|
+
- **Make each ask self-contained and checkable.** Request only changes the producer can
|
|
14
|
+
fully make and you could verify in the *same* artifact — never "explore X and report
|
|
15
|
+
back," never "let's iterate on Y."
|
|
16
|
+
- **Right-size the ask.** A `revise` must be completable in one pass. If a fix is too big
|
|
17
|
+
for that, say so plainly (`block`, or note it as a follow-up) rather than triggering a
|
|
18
|
+
revise you know can't land in one go.
|
|
19
|
+
|
|
20
|
+
## Two altitudes: floor, then ceiling
|
|
21
|
+
Great criticism does two jobs at once. Do both, in this order:
|
|
22
|
+
|
|
23
|
+
**1. The floor — must-fix (gates the verdict).** Correctness, grounding, alignment,
|
|
24
|
+
stage-rubric compliance. These are things that make the work *wrong* — fabricated demand,
|
|
25
|
+
drift from strategy/non-goals, a Prototype that doesn't run, a Case scored on solution
|
|
26
|
+
effort. Any of these → `revise` (or `block` if unrecoverable in one pass).
|
|
27
|
+
|
|
28
|
+
**2. The ceiling — the single biggest lift (elevates).** Beyond "not wrong," name the
|
|
29
|
+
**one** change that would take the work from *fine* to *exceptional* — the sharper insight,
|
|
30
|
+
the more ambitious framing, the missing move a great operator would make. Offer it even
|
|
31
|
+
when the floor is clean (on a `proceed`), as an **optional** lift labelled as such. Exactly
|
|
32
|
+
one — the highest-leverage one — so it's actionable, not a wish-list.
|
|
33
|
+
|
|
34
|
+
## How to make it constructive (not destructive)
|
|
35
|
+
- **Point to the fix, not just the flaw.** Every concern = *what's wrong* → *why it changes
|
|
36
|
+
the decision* → *the specific change that resolves it*. A flaw with no direction is noise.
|
|
37
|
+
- **Raise the bar, don't rewrite the work.** You judge and direct; you don't produce the
|
|
38
|
+
artifact. Give the sharpest possible instruction, then let the producer execute.
|
|
39
|
+
- **Be specific and evidential.** Quote the line, name the missing evidence, cite the rubric
|
|
40
|
+
or skill it violates. Vague criticism can't be acted on in one pass.
|
|
41
|
+
- **Prioritize ruthlessly.** Lead with what matters most. Cap it: **≤ 3 must-fix + 1
|
|
42
|
+
elevation.** A long list dilutes the signal and can't be resolved in one revise.
|
|
43
|
+
|
|
44
|
+
## When to stop (don't manufacture work)
|
|
45
|
+
- If it is grounded, aligned, and meets the rubric, say **`proceed`** — plainly. Do not
|
|
46
|
+
invent concerns to look rigorous.
|
|
47
|
+
- The bar for `revise` is **"this is materially wrong or changes the decision,"** not "I'd
|
|
48
|
+
have done it differently." Taste disagreements are at most an optional elevation note.
|
|
49
|
+
- Never withhold a `proceed` to force another lap. One pass is the design, not a failure.
|
|
50
|
+
|
|
51
|
+
## Verdict discipline
|
|
52
|
+
- **`proceed`** — floor is clean. May carry one optional elevation.
|
|
53
|
+
- **`revise`** — one or more must-fix issues that are *fixable in a single pass*; bundle
|
|
54
|
+
every fix into this one critique.
|
|
55
|
+
- **`block`** — a fatal, unrecoverable-in-one-pass problem (e.g., the whole artifact is
|
|
56
|
+
ungrounded, or built for a different product). Reserve for genuine dead-ends; the human
|
|
57
|
+
gate handles the rest.
|
|
58
|
+
|
|
59
|
+
## Anti-patterns
|
|
60
|
+
- Nitpicking style, wording, or formatting that doesn't change the decision.
|
|
61
|
+
- Drip-feeding concerns across "rounds" that don't exist — one shot, all issues.
|
|
62
|
+
- Requesting open-ended exploration or anything you can't verify in the same artifact.
|
|
63
|
+
- A wall of low-priority notes; a `revise` with no specific, one-pass fix.
|
|
64
|
+
- Manufacturing concerns on solid work instead of saying `proceed`.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Head-to-Head — Method
|
|
2
|
+
|
|
3
|
+
> Use this whenever you produce a **single-competitor matchup** — a full, sourced read of one named
|
|
4
|
+
> product against ours, on demand. It is the sibling of `landscape-scan`: that skill scans the *field*
|
|
5
|
+
> for *change over time* (breadth); this one goes *deep on one named rival* at a point in time (depth).
|
|
6
|
+
> Reuse `landscape-scan` §2 (source discipline) verbatim; everything else here is matchup-specific. The
|
|
7
|
+
> goal is a document a PM can defend in a board review and assemble a competing deck from without
|
|
8
|
+
> re-researching.
|
|
9
|
+
|
|
10
|
+
## 0. Point-in-time, not a time series
|
|
11
|
+
A matchup is **the current read on one rival**, true as of a stated date — not a log of changes (that's
|
|
12
|
+
`brief`). Stamp the `as_of` date (in the body **and** the frontmatter), ground the read in what's live
|
|
13
|
+
*now*, and **refresh the single canonical doc in place** when the rival moves — don't spawn a new dated
|
|
14
|
+
copy (git holds the history; `brief` owns the change-over-time series and signals when a refresh is due).
|
|
15
|
+
If a claim was true six months ago but isn't now, it doesn't belong.
|
|
16
|
+
|
|
17
|
+
## 1. Steelman before you strike
|
|
18
|
+
**Argue the rival's case at its strongest first.** Per `AGENTS.md` ("do your stage's job objectively"),
|
|
19
|
+
a flattering matchup is worse than useless — it loses the deck in the Q&A. Establish, honestly, what they
|
|
20
|
+
do genuinely better and why a smart buyer picks them *before* you find the openings. Home-team bias is the
|
|
21
|
+
failure mode; catch it in yourself.
|
|
22
|
+
|
|
23
|
+
## 2. Ground every claim in a source (from `landscape-scan` §2)
|
|
24
|
+
Each factual claim carries a **working link** to a first-party source — their site, docs, changelog, repo,
|
|
25
|
+
pricing page, a release tag, a filing. Name the source in the link text. Mark each claim's confidence:
|
|
26
|
+
**fact** (first-party, cited) ▪ **inferred** (reasoned from evidence) ▪ **assumption** (stated as such).
|
|
27
|
+
Never present an inference or assumption as a fact. If the project context or the rival's public surface is
|
|
28
|
+
thin, say what you could and couldn't ground — don't invent features, pricing, funding, or adoption.
|
|
29
|
+
|
|
30
|
+
Grounding sources: `deliberate/context/product.md` (our positioning, personas, JTBD, strategy) +
|
|
31
|
+
`deliberate/context/competitors.md` (if the rival is already tracked, its monitoring sources) + the
|
|
32
|
+
attached sources + your own first-party research of the rival. If the rival isn't tracked yet, **ask the
|
|
33
|
+
user whether to add it** (default yes) to the Competitors roster in `product.md` and its monitoring sources
|
|
34
|
+
in `competitors.md` so `brief` starts watching it — closing the loop between the two commands.
|
|
35
|
+
|
|
36
|
+
## 3. Read across every dimension — who's ahead, and why
|
|
37
|
+
Work each dimension and end each with an honest **Edge: us / them / even — because…**. Cover, at minimum:
|
|
38
|
+
|
|
39
|
+
- **User journey** — first-run → habitual use; where activation is smoother.
|
|
40
|
+
- **UX / interaction** — model, polish, the moments that delight or grate.
|
|
41
|
+
- **Functional** — has / doesn't-have on both sides; parity and WIP.
|
|
42
|
+
- **Supported scenarios** — the genres each covers; the omission on each side.
|
|
43
|
+
- **Strategic** — the real threat (commoditization / substitution) and the real opportunity.
|
|
44
|
+
- **Marketing & positioning** — audience, message, tone; the head-to-head we'd lose.
|
|
45
|
+
- **Pricing & business model** — how each monetizes; where the wedge is.
|
|
46
|
+
- **Distribution & GTM** — how each acquires; where that's strong or brittle.
|
|
47
|
+
- **Implementation approach** — architecture / stack / runtime and its trade-offs.
|
|
48
|
+
- **Ecosystem & interoperability** — integrations, standards, partners; can they coexist / migrate?
|
|
49
|
+
- **Maturity & momentum** — version, cadence, adoption, funding, team size, bus factor, trajectory.
|
|
50
|
+
|
|
51
|
+
"Even" is a valid verdict. Don't manufacture contrast to look thorough.
|
|
52
|
+
|
|
53
|
+
## 4. Synthesize — SWOT, JTBD, and the value curve
|
|
54
|
+
- **SWOT the pair:** each side's real weakness is the other's opening. Name our weaknesses candidly.
|
|
55
|
+
- **JTBD coverage:** apply the `jtbd` method — the core jobs in this space, who gets each done, and the
|
|
56
|
+
gap. Jobs, not features.
|
|
57
|
+
- **Strategy canvas:** rate the buyer's decision factors `high / medium / low` for both sides — the
|
|
58
|
+
value-curve inputs. Where the two lines diverge is the story.
|
|
59
|
+
|
|
60
|
+
## 5. Turn the read into a decision
|
|
61
|
+
- **Battlecard:** **why we win** / **why we lose** (≤3 each, with proof), **landmines** (where competing on
|
|
62
|
+
their terms is a trap — our do-not-compete), and **objection handling** (their best pitch line + our
|
|
63
|
+
grounded answer).
|
|
64
|
+
- **Positioning against them** (apply `positioning`): the frame that moves the fight to our ground, plus
|
|
65
|
+
the arena we deliberately cede.
|
|
66
|
+
- **Opportunities** (apply `prioritization`): **Borrow** (value ÷ effort; learn, don't copy — respect
|
|
67
|
+
their license), **Partner / interop**, **Respond** (roadmap / pricing / positioning). Only what's
|
|
68
|
+
warranted.
|
|
69
|
+
|
|
70
|
+
## 6. Leave it deck-ready (no separate deck section)
|
|
71
|
+
Don't add a slide outline or "deck kit" — the substance *is* the deck material. A good matchup already
|
|
72
|
+
carries everything a competing deck needs: a one-line thesis (Bottom line), the at-a-glance table, the
|
|
73
|
+
strategy canvas, the win/lose themes with proof, objection handling, and the prioritized bet — each
|
|
74
|
+
grounded and cited. Write those well and a human can assemble slides without re-researching.
|
|
75
|
+
|
|
76
|
+
## 7. Be concise
|
|
77
|
+
Every bullet **≤ 3 sentences, ideally 1–2**. Hard caps: ≤3 per battlecard lane, ≤3 opportunities per lane,
|
|
78
|
+
one tight block per dimension, 6–10 factors in the at-a-glance and canvas tables. The fewer bullets, the
|
|
79
|
+
better — earn every line.
|
|
80
|
+
|
|
81
|
+
## Anti-patterns (reject these)
|
|
82
|
+
- A home-team read that never says where we lose, or lists no real weakness of ours.
|
|
83
|
+
- A "fact" with no source link, or an inference/assumption dressed as a fact.
|
|
84
|
+
- Stale claims — anything not true as of the `as_of` date.
|
|
85
|
+
- Manufactured contrast where the honest answer is "even".
|
|
86
|
+
- Copying the rival's code/assets instead of learning from the pattern (mind their license).
|
|
87
|
+
- Padding every dimension to look exhaustive instead of cutting to what decides the contest.
|
|
88
|
+
- Bolting on a slide outline / "deck kit" — the substance already seeds the deck (§6).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Jobs-to-be-Done (JTBD) — Method
|
|
2
|
+
|
|
3
|
+
> Use this whenever you **frame a problem** (Frame) or **design a surface** (Shape, Prototype).
|
|
4
|
+
> A job is the *progress a user is trying to make in a situation* — never a feature, never a demographic.
|
|
5
|
+
|
|
6
|
+
## 0. Find the personas & jobs from evidence (don't invent them)
|
|
7
|
+
Before framing anything, **infer who the users are and what jobs they're doing from the evidence**: the attached **sources (code, docs)** and the **content of the case**. Read the repo/docs for the surfaces, roles, and workflows the product already serves; read the case for who is hurting and why. Each persona and job must trace to that material — never conjure a persona, job, or demographic the evidence doesn't support (label genuine inferences as assumptions).
|
|
8
|
+
|
|
9
|
+
Then **scan for additional affected personas**: who else feels the ripple effects of this problem? Look one step out from the obvious user — the **admin/approver upstream**, the **downstream consumer** of their output, the **teammate or peer** who depends on them. Include the ones whose jobs are **materially** affected (grounded the same way); skip incidental bystanders. For each, name *how* the problem touches their job.
|
|
10
|
+
|
|
11
|
+
## 1. Job statement — the lean format (what Frame outputs)
|
|
12
|
+
**Group jobs under the persona who has them.** The persona line carries the *who* and the situation; each job is a single bullet, matching the Frame template:
|
|
13
|
+
**"I want to [job to be done], so I can [outcome]."**
|
|
14
|
+
- Keep it **solution-free** — no product or feature names.
|
|
15
|
+
- It's a *job*, not a feature request or a demographic. (Underneath, every job still answers "When [situation], I want to [motivation], so I can [outcome]" — but the situation lives in the persona framing, so the bullet stays lean.)
|
|
16
|
+
- A few **key** jobs per persona — don't bundle unrelated jobs into one line, and don't pad with minor ones.
|
|
17
|
+
|
|
18
|
+
## Going deeper — for the design stages (Shape & Prototype)
|
|
19
|
+
> Frame stays lean: personas + their key jobs. The tools below are for the design stage (Shape), which must move a *specific* job through a real UX. Don't make Frame produce a full workup.
|
|
20
|
+
|
|
21
|
+
### The struggling moment (optional)
|
|
22
|
+
When it fits the product/scenario, name the **specific, observable moment of friction** that makes the user start looking for a better way — concrete ("it's 11pm and I have 40 unread feedback items and a roadmap review tomorrow"), not abstract ("they're busy"). Some jobs are ongoing or ambient rather than triggered by a sharp moment; **don't force a struggling moment where there isn't one.**
|
|
23
|
+
|
|
24
|
+
### Three dimensions
|
|
25
|
+
A job usually has three dimensions — cover the ones that matter for the design:
|
|
26
|
+
- **Functional** — the practical task to accomplish.
|
|
27
|
+
- **Emotional** — how they want to feel, or stop feeling (e.g., in control, not anxious, confident).
|
|
28
|
+
- **Social** — how they want to be *perceived* by others (their team, boss, peers, investors).
|
|
29
|
+
|
|
30
|
+
### Job map — the steps of getting the job done
|
|
31
|
+
The job has stages even when no product exists. Use the steps that apply:
|
|
32
|
+
**Define → Locate → Prepare → Confirm → Execute → Monitor → Modify → Conclude.**
|
|
33
|
+
For each relevant step, note **today's friction**. Good UX supports the *steps of the job*, not just one button.
|
|
34
|
+
|
|
35
|
+
### Forces of progress (why they switch — or don't)
|
|
36
|
+
- **Push** (pain of the current situation) + **Pull** (attraction of the new way) drive change.
|
|
37
|
+
- **Habit** (inertia of today) + **Anxiety** (fear of the new) resist it.
|
|
38
|
+
Design must **amplify pull and reduce anxiety** (e.g., show the evidence to build trust).
|
|
39
|
+
|
|
40
|
+
## Anti-patterns (reject these)
|
|
41
|
+
- A persona is not a job. A feature is not a job. "Be more productive" is too vague to act on.
|
|
42
|
+
- A solution smuggled into the job statement ("I want a dashboard…").
|
|
43
|
+
- A persona or job invented without support in the sources or the case.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Landscape Scan — Method
|
|
2
|
+
|
|
3
|
+
> Use this whenever you work the competitive + market landscape: **setting up a project's context**
|
|
4
|
+
> (`init` — map the *current* field of named competitors and their monitoring sources, the ecosystem
|
|
5
|
+
> players and theirs, and the market/space) or producing a periodic **Brief** (the *changes* within a
|
|
6
|
+
> time window). The competition + market **lenses** (§1) and the **source discipline** (§2) are shared;
|
|
7
|
+
> the **timeframe** (§0), the filtering to executive-worthy *change* (§3), and the decision framing (§4)
|
|
8
|
+
> apply to the **Brief**. For `init` you are cataloguing the field, not reporting change — skip §0 and use
|
|
9
|
+
> §1–§2 to find and record the real competitors, the ecosystem players, their first-party sources, and the
|
|
10
|
+
> market signals worth watching.
|
|
11
|
+
|
|
12
|
+
## 0. Timeframe — the whole game (Brief only)
|
|
13
|
+
A brief reports **only what changed inside the window** you are given (`period_start → period_end`).
|
|
14
|
+
- The window is *since the last brief*, capped at **3 months**. If a change shipped, was announced, or
|
|
15
|
+
was reported **before `period_start`, it does not belong in this brief** — a prior brief already owned
|
|
16
|
+
it (or it is too old to be news).
|
|
17
|
+
- Date every finding against the window before you keep it. If you cannot establish that a change
|
|
18
|
+
happened inside the window, **drop it** — do not pad the brief with undated evergreen facts.
|
|
19
|
+
- "No change" is a valid, valuable answer. An honest empty section beats invented motion.
|
|
20
|
+
|
|
21
|
+
## 1. Two lenses
|
|
22
|
+
**Competition** — the *named* competitors from the project context (`product.md` → Competitors, with
|
|
23
|
+
their monitoring sources in `competitors.md`). For each, scan the **first-party** signals in
|
|
24
|
+
`competitors.md` within the window:
|
|
25
|
+
- announcements / product blog, release notes / changelog, **roadmap** changes,
|
|
26
|
+
- **codebase activity** (public repos: notable commits, merged PRs, new modules, deprecations),
|
|
27
|
+
- pricing / packaging changes, docs for newly-shipped capabilities.
|
|
28
|
+
|
|
29
|
+
**Market & ecosystem** — the *space and players around the project*, one step wider than the named
|
|
30
|
+
competitors, grounded in `product.md` → **Ecosystem** (the named players — dependencies, complements,
|
|
31
|
+
channels, movers — each `current`/`potential`, with their monitoring sources in `ecosystem.md`) and
|
|
32
|
+
`product.md` → **Market** (the category, the standards & protocols the product participates in or depends on,
|
|
33
|
+
and the technologies/trends to watch). For each ecosystem player, scan its **first-party** signals in
|
|
34
|
+
`ecosystem.md` within the window (a dependency's releases / breaking changes / security advisories, a
|
|
35
|
+
complement's product & integration updates, a channel's marketplace or policy changes, a mover's spec /
|
|
36
|
+
roadmap / governance shifts); for the market, watch:
|
|
37
|
+
- new or upcoming **protocol / standard / spec** releases and version bumps,
|
|
38
|
+
- **new entrants** or adjacent players (including potential partners),
|
|
39
|
+
- **M&A, funding, partnerships, pivots, shutdowns**, and newly-relevant **technologies** or platform shifts.
|
|
40
|
+
Market events (funding, M&A) may cite a reputable secondary source when no first-party one exists;
|
|
41
|
+
competitor and ecosystem-player product claims should trace to their own channel wherever possible. If the
|
|
42
|
+
project context's Competitors, Ecosystem, or Market is thin, say what you could and could not ground — don't
|
|
43
|
+
invent players or standards to fill it.
|
|
44
|
+
|
|
45
|
+
## 2. Ground every finding in a source
|
|
46
|
+
Each highlight carries a **working link** to where you saw it — a changelog entry, a blog post, a commit,
|
|
47
|
+
a release tag, a filing. No link, no highlight. Prefer official / first-party sources; name the source in
|
|
48
|
+
the link text so the reader knows what they're clicking (`[Changelog](…)`, `[GitHub PR](…)`).
|
|
49
|
+
|
|
50
|
+
## 3. Filter hard — earn the executive's attention
|
|
51
|
+
The fewer bullets, the better. A finding only survives if it is **important, relevant to this project, and
|
|
52
|
+
potentially actionable**. Ruthlessly cut:
|
|
53
|
+
- routine dot-releases, dependency bumps, copy tweaks, minor bug fixes,
|
|
54
|
+
- vanity metrics and undirected "they posted a blog" noise,
|
|
55
|
+
- anything a manager would skim past.
|
|
56
|
+
Caps (hard limits, aim lower): **≤ 3 highlights per competitor**, **≤ 3 market highlights**, **≤ 3 Key
|
|
57
|
+
highlights** overall, and only the action items that are genuinely warranted. If a competitor had no
|
|
58
|
+
meaningful change, say **"No meaningful updates."** — don't manufacture one.
|
|
59
|
+
|
|
60
|
+
## 4. From findings to a decision
|
|
61
|
+
- **Key highlights** = the top (≤3) changes across *both* lenses — what the reader must know if they read
|
|
62
|
+
nothing else. Draw them from the per-section findings; don't introduce new facts here.
|
|
63
|
+
- **Action items** = the *so-what* for THIS project, reasoned from the highlights: should a feature,
|
|
64
|
+
research spike, or investment be started? A partnership explored? A new technology or standard adopted?
|
|
65
|
+
A positioning or pricing response considered? Tie each action to the finding that motivates it. Only
|
|
66
|
+
include actions that are warranted — an empty action list is fine when the window was quiet.
|
|
67
|
+
|
|
68
|
+
## 5. Be concise
|
|
69
|
+
Every bullet is **≤ 3 sentences, ideally 1–2** — straight to the point, no preamble, no hedging. The
|
|
70
|
+
brief is scanned in a minute; write it that way.
|
|
71
|
+
|
|
72
|
+
## Anti-patterns (reject these)
|
|
73
|
+
- A finding with no date, or dated outside the window.
|
|
74
|
+
- A highlight with no source link, or a link to a non-authoritative source presented as first-party.
|
|
75
|
+
- Padding a quiet window with minor releases to look thorough.
|
|
76
|
+
- Repeating a change a previous brief already reported.
|
|
77
|
+
- Editorializing / speculation dressed as fact; inventing funding, partnerships, or competitors.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Metrics — Method
|
|
2
|
+
|
|
3
|
+
> Use this whenever you must state **how a product's success is measured**: the Metrics & traction of a
|
|
4
|
+
> project's context (`init`) and the telemetry-grounded metrics of a go-to-market (`market`). A good metric
|
|
5
|
+
> is one number that, if it moves, tells you the product is delivering more value — and that a team can
|
|
6
|
+
> actually influence. Ground every metric in real evidence. Project context records durable definitions and
|
|
7
|
+
> comparison semantics, never time-sensitive values or targets copied during init.
|
|
8
|
+
|
|
9
|
+
## The north-star — pick the one that matters
|
|
10
|
+
The **north-star metric (NSM)** is the single measure that best captures the value customers get (and that
|
|
11
|
+
the business captures in turn). Test a candidate against three checks:
|
|
12
|
+
- **Value:** does it go up only when customers get more of what they came for? (Not vanity — registrations,
|
|
13
|
+
raw pageviews, and "total users" usually fail this.)
|
|
14
|
+
- **Leading, not lagging:** does it move *before* revenue, predicting it? (Revenue itself is the lagging
|
|
15
|
+
result; the NSM is the input that drives it.)
|
|
16
|
+
- **Actionable:** can the team move it through the product? (Not a market-wide number nobody controls.)
|
|
17
|
+
Prefer a metric of *delivered value per unit time* (e.g. "weekly active teams that complete the core job")
|
|
18
|
+
over a stock ("total signups").
|
|
19
|
+
|
|
20
|
+
## The metric tree — inputs beneath the NSM
|
|
21
|
+
Decompose the NSM into the **input metrics** that drive it, so the context shows *what to pull*:
|
|
22
|
+
- **Acquisition → Activation → Engagement → Retention → Revenue → Referral** (the AARRR spine) — keep the
|
|
23
|
+
stages that matter for this product.
|
|
24
|
+
- For each, name the **one** metric that best captures it (activation rate, D30/W4 retention, weekly active,
|
|
25
|
+
expansion, referral rate, …).
|
|
26
|
+
- Distinguish **leading vs lagging** (activation & retention lead; revenue & churn lag) so the reader knows
|
|
27
|
+
which are early signals.
|
|
28
|
+
|
|
29
|
+
## Guardrails — what must NOT get worse
|
|
30
|
+
Name a **counter-metric** for the NSM (the thing a naive push on the NSM would break — quality, latency,
|
|
31
|
+
trust, unit cost, support load). A metric without a guardrail invites gaming.
|
|
32
|
+
|
|
33
|
+
## The readout contract — make every read comparable
|
|
34
|
+
|
|
35
|
+
First record one project-level reporting contract:
|
|
36
|
+
|
|
37
|
+
- cadence and calendar alignment, defaulting to a completed Monday–Sunday calendar week;
|
|
38
|
+
- the project's named timezone;
|
|
39
|
+
- comparison with the immediately preceding equivalent completed period.
|
|
40
|
+
|
|
41
|
+
Then, for every metric, record the durable semantics needed to calculate it consistently over that shared period: exact definition, aggregation, source or query, unit, desired direction, and important segments. A user may override one readout with another completed calendar period or explicit date range; every metric and evidence source follows the override for that run, and the comparison becomes the immediately preceding equivalent period. The previous readout artifact is never the metric baseline.
|
|
42
|
+
|
|
43
|
+
## Craft rules
|
|
44
|
+
- **One north-star, a handful of inputs.** A dashboard of 30 metrics is not a strategy.
|
|
45
|
+
- **Keep context durable.** Never copy a current value, dated baseline, target, or mutable numeric boundary
|
|
46
|
+
into init context. Link the live source that owns those values.
|
|
47
|
+
- **Compare like with like.** Preserve the report-level period, aggregation, alignment, timezone, and segment.
|
|
48
|
+
- **Tie metrics to the job.** The NSM should measure the persona's job-to-be-done getting done, not
|
|
49
|
+
activity for its own sake.
|
|
50
|
+
- **Per-value, not per-vanity.** Reach/impressions/registrations are vanity unless they map to value.
|
|
51
|
+
|
|
52
|
+
## Anti-patterns (reject these)
|
|
53
|
+
- A vanity NSM (total users, pageviews, downloads) that rises without more value delivered.
|
|
54
|
+
- Revenue as the north-star (it's the lagging result; find the input that predicts it).
|
|
55
|
+
- A pile of metrics with no single north-star and no guardrail.
|
|
56
|
+
- A snapshot value or target copied into one-time init context where it will silently become stale.
|
|
57
|
+
- A metric calculated over a different period from the rest of the readout.
|
|
58
|
+
- A metric no one on the team can actually move.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Positioning — Method
|
|
2
|
+
|
|
3
|
+
> Use this whenever you must state **what a product is, who it's for, and why it wins**: the
|
|
4
|
+
> Value proposition & positioning of a project's context (`init`), and the pitch of a go-to-market
|
|
5
|
+
> (`launch`). Positioning is a deliberate choice of the *context* in which a product is understood — not a
|
|
6
|
+
> tagline. Done well it makes the value obvious to the right buyer; done badly it makes a good product
|
|
7
|
+
> look irrelevant. Ground every element in real evidence — never borrow another product's story.
|
|
8
|
+
|
|
9
|
+
## The five inputs (derive these first — April Dunford's frame)
|
|
10
|
+
Work them in order; each constrains the next:
|
|
11
|
+
1. **Competitive alternatives** — what the customer would *actually* use if this didn't exist (a rival, a
|
|
12
|
+
spreadsheet, a manual process, "do nothing"). This sets the reference point the value is judged against.
|
|
13
|
+
2. **Unique attributes** — the capabilities / assets this has that the alternatives **lack** (features,
|
|
14
|
+
data, integrations, model, distribution, license). Only real, verifiable ones.
|
|
15
|
+
3. **Value** — the outcome those attributes enable that the customer cares about ("so they can __"). Map
|
|
16
|
+
each attribute → the concrete value; drop attributes that map to no value the buyer wants.
|
|
17
|
+
4. **Target segment** — the customers who care **most** about that value (the ones for whom it's urgent,
|
|
18
|
+
frequent, or high-stakes). Positioning is sharpened by *who you exclude*, not just who you include.
|
|
19
|
+
5. **Market category** — the frame of reference that makes the value obvious to that segment ("it's a
|
|
20
|
+
\_\_"). The category sets expectations; pick the one where the unique value reads as important, not the
|
|
21
|
+
biggest-sounding one.
|
|
22
|
+
|
|
23
|
+
## The output — a positioning statement
|
|
24
|
+
Compose the inputs into one crisp line, then the sharpest differentiator:
|
|
25
|
+
- **"For [target segment] who [need/situation], [product] is a [market category] that [key value], unlike
|
|
26
|
+
[competitive alternative], because [unique attribute]."**
|
|
27
|
+
- **Differentiation / moat:** the single defensible reason this stays ahead — or, honestly, "table-stakes:
|
|
28
|
+
the alternatives already offer this" when there's no durable edge. Never inflate a parity feature into a moat.
|
|
29
|
+
|
|
30
|
+
## Craft rules
|
|
31
|
+
- **Anchor on the alternative, not the feature.** Value is relative; "10× faster" means nothing without the
|
|
32
|
+
baseline the buyer compares against.
|
|
33
|
+
- **One segment, one category, one core value.** A statement that fits everyone positions for no one.
|
|
34
|
+
- **Attributes → value, always.** A list of features is not positioning; the value they unlock is.
|
|
35
|
+
- **Be specific and grounded.** Name the real segment, the real alternative, the real attribute — no
|
|
36
|
+
invented demand, no aspirational moat the evidence doesn't support (label an assumption if you must).
|
|
37
|
+
- **Keep it tight.** The statement is one sentence; the differentiator one or two bullets.
|
|
38
|
+
|
|
39
|
+
## Anti-patterns (reject these)
|
|
40
|
+
- A feature list or a mission statement dressed up as positioning.
|
|
41
|
+
- "For everyone" / "the leading platform for X" (category-inflation with no chosen segment).
|
|
42
|
+
- A moat claim that's really table-stakes; or unique attributes that map to no buyer value.
|
|
43
|
+
- Positioning against a category ("we're not like legacy tools") instead of the concrete alternative the
|
|
44
|
+
customer would actually choose.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Prioritization
|
|
2
|
+
|
|
3
|
+
> How **Score** turns the AI-era **win-conditions** (defined in the `win-conditions` skill)
|
|
4
|
+
> into a single go / no-go score. The win-conditions say what makes a **product** win over
|
|
5
|
+
> time; Score scores a single **Case** — so the test is whether the Case **advances or
|
|
6
|
+
> unblocks** those win-conditions, **not** whether one Case embodies all of them. Score
|
|
7
|
+
> **project-relative** (against *this* project's strategy/objective from the derived context),
|
|
8
|
+
> grounded in the Frame artifact (the problem + competitive landscape), on a **0–10** scale.
|
|
9
|
+
>
|
|
10
|
+
> **Reason fully, then explain clearly.** Work through the factors internally, then publish a
|
|
11
|
+
> short, **human-legible** brief (see "Output") — not the raw factor table or math.
|
|
12
|
+
|
|
13
|
+
## The one rule: score the problem, not the solution
|
|
14
|
+
Score runs **before** anything is designed or built, so ignore every solution-side variable
|
|
15
|
+
— **effort, size, feasibility, build cost, and "how hard is it to build" are out of scope.**
|
|
16
|
+
When building is nearly free, that a thing *can* be built tells you nothing. Judge only the
|
|
17
|
+
**opportunity**.
|
|
18
|
+
|
|
19
|
+
## What gates, and what only lifts
|
|
20
|
+
Not every good Case is a moat. Some **drive** a win-condition (build the flywheel, own a new
|
|
21
|
+
channel); many **enable** one (remove a limitation, reach parity, unblock or **broaden the
|
|
22
|
+
audience**). Both can be high-value — so separate the *necessary* conditions from the *value
|
|
23
|
+
multipliers*.
|
|
24
|
+
|
|
25
|
+
**Kill-gates — the case-level necessities (a Case must clear all three):**
|
|
26
|
+
- **Durable, AI-proof demand** — a real, important need that ubiquitous AI makes *more*
|
|
27
|
+
valuable, not obsolete. No real demand → dead.
|
|
28
|
+
- **Reachable audience** — the people who need it can actually get and adopt it (AI-era
|
|
29
|
+
distribution at the Case level). A Case that **broadens** the audience scores *well* here —
|
|
30
|
+
it is not penalised for it.
|
|
31
|
+
- **On-strategy & trust-safe** — it advances (or at least doesn't contradict) this project's
|
|
32
|
+
strategy, and it doesn't erode trust or violate a non-goal. A non-goal / hard-constraint
|
|
33
|
+
violation is an automatic **reject**.
|
|
34
|
+
|
|
35
|
+
**Value multipliers — raise a passing Case, never gate it:**
|
|
36
|
+
- **Compounding flywheel / moat** — how much durable, proprietary advantage it builds (data,
|
|
37
|
+
network, switching costs). Strong = big upside; **weak is fine for an enabler.**
|
|
38
|
+
- **Differentiation, taste & delight, agent-readiness, personalization, openness, "why now."**
|
|
39
|
+
(Full definitions in `win-conditions`.)
|
|
40
|
+
|
|
41
|
+
## Credit enablers and table-stakes (don't punish parity)
|
|
42
|
+
A Case that removes a key limitation, reaches competitive parity, or **broadens the target
|
|
43
|
+
audience** is legitimately valuable **even with no standalone moat**. Score it on the demand
|
|
44
|
+
it unlocks and the audience it opens, and recognise it **raises the ceiling** for future
|
|
45
|
+
flywheel and differentiation. **Never reject or dock an enabler merely for "not being a moat
|
|
46
|
+
by itself"** — that is the wrong test for enabling work. Where useful, name the moat-builder
|
|
47
|
+
it sets up next, but do not hold its absence against the enabler.
|
|
48
|
+
|
|
49
|
+
## Confidence is a modifier, not a factor
|
|
50
|
+
**Cap** any factor whose score rests on thin or second-hand evidence, and state the biggest
|
|
51
|
+
uncertainty. Strong scores need independent, grounded evidence — else the Evaluator will (rightly)
|
|
52
|
+
flag fabricated demand, reach, or advantage.
|
|
53
|
+
|
|
54
|
+
## How to aggregate — gates, then weakest-link + multipliers (NOT a weighted average)
|
|
55
|
+
**Do not average the factors.** A weighted mean lets a strong factor paper over a fatal flaw
|
|
56
|
+
and rewards bland, well-rounded Cases over the spiky ones that matter. Instead:
|
|
57
|
+
|
|
58
|
+
**Step 1 — Kill-gates.** If any of the three necessities (demand · reachable audience ·
|
|
59
|
+
on-strategy/trust-safe) is essentially absent (≤ 3/10), or a non-goal / hard constraint is
|
|
60
|
+
violated → **reject**; the score is that low necessity's value. No multiplier buys it back.
|
|
61
|
+
|
|
62
|
+
**Step 2 — Floor by the weakest necessity, then lift with multipliers.** For a Case that
|
|
63
|
+
clears the gates, the floor is set by the weakest of the three necessities (a chain is only as
|
|
64
|
+
strong as its weakest link). From there the **multipliers raise the score** — a strong
|
|
65
|
+
moat/flywheel or sharp differentiation pushes toward the top; their **absence does not pull an
|
|
66
|
+
enabler down**. An enabler with strong demand + audience and a weak moat is a **good** Case,
|
|
67
|
+
not a weak one.
|
|
68
|
+
|
|
69
|
+
**Step 3 — Verdict.** Map to the bands. Prefer a defensible whole or half number — the gate
|
|
70
|
+
logic is the point, not the decimal.
|
|
71
|
+
|
|
72
|
+
## Verdict bands (0–10)
|
|
73
|
+
Advisory input to the human's go/no-go decision:
|
|
74
|
+
- **≥ 7.0** → **advance** — real durable demand, a reachable (often broadened) audience,
|
|
75
|
+
on-strategy; either a genuine driver *or* a strong enabler that unlocks a lot.
|
|
76
|
+
- **5.0 – 6.9** → **shelve** — clears the gates but limited; name the single thing that would
|
|
77
|
+
move it (more demand evidence, a wider audience, or the moat it should set up).
|
|
78
|
+
- **< 5.0** → **reject** — fails a kill-gate: no real demand, no reachable audience, or
|
|
79
|
+
off-strategy / trust-eroding.
|
|
80
|
+
|
|
81
|
+
## Output — a short, legible brief
|
|
82
|
+
Reason through everything internally, then emit a **structured, human-readable** summary
|
|
83
|
+
following the output template: a **Score + verdict**, a one-line "what this is," then **only the
|
|
84
|
+
1–3 factors that actually drive the score** (the binding constraint and the biggest lift) —
|
|
85
|
+
**not** a roll-call of kill-gates that merely clear (a passing gate is a pass, not a reason), and
|
|
86
|
+
**no "Net" / synthesis line**. Then **at most two concrete, checkable risks** (the specific thing
|
|
87
|
+
that could be wrong and how you'd know — not an abstract caveat), kept separate from the strengths,
|
|
88
|
+
and the single thing that would change the call. Fewer, sharper points beat completeness; keep each
|
|
89
|
+
one a clear sentence. Do **not** dump the raw factor table, the per-factor numbers, or the math.
|
|
90
|
+
|
|
91
|
+
## Anti-patterns
|
|
92
|
+
- **Punishing an enabler / table-stakes Case for lacking a standalone moat or flywheel** —
|
|
93
|
+
removing a limitation and broadening the audience *is* the value; score it on that.
|
|
94
|
+
- **Citing kill-gates that merely clear as justification for the score** — a passing gate is a
|
|
95
|
+
pass, not a driver; name only the factors that actually move the number.
|
|
96
|
+
- **A "Net" / synthesis line, more than three drivers, or abstract non-actionable risks** — cut them.
|
|
97
|
+
- **Computing a weighted average / summing the factors** — use gates + weakest-link + multipliers.
|
|
98
|
+
- Letting a strong multiplier (moat, taste) paper over **no real demand or no reachable audience**.
|
|
99
|
+
- Scoring how easy/cheap the solution is to build (effort — out of scope).
|
|
100
|
+
- Importing another product's metric or strategy — score against **this** project's.
|
|
101
|
+
- A verdict with no score; a dense, self-conflicting paragraph instead of the structured brief.
|