01 START HERE · MAP

Overview — how the pieces fit

Prometheus is a prompt-engineering skill for coding agents — and more. Describe what you need and it designs a structured, audited prompt, workflow, or self-adaptive agent, shipped with a verifier.

Prometheus is a build-time framework for designing, auditing, and refactoring prompts for tool-calling agents. It reads a task, picks a mode, and runs an ordered pipeline that draws on shared catalogs and ships the prompt with a verifier. Everything below is a map.

The architecture & workflow

Router → modes → the six-phase pipeline → the shared catalogs → the verifier layers

Read the map in five moves

1 · The router. SKILL.md is the one file always in context. It reads the request and selects a mode; it also carries the from-scratch procedure itself. Nothing else is read until a phase pulls it in.

2 · Two modes (plus manage). From-scratch designs a new prompt; refactor repairs one you already have (audit-only, surgical, or full rewrite by risk). A third capability, manage mode, runs a MAPE-K loop over a managed agent package and rewrites its prompt at a controlled seam.

3 · Six ordered phases. Shape inference → adaptive interview → operator-design drafting → audit → honest evaluation → delivery. Each phase consumes the last one’s output; the order cannot be rearranged because a later operator’s meaning depends on the subspace an earlier one already selected.

4 · Shared catalogs. The phases don’t invent their material — they draw on the operator catalog and seven shapes, and pull reasoning-pattern scaffolds in only when a task shows the hard-reasoning signals. A cross-cutting quantum-semantic frame is the vocabulary all of them speak.

5 · The verifier. Every prompt ships with a verifier defined across three layers — static properties of the artifact, single-run properties of one output, and cross-run properties visible only across many. Each delivery carries the audit summary with a self-report that discloses but never clears, and a scaffold-to-trigger list naming why each extra is there.

02 THE MODEL · CORE

Core System

Most prompt-engineering advice is a bag of tips: add keywords, give examples, be specific. Prometheus rejects that framing at the root. It starts from a claim it takes literally rather than metaphorically — that meaning in a language model is constructed by context, not retrieved by it. Under that claim a prompt section is not a hint pointing at a pre-existing answer; it is a transformation applied to the model's distribution over interpretations, and the framework's entire job is to help a designer choose those transformations deliberately.

The problem it solves is therefore disciplined prompt construction: given a task, produce a prompt in the right structural shape, with each section justified as an operator, audited against known failure modes, scored honestly, and shipped with a runnable verifier. Its users are people building agents and prompt systems who want rigor and traceability rather than vibes — and who are willing to be disagreed with when a request would produce a worse prompt.

The framework reaches its users as a self-contained package, and the way it is packaged is itself part of the design. It is delivered as a portable agent skill that runs in any agentic environment supporting skills, and is additionally ported to run as a Gemini Gem. Its single always-loaded file, SKILL.md, carries the YAML frontmatter that lets a skill-aware host such as Claude Code, OpenAI Codex, or opencode discover it and decide when to trigger it, followed by the controlling procedure. Eighteen companion files sit alongside it and are pulled into context only at the step that needs them — the framework is written to be read progressively, not all at once, which is itself a design response to the same attention-budget concern it teaches its users to respect.

A prompt is an operator, not a key

The old picture

A prompt is a key — the right words, in the right order, imagined to unlock a hidden answer the model was holding back. Meaning is assumed to already sit inside the model, waiting to be retrieved.

Prometheus takes the opposite literally

Meaning is constructed by context, not retrieved. So a prompt section is not a hint — it is an operator that amplifies some readings of the task, suppresses others, and mixes the rest.

What it actually does

The framework exposes three capabilities, one per mode. They share a substrate of reference knowledge but run different procedures.

  • From-scratch design · The default — Given a task description, the framework produces a prompt through six ordered phases: it infers the task's shape, runs an adaptive interview to recover the constraints an operator needs, drafts the prompt as a sequence of named operators, audits that draft against a structural-and-quantum checklist, scores it honestly on three axes, and delivers it with a verifier. The ordering is load-bearing, because operators do not commute.
  • Refactor a prompt · On an existing prompt — Given a prompt the user already has, the framework recovers its intent and takes one of three sub-modes by risk: Mode A audits only, a report with zero edits; Mode B localizes a named symptom to its operator-level cause and proposes a surgical diff; Mode C rewrites wholesale, preserving the original and presenting both with an explicit trade-off analysis.
  • Manage an agent · Over its lifetime — Given a managed-agent package — a directory that is the agent's identity — the framework runs a Monitor–Analyze–Plan–Execute loop over it, reusing the same audit checklist, refactor sub-modes, and verifier rather than inventing new machinery. Monitor reconstructs the distribution the current prompt induces from recent runs; Analyze keeps candidate adaptations in weighted superposition and prunes the ones the ledger says already regressed; Plan collapses to a single edit; and Execute applies it at a controlled lifecycle seam, write-ahead-logged and reversible by snapshot. Build-time only: it never runs what it produces. Manage mode is the one exception — it runs only the managed agent, and adapts it between runs, never live.

From-scratch delivery is not a fixed bundle; what ships is a function of the run. The pipeline can emit up to nine distinct artifacts, though most runs emit far fewer. The prompt itself always ships, as do a usage instruction, an audit-and-evaluation summary, a verifier specification, and an always-on static-mode verifier. The rest are conditional: dynamic and cross-run verifiers appear only when the stakes warrant them, and a set of four cognitive-tool definitions ships only when the task tripped the hard-reasoning signals during inference. As a skill host with a filesystem and sub-agents, this runtime can write those deliverables to files and fan out checks in parallel. What ships, and why each piece is present, is reported back as a scaffold-to-trigger list: the framework is built to justify its own additions rather than pad the delivery.

The shape of the system

Those three capabilities are not three separate programs. Architecturally the framework is a layered knowledge framework with a plugin-style catalog and a stateful control loop — not a monolith, and not a pipeline alone. Four strata stack cleanly, and one concern cuts across all of them. At the top a thin router reads the request and selects a mode. Beneath it sit the three procedures — from-scratch, refactor, and manage — each a sequence of phases. All three draw on a shared substrate of reference knowledge: the shape catalog, the operator catalog, the audit checklist, the evaluation rubric, the verifier specification, the reasoning patterns, and the consumability discipline — a body of knowledge none of them owns and all of them consume. Below the substrate, manage mode alone adds a state layer: the file-backed agent package and the runnable replay verifier that guards it.

The one cross-cutting concern is the quantum-semantic frame — the eleven principles that give the framework its operator vocabulary. It is not a layer; it is a language every other component speaks. And it is enforced rather than encouraged: an invariant requires every managed-mode concept to be anchored to a real section of the source paper or to a numbered principle. The frame is the reason the pieces cohere — remove it and the skill becomes an ordinary checklist. That layered view has a companion in a module dependency map that makes the router-to-reference delegation concrete, one file per phase: no reference file calls back into the controller, and the dependency direction points one way, from controller to reference, which keeps the modules independently readable.

Figure 1 — The four strata and the cross-cutting frame.

Routing rules

Before any design work begins, the framework decides which of the three modes a message asks for, and it decides from surface signals rather than by asking. A message that pastes a prompt and then requests a fix, audit, or improvement routes to refactor; direct phrasings such as “audit this prompt” trigger it immediately. A message that points at an agent package or uses a lifecycle verb — “run an adaptation cycle,” “why did my agent regress,” “restart my agent” — routes to manage. Absent clear refactor or manage signals, the framework defaults to from-scratch. When a prompt is pasted but the intent is genuinely unclear, it asks exactly one disambiguating question rather than guessing.

Signal in the opening messageRoutes to
A pasted prompt followed by a fix / audit / improve requestRefactor
An agent-package path or a lifecycle verbManage
Neither — a task described from nothingFrom-scratch
A pasted prompt with unclear intentAsk once

Routing chooses the mode, not the shape. Within from-scratch, the framework still refuses to ask the author what kind of prompt they want; it infers the structural shape from the request's own linguistic signals in a Bayesian pass, and asks a forced-choice question only when the two likeliest shapes fall within roughly thirty percent of each other. That inference logic lives on the following panes.

The flows

