home / skills / danielmiessler / personal_ai_infrastructure / prompting

Prompting skill

/Releases/v2.3/.claude/skills/Prompting

This skill enables dynamic prompt generation and optimization using templates, standards, and patterns to scale prompt engineering across agents.

npx playbooks add skill danielmiessler/personal_ai_infrastructure --skill prompting

Review the files below or copy the command above to add this skill to your agents.

Files (29)
SKILL.md
8.2 KB
---
name: Prompting
description: Meta-prompting system for dynamic prompt generation using templates, standards, and patterns. USE WHEN meta-prompting, template generation, prompt optimization, or programmatic prompt composition.
---

## Customization

**Before executing, check for user customizations at:**
`~/.claude/skills/CORE/USER/SKILLCUSTOMIZATIONS/Prompting/`

If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.

# Prompting - Meta-Prompting & Template System

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

## Overview

The Prompting skill owns ALL prompt engineering concerns:
- **Standards** - Anthropic best practices, Claude 4.x patterns, empirical research
- **Templates** - Handlebars-based system for programmatic prompt generation
- **Tools** - Template rendering, validation, and composition utilities
- **Patterns** - Reusable prompt primitives and structures

This is the "standard library" for prompt engineering - other skills reference these resources when they need to generate or optimize prompts.

## Core Components

### 1. Standards.md
Complete prompt engineering documentation based on:
- Anthropic's Claude 4.x Best Practices (November 2025)
- Context engineering principles
- The Fabric prompt pattern system
- 1,500+ academic papers on prompt optimization

**Key Topics:**
- Markdown-first design (NO XML tags)

## Voice Notification

**When executing a workflow, do BOTH:**

1. **Send voice notification**:
   ```bash
   curl -s -X POST http://localhost:8888/notify \
     -H "Content-Type: application/json" \
     -d '{"message": "Running the WORKFLOWNAME workflow from the Prompting skill"}' \
     > /dev/null 2>&1 &
   ```

2. **Output text notification**:
   ```
   Running the **WorkflowName** workflow from the **Prompting** skill...
   ```

**Full documentation:** `~/.claude/skills/CORE/SkillNotifications.md`

- Claude 4.x behavioral characteristics
- Multi-context window workflows
- Agentic coding best practices
- Output format control
- The Ultimate Prompt Template

### 2. Templates/ - Five Core Primitives

The templating system enables **prompts that write prompts** - dynamic composition where structure is fixed but content is parameterized.

**Directory Structure:**
```
Templates/
├── Primitives/       # Five core template patterns
│   ├── Roster.hbs    # Agent/skill definitions from data
│   ├── Voice.hbs     # Personality calibration settings
│   ├── Structure.hbs # Multi-step workflow patterns
│   ├── Briefing.hbs  # Agent context handoff
│   └── Gate.hbs      # Validation checklists
├── Examples/         # Sample data and usage
└── (Evals/)          # Eval-specific templates (from Evals skill)
```

**The Five Primitives:**

| Primitive | Purpose | Use Case |
|-----------|---------|----------|
| **ROSTER** | Data-driven definitions | 32 RedTeam agents, 83 skills, voice configs |
| **VOICE** | Personality calibration | Voice parameters, rate, archetype mapping |
| **STRUCTURE** | Workflow patterns | Phased analysis, round-based debate, pipelines |
| **BRIEFING** | Agent context handoff | Research queries, delegation, task assignment |
| **GATE** | Validation checklists | Quality gates, completion checks, verification |

### 3. Tools/

**RenderTemplate.ts** - Core rendering engine
```bash
bun run ~/.claude/skills/Prompting/Tools/RenderTemplate.ts \
  --template Primitives/Briefing.hbs \
  --data path/to/data.yaml \
  --output path/to/output.md
```

**ValidateTemplate.ts** - Template syntax checker
```bash
bun run ~/.claude/skills/Prompting/Tools/ValidateTemplate.ts \
  --template Primitives/Briefing.hbs \
  --data path/to/sample-data.yaml
```

### 4. Template Syntax

The system uses Handlebars notation (Anthropic's official syntax):

| Syntax | Purpose | Example |
|--------|---------|---------|
| `{{variable}}` | Simple interpolation | `Hello {{name}}` |
| `{{object.property}}` | Nested access | `{{agent.voice_id}}` |
| `{{#each items}}...{{/each}}` | Iteration | List generation |
| `{{#if condition}}...{{/if}}` | Conditional | Optional sections |
| `{{> partial}}` | Include partial | Reusable components |

## Usage Examples

### Example 1: Using Briefing Template (Agent Skill)

```typescript
// skills/Agents/Tools/AgentFactory.ts
import { renderTemplate } from '~/.claude/skills/Prompting/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)

```yaml
# 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...
```

```bash
bun run RenderTemplate.ts \
  --template Primitives/Structure.hbs \
  --data phased-analysis.yaml
```

### Example 3: Custom Agent with Voice Mapping

```typescript
// 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.

Overview

This skill is a meta-prompting and template system for generating, validating, and composing prompts programmatically. It provides standards, Handlebars-based templates, and tooling to build dynamic agents, workflows, and evaluation prompts. Use it to standardize prompt engineering across projects and reduce token costs by turning structure into reusable templates.

How this skill works

Before running, the skill checks for user customizations in ~/.claude/skills/CORE/USER/SKILLCUSTOMIZATIONS/Prompting/ and applies any preferences or configuration found there. It exposes a Handlebars template library of five core primitives (Roster, Voice, Structure, Briefing, Gate), a rendering engine, and a validation tool to produce final prompts from data (YAML/JSON). Workflows emit both a local voice notification call and a text notification when executed to surface activity.

When to use it

  • When you need meta-prompting or prompt optimization at scale
  • To generate programmatic prompts or agents from data templates
  • When building multi-step workflows or phased analyses
  • To create consistent briefings, voice calibrations, or validation gates
  • When integrating prompt generation into evals or agent pipelines

Best practices

  • Separate structure (templates), content (data), and logic (TypeScript rendering/validation)
  • Keep templates simple—use Handlebars helpers for transformations and keep business logic in code
  • Extract repeated patterns into partials and presets to follow DRY principles
  • Version templates and data independently to enable A/B testing and safe evolution
  • Run template validation against sample data before deploying to pipelines

Example use cases

  • Render a research briefing for an agent using Primitives/Briefing.hbs and task YAML
  • Compose a phased-analysis workflow from Structure.hbs to standardize a security assessment
  • Generate a roster of specialized agents from Roster.hbs with voice mappings and traits
  • Validate template syntax and sample output with ValidateTemplate.ts before invoking agents
  • Use Gate.hbs to add automated quality checks and completion criteria to outputs

FAQ

How do I override default behavior with local preferences?

Create ~/.claude/skills/CORE/USER/SKILLCUSTOMIZATIONS/Prompting/ and add PREFERENCES.md or configuration files; the skill loads and applies them automatically.

What template syntax does the system use?

Templates use Handlebars notation: {{variable}}, {{object.property}}, {{#each}}, {{#if}}, and {{> partial}} for reusable components.