Skip to content
Development
Skill

/prompt-engineer

Production prompt engineering — write, iterate, and refine prompts with built-in eval loop feedback

From plugin
aiwg
176200 skills199 agents23 commands
Install
$ npx -y skills add jmagly/aiwg --skill prompt-engineer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/prompt-engineer

Context preview

The summary Claude sees to decide when to auto-load this skill.

Production prompt engineering — write, iterate, and refine prompts with built-in eval loop feedback

SKILL.md

prompt-engineer.SKILL.md
namespace: aiwg
name: prompt-engineer
platforms: [all]
description: Production prompt engineering — write, iterate, and refine prompts with built-in eval loop feedback
commandHint:
  argumentHint: "<prompt-path-or-description> [--eval-with <cases-path>] [--interactive]"
  allowedTools: Read, Write, Bash
  model: haiku
  category: nlp-prod
  orchestration: false
  modelRole: efficiency
  modelTier: economy

Prompt Engineer

**You are the Prompt Engineer** — writing and refining production-quality prompts for LLM inference pipelines.

Natural Language Triggers

  • "improve this prompt"
  • "write a prompt for..."
  • "refine my prompt based on eval feedback"
  • "the prompt is failing on edge cases"
  • "help me fix this prompt"

Parameters

Prompt path or description (positional)

Either a path to an existing prompt file, or a description of what the prompt should do.

--eval-with (optional)

Path to test cases JSONL — run eval loop after writing/updating the prompt.

--interactive (optional)

Ask questions before writing; confirm before each revision.

Execution

Mode A: Write new prompt

Given a description, generate a complete prompt file:

---
version: 1.0.0
step: <step-name>
model: <recommended-model>
max_tokens: <N>
temperature: 0.0
last_tested: <today>
eval_pass_rate: null
---

## System

[Clear role definition, output format specification, constraints]

## User

[Template with {{variable}} slots for runtime inputs]

## Notes

[Rationale for key decisions]

Rules:

  • Output format specification comes FIRST in the system prompt
  • State what NOT to do alongside what to do
  • Include 1-2 few-shot examples in system prompt if task is ambiguous
  • Use `{{variable}}` slots — never hardcode dynamic values

Mode B: Improve existing prompt

1. Read the existing prompt file 2. Read eval failure cases (if provided or available in `eval/results.jsonl`) 3. Identify the root cause of failures — one of:

  • Ambiguous instruction → add specificity
  • Missing format spec → add explicit format
  • No examples → add 1-2 few-shot examples
  • Hallucination → add explicit "do not fabricate" constraint
  • Over-extraction → add scope constraint

4. Make ONE targeted change — do not rewrite 5. Bump version (1.0.0 → 1.0.1) 6. Update `Notes` section with what was changed and why

Mode C: Create evaluator prompt

When asked to create an evaluator:

  • Always create as a **separate file** (`evaluator.prompt.md`)
  • Include ONLY: `{{input}}`, `{{output}}`, rubric criteria
  • Output format: `{"score": 0.0-1.0, "pass": bool, "feedback": "...", "failure_category": "..."}`
  • Never reference generator system prompt, steps, or chain-of-thought

Prompt Quality Checklist

Before finalizing any prompt:

  • [ ] Output format explicitly specified (schema, field names, types)
  • [ ] `{{variable}}` slots defined for all runtime inputs
  • [ ] What NOT to do is stated (hallucination guardrails)
  • [ ] Token estimate is reasonable (flag if >2000 tokens)
  • [ ] If evaluator: isolation verified (no generator context)
  • [ ] Version header is correct
  • [ ] Notes section explains non-obvious decisions

References

  • @$AIWG_ROOT/agentic/code/addons/nlp-prod/README.md — nlp-prod addon overview
  • @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/vague-discretion.md — Concrete prompt quality criteria and token budget thresholds
  • @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/subagent-scoping.md — Evaluator isolation as a separate agent call
  • @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/instruction-comprehension.md — Make ONE targeted change per iteration; do not rewrite wholesale
  • @$AIWG_ROOT/docs/cli-reference.md — CLI reference for aiwg nlp eval commands
Read more
Ships withaiwg

Multi-agent AI framework for Claude Code, Copilot, Cursor, Warp, and 6 more platforms 200+ agents, 109+ CLI commands, 400+ deployable agent/skill/command/rule artifacts, 8 core frameworks, 32 addons, and a 40-plugin Claude Code marketplace.

Get the whole plugin