Two flows carry the system: the linear from-scratch pipeline and the cyclic manage-mode loop that the state layer governs. The pipeline is the one the default mode runs. A task description enters Phase 1, where it is classified into a shape and a tier; those two facts flow into Phase 2's interview, which recovers the runtime and the definition of done. Phase 3 drafts the prompt as ordered operators drawn from the catalog; Phase 4 audits that draft and can send it back for revision; Phase 5 scores it; Phase 6 delivers the prompt plus a verifier. Data accretes forward — each phase's output is the next phase's input — and the ordering is not rearrangeable, because a later operator's meaning depends on the subspace an earlier one already selected.

The dataflow underneath is a steady narrowing: a free-form task string becomes a signal vector, then a shape with gathered constraints, then an ordered sequence of operator-sections, then an audited and scored artifact, then a delivered bundle. Nothing that is projected away at one phase returns at a later one, which is why the framework insists the phases run in order. The one edge that runs backward is the audit's: a failing Phase 4 returns the draft to Phase 3 for revision rather than passing a defective prompt forward.

Figure 2 — The from-scratch pipeline. Forward data flow with one feedback edge.

Walking one concrete request makes the phase transformations visible. Suppose the author asks for an LLM-as-judge prompt that scores support replies for empathy, running on the OpenAI API. In Phase 1 the words “judge” and “scores” concentrate the posterior on the grader shape with no serious rival, so the framework commits without disambiguating; the runtime is named but no specific model is, so the tier defaults to strong; and because empathy scoring is evaluative judgment rather than multi-step reasoning, the hard-reasoning signals do not fire and no cognitive-tools scaffold is attached. Phase 2 loads the grader question bank and runs its calibration pass, eliciting a clear-pass and clear-fail anchor and proposing the borderline. Phase 3 draws the grader spine — reasoning forced before the score, calibration anchors, bias controls — and selects the explicit-format delivery path. Phase 4 runs the grader's branch-specific audit together with the blocking cross-cutting checks; Phase 5 scores the three axes honestly and confirms no untriggered scaffold survived; and Phase 6 ships the grader prompt, a usage note, the audit summary, a verifier specification, and an auto-generated static-mode verifier — after the framework runs that verifier against its own draft and finds it clean.

The Fabrication Cycle

From-scratch design compiles a raw task into a delivered prompt, workflow, or agent across six ordered phases. Each phase hands its output to the next; only one edge ever runs backward.

  1. Shape · infer shape + tier — Samples the raw request to classify it into one of the structural shapes and a strength tier — no routing questions asked. When the reading is clear enough, the framework commits and moves on.
  2. Interview · runtime + done-def — A short, capped interview recovers what an operator needs — the runtime it will run on and the definition of done — and closes with a summary the author can correct.
  3. Draft · ordered operators — Drafts the prompt as an ordered sequence of operators from the catalog — sections that amplify, suppress, or mix readings. The order is load-bearing: a later operator depends on what an earlier one selected.
  4. Audit · structure + measurement — Audits the draft against the framework’s structural and measurement checklists. A failing audit is the pipeline’s one loop back — it returns the draft to drafting for revision.
  5. Score · three honest axes — Scores the result honestly on three axes — token economy, task fit, and operator coherence — and confirms no unused scaffolding slipped into the draft.
  6. Deliver · prompt + verifier — Delivers the prompt with a verifier specification and, where it applies, a ready-to-run verifier — emitted as plain blocks, changing nothing on disk.

What you get

More than prompts and agents

Prometheus does not just write a prompt and stop. The same operator model compiles into whatever the task actually needs — and it was built from the start to give life to real agents and agentic workflows, not only single-shot instructions.

00 · Prompts

System prompts and single-call instructions, drafted as ordered operators and scored before delivery.

01 · Cognitive-tool scaffolds

For hard multi-step reasoning: a system prompt plus ready-to-register tool definitions you wire into your own tool-calling runtime.

02 · Agents

Agentic

Full agentic loops — persona, tool contracts, and a memory discipline — designed to run over many turns against real tools, not a one-off reply.

03 · Agentic workflows

Agentic

Multi-step pipelines and orchestration blueprints — ordered stages, hand-offs, and stop conditions — that wire several prompts into one working system.

04 · Graders & evaluators

LLM-as-judge rubrics with explicit, checkable criteria — the shape Prometheus reaches for when the task is to score, not to generate.

05 · Verifiers

Every deliverable ships with a verifier spec across three layers, so you can check the artifact does what it claims.

Where the design strains

A handful of load-bearing decisions give the framework its character, and the same decisions are where it feels its own tension. The build-time boundary comes first: by refusing to be a runtime orchestrator, the framework keeps its analytical clarity and its scope small, at the cost of leaving the author to actually run and wire the artifacts it produces. The operator metaphor is treated as a real design tool rather than decoration — it is the source of the most distinctive rules, from non-commutative ordering to substrate-relative strength. Two further commitments, compositionality and honest self-assessment as a shipped feature, keep the framework small and make its own limitations visible rather than hidden. A related choice, self-reference through closure, builds the managing system out of framework-designed prompts, so the Monitor, Analyze, and grader operators are themselves audited and verified like any delivered prompt; this is elegant and it forced real rigor, but it also concentrates risk, because a flaw in the frame propagates into the manager's own reasoning.

The design strains in three visible places, and the source is candid about each. First, behavioral validation is deferred: the whole management loop is verified mechanically but never run against a live agent, so “validated” means the machinery, not the behavior. Second, intent-level anti-oscillation is only partially mechanical — the runnable verifier pre-filters on trigger-and-section and leaves intent to a grader that itself needs a live model to render a verdict, so a fully autonomous ship-gate is not yet closed. Third, the frame's anchors must be maintained by hand: an earlier revision introduced several citations to non-existent paper sections that passed format-only checks and were caught only by a review that validated anchors against the actual source — a reminder that the frame's rigor depends on a check that now exists but did not at first.

Underneath all three sits one honest admission: the framework's guarantees are prompt-enforced, not mechanism-enforced. The blocking audit checks, the dogfood refusal, and the honesty disciplines are all instructions to the executing agent; nothing structurally prevents an agent under time pressure from skipping them. The source is candid that this is the central risk, and that roughly half the framework's surface — the agent-team path end to end, refactor mode, and the verifier infrastructure — is source-backed but not yet exercised against real tasks. A faithful reader should treat the framework as a well-grounded design whose validation is still partly outstanding, exactly as its own ledger states.

Open questions

Three things are genuinely unclear from the source alone. They are marked here rather than guessed at, because inventing an answer would teach the reader a certainty the material does not support.

How the Monitor operator's greppable text becomes structured YAML. The source states the markers map one-to-one onto the environment.yaml fields and that the phase serializes them, but the serializer itself is described rather than shown, so the exact contract is asserted, not demonstrated.

Who invokes the manage loop, and on what cadence. The min-N gate says not to adapt on too few runs, but the external process that accumulates those runs and triggers a Monitor pass sits outside the package and is left unspecified.

How the autonomy envelope's bounds are enforced at Execute time. The envelope schema is defined — option classes, a maximum diff size, a review cadence — but whether anything mechanically blocks an out-of-envelope edit, versus relying on the grader's judgment, is not settled in the source.

This section is explained by the router file — the one file always in context.

Show source SKILL.md 10 KB

03 THE MODEL · FRAME

Quantum Principles

Source: references/quantum-principles.md · references/operators.md

The framework treats every prompt — and every section within it — as an operator: a transformation applied to the model's semantic state, not a key that unlocks an answer already sitting inside the model. Drafting, on this view, is not a search for the right words but the design of the right transformation, applied in the right order. This pane covers the rule that decides how hard each transformation should push — because operator strength is not a fixed property of a section. It is calibrated to the substrate the section acts on.

Each operator carries a profile: what it amplifies, what it suppresses, what it mixes, its strength, its place in the sequence, and its failure mode.

  • Amplifiers raise the probability of the interpretations you want — a persona's expertise, few-shot examples, concrete nouns, a domain's vocabulary.
  • Suppressors lower the probability of the readings you don't — off-domain drift, generic-assistant defaults, outputs that violate a constraint. Each constraint is its own operator; total strength scales with their count.
  • Mixers combine states rather than sharpen one — a deliberately hybrid domain, or stacked personas, which never simply concatenate but produce a different operator entirely.

