Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enough

A Claude skill that tells you when to stop — and remembers what it told you.

Most products don't die because the builder lacked skill. They die because the builder couldn't answer one question: what is enough? Enough to ship. Enough to learn. Enough to stop adding features and start finding users.

enough turns Claude into a ruthless scope killer. Feed it an idea, a half-built project, a feature request, a pricing page, or a project you haven't opened in three weeks — it returns a verdict, not a discussion. In v2, it also remembers: every verdict writes to a .enough/ ledger inside your repo, and future sessions audit whether the cuts held.

What it does

The skill operates in six modes and auto-detects which one you're in:

You sayModeYou get
"I want to build X" / paste a PRDPre-BuildAn Enough Spec — the smallest version that tests your core hypothesis, every cut explained, every deferred feature given a trigger, and the cuts you'll most likely try to reverse already rebutted in advance
"Is this ready to ship?" / "almost done, what's left?"Mid-BuildA Ship Verdict — SHIP NOW, or SHIP AFTER an hour-estimated list of true blockers (max 48 hours of work, by rule)
"Should I add this feature?" / "users are asking for X"Post-LaunchA Feature Triage — BUILD / DO MANUALLY / WATCH / NO, graded against an evidence ladder
"How's the project doing?" / new session on a project with a Ledger / deadline near or pastDrift AuditA drift report — ON TRACK / DRIFTING / TIME TO SUNSET — naming the cuts that crept back in, the slip on the deadline, the gap against the kill criterion, and the one move for next week
"Should I kill this?" / metric dead per signed kill criteria / haven't opened the repo in a monthSunsetA Sunset Verdict — KILL / REVIVE WITH NEW HYPOTHESIS / HAND OFF, plus the three-action kill plan and the lesson the next project should inherit
"What should I charge?" / "is this too expensive?" / three-tier pricing page with a question markPricingA Pricing Verdict — one specific price (or one specific change), with the floor / ceiling math, the verbatim migration email, and the page copy

Every output ends with a one-sentence Definition of Done — the observable state that means "stop building, start selling."

The Ledger — what v2 added

When the project has a writable filesystem, every verdict the skill produces is written to .enough/<date>-<type>.md inside the repo. Future sessions read the Ledger before answering:

  • Pre-Build won't quietly start a new spec while a prior spec is unresolved.
  • Mid-Build measures readiness against the signed Core Loop, not the loop you remember.
  • Post-Launch reads prior triage so the same "should I add X?" doesn't get re-litigated.
  • Drift Audit is what the Ledger unlocks: compare today's repo (git history, file tree, scope) against the cuts you signed off on. Cuts that snuck back get named, with file paths.
  • Reversal attempts get quoted back: "On 2026-06-14, you signed off on cutting team accounts because: 'agencies might buy it' is the sentence that bloats every roadmap. What evidence has changed?"

Track .enough/ in git. The Ledger is the spec; lose it and the project is unmoored.

The opinions baked in

This skill is not neutral. It believes:

  • Enough = the smallest version that generates real evidence about the core hypothesis. Not the smallest version that's impressive.
  • Every feature must survive five cut tests: the loop test, the walk-away test, the ego test, the concierge test, and the spreadsheet test.
  • "Builders asking is it ready? are almost never blocked by missing features. They're blocked by fear wearing a feature costume."
  • The default answer to a new feature is no. The burden of proof is on the feature, never on the status quo.
  • One price beats three tiers, pre-PMF. Free tiers are a tax on paid users. Annual pricing is for proven retention.
  • Sunsetting a project is a verdict the skill produces; "keep going" on a dead project is not an option.
  • A cut you don't write down with a reason is a cut you'll reverse. Adversarial preemption — naming the cuts you'll try to undo, in advance — is shipped with every spec.
  • But "enough" is never a license to ship broken: payment integrity, data integrity, honesty, the legal floor, and core-path accessibility are uncuttable.

It ships with 18 general cut patterns and three domain packs (B2B SaaS, Consumer, Creator) that override the cut tests for the persona type — because cutting SOC2 from a B2B spec, "engagement" from a consumer app, or a custom LMS from a creator product all look different.

Install

Claude Code

mkdir -p ~/.claude/skills
git clone https://github.com/tanujrajputdev/enough.git ~/.claude/skills/enough

Or for a single project, clone into .claude/skills/enough inside the repo.

Claude.ai / Claude Desktop

