Help us improve
Share bugs, ideas, or general feedback.
From lich-skills
Runs a strict pre-project gate that defaults to NO-GO unless five framework checks pass, includes memory of past attempts, and enforces a 24-hour cooldown on high enthusiasm. Outputs a public commitment artifact with kill criteria for D14/D30/D60/D90 reviews.
npx claudepluginhub lichamnesia/lich-skills --plugin lich-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/lich-skills:go-no-goThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **NO-GO is the default. GO requires evidence.**
Guides defining kill criteria, go/no-go gates, and exit ramps for projects. Helps avoid sunk cost fallacy and make disciplined continue/pivot/kill decisions.
Guides project ideation via Socratic questioning, constraint discovery, and structured phases to generate actionable project briefs comparing alternative approaches. Use for new projects without clear requirements.
YC Office Hours brainstorming: startup mode with six forcing questions to validate demand, or builder mode for design thinking on side projects. Saves a design doc. Use before planning reviews.
Share bugs, ideas, or general feedback.
NO-GO is the default. GO requires evidence.
Most AI coding skills help you build. This one helps you not build.
Half the cost of solo work is starting the wrong thing. Once a repo exists, sunk cost and identity-protection make it hard to quit. So you grind 3–6 months before admitting the start itself was wrong.
go-no-go is the gate before any /spec, /plan, /build. It runs five
framework checks (configurable), a memory check against your own past
attempts, and a 24-hour cooldown if your enthusiasm is too high. The output
is a public commitment doc with pre-mortemed kill criteria. If anything
fails, the default is NO-GO.
It is a deliberately stronger instrument than a generic intent-extraction interview: it stores memory, fails by default, requires structural overrides, and produces a dated artifact you publish.
Run /go-no-go when:
/spec, /plan, or /build on a new thing/spec directly)| Plain intent interview | go-no-go | |
|---|---|---|
| Default outcome | Continue | NO-GO |
| Memory of past attempts | None | Mandatory pre-flight search |
| Framework checks | Generic restate | 5 fail-by-default gates |
| Time gate | None | 24h pattern-interrupt if enthusiasm-high |
| Output | Confirmed restate | Public commitment doc with kill criteria |
| Override semantics | "Yes/no" | Structured override with named reason |
| Lifecycle | One session | D14/D30/D60/D90 review schedule |
| Composability | Standalone | Stage 0 of any SDLC (pairs with spec-driven-dev) |
If your situation calls for a softer instrument, use a generic intent interview. If you have a pattern of starting and not finishing, use this.
/loop, or autonomous loops~/.go-no-go/journal.md)Before asking anything, search the configured memory store for prior similar attempts.
PRE-FLIGHT:
- Topic: <extracted from user pitch>
- Searched: <memory store path>
- Found N prior similar attempts:
- <date> <name> → <outcome>
- <date> <name> → <outcome>
If N ≥ 1, state explicitly:
"You attempted [similar X] in [date]. It ended because [reason from journal]. What is structurally different this time?"
Wait for an answer. Reject these answers as non-structural:
Accept these as structural:
If the answer is non-structural → automatic NO-GO. Document the attempted override in the commitment doc so the user can see they tried.
Write one sentence describing what you think the user wants, with an honest confidence number.
HYPOTHESIS: You want to <restated intent>, and you reached for <stated approach>
because <conventional reason>.
CONFIDENCE: ~XX%
The number forces honesty. If you can't predict the user's reaction to the next three questions you'd ask, lower the number.
Format:
Q: <focused question>
GUESS: <your hypothesis for the answer, with reasoning>
Wait for the user before asking the next. Why one-at-a-time, why guess attached:
Watch for buzzword answers ("scalable", "modern", "robust", "clean") and convention-talk ("the standard approach", "best practice"). The wildcard question, used when you hear those:
"If you didn't have to justify this to anyone — not even your future self on Twitter — what would you actually want?"
That one question often surfaces more than the previous five.
Run all five. Any FAIL = automatic NO-GO unless the user explicitly overrides with a named structural reason (recorded in commitment doc).
The default checks are below. Users override or add to these via
~/.go-no-go/config.yml (see templates/config.yml).
Can a competent operator clone 80% of this in 2 weeks?
Who pays for this? Who follows your work?
Demand strength does not compensate for audience–market mismatch.
Where do the FIRST 100 customers/users come from? Be specific.
Which capacity does this require? Do you have it free?
Capacities: creative · analytical · operational · social · executional.
For each factor, mark PASS or FAIL:
Any 2 factors fail → AUTOMATIC NO-GO.
Scan the conversation for enthusiasm-high signals:
If detected:
PATTERN INTERRUPT TRIGGERED.
Enthusiasm signal: HIGH.
This is NOT a NO. This is a PAUSE.
Action:
- Draft the commitment doc now (Step 6).
- Save it to runs/<YYMMDD-HHMM>-go-no-go-<slug>/draft.md
- Tomorrow at this time, re-open it and answer:
1. Re-read the draft. Still want to commit?
2. What did you forget yesterday that you remember now?
3. Which framework check feels weaker now than yesterday?
Only after that will Step 7 confirmation run.
This step is configurable but on by default. The cooldown duration is
pattern_interrupt.cooldown_hours in config (default 24).
This is the public artifact. The full template lives in
templates/commitment.md. Required sections:
The following are not confirmation:
Require: user reads the commitment doc in full and types "GO" with their own hand. If 24-hour pattern interrupt was triggered, this step cannot run until the cooldown has elapsed.
spec-driven-dev
(run /spec next). The commitment doc becomes the project's permanent
root context.runs/<YYMMDD-HHMM>-go-no-go-<slug>/
├── transcript.md # full conversation
├── commitment.md # the artifact (Step 6)
├── memory-check.md # Step 0 search results
├── framework-checks.md # 5 check details with reasons
└── decision.md # GO / NO-GO / PAUSED with rationale
If GO and public_commitment.enabled is true, the commitment doc is also
posted to the configured public surface (Gist / GitHub repo / etc.).
The skill reads ~/.go-no-go/config.yml. Schema and starter packs are in:
templates/config.yml — full schema with all options documentedpacks/solo-founder.yml — default for solo product builderspacks/indie-dev.yml — for technical builders without marketing focuspacks/content-creator.yml — for newsletter / YouTube / Twitter operatorsIf no config exists, the skill prompts the user to pick a starter pack on first run.
memory:
mode: file # file | vault | git
path: ~/.go-no-go/journal.md
git log --grep across a "decisions" repofile mode works with zero dependencies. vault and git modes are
opt-in for users with existing knowledge systems.
spec-driven-dev — go-no-go is the stage before spec. If GO,
the commitment doc becomes the Spec phase's input.debug-hypothesis — orthogonal. Debug-hypothesis applies to bugs in
running code; go-no-go applies to whether code should be written at all.subagent-brief — orthogonal. Subagent-brief is token discipline within
a delegation; go-no-go is project-level discipline before delegation.| Rationalization | Reality |
|---|---|
| "This time is different" | Identical to past failures' override pattern. Specify STRUCTURAL difference or NO-GO. |
| "I'll just spend a weekend on it" | Weekends become months. Set a hard 30-day abandon clock from go-no-go. |
| "I don't need the memory check, I remember" | If you remembered, you'd already have your structural-difference answer. Run the search. |
| "The wedge factors are too restrictive" | The defaults were calibrated from real failures. Restrictive = working as designed. |
| "I'm not that excited, no interrupt needed" | If you weren't excited, you wouldn't be considering this. Run the cooldown anyway. |
| "Override on Acquisition Channel, I'll figure it out" | Acquisition is the most-overridden check and the most-fatal one. No override on Acquisition. |
| "The upside is huge if it works" | Upside-only thinking is not go-no-go thinking. Both sides of the trade or NO-GO. |
| "Let me at least write the spec first" | Writing the spec creates sunk cost. Spec is post-decision; go-no-go is the decision. |
| "I'll just make this private" | Private commitments fail more often than public ones. Default is PUBLIC. |
spec-driven-dev for GO)Most decision tools default to "continue with adjustments." That bias compounds the start-too-many problem. By making NO-GO the default and requiring evidence to flip it, the skill aligns with the underlying truth: most ideas should not be pursued, and the ones that should are the ones that can withstand five specific checks.
After ten sessions, users internalize that the gate is the work. The project may or may not happen after. Both outcomes are productive.