New to Claude Skills? Learn how to install them β†’

danielmiessler on GitHub

Prompting

Free

Streamline your prompt engineering with a standard library.

Get this skill

Free Β· Opens the source repo

What Prompting does

The Prompting skill is designed to facilitate the generation, optimization, and composition of prompts programmatically. It serves as a meta-prompting standard library that other skills can leverage when they need to build or enhance prompts. The output generated by this skill is always a prompt intended for further use, rather than final content. This makes it particularly useful for developers and designers who need to create dynamic agents, structured prompts, or workflows without the hassle of rewriting and copy-pasting prompt patterns across different skills.

This skill addresses the common issue of prompt engineering where best practices and effective patterns can become fragmented. By centralizing the structure of prompts and separating it from the content, the Prompting skill ensures that all prompts adhere to a consistent standard. It utilizes Handlebars templates to create flexible and reusable prompt structures, allowing for easy adaptation to various contexts and requirements. The underlying principles of the skill are based on established best practices and empirical research, ensuring that users are equipped with effective tools for prompt optimization.

Developers can utilize the skill to create prompts that articulate ideal outcomes rather than procedural steps, which is essential for maximizing the capabilities of AI models. By focusing on what the desired result looks like, rather than how to achieve it, the skill allows for a more efficient and effective approach to prompt engineering. The integration of standards, templates, and tools within this skill provides a comprehensive framework for anyone involved in the creation of prompts for AI applications.

When to use it

Use this skill when you need to generate or optimize prompts programmatically, especially in the context of creating dynamic agents or workflows.

When not to use it

This skill is not suitable for generating final content; it is specifically geared towards prompt engineering and composition.

What you can build with it

Creating Dynamic Agents

Use the Prompting skill to generate structured prompts for dynamic agents, ensuring they are tailored to specific tasks.

Optimizing Existing Prompts

Leverage the skill to refine and improve existing prompts, making them more effective for AI interactions.

Building Structured Workflows

Utilize the skill to compose prompts that define workflows clearly, separating structure from content for better clarity.

How to install Prompting

View source

1. Install with the skills CLI

npx skills add danielmiessler/lifeos/Prompting --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by danielmiessler

Customization

Before executing, check for user customizations at: ~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/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.

🚨 MANDATORY: Voice Notification (REQUIRED BEFORE ANY ACTION)

You MUST send this notification BEFORE doing anything else when this skill is invoked.

  1. Send voice notification:

    curl -s -X POST http://localhost:31337/notify \
      -H "Content-Type: application/json" \
      -d '{"message": "Running the WORKFLOWNAME workflow in the Prompting skill to ACTION"}' \
      > /dev/null 2>&1 &
    
  2. Output text notification:

    Running the **WorkflowName** workflow in the **Prompting** skill to ACTION...
    

This is not optional. Execute this curl command immediately upon skill invocation.

Prompting - Meta-Prompting & Template System

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.

Ideal-State Prompting β€” the Default Standard

Every prompt this library generates or optimizes articulates the ideal state, not the procedure. Say WHAT done looks like (as testable outcomes), the CONSTRAINTS, and the high-quality TOOLS available β€” then trust the model to find HOW. Reasoning choreography ("first analyze, then consider, then decide") is BPE-violating scaffolding: it caps a capable model and rots as models improve. Ideal-state prompting is more precise, not vaguer β€” the specificity moves to the outcome.

Four keep-classes are legitimate HOW and survive the cut: safety-gate, verified-gotcha, tool-contract, output-format-contract. Deterministic tools (*.ts) are exempt. The test for any procedural line: would a smarter model make this rule unnecessary? Yes β†’ cut; No β†’ it's a keep-class. Full standard: Standards.md Β§ Ideal-State Prompting.

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: Primitives (Briefing, Structure, Gate, Roster, Voice) plus eval templates (Judge, Rubric, TestCase, Comparison, Report). The agent-specific DynamicAgent.hbs lives in the Agents skill (Agents/Templates/DynamicAgent.hbs), not here.
  • Tools - Template rendering (RenderTemplate.ts), validation, and data-content separation.

Workflow Routing

Library skill β€” no Workflows/ directory. Requests route to the rendering tools and reference docs:

TriggerWorkflowFile
Render a template / compose a prompt from data / Handlebars templateRenderTemplate (tool)Tools/RenderTemplate.ts
Validate a templateValidateTemplate (tool)Tools/ValidateTemplate.ts
Prompt engineering standards / best practices / prompt optimizationStandards (reference)Standards.md

Examples

Example 1: Using Briefing Template (compose an agent brief)

// Render a structured agent brief from data before launching general-purpose
import { renderTemplate } from '${LIFEOS_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: Render an Agent Brief from Data

// Render a structured agent brief, then launch general-purpose with it
const brief = renderTemplate('Primitives/Briefing.hbs', {
  agent: { name: 'Skeptical Security Reviewer', role: 'auth bypass and input validation' },
  task: { description: 'Review the auth flow', questions: [...] },
});
// Pass `brief` as the prompt to Agent(subagent_type="general-purpose")

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 LifeOS:

AreaBeforeAfterSavings
SKILL.md Frontmatter20,7508,30060%
Agent Briefings6,4001,90070%
Voice Notifications6,22572588%
Workflow Steps7,5003,00060%
TOTAL~53,000~18,00065%

Best Practices

1. Separation of Concerns

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

2. DRY Principle

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

3. 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
  • 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 LifeOS 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.

Execution Log

After completing any workflow, append a single JSONL entry:

echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Prompting","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl

Replace WORKFLOW_USED with the workflow executed, 8_WORD_SUMMARY with a brief input description, and SECONDS with approximate wall-clock time. Log status: "error" if the workflow failed.

Frequently asked questions about Prompting

Similar skills