Prompt Management

Manage versioned prompt templates for A/B testing and iteration:

Template files (app/Prompts/greeting.v1.prompt):

Hello {{name}}, welcome to {{app}}! How can I help you today?

Template Engine:

$engine = new TemplateEngine();

// Render inline template
$prompt = $engine->render(
    'Summarize this {{type}} in {{language}}: {{content}}',
    ['type' => 'article', 'language' => 'English', 'content' => $text],
);

// Render from file
$prompt = $engine->renderFile('app/Prompts/greeting.v1.prompt', [
    'name' => 'Alice',
    'app'  => 'Smallwork',
]);
// Throws RuntimeException if any {{placeholder}} is left unsubstituted

Version Manager:

$versions = new VersionManager('app/Prompts');

// Discover available versions
$available = $versions->versions('greeting');  // [1, 2, 3]

// Get latest version content
$template = $versions->latest('greeting');

// Get specific version
$template = $versions->version('greeting', 2);

// Combine with template engine
$prompt = $engine->render($versions->latest('greeting'), ['name' => 'Bob', 'app' => 'MyApp']);