PromptForge
A Claude Code hook that sharpens every prompt before Claude acts on it. It rewrites vague prompts into testable briefs, routes to the right capability, and learns your own commands. No API keys, no latency.
This is the real classifier from the hook, running in your browser. Watch a vague prompt turn into a brief.
Three ways to use it
1The drop-in hook
Always-onThe product. Install once and every prompt you send Claude Code gets sharpened automatically — before Claude reads it. No keys, no latency.
git clone https://github.com/MARCCHERGGI/promptforge.git
cd promptforge
node install.mjsBacks up your settings, appends without clobbering existing hooks. Restart Claude Code and you’re done.
2The open-source repo
MIT · zero depsOne readable file, no dependencies. Read it, fork it, tune the depth thresholds and capability patterns to your own workflow. Includes the installer, the MCP server, the skill, and the learning-loop distiller.
View on GitHub→3The Claude Code prompt
No installWant it without a hook? Paste this prompt to sharpen a single request, or save it as a slash command (~/.claude/commands/enhance.md) and call /enhance any time.
Before you act on my next request, sharpen it. Open your reply
with this block, then act on SHARPENED — never the raw text:
RAW | my request, verbatim
READS AS | resolve typos + shorthand; bind every "it / that / the
thing" to a concrete referent
GAPS | what's missing — audience · goal · success criteria —
fill the obvious, ask only if truly blocked
SHARPENED | the tightened, testable version of the request — act on THIS
ROUTE | the best way to execute it + the check that proves it worked
Scale to ambiguity, not length: if my request is already crisp, just say
"SHARPENED ≈ <one-line restatement>" and get to work. Then complete it in
one pass — don't hand back a half-step that needs another prompt.How it works
You type on the left. PromptForge has Claude act on the right — before the first guess.
make the dashboard betterFull restate-block: binds “the dashboard” to your recent files, names the gaps (which metric? whose view?), proposes plan→implement→verify.
fix the login bugRoutes to root-cause → verify the fix runs — not a guess-and-check patch.
add a rate limiter to src/api.ts, 100/minAlready crisp → one-line confirmation + “complete it in one pass, then verify.” No nagging block.
git push --force to main⚠ Danger reminder: force-push rewrites history — confirm the branch and that no one else is on it.
What’s inside
Adaptive depth
Trivial → nothing. Crisp → one line. Vague → full restate-block. Scaled to ambiguity, not word count, so it never becomes wallpaper.
Capability routing
Detects when a prompt warrants planning, parallel subagents, root-cause debugging, or extended thinking — and names it.
Learns your commands
Reads your own ~/.claude/commands and surfaces the slash commands that fit. Nothing hardcoded — it adapts to your setup.
Learning loop
Logs when a prompt corrects the last turn, then distills recurring misreads into avoid-this lessons it injects automatically.
Danger reminders
Flags hard-to-reverse ops — force-push, rm -rf, prod deploys, plaintext secrets. A heads-up, never a block.