Development Standard

Prompting

Meta-prompting standard library — the PAI system for generating, optimizing, and composing prompts programmatically.

00
Workflows
01
Reference
09
Triggers
medium
Effort

The Problem

Prompt engineering done ad hoc doesn't scale. Each skill, agent, and eval in a large AI system ends up with its own invented format, its own guesses about what makes a good judge prompt, and its own way of separating data from structure. The result is a system where changing a prompt means hunting across dozens of files, where agent briefings repeat the same boilerplate with minor variations, and where there's no shared standard for what a well-formed eval criterion looks like. The prompts are also fragile — written for the current model, not portable across future ones.

How This Skill Approaches It

Prompting is a standard library, not a one-off tool. Three components work together. Standards.md encodes Anthropic's Claude best practices, context engineering principles, and findings from the academic prompt optimization literature — it's the single source of truth for what good prompts look like. The Handlebars template system separates structure (templates) from content (YAML/JSON data) so the same template generates different agents, workflows, or eval frameworks by swapping the data file. RenderTemplate.ts does the rendering and validation. The template set covers the main PAI use cases: Briefing.hbs for agent context handoff, Structure.hbs for phased workflows, Gate.hbs for validation checklists, DynamicAgent.hbs for agent composition, and a set of eval templates (Judge, Rubric, TestCase, Comparison, Report) used by the Evals skill. The Agents and Evals skills both import from this library rather than managing their own prompt formats. That single-source-of-truth design is what cut ~35,000 tokens (65%) out of PAI's prompt overhead.

  • Three pillars: Standards (Anthropic best practices, context engineering, Fabric patterns); Templates (Handlebars — Briefing, Structure, Gate, DynamicAgent, plus eval templates Judge, Rubric, TestCase, Comparison, Report used by Agents/Evals); Tools (RenderTemplate.ts, data-content separation)
  • Philosophy: prompts that write prompts — structure is code, content is data
  • Output is always a prompt to be used elsewhere, not final content
Not for generating final content (use the appropriate domain skill)

In Action

What you say to your DA, and what the Prompting skill actually does.

  • You say "write me a system prompt for a skeptical security researcher agent"
    Pulls from Standards.md for Anthropic best-practice structure, renders DynamicAgent.hbs with the security + skeptical + thorough trait combination, and returns a portable, model-agnostic system prompt ready to drop into the Agents skill or a direct API call.
  • You say "create a judge prompt for evaluating whether research outputs avoid generic filler"
    Renders the Judge eval template from the Evals template set with the specific criterion as data, producing a binary LLM-as-judge prompt that Evals and Optimize can use directly — no one-off prompt writing needed.

Inside the Skill

The thinking, frameworks, and architecture that distinguish this skill from a generic version of the same task.

What It Does

Generates, optimizes, and composes prompts programmatically. It's the standard library for prompt engineering — other skills call it when they need to build or improve a prompt. The output is always a prompt to be used elsewhere, never the final content itself.

Invoke when: meta-prompting, template generation, prompt optimization, programmatic prompt composition, creating dynamic agents, generating structured prompts from data.

The Problem

Prompt engineering tends to get copy-pasted and rewritten by hand across every skill that needs it, so the same patterns drift apart and best practices live in one person's head. When you want to compose a prompt from data — spin up a custom agent, build an eval judge, generate a phased workflow — there's no clean way to separate the structure from the content. This skill makes structure code and content data: one Handlebars template plus different data renders specialized agents, workflows, and eval frameworks, and the engineering standards live in one place every skill can reference.

How It Works

Three pillars carry the work:

  • Standards - Anthropic best practices, Claude 4.x patterns, empirical research (markdown-first design, context engineering, the Fabric pattern system, 1,500+ academic papers on prompt optimization). Full guide in Standards.md.
  • Templates - Handlebars-based system for programmatic prompt generation: Briefing, Structure, Gate, DynamicAgent, plus eval templates (Judge, Rubric, TestCase, Comparison, Report).
  • Tools - Template rendering (RenderTemplate.ts), validation, and data-content separation.

Usage Examples

Example 1: Using Briefing Template (Agent Skill)

// skills/Agents/Tools/ComposeAgent.ts
import { renderTemplate } from '${CLAUDE_SKILL_DIR}/Tools/RenderTemplate.ts';

const prompt = renderTemplate('Primitives/Briefing.hbs', {
  briefing: { type: 'research' },
  agent: { id: 'EN-1', name: 'Skeptical Thinker', personality: {...} },
  task: { description: 'Analyze security architecture', questions: [...] },
  output_format: { type: 'markdown' }
});

