Prompt Efficiency (PES)
Weight in Skill: 20%. Prompt Efficiency (PES) is the most coachable input into your Skill score — rewriting a vague prompt into a specific one is the fastest way to move the number.
PES replaces the earlier “Prompt Quality” metric. The name change is deliberate: a prompt is scored on how efficient it is at getting a usable result, not on some abstract notion of quality.
The four dimensions
Section titled “The four dimensions”Each prompt is scored by an intent-specific LLM rubric agent (authoring or debugging). Every dimension is on a 0–10 scale; PES is their weighted average.
| Dimension | Weight | What it measures |
|---|---|---|
| Information Density | 35% | How much usable signal per word — file paths, function names, error messages, expected behavior |
| Context Leverage | 25% | Whether the prompt uses what Claude already knows (CLAUDE.md, prior turns, open files) instead of repeating it |
| Ambiguity Cost | 25% | The expected cost of follow-up turns needed because the prompt is under-specified |
| Turn Economy | 15% | Whether the ask can plausibly land in one turn, or is really several asks bundled together |
Formula:
PES = 0.35·InformationDensity + 0.25·ContextLeverage + 0.25·AmbiguityCost + 0.15·TurnEconomySee apps/prism-engine/src/intelligence/insight/types.rs for the canonical implementation.
What a good prompt looks like
Section titled “What a good prompt looks like”| Score | Prompt |
|---|---|
| 9 | ”Fix the TypeError in src/auth/validate.ts:42 — user.email is undefined when the OAuth callback has no profile scope. Should return 401 instead of crashing. Keep the existing interface.” |
| 6 | ”Fix the auth bug — users can’t log in with Google OAuth.” |
| 2 | ”fix the login bug” |
The 9-point prompt scores high on every dimension: concrete paths and a line number (information density), assumes Claude has the file open (context leverage), states the expected behavior (ambiguity cost), and asks for one thing (turn economy).
Intents that skip PES
Section titled “Intents that skip PES”Not every prompt is meant to be a structured request. The rubric short-circuits for:
- Question — “what does this function do?”
- Meta — “slow down and think before editing”
- Continuation — “yes, keep going”
- System callback — Claude Code’s own internal prompts
These are audit-logged but excluded from PES averages. You shouldn’t be penalized for a quick “yes, do that.”
Improving PES
Section titled “Improving PES”The highest-leverage habits:
- Add file paths —
src/auth/validate.tsbeats “the auth file” - Name the function or symbol —
fix parseConfig()beats “fix the parser” - Include the error — paste the actual message or stack trace, not “it broke”
- State expected behavior — “should return 200 with
{ ok: true }” - One ask per turn — split “fix X and add Y” into two prompts
- Trust CLAUDE.md — don’t re-explain project layout on every prompt
If you want hands-on help rewriting a specific prompt, run /prism:advisor "your prompt here" in Claude Code.