enhance
Skill4 starsChanged 51 days agoMITView on GitHub
Rewrites a user's raw prompt into a precise, unambiguous specification before any work begins — surfacing what is missing, asking only the questions that change the outcome, and returning a copy-pasteable enhanced prompt with a change log. Use when the user types /enhance, says "improve my prompt", "sharpen this", "make this prompt better", or wants a vague request turned into a real brief. Never executes the underlying task.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- Blakeem/aipromptguide-workflowstheir own version, first seen Nov 4, 2026
- thunkaboutit/koleslaw-claude-codetheir own version, first seen Oct 20, 2026
- VoTruongDanh/Skills-Agenttheir own version, first seen Oct 13, 2026
- jatinmayekar/claude-code-enhancetheir own version, first seen Mar 22, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- VoTruongDanh/Skills-Agent★ 4same name
- jatinmayekar/claude-code-enhance★ 2same name
- Blakeem/aipromptguide-workflows★ 1same name
- thunkaboutit/koleslaw-claude-code★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository144 other files it gives its agents.
- skills/composition-patterns/AGENTS.mdAGENTS.md
- skills/react-best-practices/AGENTS.mdAGENTS.md
- skills/react-native-skills/AGENTS.mdAGENTS.md
- antislop-codeSkill
- anti-slopSkill
- antislopSkill
- api-and-interface-designSkill
- api-endpoint-builderSkill
- astroSkill
- bddSkill
- brainstormSkill
- bring-me-ideasSkill
- brooks-lintSkill
- browser-testing-with-devtoolsSkill
- cavemanSkill
- ci-cd-and-automationSkill
- cloudflareSkill
- codebase-audit-pre-pushSkill
- codebase-designSkill
- code-review-and-qualitySkill
- code-simplificationSkill
- composition-patternsSkill
- constraint-driven-developmentSkill
- context7-mcpSkill
- context-engineeringSkill
- conventional-commitSkill
- conventional-commit-with-coauthorSkill
- credentialsSkill
- data-dummerSkill
- dddSkill
- debugging-and-error-recoverySkill
- deprecation-and-migrationSkill
- 3d-uiSkill
- ai-native-uiSkill
- aurora-uiSkill
- bento-uiSkill
- brutalismSkill
- brutalist-typographySkill
- card-based-designSkill
- claymorphismSkill
- color-blockingSkill
- command-center-uiSkill
- cyberpunk-uiSkill
- cyber-y2kSkill
- dark-modeSkill
- dashboard-designSkill
- data-dense-designSkill
- duotone-designSkill
- editorial-designSkill
- flat-design-2Skill
- flat-designSkill
- floating-uiSkill
- frutiger-aeroSkill
- glassmorphismSkill
- gradient-designSkill
- high-contrastSkill
- holographic-uiSkill
- isometric-designSkill
- layered-designSkill
- material-designSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 14 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 39
Read it once as written. Read it again asking: what would I have to guess to start?
- Distinctive: line 41
Every guess is either a blocker or a cosmetic gap.
- Distinctive: line 70
Language and register: If the user wrote in Indonesian but the deliverable is code comments or docs for an English team, say which language …
- Distinctive: line 75
Before writing a question, answer this honestly:
- Distinctive: line 79
If no, do not ask. Pick a default, write it into the prompt, and list it under Assumptions.
- Distinctive: line 81
If yes, ask — but ask well:
- Distinctive: line 87
Never ask what you can find out: If the answer is in the repo, read it.
- Distinctive: line 89
If the user declines to answer, do not stall.
- Distinctive: line 97
Preserve the original intent exactly: If the user said "add a search box", the enhanced prompt says "add a search box", with clarified …
- Distinctive: line 102
Keep the user's voice: If they wrote casually, do not return corporate register.
- Very specific: line 157
Language of code comments: English: Not stated; matches the existing codebase (src/auth/*.ts).
- Distinctive: line 158
No new dependencies: Not stated; assumed from the absence of a package manager change in recent history.
- Distinctive: line 212
No new runtime dependency unless the chosen store requires it.
- Very specific: line 213
Must not change the public signature of the functions in src/orders/service.ts.
- Distinctive: line 222
Do not cache error responses.
- Distinctive: line 223
Do not add a global cache shared across services.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Enhance
Turn a raw prompt into one a competent agent could execute without asking a follow-up question.
The Contract
This skill produces a better prompt. It does not execute that prompt.
Three failure modes, all of which this skill exists to prevent:
- Executing the task. The user asked for a prompt, not a result. If you start building, you have failed the request.
- Decoration. Returning a longer, more confident-sounding prompt that carries the same ambiguities. Length is not precision.
- Scope injection. Silently adding requirements the user never asked for. This is the defining failure of prompt enhancers, and it is worse than doing nothing, because the user ships work they did not request.
The deliverable is a prompt that is executable (an agent can start without asking anything) and checkable (a reviewer can decide whether the result is correct).
When to Use
- The user explicitly wants the prompt improved rather than the task done.
- The prompt is for another agent or model, or will be reused — a system prompt, a template, a saved snippet, a prompt in a repo.
- The work is expensive or irreversible — a migration, a large refactor, a deploy — where a bad prompt wastes real effort.
- The request is underspecified and the user wants to fix the input instead of letting the agent guess.
When Not to Use
- The user wants the task done now. Enhancing first doubles the round trips; if the request is already clear, just do it.
- The request is a single unambiguous mechanical action ("rename this variable", "fix this typo").
- The user is thinking out loud. Turning a casual question into a formal brief is a hostile response.
- The user is in a non-interactive context (CI,
/loop, an autonomous run) where nobody can answer the questions. State the ambiguity as a blocker instead.
Step 1 — Read the Prompt Twice
Read it once as written. Read it again asking: what would I have to guess to start?
Every guess is either a blocker or a cosmetic gap. Classify before asking.
An ambiguity is blocking when two reasonable readings produce materially different work. It is cosmetic when both readings converge on the same output.
| Ambiguity | Blocking when | Cosmetic when |
| Two readings lead to different files, different architecture, or different deliverables | Always | — |
| Two readings differ only in wording or ordering | — | Always |
| The user cannot answer it and any reasonable default works | — | Always |
Only blocking ambiguities justify a question. Cosmetic gaps get a stated default in the enhanced prompt.
Step 2 — Scan the Eight Dimensions
Work through every dimension. Most prompts are missing three or four.
| # | Dimension | The question it answers | Absent looks like |
| 1 | Goal | What outcome, in one sentence? | "make it better", "fix the issue" |
| 2 | Scope | What is in, and explicitly what is out? | Unbounded verbs: "refactor the app", "clean up" |
| 3 | Deliverable | What artifact comes back, in what form? | No mention of file, diff, prose, or code |
| 4 | Success criteria | How do we know it is done and correct? | No acceptance test, no "done when" |
| 5 | Constraints | Stack, style, compatibility, performance, budget, deadline | Not stated, so the agent invents them |
| 6 | Context / inputs | What must the agent read or know first? | No paths, no links, no "see this file" |
| 7 | Audience | Who consumes the output — end user, reviewer, another agent? | Unstated, so the register is wrong |
| 8 | Risk / reversibility | What must not break; what is irreversible? | No mention of blast radius |
Two more dimensions that are not part of the eight but are cheap to fix:
- Language and register. If the user wrote in Indonesian but the deliverable is code comments or docs for an English team, say which language each artifact uses.
- Forbidden actions. What the agent must not do: no new dependencies, no schema changes, no touching a specific directory.
Step 3 — Apply the Confidence Gate
Before writing a question, answer this honestly:
If the user answers this, does the prompt I write change?
If no, do not ask. Pick a default, write it into the prompt, and list it under Assumptions.
If yes, ask — but ask well:
- Batch every question into one round. One message, numbered questions, never an interrogation.
- Attach a recommended default to each. The user should be able to reply "yes" or "1b, 2a" and be done. A question without a recommendation outsources the thinking back to the user.
- Cap at five. More than five means you have not prioritized. Ask the five that change the most work, and list the rest as stated assumptions.
- Use
AskUserQuestionwhen the options are enumerable. A structured choice is faster to answer than prose. - Never ask what you can find out. If the answer is in the repo, read it. Dispatch a search rather than asking the user for a fact.
If the user declines to answer, do not stall. Write the prompt with explicit assumptions and mark each one as unconfirmed.
Step 4 — Write the Enhanced Prompt
Rewrite, do not pad. The enhanced prompt is what the user will actually paste.
Rules:
- Preserve the original intent exactly. If the user said "add a search box", the enhanced prompt says "add a search box", with clarified inputs and acceptance criteria — not "add a search box with fuzzy matching, analytics, keyboard shortcuts, and i18n". That is scope injection.
- Make every requirement testable. "Fast" becomes "p95 under 200 ms on the existing dataset". "Clean" becomes "no file over 300 lines; no new dependency".
- Name the files and paths. A prompt that says "the auth module" makes the agent guess. A prompt that says
src/auth/session.tsdoes not. - State the definition of done explicitly. The single highest-value addition to almost any prompt.
- State what is out of scope. The second highest-value addition. It is what stops scope creep.
- Keep the user's voice. If they wrote casually, do not return corporate register. Match the register of the consumer.
- Do not add ceremony. No "You are an expert engineer with 20 years of experience" preamble. It consumes tokens and changes nothing measurable.
The shape
## Goal
<one sentence: the outcome>
## Context
<what the agent must read first — file paths, links, prior decisions>
## Scope
In: <what changes>
Out: <what explicitly does not change>
## Requirements
1. <testable requirement>
2. <testable requirement>
## Constraints
- <stack, style, compatibility, performance, budget>
## Definition of Done
- [ ] <checkable criterion>
- [ ] <checkable criterion>
## Do Not
- <forbidden action>Drop any section that is genuinely empty. A short prompt with a definition of done beats a long prompt without one.
Step 5 — Report the Change
The user needs to see what you did to their words, or they cannot trust the result.
## Enhanced Prompt
```text
<the full enhanced prompt, ready to paste>
```What Changed
| Added | Why |
| Definition of Done | The original had no way to tell success from failure |
Out: scope | "refactor the app" was unbounded |
| Target path | "the module" had three plausible referents |
Assumptions
- Language of code comments: English. Not stated; matches the existing codebase (
src/auth/*.ts). - No new dependencies. Not stated; assumed from the absence of a package manager change in recent history.
- Unconfirmed: the target is
src/auth/, notsrc/session/. Both exist.
Always separate **what you added** from **what you assumed**. An assumption the user does not notice is a bug you handed them.
## Worked Example
**Raw prompt:**
```text
/enhance bikin caching buat API calls, biar ga lambatAnalysis:
| Dimension | Present? |
| Goal | Partial — "caching for API calls" |
| Scope | Missing — which calls? all of them? |
| Deliverable | Missing — code? a library? a config change? |
| Success criteria | Missing — "ga lambat" is not measurable |
| Constraints | Missing — in-memory? Redis? TTL? invalidation? |
| Context | Missing — no paths |
| Audience | N/A |
| Risk | Missing — stale data is a correctness risk |
Blocking ambiguities: cache layer (in-memory vs shared store) and invalidation strategy. Both change the implementation materially. Ask these two.
Cosmetic: TTL duration — any sane default works, and it is trivially changed later. State a default.
Enhanced prompt:
## Goal
Reduce latency of outbound API calls in the orders service by caching responses.
## Context
- src/orders/client.ts — the HTTP client making the calls
- src/orders/service.ts — the call sites
- Existing cache: none in this service.
## Scope
In: caching for the GET endpoints in src/orders/client.ts
Out: auth endpoints; any write/POST call; the payments service.
## Requirements
1. Cache only idempotent GET responses.
2. Key includes the full URL and the auth subject, so tenants never share entries.
3. TTL configurable via an env var; default 60 s.
4. Invalidation on write to the same resource.
## Constraints
- No new runtime dependency unless the chosen store requires it.
- Must not change the public signature of the functions in src/orders/service.ts.
## Definition of Done
- [ ] A second identical GET within the TTL performs no network call (assert via a mocked transport).
- [ ] Two different auth subjects never share a cache entry (covered by a test).
- [ ] A write to a resource invalidates its cached GET.
- [ ] Existing tests pass unchanged.
## Do Not
- Do not cache error responses.
- Do not add a global cache shared across services.Note what did not happen: no "add observability", no "add a circuit breaker", no "make it distributed". The user asked for caching.
Common Mistakes
| Mistake | Why It Breaks | Correct Approach |
| Executing the task | The user asked for a prompt | Return the prompt only |
| Scope injection | Ships work nobody requested; the worst enhancer failure | Preserve intent; clarify, never expand |
| Padding with role preambles | Consumes tokens, changes nothing | Delete "You are an expert…" |
| Asking cosmetic questions | Wastes the user's attention on decisions that do not matter | State a default and move on |
| Asking without a recommendation | Outsources the thinking back to the user | Every question carries a default |
| Asking ten questions | The user abandons the round | Cap at five, batch them |
| Asking a fact you could look up | The user is not a database | Read the repo or dispatch a search |
| "Fast" / "clean" / "better" left in place | Untestable; the agent invents a threshold | Replace with a measurable criterion |
| No definition of done | The agent stops wherever it feels finished | Always add checkable criteria |
| No out-of-scope statement | Scope creep, the default outcome | Always add an Out: list |
| Rewriting in a different register | The user cannot reuse their own prompt | Match their voice |
| Hiding assumptions | The user ships a prompt built on a guess | List assumptions separately, flag unconfirmed |
| Returning only the prompt | The user cannot see what changed or trust it | Always include the change log |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