Watch each prompt section act as an operator on the task — amplifying some readings, filtering out others, mixing the rest — instead of just stacking strings of text. An operator has a profile — the readings it amplifies, the ones it suppresses, and the ones it mixes. Collapse is set apart: it is the measurement act, where the prompt commits to a single reading.

Operator profile

  • Amplify: Constructive interference. Amplifies a specific semantic interpretation while preserving superposition. — Â PROJECTS the state
  • Suppress: Destructive interference. Filters out noise and suppresses off-domain interpretations. — Ŝ FILTERS noise
  • Mix: Entangles logic. Combines multiple basis states into a novel, hybrid reading. — M̂ ENTANGLES logic
  • Collapse: Measurement. Forces deterministic convergence onto a single, unambiguous interpretation. — B̂ COLLAPSES possibilities

In the film, the chain chapter plays the same four operators in sequence on a small toy model of one task: each one acts on what the one before it left, and the readings narrow to one crest. You don’t set that order — Prometheus does, strongest first, by the default sequence in the operators reference, and states any departure. It is the model's output — illustrative, not a measurement.

Designing one section

A single section is drafted in four moves. Identify the interpretations it should amplify and the ones it should suppress; choose its strength; place it in sequence, from the broadest framing down to the final format; then check it for interference with its neighbours, because combining two sections produces interference, not addition — “expert + dry tone” sharpens into a recognizable voice, while “warm assistant + brutally honest” can cancel until the model settles on neither.

The third move — choosing strength — is where the substrate tier bites.

Operator strength is calibrated to the substrate

Strength is not intrinsic to a section; it is relative to the model the section runs on. On a highly capable substrate a prescriptive operator over-projects — it collapses states the model's own defaults would have resolved better than the prescription. The same enumerated behavior list that corrected a weaker model's drift becomes, on a stronger model, an information-destroying constraint on a state that no longer needed collapsing. So the framework reads a substrate capability tier from the runtime answer during the interview and dials its default operator strength against it: the more capable the model, the lighter the hand.

  • Frontier — Prefer brief, general instructions. Reserve intensity language — MUST, CRITICAL, repeated prohibitions, exhaustive enumeration — for constraints with a demonstrated failure mode, and let the model's own priors resolve the residual ambiguity.
  • Strong · default — The assumed tier when the runtime is unknown. Moderate projection — strong enough to hold the shape, restrained enough to avoid over-collapsing states a capable model handles on its own.
  • Legacy — Stronger projection is often warranted. Instructions that would over-trigger a newer model are exactly what corrects a weaker one's drift, so heavier enumeration and firmer intensity earn their place here.
Figure 3 — An operator is a transformation applied to the model’s distribution over interpretations, not a key to a stored answer. A calibrated operator amplifies the intended reading while leaving alive the rivals a capable model resolves on its own; pushed too hard, the same operator over-projects — collapsing states and destroying information. It is why the framework calibrates operator strength to the substrate: the more capable the model, the lighter the hand.

Four rules that hold across every shape

Whatever the substrate and whatever the shape being drafted, four rules always apply.

  • Aim for the right altitude — between brittle hardcoding that breaks on the first unforeseen case and vague hand-waving that decides nothing.
  • Spend the smallest viable token set. Every added instruction is another projection; the ones that don't earn their place cost information, not just length.
  • Prefer worked examples to abstract rules — while remembering that an example silently teaches every judgment call it happens to contain, including the ones you did not mean to encode.
  • Order sections by operator strength — strongest first to set the subspace, output format last unless the format is itself the dominant requirement.

Two standing rules on what the framework will add at all

  • Examples are load-bearing — Where a rule is load-bearing, the worked example must sit beside it. An output format stated without an example of it is treated as a defect, not a stylistic gap — the reader has been told the shape without being shown it.
  • M5 · scaffold restraint — The framework applies its own smallest-viable-token-set discipline to its own generative tendency. An optional scaffold may be added only against a named trigger — a debugged failure, a stated requirement, a measured risk — and a scaffold that is declined is named anyway, together with the condition that would re-trigger it.

Principle 9 · quantum-principles.md — verbatim

**P9 — Operator strength is substrate-relative.** A prescriptive operator that corrected a weak substrate over-projects on a strong one. *Rule:* calibrate default strength down as substrate capability rises: brief general instructions on adaptive-reasoning substrates (while stating scope — they read literally); enumeration, repetition at both ends, and explicit CoT scaffolds on legacy substrates. Intensity language (CRITICAL/MUST, all-caps) is reserved for true invariants on every tier. Capability lockdown for destructive roles stays layered and loud on every tier — its justification is risk, not substrate weakness. *Anchor:* "skills developed for prior models are often too prescriptive… and can degrade output quality" (Anthropic, Fable 5, 2026); "treat it as a new model family" (OpenAI, 2026); "may over-analyze verbose techniques for older models" (Google, 2025–26).

The eleven principles below are the ground truth for this section.

Show source quantum-principles.md 17 KB

04 PIPELINE · PHASES 1 & 3

Shapes & the three axes

source: references/shapes.md · references/operators.md

The framework refuses one-size-fits-all templates. Before a single line is drafted it classifies the task along three orthogonal axes: the shape — the prompt's structural archetype; the domain — the field the work sits in; and the substrate tier — how capable the target model is. The three are independent: fixing one tells you nothing about the other two, which is why the same shape can be drafted for engineering or for research, or aimed at a frontier or a legacy model, without changing which sections appear.

The shape catalog is shared substrate. All three modes — from-scratch, refactor, and manage — draw on the same seven archetypes; none of them owns the catalog and all of them consume it, so what follows reads the same whichever runtime you are targeting.

The seven shapes

A shape is the structural skeleton a task calls for. There are exactly seven; each has a different anatomy, different sections, and a different failure mode. Most requests fall cleanly into one, a few are genuine hybrids.

S1 · Long-horizon agentic loop

The skeleton for open-ended work a model pursues over many turns against tools, correcting itself as it goes. Signalled by the noun loop and by markers of ongoing rather than single-call use, and by an explicitly named agentic runtime.

S2 · One-shot task

A single model call that produces one deliverable — classify, extract, summarize, transform — with no multi-turn interaction. This is the shape the hard-reasoning detector watches most closely, because a task that looks one-shot may still need a cognitive-tools scaffold.

S3 · Multi-stage workflow / chain

Several coordinated model calls where one stage consumes the measured output of the last, held together by gates and validators. Each stage is a complete operator in its own right.

S4 · Sub-agent / tool prompt

A prompt or tool description that lives inside a larger system rather than addressing a human user — consumed by another model or by an agent's tool-use mechanism.

S5 · System persona

A system prompt that shapes behavior over unknown future inputs, where the stability of the persona is what matters. Signalled by the noun persona and by continuous conversational use.

S6 · LLM-as-judge grader

A prompt that takes candidate outputs and returns a judgment. Its spine forces reasoning before the score, anchors each score level with calibration examples, and adds bias controls. Signalled by the noun judge and verbs like grade.

S7 · Multi-agent agent team

A coordinated set of prompts — an orchestrator, one or more workers, an optional synthesizer — plus a coordination contract. The topology is the dominant operator at team level; each role's prompt is drafted using the spine of whichever of the other six shapes it happens to be.

A new shape is not a code change but a new entry in this catalog, paired with a matching question bank for the interview and a matching branch in the audit checklist — the same extension pattern the framework uses for a new operator or a new quality concern.

Shape inference is Bayesian, never a routing question

The framework does not, as a rule, ask the author what kind of prompt they want. Asking would be a routing question, and routing throws away the information carried in how the request is phrased. Instead it reads linguistic signals — verbs such as build, grade, or extract; nouns such as loop, persona, or judge; scale markers that separate a single call from ongoing use; and any named runtime — and forms an internal posterior distribution over the seven shapes.

It commits to the highest-mass shape only when the runner-up is clearly behind. The threshold is explicit: when two shapes fall within roughly thirty percent of each other, the inference is treated as genuinely ambiguous, and the framework asks a single forced-choice question between the top two — never an open-ended one. This is deliberate collapse: the ambiguity is preserved until asking is cheap and being wrong would be expensive, then resolved with the narrowest question that settles it.