Example 2: Using Structure Template (Workflow)

# Data: phased-analysis.yaml
phases:
  - name: Discovery
    purpose: Identify attack surface
    steps:
      - action: Map entry points
        instructions: List all external interfaces...
  - name: Analysis
    purpose: Assess vulnerabilities
    steps:
      - action: Test boundaries
        instructions: Probe each entry point...
bun run RenderTemplate.ts \
  --template Primitives/Structure.hbs \
  --data phased-analysis.yaml

Example 3: Custom Agent with Voice Mapping

// Generate specialized agent with appropriate voice
const agent = composeAgent(['security', 'skeptical', 'thorough'], task, traits);
// Returns: { name, traits, voice: 'default', voiceId: 'VOICE_ID...' }

Integration with Other Skills

Agents Skill

  • Uses Templates/Primitives/Briefing.hbs for agent context handoff
  • Uses RenderTemplate.ts to compose dynamic agents
  • Maintains agent-specific template: Agents/Templates/DynamicAgent.hbs

Evals Skill

  • Uses eval-specific templates: Judge, Rubric, TestCase, Comparison, Report
  • Leverages RenderTemplate.ts for eval prompt generation
  • Eval templates may be stored in Evals/Templates/ but use Prompting's engine

Development Skill

  • References Standards.md for prompt best practices
  • Uses Structure.hbs for workflow patterns
  • Applies Gate.hbs for validation checklists

Token Efficiency

The templating system eliminated ~35,000 tokens (65% reduction) across PAI:

Area Before After Savings
SKILL.md Frontmatter 20,750 8,300 60%
Agent Briefings 6,400 1,900 70%
Voice Notifications 6,225 725 88%
Workflow Steps 7,500 3,000 60%
TOTAL ~53,000 ~18,000 65%

Best Practices

1. Separation of Concerns

  • Templates: Structure and formatting only
  • Data: Content and parameters (YAML/JSON)
  • Logic: Rendering and validation (TypeScript)

2. Keep Templates Simple

  • Avoid complex logic in templates
  • Use Handlebars helpers for transformations
  • Business logic belongs in TypeScript, not templates

3. DRY Principle

  • Extract repeated patterns into partials
  • Use presets for common configurations
  • Single source of truth for definitions

4. Version Control

  • Templates and data in separate files
  • Track changes independently
  • Enable A/B testing of structures

References

Primary Documentation:

  • Standards.md - Complete prompt engineering guide
  • Templates/README.md - Template system overview (if preserved)
  • Tools/RenderTemplate.ts - Implementation details

Research Foundation:

  • Anthropic: "Claude 4.x Best Practices" (November 2025)
  • Anthropic: "Effective Context Engineering for AI Agents"
  • Anthropic: "Prompt Templates and Variables"
  • The Fabric System (January 2024)
  • "The Prompt Report" - arXiv:2406.06608
  • "The Prompt Canvas" - arXiv:2412.05127

Related Skills:

  • Agents - Dynamic agent composition
  • Evals - LLM-as-Judge prompting
  • Development - Spec-driven development patterns

Philosophy: Prompts that write prompts. Structure is code, content is data. Meta-prompting enables dynamic composition where the same template with different data generates specialized agents, workflows, and evaluation frameworks. This is core PAI DNA - programmatic prompt generation at scale.

Gotchas

  • Meta-prompting generates PROMPTS, not content. The output is a prompt that gets used elsewhere — not the final deliverable.
  • Templates should be model-agnostic. Don't write prompts that depend on specific model quirks.
  • Test generated prompts before declaring them ready. A prompt that looks good may perform poorly.

How to Invoke

Say any of these to your DA and PAI activates the Prompting skill automatically:

  • "meta-prompting"
  • "template generation"
  • "prompt optimization"
  • "prompt engineering"
  • "write a prompt"
  • "create system prompt"
  • "Handlebars template"
  • "eval prompt"
  • "judge prompt"

Or invoke explicitly:

Skill("Prompting")

References · 1

Auxiliary files the skill loads at runtime — frameworks, guides, configs.

  • Standards

References & Credits

The thinkers, books, frameworks, and research this skill is built on. The ideas belong to them — the integration belongs to PAI.

Want PAI to do this for you?

Install PAI on your machine — your DA gets the Prompting skill plus 44 others, all hooked into one Life OS.