PM (PromptManager)¶
![]() "Prompts with superpowers" |
Parse YAML metadata from markdown, expand shell references, and render ERB templates on demand PM (PromptManager) treats prompt files as composable, parameterized templates. Write prompts in markdown with YAML front matter, shell references, and ERB — PM handles the rest. Key Features |
Processing Pipeline¶
Every prompt passes through four stages:
graph LR
A[Strip HTML Comments] --> B[Extract YAML Metadata]
B --> C[Shell Expansion]
C --> D["ERB Rendering (on to_s)"]
- Strip HTML comments --
<!-- ... -->removed before anything else - Extract YAML metadata -- Front-matter between
---fences parsed intoPM::Metadata - Shell expansion -- Environment variables and commands expanded (when
shell: true) - ERB rendering -- Templates evaluated on demand when
to_sis called (whenerb: true)
Quick Example¶
Given a file review.md:
---
title: Code Review
parameters:
language: ruby
code: null
---
Review the following <%= language %> code:
<%= code %>
Parse and render:
require 'pm'
parsed = PM.parse('review.md')
puts parsed.metadata.title #=> "Code Review"
puts parsed.to_s('code' => source) #=> rendered prompt
Getting Started¶
Head to Installation to add PM to your project, then follow the Quick Start guide.