The same inference pass does double duty. It fixes the domain axis and reads the substrate tier from the runtime answer, so a single reading of the request settles all three axes at once.

Figure 4 — Shape inference reads the request’s own linguistic signals and forms a posterior over the seven shapes in a single pass — never a routing question put to the author. When one shape clearly leads, the framework commits without asking; when the top two fall within roughly thirty percent of each other, it treats the inference as genuinely ambiguous and asks one forced-choice question between them. Deliberate collapse, resolved with the narrowest question that settles it.

The domain axis changes content, not structure

The domain — engineering, research, writing, ops, or generic — is a secondary axis. It changes the content of sections without changing which sections appear: an engineering task fills the spine with a concrete stack and tooling-specific failure modes, a research task with source-quality rules and citation conventions, a writing task with voice and length anchors, an ops task with safety boundaries and rollback for irreversible actions, and a generic task with the minimum, leaving the author to fill the rest. Because the domain rides orthogonally to the shape, the seven skeletons times five domains give the same procedure thirty-five ways to be filled in.

The substrate tier sets the strength of the hand

The substrate capability tier — frontier, strong, or legacy, defaulting to strong when the model is unknown — describes the model the prompt will run on, and it conditions how hard the framework's operators should push. The governing intuition is that the more capable the model, the lighter the hand: on a highly capable substrate a prescriptive operator over-projects, collapsing states the model's own defaults would have handled better. So at drafting time the framework prefers brief general instructions on a frontier substrate and reserves intensity language for constraints with a demonstrated failure mode, while on a legacy substrate stronger projection is often warranted.

The tier also gates hard-reasoning detection. When two or more hard-reasoning signals fire — mathematical or logical tasks, multi-step planning, code analysis, several simultaneous constraints, or an author who reports the model fails on the first try — the cognitive-tools scaffold normally becomes a structural default. But that default holds only on the legacy and strong tiers, where the cited empirical result applies; on the frontier tier it is downgraded to an opt-in, because general instructions there tend to beat prescriptive decomposition. It is the framework's clearest instance of narrowing an empirical claim to the scope it was actually measured on.

One category is explicitly exempt from this dialing-down. Capability lockdown for a role with destructive powers stays loud on every tier, because its justification is risk rather than model weakness — the reason to constrain a delete or a shell command has nothing to do with how clever the model is.

Shapes, the operator catalog they are drafted from, and the minimum a delivered prompt must fill.

Show source shapes.md 17 KB
Show source operators.md 11 KB
Show source minimum-viable-prompt.yaml 1 KB
Show source agent-teams.md 9 KB
Show source loops.md 4 KB

05 PIPELINE · PHASE 2

The Adaptive Interview

Source: references/shapes.md

Once Phase 1 has inferred a shape and a substrate tier, a handful of constraints still cannot be read from the request — chiefly where the prompt will run and how its success will be checked. The interview recovers exactly those, and it is designed around a single conviction the framework holds everywhere: ambiguity is a superposition of readings to be preserved and deliberately collapsed, not a defect to interrogate away. Asking too much collapses that superposition prematurely; asking the wrong thing re-asks what the request already settled and destroys information. So the interview is deliberately small, ordered, and bounded.

The governing rule states the tension plainly: the framework should preserve ambiguity wherever asking is cheap but being wrong is expensive. Where a wrong guess is costly and a question is easy, it asks; everywhere else it records the weighted readings and moves on rather than forcing a premature commitment.

Six flat questions, and no more

A Hard Budget

The flat interview is capped at six questions in total. Three of them are universal, asked of every shape: the runtime the prompt will execute in, a checkable definition of done, and the deployment context — the last omitted when the request already makes it obvious. The remaining two or three are drawn from the inferred shape, targeting the gaps that shape specifically leaves open. If a disambiguating question survived from Phase 1, it too is counted against the budget; there is one cap, and everything spends from it.

The cap is lifted only for the richer co-authoring passes — the workflow chain, the LLM-as-judge grader, and the multi-agent team — where the decomposition, the calibration anchors, or the role roster is itself the highest-leverage decision and a flat list would produce shallow answers. Those passes propose a candidate first and then refine it, rather than soliciting a specification cold.

How the questions are asked

Four rules govern the manner of asking, and each earns its place by protecting the answers. Questions go out one per turn, because a turn crowded with several questions reliably yields shallower replies to all of them. Anything the request already answered is skipped, because re-asking it discards information the author already gave. The broadest question comes first, because the first answer fixes the subspace every later question operates within. And across all of them the framework leans toward silence wherever a wrong guess is cheap to make and easy to correct, spending its scarce questions only where being wrong would be expensive.

  • One question per turn — A single question per turn keeps each answer considered; multi-question turns trade depth for the illusion of speed.
  • Skip the answered — Whatever the request has already specified or clearly implied is never asked again, since re-asking it destroys the information the author supplied.
  • Broadest framing first — Scope and persona are settled before format and edge cases, because the first answer selects the subspace the narrower ones then refine.
  • Preserve cheap ambiguity — A question is spent only where a wrong guess is expensive; where it is cheap, the reading is recorded and left open rather than forced.

Routing by the type of unknown

Not every gap is answerable by a question, so when intent is unclear the framework first asks what kind of unknown it faces and routes accordingly. The interview handles only the first of the four; the other three send the work somewhere cheaper or denser than a conversation before any drafting begins.

  • An open question the author holds — When the author knows the question they have, the interview itself resolves it — this is the ordinary case the six-question budget is sized for.
  • "I'll know it when I see it" — A criterion the author cannot verbalize is routed to cheap measurement outside the prompt — a throwaway prototype or a brainstorm of variants to react to — before drafting.
  • Unfamiliar with the domain — Signals that the author does not yet know what to ask trigger a blind-spot pass that enumerates the questions they have not thought to raise.
  • A requirement that resists words — When intent cannot be put into words, the framework asks for a reference artifact — source code above all — as the densest available way to transfer it.

The summary collapse

The interview may not slide silently into drafting. It must close with a summary collapse: a restatement of the inferred shape, the constraints gathered, and every default the framework has assigned in the author's silence, handed back for a single round of correction. A collapse performed silently would throw away precisely the information the designer — and, later, anyone managing the agent — would need; making it explicit turns the measurement step into something the author can see and override.

The per-shape question banks and conduct rules for Phase 2.

Show source shapes.md 17 KB

06 PIPELINE · SCAFFOLD IN PHASE 3

Reasoning & Cognitive Tools

Source: references/cognitive-tools.md · assets/cognitive-tools.json

Some prompts need more than a single instruction-and-example shape: they need to scaffold the model's reasoning into discrete, named steps. The framework's reasoning layer is a sub-pattern, not one of the seven shapes. It is invoked inside a shape — inside a one-shot task, a workflow stage, a sub-agent, an LLM-as-judge, or a checkpoint of an agentic loop — wherever the reasoning itself is the bottleneck. When the scaffold is triggered, the framework emits a system prompt plus four tool definitions as copy-and-paste artifacts that you register in your own tool-calling runtime; the framework does not execute the tools itself, and nothing in the pattern requires it to hold tools of its own. The empirical advantage comes from you wiring the per-tool system prompts into your runtime's tool execution.

Hard-reasoning detection is gated by tier

During shape inference the framework watches the request for hard-reasoning signals: mathematical or logical tasks, multi-step planning, code analysis, several simultaneous constraints, or an author's report that the model fails on the first try. Two or more such signals would ordinarily make the cognitive-tools scaffold a structural default rather than an optional extra — the signals trigger inclusion automatically during drafting. But that default is not unconditional: it is conditioned on the substrate capability tier.

The published gains were measured on the model generations available at publication — what the framework's substrate axis calls the legacy and strong tiers — and the result has not been demonstrated on frontier-tier substrates. On a frontier substrate, vendor guidance points the other way: brief general instructions tend to beat prescriptive step-by-step decomposition, and an over-prescriptive scaffold can degrade output quality. So the rule is narrowed to exactly the scope it was actually measured on. This is the clearest instance in the framework of an empirical claim being held to its measured envelope rather than generalized past it.

