Promptzilla
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Promptzilla run the full pipeline to optimize my customer-support system prompt"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Silverquill
Site: silverquill.amccutcheon.com
Five prompt-engineering skills and a durable optimization loop. Install the skills into your agent with one command, or run the whole pipeline from the terminal with a fresh process per stage.
Release status: Silverquill 2.0.0 is pending npm publication. There is no
silverquillpackage on npm yet; the last published release ispromptzilla@1.0.0, the old MCP server. Use the source or the local build until 2.0.0 ships.
Silverquill does not call a model API itself and stores no credentials. The worker you choose — OpenCode, Claude Code or Codex — already has its own authentication.
Quick start
Until 2.0.0 is on npm, clone and build. The commands below run from the repository root.
git clone https://github.com/andymccutcheon/silverquill
cd silverquill && npm install && npm run build
node dist/cli.js install
node dist/cli.js run --request "Write a prompt for a meeting-notes summarizer"Once 2.0.0 ships, npx silverquill install and npx silverquill run do the same two things
without the clone.
install copies the five skills into the agent hosts it detects. run executes the full
Compose → Judge → Revise loop and writes the approved prompt to
./prompts/<slug>.md.
Related MCP server: api_agent_mcp
Install the skills
Requires Node.js 22.12 or newer.
node dist/cli.js installThe command detects the agent hosts on this machine and copies all five skills into each one it finds:
Host | Destination |
Claude Code |
|
OpenCode |
|
Shared agents |
|
If none are found it installs to Claude Code. Re-run the same command to update; the five
skill folders are replaced. Upgrading from the pre-rename release also removes the five
legacy folders (tasker, metapod, judge-dredd, brian-spillner, prompt-pipeline)
when they are present. Use --target, --dir or --dry-run for control:
npx silverquill install --target all
npx silverquill install --target claude,opencode
npx silverquill install --dir ./.claude/skills
npx silverquill install --dry-runThe installed skills are brief, compose, judge, revise and
loop. Supporting files for the manual pipeline (DRY-RUN.md, the Python
helpers) are installed with loop.
Run the pipeline
Full mode turns a rough request into a prompt, then scores and rewrites it until Judge returns STOP at 9 or higher:
npx silverquill run --request "Write a prompt for a meeting-notes summarizer that returns five bullets"Optimize-only mode starts from a prompt you already have:
npx silverquill run --prompt ./prompt.mdA trailing argument is shorthand for a Full request:
npx silverquill run "Write a prompt for a release-notes generator"The default worker is opencode. Choose another and pass a model when you want one:
npx silverquill run --prompt ./prompt.md --worker claude --model claude-sonnet-4-5
npx silverquill run --request "..." --worker codex --model gpt-5Useful flags:
Flag | Meaning |
| Constraints carried through every stage |
| Output directory (default |
| Override the exported filename |
| Print each stage's full output |
| Suppress stage progress |
| Per-stage timeout (default 900000) |
| Machine-readable result |
Exit codes: 0 approved, 2 paused for a decision, 3 capped or blocked with a
provisional candidate.
Where the prompt goes
On STOP, the scored prompt is written to ./prompts/<slug>.md (or --out). The file is
the prompt itself — no frontmatter, no commentary, ready to paste.
If the run caps at four scoring rounds, blocks on invalid output, or pauses because the
score stopped improving, the best scored candidate is written to
./prompts/<slug>.provisional.md and clearly reported as not approved. A plateau pause is
resumable:
npx silverquill run --resume <run-id> --decision "Continue; resolve the count conflict first."Every run also keeps a full record under ~/.silverquill/runs/<run-id>/: the original
input, each stage file, retries, scorecards, provenance and run.json. Use --runs-dir
to relocate it.
Workers
Each stage runs in a separate process with only that stage's packet. That is real isolation, not an attestation.
Worker | Command | Notes |
|
| Reads the packet from stdin; captures the session ID |
|
| Reads the packet from stdin |
|
| Reads the packet from stdin |
| in-process | Deterministic; used by the test suite |
The worker must be installed and authenticated already. Silverquill never reads or stores provider keys.
Manual mode
An agent that cannot spawn a worker can still use the durable engine. start creates a
run and prints the first dispatch; the agent executes dispatch.instructions with
dispatch.input and submits the exact output.
npx silverquill start --request "Write a prompt for a meeting-notes summarizer" --json
npx silverquill status <run-id>
npx silverquill submit <run-id> --dispatch <dispatch-id> --output ./stage-output.md
npx silverquill pause <run-id> --reason "Need a user decision"
npx silverquill resume <run-id> --decision "Keep the current structure"
npx silverquill fix <run-id> --old "notes" --new "meeting notes"
npx silverquill export <run-id> --out ./promptsstatus --json includes the active dispatch, so the packet can be handed to a fresh
worker without reading run.json. fix accepts repeated --old/--new pairs or
--fixes FILE containing [{ "old": "...", "new": "..." }]. Fixes must be quoted
exactly in a Judge recommendation, and a fresh Judge confirms the diff before approval.
The five skills
Skill | Job |
| Turn a rough task assignment into an execution-ready instruction |
| Turn a request into a System Prompt and a Task Prompt |
| Score a prompt on a locked 0–10 rubric; STOP at 9+ |
| Rewrite a prompt by applying every numbered recommendation |
| Orchestrate the three pipeline skills manually |
The installed files are the source of truth. The CLI pins each run to the exact skill text it started with, so editing a skill mid-run cannot change the current run.
Pipeline rules
Compose must return one System Prompt and one Task Prompt with all required headings. It never performs the requested task.
Judge returns section ratings with quoted evidence, one overall rating, a STOP or CONTINUE verdict, and numbered recommendations. STOP is valid only at 9 or higher; CONTINUE needs 3–5 recommendations.
Revise returns the complete rewrite between one BEGIN and one END BODY marker plus a checklist accounting for every recommendation. Judge re-scores the body without seeing the checklist.
A scoring round starts with Judge. Pass 1 counts toward the four-round cap.
An invalid stage gets one retry. A second invalid output blocks the run and preserves the best scored candidate as provisional.
A score that does not improve after two rewrites pauses for an explicit decision. It never invents one.
Exact fixes after STOP are explicit, all-or-nothing, and confirmed by a fresh Judge.
Testing
npm test # 66 unit, integration and CLI tests
npm run check # build, type-check, coverage, Python helper tests
npm run test:package # pack, install into a clean directory, run the pipeline
npm run test:live # real model through the real three-skill pipelinenpm test uses authored fixtures and does not spend model tokens. npm run test:live
runs Full mode against OpenCode and reports the score trajectory; it passes when the
pipeline reaches a terminal or decision state with a final or provisional prompt. A
blocked run — output that fails the stage contract twice — is a failure.
The live run proves the protocol, validation and state machine against real skill output. It does not prove that a particular prompt is good; Judge can legitimately cap at 8.
Library use
import { Catalog, Pipeline, executeRun, createWorker } from 'silverquill';
const pipeline = new Pipeline(await Catalog.load('./skills'), './runs');
const result = await executeRun({
pipeline,
worker: createWorker('claude', { model: 'claude-sonnet-4-5' }),
mode: 'optimize-only',
input: 'You summarize notes.',
outDir: './prompts',
});Pipeline exposes start, status, submit, pause, resume and applyFixes for
manual orchestration. Catalog discovers and validates skill folders.
Package and release
The package publishes to npm as silverquill.
Bump version, run npm run check, then npm publish --access public, or trigger the
publish GitHub Actions workflow.
Security and limits
No API keys, no provider accounts, no remote service. Workers use their own auth.
Run directories are created with owner-only permissions; run files are mode
0600.Stage input is capped at 200,000 characters; worker output at 4 MB; each stage defaults to a 15-minute timeout.
Symlinks, path traversal and artifact tampering are rejected.
Prompt text stays on disk until you remove it. Run directories can contain private material.
Migrating from 1.x
Version 1.x was Promptzilla, an MCP server. Version 2 is Silverquill, a CLI and a library.
Remove the
promptzillaentry from your MCP client configuration.Run
npx silverquill install.Use
npx silverquill run ...or the installed skills directly.Old runs live under
~/.promptzilla-mcp/runs; read one with--runs-dir ~/.promptzilla-mcp/runs. New runs default to~/.silverquill/runs.The Cloudflare Worker, HTTP transport and MCP-specific tools, prompts and resources are gone. The durable pipeline engine and all five skills remain.
The implementation plan and acceptance criteria are in PLAN.md. Measured
verification results are in TEST-RESULTS.md.
Available Tools
13 toolsbrian_spillnerCRead-onlyIdempotent
Prepare Brian Spillner to rewrite a prompt using a numbered scorecard. Host executes the packet.
Inputs: prompt (required), scorecard (required), priorities.
get_skillCRead-onlyIdempotent
Load exact skill instructions and metadata for host execution.
Inputs: name (required).
judge_dreddBRead-onlyIdempotent
Prepare a fresh Judge Dredd evaluation. Returns skill instructions plus caller-supplied prompt data, not a computed score.
Inputs: prompt (required), priorities, fidelity_source, earlier_scorecards.
list_skillsBRead-onlyIdempotent
List all available prompt-engineering skills.
Inputs: no named parameters.
metapodCRead-onlyIdempotent
Prepare Metapod to turn a raw request into System and Task Prompts. Host executes the returned packet.
Inputs: request (required).
pipeline_apply_fixesA
Apply explicit Judge-authorized exact replacements to a STOP final. Preserves original final; requires fresh diff-only confirmation before approval.
Inputs: fixes (required), run_id (required).
pipeline_pauseA
Pause a running stage for a real user decision or unavailable fresh workers. Preserve the pending stage for resume.
Inputs: reason (required), run_id (required).
pipeline_resumeB
Resume a paused run using the actual user decision. Never invent an answer or bypass the four-round cap.
Inputs: run_id (required), decision (required).
pipeline_statusBRead-onlyIdempotent
Read run status, score history, artifacts and the active dispatch.
Inputs: run_id (required).
pipeline_submitA
Submit exactly one isolated worker output. Validate and persist it, then advance or retry the expected stage.
Inputs: output (required), run_id (required), dispatch_id (required), execution_id (required), +1 more.
prompt_pipelineA
Start a durable Full (idea → prompt) or optimize-only (existing prompt) run. Returns the next isolated-worker dispatch; the host executes it.
Inputs: mode (required), input (required), priorities.
search_skillsBRead-onlyIdempotent
Keyword-search skill names and descriptions.
Inputs: query (required), limit.
taskerCRead-onlyIdempotent
Prepare Tasker to optimize a rough task assignment. Host executes the returned skill; underlying task is never performed.
Inputs: task (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
The pipeline_* tools are clearly differentiated by distinct verbs (status, submit, pause, resume, apply_fixes), and the skill discovery trio (list/search/get) is distinct. However, the four persona tools (tasker, metapod, judge_dredd, brian_spillner) share an identical 'prepare X to return skill instructions' behavior, and get_skill also returns skill instructions, so boundaries must be inferred from descriptions rather than names.
Two coherent families exist: verb_noun snake_case (list_skills, search_skills, get_skill) and noun-prefixed pipeline_* operations. But the four single-word persona names (tasker, metapod, judge_dredd, brian_spillner) break any verb_noun pattern, making the overall set mixed rather than predictable.
13 tools is well within a reasonable range for a prompt-engineering pipeline with skill discovery, skill wrappers, and a full run lifecycle. Each tool appears to earn its place, though the four persona wrappers could arguably be consolidated into a single parameterized tool.
The surface covers discovery (list/search/get), execution packaging (persona tools), and a durable pipeline lifecycle (start, status, submit, pause, resume, apply_fixes). Minor gaps exist—no explicit cancel/delete for runs or a listing of past runs—but core workflows are covered without obvious dead ends.
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Generate contextual prompts and reusable agent skills, evaluate prompts with the 16-dimension Prompt Score, and manage saved work in PromptDrive. Twelve MCP tools also provide authorized access to private Memory for source-grounded answers. Connect over Streamable HTTP using OAuth 2.1 and PKCE. Generation consumes account quota and automatically saves successful results; Memory access follows account permissions and plan limits.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceA remote MCP server that ships procedural knowledge skills to AI agents, enabling methodologies like brainstorm-first and plan-before-action. Hosted on Cloudflare Workers, it provides resources, prompts, and tools for skill management.-
- AlicenseNot gradedqualityCmaintenanceEnables users to define and run reusable role-based agent profiles that complete tasks alone or in bounded multi-agent discussions with independent proposals, parallel critiques, an independent judge verdict, and optional revision rounds, persisting all session events to a local SQLite log. It works over MCP stdio with any OpenAI-compatible chat completions endpoint and exposes profiles as resources.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients such as Claude, Cursor, VS Code, and Windsurf to manage workspaces, projects, tasks, and AI agents through natural language, using a hosted OAuth-authenticated endpoint or a local stdio package. It also ships an OpenAPI codegen tool for generating MCP tools from any OpenAPI spec.1,950 npmMIT
- AlicenseCqualityBmaintenanceEnables ordinary LLMs to be augmented fully offline — with no API keys or external services — through model-aware guardrails, exemplar retrieval, structured self-critique, compliance scoring, and an allowlisted verification runner. Also provides hybrid knowledge-base search, decaying long-term memory, and persistent plan/task management across 54 MCP tools usable from any MCP client such as OpenCode, Claude Desktop, Cursor, or VS Code.62MIT