A registry for machine-authored prompts that scores every one against a 6-dimension quality rubric, refuses the ones below the floor, flags comfort-zone and grandiosity anti-patterns, versions them, and tracks parent→child lineage — so a system that writes its own prompts gets measurably better at it.
Prompt Engineer is the discipline layer for prompts an agent writes for itself. Every prompt is scored on six dimensions (specificity, depth, generativity, self-evolution, originality, grounding), and one below the rubric floor is REJECTED, not saved — the gate is real, not decoration. An anti-pattern scan catches the failure modes of self-authored prompts: repeating the same category, grandiosity with no concrete actions, obesity, and self-congratulation with no adversarial challenge. Approved prompts are auto-versioned, indexed, and linked into a parent→child genealogy, and a surfacing ranker picks the next one to run by quality × recency so good new prompts aren't starved and old great ones don't rot. Pure Node, zero dependencies; categories, patterns, and the rubric floor are all configurable, and a deterministic demo runs the whole loop with no API key.
Every prompt is scored 0–10 on specificity, depth potential, generativity, self-evolution, originality, and grounding (references to the context resources you name). The average is checked against a floor you set — below it, `register()` throws with the rubric attached instead of saving. Pass an explicit override only when you're testing the rubric itself. The bar is enforced, not suggested.
A scan over the recent history catches the specific failure modes: the same category four times in the last ten (comfort-zone), fewer than five concrete action verbs behind grand language (grandiosity), thousands of words that should have been split (obesity), and confident assertions with zero adversarial challenge (self-congratulation). Findings are recorded on the entry, not silently dropped.
Approved prompts are auto-versioned and indexed as append-only JSONL, with a parent→child genealogy so you can see which prompt spawned which. A surfacing ranker picks the next prompt to run by quality × a recency bonus — a fresh-but-good prompt isn't starved by a stale one, and an old-but-great one stays warm. Everything is a file you can read.
Every value comes from .env. Nothing here is tied to any account — bring your own.
# 1. no install needed — pure Node builtins node examples/demo.cjs # register + score + gate + genealogy, end to end # 2. score any prompt text from the CLI node lib/prompt-engineer.cjs score "identify, build, and measure ..." node lib/prompt-engineer.cjs stats # library stats node lib/prompt-engineer.cjs next # the next prompt to run # 3. in your code # const { PromptEngine } = require('./lib/prompt-engineer.cjs'); # const pe = new PromptEngine({ dataDir: './data', rubricFloor: 7 }); # const entry = pe.register({ name, category, content, trigger, primary_pattern, parent_id });