Verbatim — cognitive-tools.md, tier gating

“Legacy and strong: two or more signals plus a tool-calling runtime → the scaffold is the draft's structural default. Frontier: an M5-gated option — only on a reported first-try failure or explicit request; otherwise a brief general reasoning instruction ("think thoroughly, verify before answering"); if shipped on frontier, say the evidence doesn't cover that tier.”

When a scaffold is shipped onto a frontier substrate anyway, the delivery must note that the empirical evidence does not cover that tier — the honesty discipline that runs throughout the framework applies here too.

The four cognitive tools

The pattern defines a small set of cognitive operations as modular tool calls. Each tool is a separate LLM invocation carrying a role-prompt that isolates one cognitive operation; the main reasoning model decides when to invoke which tool, and each tool's structured output flows back into the main loop. Modularity is the load-bearing property — the source reports that modular tools consistently beat a single monolithic reasoning prompt, because each tool runs in a sandboxed context with only the inputs it needs, reducing interference. Naming the operations also gives the model explicit permission to backtrack.

understand_question

Restates what is being asked, identifies the goal, surfaces assumptions, names the unknowns, and extracts the relevant symbols and variables. It does not answer.

Surfaces two or three similar problems with full solutions as analogical examples. It does not solve the current problem.

examine_answer

Given the current reasoning trace, verifies it against the problem's constraints — catching miscalculations, wrong assumptions, and missing edge cases. It critiques rather than answers.

backtracking

Given a flawed trace, identifies where the first error occurred and proposes a revision from that point — or a fresh strategy when the whole approach was invalid.

The recommended default is to enable all four; if you are optimizing token economy on a strong reasoner, test which subset suffices, since the per-model gains vary widely across tools.

Where it fits — and where it does not

The scaffold earns its cost — extra tokens, latency, and a runtime that supports tool calling — on hard multi-step reasoning, on tasks whose answer space has dead ends so backtracking matters, on tasks where verifying an answer is far easier than producing it, and on high-stakes single-shot work. It is not worth the cost for simple extraction or classification, for open-ended creative generation (where backtracking has no verifiable target), for latency-sensitive paths, or on any runtime without tool calling — there the pattern degenerates into weaker monolithic prompting.

Across the seven shapes the fit is uneven. It is the primary, default choice for a hard-reasoning one-shot task (Shape 2). Inside a workflow (Shape 3) it belongs in a single hard stage — synthesis or decision — not in every stage, because the overhead compounds. In an agentic loop (Shape 1) it lives inside the individual checkpoints where reasoning is hard, never in the loop scaffolding itself. A sub-agent (Shape 4) uses it only when its job is itself reasoning-heavy, and a system persona (Shape 5) generally does not, since personas govern behavior over time rather than a single reasoning episode.

The judge case (Shape 6) turns on a distinction the framework reuses from Shape 2. Evaluative judges — open-ended quality assessment where the score has to be discovered — are a strong fit. Checklist verifiers, whose items are each directly checkable against the artifact, are not: the decomposition is already done, and adding cognitive tools is ceremony. The test is whether scoring an item requires discovering a judgment or merely checking presence against evidence; a mixed judge scopes the tools to its evaluative items only. In an agent team (Shape 7) the tools apply per role, not at the team level.

Operator profile and the reasoning-channel guard

In the framework's operator vocabulary the pattern is strong for hard reasoning and mid otherwise. It amplifies structured decomposition, explicit verification, and a willingness to backtrack; it suppresses premature commitment, monolithic forward-only reasoning, and outputs that look confident but are wrong. It is placed after the constraints and before the output format, and it is non-commutative with that format: if the output format comes first, the model tends to jump straight to the format and skip the reasoning structure entirely.

The scaffold is also designed to pass the audit's reasoning-channel check (M6). Each tool emits structured intermediate work as tool results — a sanctioned output channel — and nothing in it instructs the model to transcribe its internal thinking as response text, which on some substrates both conflates the reasoning and output channels and can trip a refusal. This is distinct from M4, the sibling blocking check: a cognitive-tools scaffold that is described but not actually shipped gives the author the framing of modular reasoning without its substance, and is treated as a defect.

The paper publishes the exact prompts that produced its results, and the framework ships them verbatim because the empirical claim depends on them. You adapt the domain framing (the published prompts target math; the structure generalizes) but preserve the operational specifics. The orchestrator system prompt that wires the four tools together:

cognitive_tools_system_prompt — assets/cognitive-tools.json (system_prompt)

You are an expert assistant who solves problems thoughtfully and effectively. You have access to a list of tools — these are functions that you can call to help you reason through or solve the problem more efficiently.

You are encouraged to use tools when they make the task easier, clearer or more robust — especially for complex, elaborated or ambiguous questions.

Use your best judgment to decide when to call tools.

You may call tools at any point in your reasoning process. Only use the tools listed below. If you choose to use a tool, describe your reasoning and clearly call it using their name.

You can solve problems however you find most appropriate.

When you are ready to provide the final answer to the problem or the question always follow the syntax: 'ANSWER: answer'.

You only have access to these tools, do not use any others:
{{cognitive_tools_signature}}

Here are the rules you should always follow to solve your task:
1. **Call a tool when needed.** If you call a tool, only use the available ones and use its full name to do so.
2. **Don't give up!** You're in charge of solving the problem.
3. Do not give an answer without reasoning about it.
4. **Never hallucinate results.** Wait for tool responses before continuing.
5. **Only write your final answer** after you are confident, and always in the form: 'ANSWER: your final answer here'.

If the question is already clear, you may skip the 'understand_question' step when the corresponding tool is available. But when unsure, it's good practice to use it.

Now Begin!

The constant across every runtime — Anthropic, OpenAI, Gemini, or a local model with function calling — is that each per-tool system prompt must reach the model that executes that tool. Where a runtime does not pass a tool's description through as a system prompt (most do not), your wrapper code must do it; registering the tools without wiring their system prompts is the most common deployment failure and yields tool-call routing without the modularity benefit.

Show source cognitive-tools.md 6 KB
Show source cognitive-tools.json 11 KB

07 PIPELINE · PHASES 4 & 5

Audit & Evaluation

Source: references/audit.md · references/evals.md

Two passes stand between a finished draft and delivery, and they do different work. Phase 4 runs a checklist that catches structural and behavioral failures — the things that make a prompt wrong rather than merely mediocre. Phase 5 then scores what the checklist deliberately does not cover, on three axes, under an explicit instruction to be honest rather than generous. The audit is not a rubber stamp: it is where the framework turns adversarial against its own output.

Before shipping, the framework runs its own static-mode verifier against its own draft and refuses to deliver anything carrying a blocking failure — the discipline the source calls eating its own dogfood. As a skill host with sub-agents, this runtime can run that verifier as a separate check rather than grading purely inline.

Phase 4 · the checklist

The checklist runs the drafted prompt through checks A–O and the gated M-series (M2–M6). It is structural and behavioral, not stylistic: it asks whether each directive sits at the right altitude between brittle hardcoding and vague hand-waving, whether every section spends the smallest viable set of tokens, whether load-bearing rules carry a worked example beside them, whether each section's operator profile — what it amplifies, suppresses, and mixes — is articulated, whether the ordering runs from strongest operator to final format, whether adjacent operators interfere destructively, and whether critical context is preserved rather than pre-collapsed. The M-series adds the measurement checks the classical list omits, including one that flags any instruction telling a model to transcribe its internal reasoning as output.

How hard a finding bites depends on where the prompt came from. Auditing a from-scratch draft — the framework's own output — it assumes intent: every section was added deliberately, so a failure is a real defect to fix and re-audit. Auditing a user-supplied prompt in refactor mode, it cannot tell which sections are deliberate, which constraints reflect external requirements, or which apparent weaknesses are load-bearing for reasons it cannot see; it runs the same checks but treats the results as candidates for the user's review rather than blocking issues, because the user knows things about their prompt the framework does not.

The checks that encode the strongest opinions

Three M-series checks are where the framework holds its hardest line — each guards a failure mode the framework is itself most prone to.

Cognitive-tools completeness

M4 · Blocking