Go to Settings → Capabilities → Skills, and upload the skill (zip this folder, or grab the release zip). Skills require a paid plan with code execution enabled.

Use

Just talk to Claude the way you already do:

"I'm building a tool where freelancers send clients a branded portal with proposals, contracts, invoices, chat, client accounts, payments, analytics…"

"My side project has been 'two weeks from done' for six weeks. Here's what's left: …"

"11 users asked for a mobile app. Should I build it?"

"How's the proposal-pages project tracking against the spec we wrote in May?"

"I haven't opened this repo in a month. What do I do?"

"I have 14 users at ₹499/mo. Should I add an agency tier and a free tier?"

The skill triggers on its own. If you want to invoke it explicitly: "Run this through enough."

What an output looks like

VERDICT: SHIP AFTER — 9 hours. You've been done for six weeks; the list grew to protect you from launching.

True blockers (9 hrs): pricing page + payment link (4h, money) · import failure message (3h, honesty) · data deletion path (2h, legal floor)

Felt blockers, cut: Beehiiv API (one-more-feature — trigger: 5 paying users ask) · tests (write them against real users' cursed CSVs, not your imagination) · import rework ("feels clunky" — six weeks of feelings, zero user reports; ship it clunky)

Definition of Done: a writer you've never spoken to uploads their export, sees their best send time, and pays — while you're asleep.

Three full worked examples are in examples/ — a two-sided marketplace cut from 3 months to 10 days, the "almost done" SaaS above, and a feature-request triage.

Structure

enough/
├── SKILL.md # Core: philosophy, modes, ledger, cut tests, voice
├── references/
│ ├── pre-build.md # Enough Spec methodology + adversarial preemption
│ ├── mid-build.md # Ship Verdict methodology (the 48-hour rule)
│ ├── post-launch.md # Feature Triage + the evidence ladder
│ ├── drift-audit.md # Drift Audit methodology (NEW in v2)
│ ├── sunset.md # Sunset Verdict methodology (NEW in v2)
│ ├── pricing.md # Pricing Verdict methodology (NEW in v2)
│ ├── ledger-format.md # .enough/ directory schema (NEW in v2)
│ ├── cut-patterns.md # 18 overbuild patterns and their substitutes
│ └── domains/
│ ├── b2b-saas.md # B2B SaaS pack (NEW in v2)
│ ├── consumer.md # Consumer / Mobile pack (NEW in v2)
│ └── creator.md # Creator / Content pack (NEW in v2)
├── templates/ # Output templates for all six modes
└── examples/ # Full worked examples

What v2 changed

  • The Ledger — every verdict persists to .enough/. The skill is now longitudinal.
  • Three new modes — Drift Audit, Sunset, Pricing.
  • Domain packs — three personas (B2B SaaS, Consumer, Creator) recalibrate the cut tests and add domain-specific overbuild patterns.
  • Adversarial preemption — every Enough Spec ships with the rebuttals to the reversal attempts you'll make in week 2.
  • The Builder Profile — patterns the skill notices across your projects (e.g., "you over-build admin dashboards") get used inline in future verdicts, when the host has a memory system.
  • The signed commitment — every spec is signed. Future audits quote the signature back when cuts are reversed.

The single change that does the most work is the Ledger. It is what turns the skill from an oracle (one-shot judgment, easily ignored) into an advisor (longitudinal, holds the line over weeks).

Philosophy

The name carries the whole product. Enough as sufficiency — you have what you need to ship. Enough as a boundary — that's enough, stop adding. Enough as a verdict — this project has had enough of your time; let it go. The skill enforces all three.

It is ruthless about scope and never about the person. The builder's instinct to build is the asset; it's the aim that's off.

Contributing

PRs welcome — especially:

  • New cut patterns (references/cut-patterns.md) with real substitutes that shipped
  • New domain packs (references/domains/) — marketplace, hardware, AI wrapper, agency/services — each with persona truths, recalibrated cut tests, and 5–7 domain-specific overbuild patterns
  • Worked examples from real projects, including post-Sunset retrospectives (rare, valuable)

Keep the voice: verdict first, every cut explained, numbers over adjectives, the Ledger is sacred.

License

MIT — see LICENSE.


Built by Tanuj Rajput. If this skill kills a feature you loved, it worked. If it sunsets a project you couldn't let go of, it worked harder.

About

A Claude skill that tells you when to stop. Ruthless scope killer for builders — turns ideas, half-built projects, and feature requests into verdicts: ship, cut, or defer.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors