npx skills add ...
npx skills add asmartbear/asb-skills --skill asb-needs-stack
Builds a customer Needs Stack — the ladder in which every need is a means to the end one level up (buy infrastructure → set up a WordPress site → have a personal website → get a book deal). Anchors the level the user's product satisfies, phrased as the customer's own goal in the customer's own words, then walks downward (the steps the product makes obsolete) and upward (what the customer really wants), crystallizing every level — specific wording, a true means-to-an-end link, named real-world occupants — before moving on. Records the stack in NEEDS-STACK.md with the user's level marked and each level's positioning role: what you do, promise, reference as aspiration, or brag about obviating. Load when the user asks what their customer really wants, what level their product operates at, who their real alternatives (not just competitors) are, or to 'build our needs stack.' Do NOT load to rewrite marketing copy from a finished stack — that is a separate positioning task that consumes this file.
npx skills add asmartbear/asb-skills --skill asb-needs-stack
Nobody's life ambition is to buy your product. Whatever your product does, it is a means to an end — and that end is a means to a higher end, and so on, up a ladder this method calls the Needs Stack. Mapping the stack tells you who your real alternatives are (not just your competitors), what outcome you may honestly promise, which steps you should brag about making obsolete, and where your company's higher purpose lives. This skill builds that map with the user: anchor the level the product satisfies, walk down, then walk up — one level per exchange, each level crystallized before the next.
Charlie signs up for AWS to buy cloud infrastructure — servers, storage, network. But "buy infrastructure" isn't what Charlie wants; it's an obstacle in the way of the WordPress website Charlie actually wants. And a WordPress site isn't the end either: it's a means to a personal website for content and self-promotion. Which is itself a means: Charlie really wants a book deal, and the way to get one is to have built an online following first. Written as a stack, top ends above bottom means:
Every level is real, every level has vendors serving it (Substack and social media at the following level; Wix, Squarespace, and Webflow at the website level; WP Engine at the WordPress level; AWS, GCP, and Azure at the infrastructure level), and every level is only a means to the one above it.
A product that satisfies a need in the stack makes the products below it obsolete for that customer. Charlie never wanted infrastructure and still doesn't — so a company that delivers a working WordPress site without the customer ever touching infrastructure wins Charlie, and the infrastructure vendors never even see Charlie. Charlie disappears from that market. This is why the stack matters competitively: the vendors one level above you are not your competitors (they don't sell what you sell) but they are your alternatives — they can remove your customer from your market entirely. Ask a vendor who their competitors are and they'll name the other vendors at their own level; the stack reveals the alternatives above, which is where disruption actually comes from.
Higher levels offer the shortest path to the goal; lower levels offer flexibility and customization. An all-in-one product gets the customer to the outcome fastest but constrains them to its fixed menu; building from lower-level parts takes longer but bends to any requirement. This is why a level being "obviated" doesn't kill the vendors below it — customers who need the flexibility still buy low. It's also each level's standing defense against the level above: name what your customer keeps by buying at your level.
Everyone wants to stop mapping when they reach the level they operate on — "we sell websites, and customers want websites, done." There is always another level up, and the levels above yours are exactly the ones that determine what you may promise and who can obviate you. Keep climbing until the stack tops out.
High enough, the needs stop being product-shaped: recognition, ego, legacy, self-actualization. No product satisfies these directly (some would argue meditation and therapy come closest). Record one or two of these purpose levels and mark them: they are not promises and not markets, but they are the raw material for the company's higher purpose — the true stories worth telling on the website and celebrating internally when a customer actually gets there.
Positioning consumes the stack by role, relative to the user's level:
The stack also picks your most strategic metric — measure whether customers succeed one level up from you, not just whether your product delivered (a store-builder can deliver a perfect store whose owner sells nothing and churns; the vendor that measures its customers' sales sees the truth) — and it warns against the tempting pivot: moving your product up a level is usually a different product, a different business, and a smaller market. Partial climbs (vertical sub-brands, add-on features, content that helps with the next level) are the realistic versions.
A stack belongs to one kind of customer. Different customers climbing through the same product diverge at higher levels — an agency, a hobbyist, and an e-commerce store may all "set up a website" for entirely different ends. Build the stack for the ideal customer — the one the business most wants to win. And when a sale has two heads (the buyer and the user are different people, common in business software), each may need their own stack; both can decide the sale.
Write to be understood, not admired. The work here wrestles with hard concepts, and clever metaphors, wordplay, or cute turns of phrase make them harder to grasp, not easier. Say plainly what you mean. If a sentence reads more clearly without a flourish, cut the flourish. State the actual point rather than gesturing wittily at it.
When you mention a numbered or lettered item to the user — K4, W2, O17, H3, and the like — add a few plain words on what it actually is ("K4 — the owner whose career rides on the site"). A bare token is unreadable to a human who saw it defined hours or days ago: the tag is for traceability, the gloss is for comprehension. Keep the tag for accuracy; always add the gloss.
The walk is strictly paced: anchor the user's own level first, then one level per exchange — downward until the levels stop mattering, then upward until the purpose levels. A level is settled only when it passes the crystallization gate below; do not sketch the whole stack up front and refine later (if the user asks for exactly that, decline in substance: a ladder of unvetted levels is a brainstorm, not a map, and each level is built on the one before it — offer instead to propose the candidates at every level so the user mostly confirms and corrects), and do not accept "and above that, obviously, success" as a level. Propose candidate phrasings AND candidate occupants yourself freely — the user knows their customer; the outside perspective helps find the honest phrasing and remember who else sells at a level — but the user confirms every level. When you name occupants and alternatives, confirm who serves a level today using current results from your search tools; do not rely on internal (training) knowledge, which is stale and names dead products or misses new ones. A level heard out of order ("they want to win cases" volunteered during the anchor) is parked in chat and takes its number only when the walk reaches it and it settles.
Every level must pass four tests before the walk moves on:
Two scope notes. When descending, the means-to-end test points upward — it verifies the already-settled level above the new one (handed that fulfilled, would they skip this new lower step?); a brand-new bottom level's own downward link isn't testable until the next descent, and that's fine. And purpose levels are exempt from test 3 only: tests 2 and 4 still apply, and test 1 applies in personalized form — "recognition" and "legacy" are recorded as this customer's specific version of them ("be known in town for her beer," "promotion to VP, and evenings back"), never as bare abstractions.
Whether their customer really climbs this way, what the customer actually wants, which persona is ideal — the user's knowledge, and their call stands after one honest press. But the gate is not theirs to waive: a level that fails a test is not recorded in the stack in any form, however insisted; there is always a compliant phrasing of what the user actually means, and finding it is the work. When the user defends a phrasing by appeal to market knowledge ("that IS what the customer wants — the board approved this language"), separate the two out loud: the want is theirs and stands; the words are the gate's, and vendor phrasing never enters the file. Tone stays warm; the bar does not move. One escape hatch: if, after the trap is explained once, the user still declines to climb further, don't stall the whole exercise — finalize with an explicit caveat in the preamble ("stack incomplete — stopped below the purpose levels at the user's request") so the file is honest about what it is.
Before finalizing, attack the whole stack once. If a devil's-advocate
interrogation skill is installed in the environment (for example
Rude Q&A / asb-rude-qa, from the same author as this method),
invoke it against the draft stack with this brief: attack this needs
stack — find every level phrased in vendor language or generic words;
every means-to-end link that fails the "handed to them fulfilled,
would they skip the level below?" test; every level with no real
occupants that isn't a purpose level; every adjacent pair that is one
level reworded; and check the top — did they stop climbing at their
own level or one polite step above it? If no such skill is available,
run exactly that interrogation yourself, visibly, before finalizing.
Optional inputs, worth asking for once. The stack is anchored to a
specific customer, so ask (in the same breath: paths to the files,
and the company/product name for the file title) whether the user
has: an ideal-customer definition (a file defining the customer by
behavioral and circumstantial markers — often with numbered
keystones, deal-breakers, and inciting events); customer-interview
findings; a keystones chart. Read whatever exists — the ideal
customer named there is whose stack this is, interview quotes are
gold for phrasing levels in the customer's words, and keystones
sharpen the "why your level still wins" lines. If none exist, say
plainly that the stack will be sharper with them (and that an
ideal-customer method from this skill's author produces the
definition — asb-carol-define is the final step, if installed),
then proceed anyway: press for a one-or-two-line sketch of the ideal
customer — who they are by circumstance and behavior, not
demographics; the press repeats until the sketch is genuinely sharp,
since a vague anchor bends every level above it — and record it in
the preamble as the anchor, caveated as unvetted. Record absences
too ("no ideal-customer definition, interviews, or keystones chart
exist"), so a resumed session doesn't re-ask.
Resume check. If a NEEDS-STACK.md already exists at the target
location, read it first: an in-progress header means resume — pick up
exactly where the pointer says, don't re-litigate settled levels. A
finalized file means ask whether to revise or to build a second
persona's stack. When the user says "continue" but no file is found
where expected, ask where it lives before starting fresh.
Anchor your level. Ask what the product does, then convert it: the
anchor level is the customer's need, not the product's category. "We
sell managed Postgres hosting" anchors as "have a production database
that runs itself." Run the crystallization gate on it — including
occupants: the user plus their direct competitors. This is N1. Create
NEEDS-STACK.md as soon as N1 settles — in the same directory as any
input file; with no input file, ask where the method's files should
live before creating it (default: the current directory) — with the
in-progress header.
One level per exchange: what would the customer have to do or buy below this level if your product didn't handle it? Each level down gets the full gate, plus its role line: an advancement — a step you make obsolete, and should say so. Stop descending when the next level down no longer matters to the purchase — the test: would any buyer weigh it when choosing among the occupants at your level, and would your positioning ever mention it? Both no = stop (below "buy infrastructure" lies "have electricity" — real, but nobody's positioning mentions it). One or two levels down is typical. Note the stop and its reasoning in the header pointer while in progress, so a resumed session knows the descent is complete.
One level per exchange, starting from the anchor: is that the customer's life ambition? Means to what end? Each level up gets the full gate, plus its role lines: the first level up is the promise; levels above that are aspirations; every occupied level above notes why your level still wins for your ideal customer (the flexibility, customization, or uniqueness they keep). Keep climbing past the comfortable stopping point — the trap is stopping at or just above your own level. The walk ends when the levels stop being product-shaped: record one or two purpose levels, marked as such.
Where the market genuinely diverges at some height — different ideal customers climbing to different ends — don't average them into one vague level; note the divergence and offer a second stack for the other persona (Phase D).
Record to the file as you go. Write each level into the file at its stack position the moment it settles — settle order and stack order differ, so this is placement, not appending to the bottom — and keep the header pointer current: anchored, walked down through (and whether the descent is complete), walked up through, currently crystallizing. When a level is in flight — candidates proposed, nothing settled — put the candidate phrasings in the pointer too: the not-recorded-in-any-form rule protects the stack body, not the resume pointer, and a resumed session shouldn't lose work the user already reacted to. The file is the memory, not the chat. If files aren't accessible, re-emit the full draft in a fenced block every level or two.
asb-positioning), name it: "when you're ready,
run asb-positioning on your marketing copy with this file."N-numbers are stable once written — downstream positioning statements cite them. Never renumber; a level inserted later takes the next fresh number and its place in the list. Stability binds the number and the level's meaning, not its letter-for-letter wording: while the file is in progress, wording may be refined under a frozen number with the user's confirmation (the closing press often does this); after finalization, changes append rather than rewrite.
# Needs Stack — <company / product>
> ⚠️ IN PROGRESS — anchored at N1; walked down: <N-numbers, and
> whether the descent is complete, with the stop reasoning>; walked
> up: <N-numbers settled so far>; currently crystallizing: <the level
> in flight — include any candidate phrasings proposed but not yet
> settled>. <If the walk is done and the sweep isn't: "walk complete;
> closing press / role check / finalization remaining."> <If a second
> stack is in flight, say which stack and where.> If you are
> resuming, continue there. (This note is removed at finalization.)
<Two or three lines: whose stack this is — the ideal-customer
definition file it anchors to, or the confirmed customer sketch — and
the product. Levels are numbered in settle order; position in the
list below carries the stack order, top ends before bottom means.>
## The stack
**N5.** ★ <purpose level> — *purpose level: no product satisfies
this directly; material for higher-purpose stories, never for
promises.*
**N4.** → <aspiration level>
Occupants: <who serves this level, by name>
Role: aspiration — show the part you play; never promise it.
Why your level still wins for your ideal customer: <what they keep>.
**N3.** → <one level up>
Occupants: <…>
Role: **the promise** — the outcome claimed as a consequence of N1.
Why your level still wins for your ideal customer: <what they keep>.
**N1.** → <your level> ← YOU ARE HERE
Occupants: you; <direct competitors, by name>.
Role: **what you do** — features live here; meet searchers where
they are.
**N2.** → <one level down>
Occupants: <…>
Role: advancement — a step you make obsolete; brag about it.
## <Second persona> stack (only if the sale has more than one head)
<Same structure; numbering continues from the first stack.>
## Uses beyond positioning
<Two or three lines: measure success one level up from what you
deliver; the purpose levels are where the company's higher purpose
lives; moving your product up a level is a different business —
partial climbs (verticals, add-ons, helpful content) are the
realistic versions.>
## Next steps
<Two or three sentences of prose: the stack feeds positioning — talk
features at your level, promise the level above, reference
aspirations without promising, brag about the levels you obviate —
and the method continues by converting your actual marketing copy
level by level. Name the positioning skill if installed.>