skills/improve-prompt/SKILL.md
Systematically improve a seed prompt using anti-satisficing techniques and structured prompt hardening. This skill should be used when the user wants to strengthen, harden, or optimise a prompt before deploying it — particularly for review, comparison, or analytical tasks where LLMs tend to satisfice. Trigger phrases include "improve this prompt," "harden this prompt," "make this anti-satisficing," or `/improve-prompt [seed text]`.
npx skillsauth add saross/personal-assistant improve-promptInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Improve seed prompts by closing the escape hatches that allow LLMs to satisfice — to produce output that reads plausibly but is shallow, incomplete, or factually unchecked. This skill applies 16 field-tested techniques drawn from real-world prompt engineering experience across documentation review, code auditing, schema validation, and analytical tasks.
Never rewrite the user's intent — improve HOW the prompt asks, not WHAT it asks. The seed prompt's goal is sacred. Every change must close a specific escape hatch or add a verifiable constraint.
This skill uses progressive disclosure. Load reference files only when needed during Phase 4 (Apply):
| File | Purpose | When to load |
|------|---------|--------------|
| references/techniques.md | 16-technique library with patterns and examples | Phase 4: to select and apply techniques |
| references/task-type-profiles.md | 7 task-type classifications with technique mappings | Phase 2: to classify the seed prompt; Phase 4: to determine which techniques apply |
Receive the seed prompt and display it verbatim for confirmation.
Actions:
text code blockRules:
Determine the seed prompt's task type by matching against the 7 profiles
in references/task-type-profiles.md.
Actions:
references/task-type-profiles.mdOutput format:
Classification: {Task Type} ({Risk Level})
Confidence: {HIGH / MEDIUM / LOW}
Rationale: {1-2 sentences explaining why this classification fits}
Quality scoring (computed now, displayed in Phase 5):
Score the seed prompt on each dimension from 1-10:
| Dimension | What it measures | Low (1-3) | High (8-10) | |-----------|-----------------|-----------|-------------| | Clarity | Is the goal unambiguous? | Multiple valid interpretations | Single clear objective | | Specificity | Are requirements detailed? | Vague or abstract | Concrete and measurable | | Context | Is necessary background provided? | No context given | Full situation described | | Constraints | Are boundaries and limits specified? | Open-ended, no fences | Explicit scope and limits | | Structure | Is the work organised into steps? | Single undifferentiated ask | Phased with clear ordering |
Record these scores internally. They inform Phase 3 (question prioritisation) and are displayed to the user in Phase 5 alongside the improved prompt's scores for comparison.
Rules:
Resolve ambiguities and gather context through targeted questions. This phase uses AskUserQuestion to collect information that will inform technique selection and application.
Use quality scores to prioritise questions. The two lowest-scoring dimensions from Phase 2 indicate where the prompt is weakest — ask about those gaps first. For example, if Constraints scored 2/10, prioritise the scope/boundary question over a question about an already-clear dimension.
Universal questions (ask for every prompt):
Task-type-specific questions (ask 1-2 from the classified type's
profile in references/task-type-profiles.md, prioritising questions
that address the lowest-scoring quality dimensions):
| Type | Key question | |------|-------------| | Review | "What is the ground truth or source of authority?" | | Analysis | "Should the analysis be exhaustive or representative?" | | Generation | "Is there an exemplar of what good output looks like?" | | Debugging | "What behaviour did you expect vs what actually happened?" | | Extraction | "Is the list expected to be complete, or is a sample acceptable?" | | Transformation | "Is there a specific output format or standard to match?" | | Planning | "What constraints or non-negotiables exist?" |
Interview rules:
Select techniques based on the task-type profile and apply them to the seed prompt in canonical order.
Actions:
references/techniques.md and references/task-type-profiles.md
(if not already loaded)Canonical application order:
Apply techniques in this order to build the improved prompt logically. Not all techniques will apply to every prompt — skip those not selected:
Rules:
Deliver the improved prompt with educational context.
Output has five sections:
The complete improved prompt in a fenced text code block, ready to
copy-paste. Add inline annotations as <!-- [#N Technique name] -->
comments to explain each addition. These annotations help the user
understand what was added and why, and can be stripped before use.
Display the before/after quality scores computed in Phase 2. Re-score the improved prompt on the same 5 dimensions to show the improvement.
Output format:
| Dimension | Before | After | Change |
|-------------|--------|-------|--------|
| Clarity | 3 | 8 | +5 |
| Specificity | 2 | 9 | +7 |
| Context | 4 | 7 | +3 |
| Constraints | 1 | 8 | +7 |
| Structure | 2 | 9 | +7 |
| ----------- | ------ | ----- | ------ |
| Total | 12/50 | 41/50 | +29 |
Below the table, add 1-2 sentences identifying the dimension with the largest gain and explaining what drove it (which techniques contributed most to that dimension's improvement).
Rules:
A 3-5 sentence prose paragraph explaining:
| # | Technique | Why applied | Escape hatch closed | |---|-----------|-------------|---------------------| | (number) | (name) | (specific reason for this prompt) | (what satisficing behaviour it prevents) |
Include only techniques that were actually applied. Order by technique
number for easy cross-referencing with references/techniques.md.
Highlight the single most impactful technique for this specific improvement. Include:
The Technique of the Run should rotate across invocations — avoid always highlighting the same technique. Prioritise techniques the user may not have encountered before, or techniques with counterintuitive effects.
After presenting sections 1–5, offer to capture the improved prompt in the user's grimoire:
Add to grimoire? This prompt could be captured in
~/personal-assistant/notes/grimoire.md for future reuse.
If the user accepts, append an entry using the grimoire format:
## [Descriptive title based on the prompt's purpose]
**Incantation:**
> [The complete improved prompt, stripped of <!-- annotation --> comments]
**Effect:** [1-2 sentences: what this prompt produces when used]
**Mechanism:** [Which techniques drive the improvement and why they
matter for this specific task type]
**Results:** [If known — what happened when the prompt was used. If the
prompt hasn't been used yet, write "Not yet field-tested."]
**Source:** Generated via /improve-prompt, [date].
Rules for grimoire entries:
<!-- [#N ...] --> annotations from the incantation
— the grimoire is for the user, not for this skillShort prompts are often the most vulnerable to satisficing because they leave almost everything implicit. Treat them as HIGH risk regardless of task type, and use the interview phase to surface implicit assumptions.
If the seed prompt already contains 5+ techniques (phases, structured output, scope fence, exhaustive quantifiers, etc.), focus the improvement on:
Do not modify example data or embedded content within the prompt. Apply techniques to the instructional wrapper around the examples.
If the seed prompt contains multiple distinct phases or sub-tasks, apply techniques to each phase independently. Phase decomposition (#1) may already be partially present — strengthen it rather than restructuring.
development
This skill should be used when the user asks to "moderate marks", "produce marking dossiers", "double-mark" an assessment, run a "second-reader pass", or "build a moderation pack". Also trigger when the user has just entered rubric marks for a HUMN8031 Assessment 2 paper and wants a moderation dossier produced. Do not trigger for rubric design or rubric review — only for dossier production on a marked assessment.
testing
Generate valid Fieldmark notebook JSON files from natural language descriptions, field manuals, or specifications. Supports validation rules, conditional logic, and parent-child relationships.
development
Generate modular "lego brick" documentation for Fieldmark field types. Produces design docs (Notebook Editor configuration), collect docs (data collection usage), shared docs, Playwright screenshot specs, and practical fieldwork tips. This skill should be used when creating, updating, or reviewing field type documentation for the fieldmark-docs-staging repository.
development
Classify dual-nature entities (hotels, churches, schools, halls) as building-only, business/organisation-only, or both based on contextual linguistic analysis.