Prompt Mini
A Claude Code plugin that stops vague prompts before they run. Detects your stack, asks targeted questions, and forges a structured prompt. Zero credits wasted.
Install / Use
/learn @nidhinjs/Prompt MiniQuality Score
Category
Development & EngineeringSupported Platforms
README
<br/>
A Claude Code plugin agent that intercepts vague prompts before execution. Detects your stack, asks targeted questions, and forges a structured prompt for Claude Code. No re-prompts. Zero wasted credits.
Works for every major stack: Next.js, React Native, Expo, Supabase, Prisma, FastAPI, Chrome MV3, Tailwind, shadcn, Clerk, Vercel AI SDK, LangChain, Drizzle, Cloudflare Workers, and 30+ more. Each stack has its own pitfall rules, scope anchors, and stop conditions baked in - so the forged prompt is never generic and common.
🚨 Demo
<br/>
🔗 By the Same Creator
| Tool | What it does | Stars | |------|-------------|-------| | prompt-master | A free Claude.ai skill that writes the accurate prompts for ANY AI tool. | 4,000+ ⭐ |
🚀 Installation
Requirements: Claude Code v2.0+ · Python 3.8+
#1 - Marketplace (Recommended)
Step 1 - Add the marketplace via terminal
claude plugin marketplace add nidhinjs/prompt-mini
Step 2 - Install via terminal
claude plugin install prompt-mini@nidhinjs-marketplace
Step 3 - Run this script
Mac / Linux:
python3 ~/.claude/plugins/cache/nidhinjs-marketplace/prompt-mini/0.1.0/setup.py
Windows:
python "$env:USERPROFILE\.claude\plugins\cache\nidhinjs-marketplace\prompt-mini\0.1.0\setup.py"
Step 4 - Restart Claude Code
In Claude Code → Verify with /prompt-mini → you should see prompt-mini listed.
Running the script is required due to a known Claude Code bug where plugin hooks don't register automatically.
#2 - Local Install (Contributors)
Step 1 - Clone
git clone https://github.com/nidhinjs/prompt-mini.git
Step 2 - Create a parent folder
Mac / Linux:
cd ..
mkdir prompt-mini-dev && cd prompt-mini-dev
mkdir .claude-plugin
echo '{"name":"local-dev","owner":{"name":"nidhinjs"},"plugins":[{"name":"prompt-mini","source":"./prompt-mini"}]}' > .claude-plugin/marketplace.json
mv ../prompt-mini ./prompt-mini
Windows:
cd ..
mkdir prompt-mini-dev; cd prompt-mini-dev; mkdir .claude-plugin
[System.IO.File]::WriteAllText(".claude-plugin\marketplace.json", '{"name":"local-dev","owner":{"name":"nidhinjs"},"plugins":[{"name":"prompt-mini","source":"./prompt-mini"}]}')
mv ..\prompt-mini .\prompt-mini
Step 3 - Register and install
claude plugin marketplace add /absolute/path/to/prompt-mini-dev
claude plugin install prompt-mini@local-dev
Step 4 - Run setup
python prompt-mini/setup.py
Step 5 - Restart Claude Code
<br/>🎯 How It Works
Every prompt you type gets evaluated by a lightweight Python hook:
Clear prompt? → Passes through instantly. Zero questions.
Vague or framework-specific prompt? → Hook intercepts. Skill fires. Asks 2-6 targeted questions. Assembles a structured prompt and executes it.
You type a prompt
↓
Hook evaluates (~189 tokens)
↓
Clear? ──────────────────→ Pass through instantly
│
Vague?
↓
Scans project files (package.json, CLAUDE.md, imports)
Detects your stack automatically
Asks ≤5 clarifying questions
Assembles structured 6-block forged prompt
↓
Claude Code executes the forged prompt
⌨️ Bypass
Add * at the start of any prompt to skip prompt-mini entirely:
* fix the login bug
Other auto-bypasses: /slash-commands and #memory-commands pass through unchanged.
🛠️ Supported Stacks
Framework specific routing, scope anchors, and stop conditions for every major stack.
<details> <summary><h3>Web Frameworks (11)</h3></summary>| Stack | What prompt-mini prevents |
|-------|--------------------------|
| Next.js App Router | Adds "use client" everywhere, mixes App/Pages Router, forgets "use server" on actions |
| Next.js Pages Router | Uses server actions (App Router only), wrong data fetching pattern |
| Remix | Confuses loaders with server actions, misses nested routing |
| SvelteKit | Writes React patterns in Svelte files, wrong file conventions |
| Astro | Adds React hooks to .astro files, treats it like a SPA |
| Vite + React | Attempts server actions, forgets all fetching is client-side |
| Vite + Vue 3 | Mixes Options API and Composition API |
| Nuxt 3 | Mixes Nuxt 2 patterns, wrong composables structure |
| Qwik City | Treats it like React, misses resumability patterns |
| T3 Stack | Creates REST routes instead of tRPC procedures, misses root router |
| Astro | Adds hooks to .astro files, forgets island component boundaries |
| Stack | What prompt-mini prevents | |-------|--------------------------| | React Native + Expo | Uses DOM APIs, imports CSS, forgets platform file conventions | | Flutter | Generates React patterns in Dart, forgets stateful vs stateless widget | | Kotlin + Jetpack Compose | Mixes View system with Compose, wrong lifecycle handling | | Swift + SwiftUI | Mixes UIKit patterns, wrong property wrappers | | Capacitor | Treats it like a native app, forgets web bridge limitations |
</details> <details> <summary><h3>Desktop + Extensions (7)</h3></summary>| Stack | What prompt-mini prevents | |-------|--------------------------| | Tauri 2 | Mixes Rust and frontend code, forgets to register commands in main.rs | | Electron | Puts Node APIs in renderer, skips IPC bridge | | Chrome MV3 | Uses background page (MV2), accesses DOM in service worker | | Firefox WebExtension | Wrong manifest key names, missed permission declarations | | VS Code Extension | Registers commands without adding to package.json contributes | | Raycast Extension | Wrong API imports, misses required export structure | | Wails | Mixes Go and frontend runtime assumptions |
</details> <details> <summary><h3>Backend / API (8)</h3></summary>| Stack | What prompt-mini prevents | |-------|--------------------------| | FastAPI | Forgets Pydantic v2 syntax, skips response_model | | NestJS | Creates services without injecting them via module providers | | Hono | Uses Express req/res instead of Hono context | | Node + Express | No error middleware, missing async error handling | | Django | Mixes function-based and class-based view patterns | | Flask | No blueprint structure, missing error handlers | | Go + chi | Wrong middleware chaining, missing context passing | | Rust + Axum | Wrong error types, missing trait implementations |
</details> <details> <summary><h3>AI Apps + Agents (6)</h3></summary>| Stack | What prompt-mini prevents | |-------|--------------------------| | Vercel AI SDK | Mixes v3 and v4 APIs, exposes API keys client-side | | LangChain.js | Uses deprecated v0.1 patterns in v0.2+ | | LangGraph | Forgets to compile graph, skips state schema definition | | Anthropic SDK | Puts API key client-side, wrong streaming pattern | | OpenAI SDK | Wrong tool_choice format, misses response parsing | | Mastra | Wrong agent configuration, misses tool registration |
</details> <details> <summary><h3>Database / ORM + Auth (12)</h3></summary>| Stack | What prompt-mini prevents | |-------|--------------------------| | Supabase | Uses client-side auth checks, disables RLS, wrong SSR client | | Prisma | Schema changes without migration, forgets prisma generate | | Drizzle | Mixes v0.28 and v0.29+ APIs | | MongoDB | Wrong aggregation pipeline syntax | | Redis / Upstash | Wrong command syntax for edge runtime | | Turso | Uses Node-only libsql in edge environment | | NextAuth v5 | Uses v4 session callbacks, wrong auth() usage | | Clerk | Uses deprecated authMiddleware, forgets ClerkProvider | | Supabase Auth | Client-side session checks, skips middleware refresh | | Better-Auth | Wrong adapter configuration | | Lucia | Outdated session handling pattern | | Convex | Wrong mutation vs query pattern |
</details> <details> <summary><h3>UI + Deploy (10)</h3></summary>| Stack | What prompt-mini prevents | |-------|--------------------------| | Tailwind CSS 4 | Generates tailwind.config.js (v3 pattern, removed in v4) | | shadcn/ui | Generates component code instead of using CLI | | Radix UI | Missing required accessibility props | | MUI | Wrong theme provider nesting | | Mantine | Missing MantineProvider wrapper | | Vercel | Uses Node-only APIs in Edge Runtime | | Cloudflare Workers | Uses Node APIs not available in Workers runtime | | Fly.io | Wrong Dockerfile for the stack | | Railway | Missing start command in package.json | | Docker | Wrong base image for the runtime |
</details>7 Credit-Saving Rules Applied to Every Forged Prompt
| Rule | What it does |
|------|-------------|
| Constraints in first 30% | Critical MUST NOT rules go at the top — they decay at the tail and get ignored under execution pressure |
| Real file paths only | Scope says src/lib/auth.ts not "in the auth module" |
| Specific stop conditions | Names exact destructive actions — never "be careful" |
| One task per prompt | Two distinct deliverables = Prompt 1 + Prompt 2, never merged |
| MUST and NEVER over weak words | "should not" → "MUST NOT". Weak words get ignored. |
| No ghost features | Nothing added beyond what was asked. Scope creep burns credits. |
| Checkpoint on every multi-step task | ✅ [what was completed] after each step — catches failures before they compound |
❓ FAQ
Does it slow me down? Clear prompts: no. The hook is a ~189 token Python check. Vague prompts: 5–15 seconds for the question flow. Faster than re-prompting twice.
Does it change my prompt without asking? No. It asks