If hard-reasoning signals triggered the cognitive-tools scaffold, all four tool definitions must be present in the delivered artifact, not merely named in prose. A prompt that describes the pattern without shipping the tools gives the author cognitive framing without cognitive substance — the one outcome the framework will never deliver.

Scaffold restraint

M5 · Restraint

The framework applies its own smallest-viable-token discipline to its own generative tendency. Every optional scaffold must trace to a specific, named trigger — a fired signal, a cited answer, a stated stake. “It might help” is not a trigger. The test: would an engineer hand-writing this prompt include this scaffold, or is it here only because the framework had it on the shelf?

Reasoning-channel separation

M6 · Channel

Telling a model to echo its internal thinking as response text conflates two channels and trips a refusal category on some runtimes. It is flagged as a defect — but carefully distinguished from a task-mandated justification field, such as a judge's written reasoning before a score, which is legitimate output on every runtime.

Phase 5 · scored honestly, then restrained

Once the checklist has caught the structural failures, evaluation scores the draft from one to ten on three axes the checklist does not cover. The rule that governs the whole pass is a hard one — “be honest, not generous” — because an inflated score hurts the author more than a low one: a seven with a named gap tells them whether to iterate or ship, while a padded nine costs them the next session.

Token economy

Are the tokens spent buying behaviors that matter? A top score means every section addresses a specific failure mode or enables a concrete behavior, examples are load-bearing, and no preemptive edge case or ritual structure survives.

Task fit

Does the prompt cover what the user actually needs delivered — not only the immediate build but the downstream needs it implies, such as a reviewer audience, an audit trail, or calibration data? Deductions and credits are tuned per shape.

Operator coherence

Do the sections work as one coordinated transformation, or a loose collection? A top score means ordering reflects operator strength, interference pairs are examined and resolved, every section has a clear profile, and nothing is decoration.

Scoring is also where scaffold restraint runs: the framework lists every optional scaffold it added alongside its one-line trigger, and strikes any that exist only because the machinery was available. And it does not ship silently past a weak score — a score below six must be named and offered a fix rather than quietly delivered; if two or more axes fall below seven, the framework proposes a revision pass the author can decline but should at least see.

A deliberate correction against its own bias. The temptation to award a high score grows with the effort already spent, so the rubric builds in a sunk-cost correction: after several revisions the framework's perception is upward-biased and it adjusts down, scores the artifact rather than the author's mood during drafting, and when tempted to write a nine asks what a ten would look like — if that answer is concrete and reachable, the draft is not a nine yet.

The empirical extension is authored, not run

For high-stakes prompts the audit can offer a measured score on top of the heuristic one — a fidelity test across two section orderings, an interference test on a suspect pair, a variance sweep across temperatures. These cost real model calls, so the framework writes them for the human to run rather than executing N samples itself, and reserves them for prompts that will run thousands of times; for a one-off task they are skipped.

Show source audit.md 18 KB
Show source evals.md 10 KB
Show source agent-output.md 2 KB

Evidence — what was measured

No measured change.

PASS² 0.644 (v3) · 0.622 (v2) · 32 RUNS · BLIND GRADERS · SIGN TEST p = 1.000 · 15 v2-TAGGED ASSERTIONS · BOTH VERSIONS AT 7/15

On output quality the v3 refactor is a null result: it did not change what the prompts produce.

The instrument held: v2 reproduced its own earlier number in the same session, 0.622 vs 0.625.

SOURCE · prometheus-lab harness, head-to-head run, Sept 2026 (W6 report)

65 k → 43.5 k tokens.

What v3 bought: the skill is a third cheaper to load (−33 %), with no measured loss in quality.

A cost result, not a quality gain — and still above the 40 k cap, by choice.

SOURCE · prometheus-lab check_skill.py gate, before/after v3

250 rules · 0 absent.

The refactor was verified rule by rule: 57 dilutions found, all 57 repaired.

237 rules checked in fresh context, 13 mechanically — this verifies the refactor, not your prompts.

SOURCE · prometheus-lab rules-v3.yaml + check_rules_anchors.py, Sept 2026

This site makes no superiority claims: the only figure that improved is cost, and it is shown as cost.

08 PIPELINE · PHASE 6 · DELIVERY

Verification

Source: references/evals.md

Verification is the framework's closing discipline: a prompt is not finished when it reads well, but when it has been checked against a written statement of what would count as success. Two things travel with every delivered prompt for that reason — a verifier specification that says, separately from the prompt itself, what correct behavior is, and one or more runnable verifiers that exercise that specification. The recursive twist is that a verifier is itself just another prompt, so the framework builds it out of machinery it already owns rather than as a new subsystem.

What ships depends on the stakes

Delivery is conditioned on the run rather than fixed. Some pieces are always present: the prompt, a short usage note, the audit summary with its three-axis score, the verifier specification, and the static-mode verifier that inspects the prompt text without executing it. The heavier verifiers — the single-run verifier that judges one output, and the cross-run verifier that watches for calibration drift and distributional bias across many outputs — appear only when the stakes justify them, at production scale or high volume. Cognitive-tool definitions ship only when the drafting phase actually triggered them, and are formatted for the runtime the author named.

From-scratch delivery is not a fixed bundle. The pipeline can emit up to nine distinct artifacts, though most runs emit far fewer, and what ships is reported to the author as a scaffold-to-trigger list — the framework is built to justify its own additions rather than pad the delivery.

The three levels of a verifier specification

Static. Properties of the prompt artifact that can be judged without running it — section presence, schema validity, structural coherence. This largely mirrors the audit checklist, re-exposed as a re-runnable check.

Single-run. Properties of one output on one input — schema conformance, each named constraint satisfied, forbidden patterns absent, the author's named failure modes handled.

Cross-run. Properties over many outputs — calibration drift, distributional bias, edge-case coverage, consistency on identical inputs. Often empty for low-stakes prompts; often the most important level for anything in production.

The specification doubles as a cross-check on the prompt itself. A specification that comes out thin — fewer than a handful of single-run checks, no cross-run worth running — is a signal that the prompt may be under-specified, or genuinely simple. One so dense that running it would cost more than the prompt it guards signals over-engineering. Delivery guidance is likewise tuned to substrate and runtime: prefilling, once a default, is now emitted only as a legacy path for runtimes that still accept it, with an explicit-format instruction as the standard substitute.

Eating its own dogfood

The framework holds itself to the same bar it sets for others. Before shipping, it runs its own static-mode verifier against its own draft and refuses to deliver anything with a blocking failure — the discipline the source calls eating its own dogfood. If that self-check finds a blocking defect, such as a cognitive-tools scaffold that was described but never actually included, the artifact is not presented as finished; the problem is named and a revision offered. It is worth being candid that this guarantee is prompt-enforced, not mechanism-enforced: the refusal is an instruction to the executing agent, and nothing structural prevents a rushed run from skipping it.

Where the runtime does provide sub-agents, the same verifiers can be dispatched as separate agents and run in parallel; where it does not, they run in series or by hand. The recursive insight survives every runtime intact: a verifier is a Shape 6 LLM-as-judge prompt, so it inherits that shape's machinery — calibration anchors, bias checks, reasoning forced before scoring, and the Goodhart framing that a mis-specified verifier produces sharply wrong outputs rather than merely noisy ones.

The scaffold-to-trigger list

The self-check only earns trust if the artifact carries an honest account of what it actually contains, and that is the job of the scaffold-to-trigger list. A prompt is more than its prose: it may attach optional scaffolds — cognitive-tool definitions for hard reasoning, clarification-seeking behavior for interactive deployments, verifier prompts for consequential outputs — but each of those is supposed to appear only when a specific condition in the run called for it. The ledger is the running record that keeps that promise auditable: for every scaffold it names what was scaffolded and what its trigger was, so a reader can trace each attachment back to the condition that justified it rather than taking its presence on faith. A scaffold in the delivery with no trigger behind it, or a trigger that fired with no scaffold behind it, is exactly the kind of blocking discrepancy the dogfood gate is meant to catch.

