Use when the user has typed a short or vague prompt and the system is configured to expand prompts before submission, or when the user explicitly invokes "Enhance Prompt" or asks the system to "improv…
Library skill — the default version is maintained in GitHub; edits you make live in your own clone.
Rewrite the user's prompt into a more effective version before it is submitted to the model. Show the user what changed and why. Make the expansion visible and editable, never silent.
The point of this skill is not to make every prompt longer. It is to surface the implicit assumptions in a short prompt and turn them into explicit instructions, so the model produces what the user actually wanted on the first try rather than after several rounds of clarification.
Apply when:
In auto-expand mode, also apply the skip conditions in the next section before producing an expansion. Auto-expand should not be aggressive — many prompts do not need expansion, and producing an expansion when one is not needed is friction rather than value.
Skip the expansion and let the original prompt through unchanged when:
--no-enhance-prompt, [skip enhance prompt], or similar, honor it.attached_skills includes a skill whose description shows it handles prompt expansion or rewriting, skip — let the attached skill drive.When skipping, return the skip decision explicitly (see Output section) so the application can pass the original prompt through.
A good expansion makes implicit elements explicit. The implicit elements that most often need surfacing in legal prompts are:
jurisdiction if available, or note that the expansion assumed US-default and the answer should be re-asked if a different jurisdiction applies.A good expansion adds these only where they are actually missing. Adding a role to a prompt that already specifies a role is noise. Adding a jurisdiction to a question that has no jurisdiction-dependent component is noise.
Read the input. Parse the raw_input. Identify what the user is asking for (the substantive task) and how the user is asking for it (voice, formality, urgency).
Check skip conditions. Run through the skip conditions in the section above. If any apply, return a skip decision (see Output section). Stop here.
Read the context. If attached_skills, attached_files, chat_history, or jurisdiction are provided, read them. Identify what is already established and should not be re-established.
Identify the gaps. Walk through the seven elements (role, jurisdiction, audience, scope, output format, constraints, citation expectations) and identify which are implicit in the prompt and worth surfacing. Skip elements that are already explicit, and skip elements that are not relevant to this prompt (e.g., citation expectations are irrelevant if no document is in scope).
Draft the expansion. Write the expanded prompt. Preserve the user's substantive verbs and nouns. Add the elements identified in step 4. Keep total length to 2–5x the input length.
Write the reasoning section. Three to six bullet points, one per element you added or modified. Each bullet names what was added and why in plain language. The user will read this; write for the user, not for a developer.
Return the structured output. See Output section.
The skill returns a structured object:
expansion_applied: true | false
expanded_prompt: <the expanded prompt text, or the original if skipped>
reasoning:
- <bullet on what was added or modified, and why>
- <one bullet per substantive change>
skip_reason: <if expansion_applied is false, the reason from the skip conditions list, or null>
preview_to_user: |
<a single rendered string the application can show in the "review before sending" UI, combining the expanded prompt and the reasoning, formatted for human reading>
The skill is responsible for: - Producing the expansion content and reasoning. - Returning the structured output the application consumes.
The application is responsible for:
- Showing preview_to_user to the user with edit/submit/skip controls.
- Submitting expanded_prompt to the model when the user confirms.
- Submitting the original raw_input if the user chooses skip.
- Providing a "view this skill" affordance on the review screen so the user can inspect the skill itself if they want to (see Transparency below).
The skill itself does not invoke the model with the expanded prompt; it returns the expansion for the application to handle.
This skill is designed to be inspectable by the user. The application should make the skill's contents (this SKILL.md and its supporting files) viewable from the review-before-sending screen. Users who want to understand exactly how their prompts are being enhanced — including the patterns this skill applies, the constraints on what is added, and the principles for preserving voice — should be able to read the skill itself.
Transparency is a feature, not a leak. The skill's instructions are not a trade secret; they are open-source work product. Users who can read the skill can also disagree with it, fork it, or replace it. That is the right relationship between users and the tools that shape their work.
expansion_applied: false with skip_reason: "input too short to expand meaningfully".reference/expansion_patterns.md — common patterns for legal-prompt expansion across categories of legal work (contract review, drafting, research, advice).reference/preserve_user_voice.md — the principles for keeping the user's voice intact through expansion.examples/example_short_prompt.md — short prompt expanded to a full structured prompt.examples/example_skipped.md — example of a prompt that should be skipped, with reasoning.examples/example_with_skill.md — expansion when a skill is already attached, showing how the expansion respects the attached skill's scope.The user's raw_input and the resulting expanded_prompt may both contain privileged matter. The expanded prompt is a derivative of the user's input — it inherits whatever privilege status the original had. Treat the expansion as you would treat the original communication.
Concretely:
raw_input was a privileged attorney-client communication or attorney work product, the expanded_prompt is too. Privilege does not strip away by virtue of the skill rewriting the surface form.expanded_prompt, preview_to_user, or reasoning outside the same trust boundary that would apply to the user's original prompt. Analytics pipelines, training-data collection, third-party model endpoints, and shared review queues are common leak paths and must be inside-the-circle or excluded.reasoning as safe-to-log just because it does not quote the input verbatim.raw_input where the host application is not configured to handle it; the host application is responsible for not logging, retaining, or transmitting the expanded artifact outside the privilege circle. This skill itself writes nothing — but it produces an artifact that downstream systems will be tempted to log.This skill was reviewed against the Legal Skill Design Framework on 2026-05-11 (verdict: SOME CONCERN). The substantive gap identified was that privilege implications of the expanded-prompt artifact were not addressed — every legal prompt this meta-skill touches becomes a rewritten artifact that the host application may log or retain, and the original SKILL.md addressed confidentiality only at the reasoning-section level. The "Privilege treatment" section above was added in remediation to make explicit that (a) the user's input prompt and the expanded version may both contain privileged matter, (b) both retain whatever privilege status the original had, and (c) the expanded prompt must not be stored, logged, or shared outside the privilege circle. Frontmatter was updated with version, last_reviewed, and last_reviewed_by, and authorship was reconciled to credit Kevin Keller (matching the registry README). The technical workflow, skip conditions, expansion patterns, and output schema were left intact.