From ttrpg-print
Audit and score Midjourney prompts before spending credits. Runs seven structural checks — token competition, grammar conflicts, CLIP vocabulary alignment, negative prompt coherence, specificity gradient, parameter-content alignment, and reduction testing — then produces a pass/fail scorecard with surgical rewrites for failures. Use whenever the user says "check this prompt", "audit my prompt", "will this work", "review before I generate", "score this prompt", "what's wrong with this prompt", "why isn't this working", "fix my Midjourney prompt", "optimize this prompt", or submits a Midjourney prompt and asks for feedback. Also triggers when the user pastes a prompt that produced bad results and wants to understand why. Works for any Midjourney version (v5–v7) and any subject matter. Complements midjourney-prompt-generator (which creates prompts) and midjourney-sensual-art (which handles filter navigation) — this skill evaluates prompts those skills produce or that the user writes independently.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ttrpg-print:midjourney-prompt-auditorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Evaluate Midjourney prompts against seven structural criteria before generation. Produce a scorecard with pass/fail verdicts, specific failure explanations, and surgical rewrites for anything that fails.
Evaluate Midjourney prompts against seven structural criteria before generation. Produce a scorecard with pass/fail verdicts, specific failure explanations, and surgical rewrites for anything that fails.
Run every prompt through all seven checks, in order. Each check produces PASS or FAIL plus a specific explanation.
What it catches: Too many descriptors fighting for attention, causing Midjourney to pick winners semi-randomly.
How to check:
PASS if: The top 3 weighted concepts match user intent, total concept count is manageable, no redundant synonyms FAIL if: Important concepts are buried past word 30, or the prompt has 15+ competing concepts, or the same idea is restated in different words
Rewrite strategy: Front-load the priority concepts. Merge or cut redundant descriptors. Move secondary details after primary subject+style.
What it catches: The prompt asking for two incompatible rendering paradigms simultaneously.
Common conflict pairs:
Productive tension (NOT a conflict):
The test: For each pair of descriptors, do they pull the model toward the same rendering pipeline or different ones? If different — does the prompt specify HOW they coexist spatially, or is Midjourney left to guess?
PASS if: All descriptors are compatible, or tensions are explicitly resolved with spatial/hierarchical instructions FAIL if: Incompatible paradigms coexist without resolution
Rewrite strategy: Pick one paradigm. If the tension is intentional, add explicit spatial instructions ("face rendered with photographic precision, background dissolving into loose brushwork").
What it catches: Terms the model doesn't know, poetic phrases with no visual correlate, human-readable mood words that CLIP maps to nothing or something random.
High-CLIP-signal terms (model knows these well):
Low-CLIP-signal terms (likely ignored or randomly mapped):
Gray zone — might work, test first:
--s 0 to see if recognizedPASS if: 80%+ of descriptive terms have strong CLIP signal. Low-signal terms are limited to 1-2 closing flourishes (harmless dead weight) FAIL if: Core structural terms (subject, style, lighting) rely on low-signal vocabulary, or more than 30% of the prompt is CLIP-invisible
Rewrite strategy: Replace low-signal terms with high-signal equivalents. Keep poetic closers only if they don't compete with functional terms. Example: "sovereign stillness" → "composed regal expression, steady gaze" (two CLIP-visible terms instead of one invisible one).
What it catches: The --no flag contradicting the positive prompt, or missing critical exclusions.
How to check:
--no--no blocks "photograph"? (The positive terms likely overpower)--no text watermark)Common contradictions:
--no warm--no photograph--no backgroundCommon missing exclusions:
--no text watermark--no extra limbs duplicate--no bright neon oversaturatedPASS if: No contradictions between positive and negative, reasonable exclusions present
FAIL if: Any term appears in both positive and --no, or critical exclusions are missing for the style
Rewrite strategy: Remove contradictions (decide which direction wins). Add standard exclusions for the genre.
What it catches: Uniform detail density that fights the model, or critical elements left unspecified while trivial ones are over-described.
Principle: Detail should cluster on what the user cares about controlling. Deliberately vague areas give Midjourney room to improvise (which it's good at).
How to check:
PASS if: Detail density correlates with importance. Critical elements are specified, secondary elements are loosely guided or omitted FAIL if: Detail is uniformly distributed, or the wrong things are specified, or a critical element has zero guidance
Rewrite strategy: Add minimal guidance to unspecified critical elements. Reduce over-specified secondary elements to 1-2 words. Let the specificity gradient match priority.
What it catches: Technical parameters that fight the prompt's intent.
Key checks:
| Parameter | Check |
|---|---|
--ar | Does it match the composition? Portrait prompt + --ar 16:9 forces unwanted horizontal fill. Full-body character needs --ar 2:3, not --ar 1:1. |
--s | Stylize 0-50 fights painterly/artistic prompts. Stylize 500+ fights prompts needing precision/accuracy. Sweet spots: photorealistic 50-100, painterly 200-350, experimental 500+. |
--c | Chaos >30 on prompts requiring consistency (character sheets, series). Chaos <10 on exploration prompts wastes the opportunity for variation. |
--v | V7 for most work. V6 if using --cref, multi-prompting with weights, or needing legacy quality values. |
--q | V7 uses 1/2/4. If prompt says --q 0.5 on v7, it's invalid. |
--no | See criterion 4 above. |
--raw | Fights high-stylize. Redundant with --s 0. |
PASS if: All parameters support the prompt's intent and are valid for the selected version FAIL if: Any parameter contradicts intent or is invalid for the version
Rewrite strategy: Adjust parameters to match intent. Flag version-incompatible values.
What it catches: Dead weight — words that take up tokens without influencing the output.
How to check:
--noPASS if: Removing 20% or less of the prompt would change nothing. Prompt is lean. FAIL if: 30%+ of the prompt is dead weight. There's room for significant compression.
Rewrite strategy: Cut dead weight. Compress redundancies. A lean 50-word prompt where every token pulls its weight outperforms a verbose 120-word prompt.
For each audit, produce this scorecard:
## Prompt Audit Scorecard
**Prompt:** [the prompt being audited, truncated to first 50 words + "..."]
**Version detected:** [v5/v6/v7 or "not specified"]
**Word count:** [N words positive prompt] + [N words in --no]
| # | Criterion | Verdict | Issue |
|---|-----------|---------|-------|
| 1 | Token Competition | PASS/FAIL | [specific issue or "—"] |
| 2 | Grammar Conflicts | PASS/FAIL | [specific issue or "—"] |
| 3 | CLIP Vocabulary | PASS/FAIL | [specific issue or "—"] |
| 4 | Negative Coherence | PASS/FAIL | [specific issue or "—"] |
| 5 | Specificity Gradient | PASS/FAIL | [specific issue or "—"] |
| 6 | Parameter Alignment | PASS/FAIL | [specific issue or "—"] |
| 7 | Reduction Test | PASS/FAIL | [N% removable] |
**Score: [N]/7**
### Failures Explained
[For each FAIL: what specifically is wrong and why it matters for the output]
### Rewritten Prompt
[Full rewritten prompt with all failures addressed. Show the prompt ready to paste.]
### What Changed
[Bullet list of specific changes and rationale — not vague "improved flow" but "moved X before Y because weight distribution", "replaced Z with W because CLIP signal"]
When the user is working in a known house style (e.g., Fantasy Vixens painterly impasto), apply additional checks:
Fantasy Vixens House Style Checklist:
--no exclude "photograph digital smooth clean airbrushed flat background text watermark"?--s in the 250-300 range?--ar 2:3 for portraits?If working in this style, add a House Style Compliance row to the scorecard (PASS/FAIL) with specific missing elements listed.
When auditing multiple prompts (e.g., a series or character sheet set):
--s, --c, --v the same across the batch?--c is high (50+) and the prompt is clearly exploratory, relax criteria 1, 5, and 7. The user is exploring, not controlling.:: weights): Check that weights are valid for the version. V7 has limited multi-prompt support — flag if v7 is specified.--sref): When a style reference URL is present, the prompt's style language matters less (the reference dominates). Relax criterion 3 for style terms but keep it strict for subject terms.{option1, option2}): Audit each permutation independently if there are ≤4. If more, audit the base structure and spot-check 2-3 permutations.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub camauger/ludomancien-skills --plugin ttrpg-print