That scaffold-to-trigger accounting extends into an honesty discipline the source calls the validated-versus-unchecked ledger. Every capability the delivery claims is tagged as one of two things and no third: tested, meaning a verifier actually exercised it and passed, or merely source-backed, meaning it rests on the framework's own reasoning but has not been run. The point of separating them is that the status travels with the delivery — the recipient is never left to guess which guarantees were checked and which are promissory. Read together, the two ledgers make the same commitment from two directions: the artifact states what it did, not merely what it aspires to, and it states so plainly enough that the claim can be checked against the record.

Mechanical versus judged verification

Not every property wants the same kind of checker, and one of the framework's cleaner seams runs exactly along that line. Properties that are decidable — whether an adaptation history replays byte-for-byte, whether a proposed change repeats one the ledger already recorded as a regression — are delegated to a deterministic runnable script. Properties that genuinely need judgment — whether a control-plane seam holds, whether persistence and write-ahead conditions are respected — go to a Shape 6 grader. That grader carries one firm rule: when the mechanical report it depends on is missing, it must abstain and mark the result UNVERIFIED rather than guess. Keeping the deterministic and the judged checks on opposite sides of this boundary is what lets each be trusted for what it actually establishes.

Show source evals.md 10 KB

09 LIFECYCLE · MANAGE

Manage Mode

Source: references/manage.md

Manage mode is the third of the framework's procedures. Where from-scratch designs an agent and refactor reshapes a single prompt, manage mode runs an agent across its whole lifetime — always between its runs, never driving it live: it monitors the agent's runs, analyzes goal violations, plans an adaptation, and executes it at one controlled seam, then remembers what it did so it does not repeat a mistake. It adds almost no new analytical machinery; it schedules the machinery the other modes already own — the audit checklist, refactor mode, the cross-run verifier — into four canonical phases. Throughout, the agent's prompt is treated as an operator Ôᵥ, and an adaptation is simply the manager producing the next version Ôᵥ₊₁.

Everything a managed agent is lives in one directory, the managed-agent package. Inside it, Knowledge (K) is the file-backed state the four phases share — split into the semantic-state model of the current prompt (managed-system.yaml), the environment model of aggregated run facts (environment.yaml), the goals model (goals.yaml), the ordered adaptation ledger (ledger.md), and transient working models. A goal counts as well-formed only when it pins three things: an observable, an observer — the measurement operator that reads it — and an aggregation. Because meaning is observer-dependent, “the agent succeeded” is a property of a transcript and a measurement together, never of the transcript alone.

A sharp seam runs through that package — the framework's cleanest one in manage mode. The prompt, tools, and knowledge files are manager-owned: the control plane the manager rewrites. The agent's own memory/ is agent-owned: the data plane, which the manager reads as a probe but never hand-edits. Keeping the two apart is what lets the manager steer the agent between runs without the agent knowing, while still leaving it a persistent memory of its own.

An agent, forged and kept alive

As the Titan Prometheus shaped humankind and gave it fire to stay alive, Prometheus forges agents — and hands them the structure that keeps them alive.

Prometheus builds the agent from ordered operators, then stays on as its manager — watching each run and re-forging the agent so it keeps growing.

  • Born — from ordered operators
  • Grows — it runs in the world
  • Learns — from its own runs

An agent’s nature is its text

The idea draws inspiration from homoiconicity — where a program and its data share one form. Not literally so here, but close in spirit: in an agentic runtime, an agent is largely the text that defines it — its system prompt, its task specs, its memory. Build-time only: Prometheus never runs what it produces. Manage mode is the one exception — it runs only the managed agent, and adapts it between runs, never live.

Nothing is retrained. The agent evolves because the artifacts that define it are rewritten — the same text the runtime executes is the text Prometheus edits. One agent, evolving.

  • I · Run — the agent acts on a real task, leaving a trace of how it behaved
  • II · Read — between runs it reads that evidence — never judging by a single run
  • III · Diagnose — pinpoints the drift and weighs candidate fixes
  • IV · Re-forge — rewrites the control plane — prompt, tools, knowledge

vₙ → vₙ₊₁ — Always between runs, never driving the agent live: Prometheus owns the control plane; the agent keeps its own persistent memory.

The MAPE-K loop

This is the richest flow in the framework, and its discipline reduces to a single rule: K is the bloodstream. The four phases never call one another. Each reads from the Knowledge store and writes back to it, and the next phase reads only what the previous one persisted — because each pass is an irreversible measurement, and nothing survives it except what is written to K. The loop begins when enough runs have accumulated against the current version on an active agent; the agent is deactivated, its transcript flushed to runs/, and control enters the loop.

Monitor

Reads runs/ and goals.yaml and writes tomography facts — cluster probabilities, variance, failure-taxonomy counts — to environment.yaml. It reconstructs the distribution a version induces rather than reacting to any single run.

Analyze

Reads that environment model, the ledger.md prior, and the managed-system semantic-state model, and writes a weighted set of candidate edits to working/. It reasons over the operator model, never the raw prompt text, and keeps its options in superposition.

Plan

Collapses the candidate set to a single edit and writes it to working/ together with an interference re-check list for every section the edit touches. This is the deliberate measurement — the one place a choice is actually made.

Execute

The only writer. Entering the ADAPTING state, it logs a write-ahead ledger entry, snapshots the current prompt, persists the diff as a patch, applies it, re-audits, bumps the version, and updates the semantic-state model last.

Figure 5 — The MAPE-K loop. The four phases sit around the Knowledge store and never call one another; each reads what the previous phase wrote. Execute, in the ADAPTING state, is the only place the prompt may change. The landing page tells the same loop in plainer words: Run feeds Monitor, Read + Diagnose are Analyze + Plan, and Re-forge is Execute.

The lifecycle state machine

The loop is allowed to write in exactly one place, and the lifecycle machine is what makes that checkable. Six states — UNCONFIGURED, CONFIGURED, ACTIVE, INACTIVE, ADAPTING, and the terminal FINALIZED — connect through named transitions. Effectors fire only inside ADAPTING; every other transition preserves the prompt's hash and version. Stop-and-restart is the same seam as adaptation: an agent that can be cleanly deactivated is, by construction, one that can be adapted. And a re-audit failure inside ADAPTING rolls back to the prior snapshot rather than leaving the machine in a dangling state, which is what keeps it closed.

Figure 6 — The lifecycle machine, transcribed from the canonical machine-readable table in references/manage.md. ADAPTING is the only state where the prompt may change; FINALIZED is a terminal archive, and every other transition preserves the prompt's hash and version.

The rules that keep it safe

Manage mode is governed by eight invariants, numbered I1–I7 and I9, and three runtime rules. The invariants are the standing contract — that every phase communicate only through K, that Execute log its ledger entry before it touches the prompt, that Execute stay human-gated unless an explicit bounded envelope in manifest.yaml says otherwise. The three runtime rules are the moment-to-moment decisions the loop makes as it runs.

Min-N gate

Never adapt on fewer than N accumulated runs against the current version. A single run is one sample of the distribution the prompt induces; reacting to it is reacting to measurement noise.

Anti-oscillation

Analyze may not re-propose an option the ledger records as having regressed against the same trigger. The mechanical verifier pre-filters on trigger-and-section; a grader judges intent.

Replay property

The first snapshot plus the ordered ledger diffs must reconstruct the current prompt exactly, byte for byte — the property that makes an adaptation history trustworthy and a rollback safe.

Refactor mode — the alternate path that manage mode schedules and reuses.

Show source refactor.md 7 KB

10 GET STARTED · INSTALL

Setup

Prometheus ships as one portable agent skill. The controlling file, SKILL.md, is the single always-loaded file — roughly 10 KB of YAML frontmatter plus the controlling procedure — and eighteen companion files (the reference corpus under references/ and assets/, plus CHANGELOG.md) sit alongside it and are pulled into context only at the step that needs them. Because it is written to be read progressively, installation is mostly a matter of making the folder discoverable to your runtime.

Runs across the agentic ecosystem — Claude Code · OpenAI Codex · opencode · Cursor · Gemini CLI · the Anthropic and OpenAI APIs · any skill-aware runtime — and as a Gemini Gem.

No build step · No dependencies · Auto-triggers on intent · MIT-licensed

Download the skill · Download the gem · also on GitHub

