From praxis
Mandatory protocol for designing and stress-testing prompts, system prompts, or agent instructions before shipping. Runs adversarial tests against failure modes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/praxis:prompt-designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step.
EXTREMELY_IMPORTANT: This is a MANDATORY protocol, not a suggestion. Follow every step. Do not skip steps. Do not combine steps. Do not summarize. Work through each gate in order.
A prompt is a program with a fuzzy interpreter. It will meet inputs you did not imagine, and the failures surface in production where you cannot see them. This protocol makes the prompt fail in front of you first.
State exactly what the prompt must make the model do: the inputs it receives, the required output shape, and the ONE behavior that defines success. If you cannot state success in one checkable sentence, the prompt has no target to hit.
List the specific ways THIS prompt will go wrong — not "might be inaccurate". Name the modes: missing/empty input, multiple valid answers, adversarial/injection input, format drift, over-refusal, under-refusal, hallucinated fields, non-target language. A generic risk list fails this step.
Write at least 3 concrete inputs chosen to TRIGGER the STEP 2 failure modes — the empty one, the malicious one, the ambiguous one. Happy-path examples do not count; each input must aim at a specific failure mode.
For each adversarial input, state what the current prompt would produce and whether that is acceptable (PASS/FAIL). For every FAIL, revise the prompt and say exactly what wording changed and which failure mode it closes. A prompt with no revisions after an adversarial pass either had them fixed already (show it) or was not pressure-tested.
PROMPT DESIGN: [purpose]
├── Task spec: [inputs, output shape, one-sentence success condition]
├── Failure modes: [named, specific to this prompt]
├── Adversarial tests: [input → predicted behavior → PASS/FAIL, ≥3]
├── Revisions: [what changed and which failure mode it closes]
└── Confidence: [HIGH / MEDIUM / LOW]
Confidence: HIGH — every named failure mode has an adversarial test that now passes. MEDIUM — main failure modes covered, some hard to test without live runs. LOW — failure modes named but untested, or a FAIL remains open; do not ship yet.
Do NOT finalize or hand over the prompt until: - The task spec states inputs, output shape, and a one-sentence success condition - At least 3 named failure modes are listed, specific to this prompt - At least 3 adversarial inputs were run, each with a predicted behavior and PASS/FAIL - Every FAIL was fed back into a named revision, or is flagged as a known open riskDelivering a prompt tested only on the happy path is a protocol violation, even if it "looks like it works".
Red flags that this skill catches:
Once the prompt passes its adversarial set, ship it with the test inputs kept as regression
examples. If it drives an agent or tool call, run security-reasoning on the trust boundary
the prompt sits on.
npx claudepluginhub xd4o/praxis --plugin praxisAnalyzes failure modes, generates prompt variants (direct, few-shot, CoT), designs rubrics, and produces test suites for LLM prompt engineering.
Designs effective prompts for LLM-powered applications. Masters prompt structure, context management, output formatting, and evaluation.
Guides structured prompt design for LLMs: role, context, task, format, constraints. Useful when outputs are inconsistent, too long, off-format, or incorrect.