The steps below adapt to your runtime — use the pill above to switch between an agentic runtime (Claude Code, Codex, opencode, …) and Gemini Gem.

Install on an agentic runtime

<skills-path>/prometheus/

Every filesystem-based agent — Claude Code, OpenAI Codex, opencode, Cursor and any other skill-aware host — installs Prometheus the same way, because the skill is just a directory holding a SKILL.md with valid frontmatter, placed on the host's skills search path so it is discovered by folder name. There is no build step and no dependency install — the one script it carries, assets/manage/replay-verifier.py, imports nothing outside the Python standard library.

  • Claude Code · ~/.claude/skills/
  • Codex · ~/.codex/skills/
  • opencode · ~/.config/opencode/skills/

Drop it in. It routes itself. No build step, no dependencies. Place the skill folder on your agent’s search path and Prometheus auto-triggers the moment you describe a prompt-design task.

Install — Claude Code

# drop the skill onto the search path
cp -a prometheus ~/.claude/skills/
# then just describe the prompt you need
> design a prompt for a support agent
  1. Place the skill folder — Copy the whole prometheus/ folder onto your host's skills search path (see the paths above for the common runtimes), keeping references/ and assets/ intact.
  2. Match the folder name to the frontmatter — The loader discovers the skill by folder name, and that name must equal the frontmatter name:. Both are prometheus; the frontmatter also carries a description: and license: MIT. Leave them unchanged.
  3. Let the auto-trigger do the rest — There is nothing to enable. The host reads the frontmatter description and routes to the skill on prompt-design intent — "write a prompt for X", "design a grader", "build an agent", "fix my prompt". The skill then runs its own interview and names the host's memory file — CLAUDE.md, AGENTS.md or equivalent — as the target.

— READING MAP · SOURCES

Reading Map & Source Layout

The framework is one body of source read three ways. It ships as a portable agent skill that any skill-aware host can discover — Claude Code, OpenAI Codex, opencode, Cursor, Gemini CLI and the Anthropic and OpenAI APIs among them — and it is additionally ported to run as a Gemini Gem. The files are the same; what changes per runtime is how the host loads them and, for the ports, a small band of audit artifacts that record how faithfully the port was carried out.

Below is the reading map rendered for the runtime you have selected in the version pill above — the order to read the files in, a one-line note on when each one earns its place in context, and the exact install path. Start with SKILL.md: it is the router, and it frames everything else.

Source browser

Every file in the framework, viewed with the same offline viewer used by the in-context panels.

  • Router

  • Frame

  • Design vocabulary

  • Interview

  • Reasoning

  • Audit & evaluation

  • Verification

  • Manage

  • Refactor

  • Meta

Pick a file to read it here — the release files, verbatim.

Claude Code

Archive: prometheus-skill.zip · 23 entries

This is the canonical, portable skill. Its single always-loaded file, SKILL.md, carries YAML frontmatter — name, description, license — that lets a skill-aware host discover it and decide when to trigger it. Eighteen companion files sit alongside and are pulled into context only at the step that needs them.

Router — read first

The one file that is always loaded; it selects the mode and carries the from-scratch procedure.

  • SKILL.md · 10 KB — Read first. The router, the core stance that a prompt is an operator rather than a keyword search, and the six-phase from-scratch procedure. It frames every other file.

Frame — read before the rest

Eleven principles the whole corpus speaks; without them the rest reads as arbitrary rules.

  • references/quantum-principles.md · 17 KB — Read second. The eleven quantum-semantic principles, each paired with a concrete drafting or audit action. It is a vocabulary every other component uses, not a layer.

Design vocabulary — shapes and operators

The shapes are the skeletons; the operators are the muscles. Read the pair together.

  • references/shapes.md · 17 KB — The seven prompt shapes and each one's anatomy — which sections apply and how it is evaluated. Read when you need to place a task into its structural archetype.
  • references/operators.md · 11 KB — Each prompt section described as an operator: what it amplifies, suppresses, and mixes, its strength, and whether it commutes with its neighbours. Read while drafting a section.
  • references/loops.md · 4 KB — Shape 1, the long-horizon agentic loop — new in v3.
  • references/agent-teams.md · 9 KB — The canonical multi-agent topologies and the operator profile of each role. Read when a task is decomposed across coordinated agents.
  • assets/minimum-viable-prompt.yaml · 1 KB — The smallest scaffold a delivered prompt must fill. Read when you want the floor, not the full anatomy.

Interview

  • references/shapes.md (§ Interview) · 17 KB — The per-shape question banks for the Phase-2 interview and the six-question cap conduct rules. Read when conducting the adaptive interview.

Reasoning

The from-scratch pipeline only sometimes pulls these in.

  • references/cognitive-tools.md · 6 KB · assets/cognitive-tools.json · 11 KB — Cognitive-tool scaffolds invoked inside a shape for hard-reasoning tasks. Read when a task shows two or more hard-reasoning signals.

Audit & evaluation — how quality is judged

The audit catches structural failures; the rubric scores what the audit does not cover.

  • references/audit.md · 18 KB — The pre-ship checklist, combining classical context-engineering and quantum-semantic checks. Read before declaring a prompt done; fix, re-audit, ship only when clean.
  • references/agent-output.md · 2 KB — Designing a prompt's output when another agent, not a human, will consume it — the output is itself an operator on the next agent's context. Read for agent-to-agent handoffs.

Verification

  • references/evals.md · 10 KB — Scores the prompt on three axes the audit leaves untouched, to give the user calibrated information about what they are getting; read in Phase 5. What a delivered prompt's verifier must check — the language of record for what counts as success; read when specifying a verifier. And how to turn that specification into a runnable verifier agent that judges outputs against it.

Manage — the management layer

Manage mode alone adds a state layer; everything in it depends on the package definition, so read that before the loop.

  • references/manage.md · 19 KB — Read first in this layer. The managed-agent package, the six-state lifecycle machine, and the ledger that everything else in manage mode depends on; then the four MAPE phases — Monitor, Analyze, Plan, Execute — run over a managed agent, communicating only through the knowledge store. The closure requirement that the managing system is itself made of prompts lives here too (I9).
  • assets/manage/monitor.md · 4 KB — The shipped Monitor pass, which reads accumulated runs and writes state-tomography facts. Read when the loop needs to observe the agent.
  • assets/manage/analyze.md · 5 KB — The shipped Analyze pass, a Bayesian collapse over candidate adaptations that reasons over the operator model rather than the raw prompt text.
  • assets/manage/package-verifier.md · 4 KB — The Shape-6 grader that checks a managed package for well-formedness. Read when verifying an agent package.
  • assets/manage/replay-verifier.py · 5 KB — The one piece of genuinely executable code. It makes the replay property and the anti-oscillation rule concrete, and it imports nothing outside the Python standard library.

Refactor — read last

Save refactor mode for last, since it is the alternate path and makes the most sense once from-scratch is familiar.

  • references/refactor.md · 7 KB — Read last. The inverse path — auditing, fixing, or rewriting an existing prompt across its own six phases. It makes the most sense once the from-scratch pipeline is familiar.

Meta — the honest-status trail

These carry the version history and trace every borrowed idea to its source.

  • CHANGELOG.md · 41 KB — The full version history. Read for what changed.
  • CITATIONS.md · repository file — Every borrowed idea traced to its source; the architecture is original but nearly every principle is attributed. Read to check where a claim comes from.
  • LICENSE · repository file — The MIT license. This file remains authoritative regardless of the frontmatter license key.

Install as a skill

A skill is a directory containing a SKILL.md with valid frontmatter, placed on the host's skills search path so the loader can discover it by folder name. There is nothing to build and no dependency to install — the skill runs in the model's context window, and its one script is standard-library only.

  1. Place the folder on the skills path — Copy the prometheus/ folder into Claude Code's skills directory so the loader discovers it under the folder name.
  2. Let the frontmatter do the routing — The name, description, and license in SKILL.md are what the host reads to decide when to trigger; no wiring is required.
  3. Invoke by describing the work — Ask for prompt-design work — “write a prompt for…”, “design a grader”, “audit this prompt” — and the skill runs its own interview and delivers. For a Claude Code target the memory file it names is CLAUDE.md.

Research

Grounded in the research.