Dispatch Prompt Analysis

Critical review of 20 representative prompts sampled from the522-prompt loom-builder dispatch corpus. Each prompt scored on structure, specificity, guard rails, measurability, and context completeness. Generated Jul 19, 2026.

Prompts Analyzed
20 / 522
Patterns Identified
12
Anti-Patterns
9 4 high
Avg Overall Score
4.28 of 5.0

Executive Summary

The loom-builder prompt corpus (522 prompts, 20 analyzed in this report) has converged on a small set of structural patterns that distinguish high-leverage dispatches from low-leverage ones. The strongest prompts share six load-bearing elements: a ROLE/GOAL/PLAN echo handshake, a numbered 'Read FIRST' anchor list with status, a quantified success metric, RIGHT/WRONG code blocks for fragile APIs, an explicit budget calculation, and a copy-paste bash gate. The corpus-explorer S1/S2/S3e series and the ephesians4 series represent the current ceiling: they call out known gotchas, binding decisions, prior failures, and forbidden files. The sprint-1/2 and sol-clone-migration prompts demonstrate that handoff citation between dispatches is itself a pattern — later prompts compress by referencing earlier ones rather than re-stating context.

The most common anti-patterns are the absence of a falsifiable gate (replaced by 'comprehensive' or 'working') and the absence of a 'Read FIRST' anchor list, which together cause the 'file exists but doesn't work' failure class that the S3c dispatch was written to correct. Section-naming drift is the most common low-severity anti-pattern — prompts use 'Context', 'Read FIRST', 'INPUT FILES', and 'User intent (restated)' interchangeably, which makes small models pattern-match inconsistently. The lowest-scoring prompt in the sample, smoke.md, is a 3-line probe that has no role, no metric, and no gate; it should be retired from the active corpus.

The top 3 recommendations are: (1) lock the template section ordering and migrate older prompts in a separate pass, (2) make RIGHT/WRONG blocks mandatory for any prompt that touches an API likely to have moved since training, and (3) require a copy-paste bash gate on every prompt. The corpus is in a strong place — the median prompt scores 4.0+ across all five dimensions — but the gap between the strongest (5.0) and weakest (1.8) prompts is large, and closing that gap is the highest-leverage prompt-engineering work remaining.

Patterns (12)

Structural and content patterns that distinguish high-leverage dispatches from low-leverage ones. Frequency is out of 20 sampled prompts.

ROLE/GOAL/PLAN Echo Handshake

high
16/20·20260710-ephesians4-donations.md

Prompts instruct the model to print ROLE + GOAL + PLAN (or PLAN + numbered build order) as the first output before any tool call. This forces the model to commit to a build order it can maintain as a checklist, and gives the orchestrator an early signal if the model misread scope.

Evidence

Verbatim phrasing across ephesians4-* series, crawlerstudiov2-*, agents-md-enrich-batch, phase0-integration-phaseAB, sprint-1.md, sprint-2.md

Read-First Anchor List (ordered)

high
17/20·20260720-corpus-explorer-s1-etl.md

Prompts supply a numbered 'Read FIRST' list of absolute file paths, in execution order. This short-circuits model spelunking and ensures the model sees binding context (specs, handoffs, schemas, proven house patterns) before touching source.

Evidence

Typical: '1. CLAUDE_HANDOFF.md 2. spec.html ... 3. ddl.sql'. Files cited have status: binding, authoritative, ground truth, proven.

Quantified Success Metric

high
14/20·agents-md-enrich-batch.md

Prompts define done as a falsifiable check: all 12 spec assertions pass green, N/14 target files rewritten with >=15 non-empty lines, bun run build exits 0, tsc --noEmit exits 0. The metric appears in bold or in a dedicated 'Success metric' / 'Gates' block.

Evidence

Quantified metrics appear in ephesians4, corpus-explorer, sprint-1/2, sol-clone migration, agents-md enrichment, phase0 integration, crawlerstudiov2-prisma-d1

RIGHT/WRONG Code Blocks

high
11/20·20260720-corpus-explorer-s3e-thumbnail-hang-fix.md

For coding tasks, prompts include fenced ts/sh blocks showing the RIGHT way and the WRONG way side by side. These are surgical — they call out exactly the API call or command pattern that previously failed, so the model cannot regress to the wrong shape.

Evidence

Bun.spawn vs in-process timeout, prisma adapter import path, npx vs bunx, module-level globalThis vs request-scoped singleton. Every RIGHT/WRONG cites a known prior failure.

Explicit Budget Calculation

high
9/20·_template.md

Prompts include a budget formula: gates x 3 + files_read / 2 + files_write x 2 + buffer, and a hard cap (30, 60, 100, 150 calls). Some instruct: write output before exhaustive reads, or if you have not written output by tool call 3, STOP and write it.

Evidence

Template's BUDGET CALCULATION block is reproduced across architecture-first-workflow, ephesians4-seo, crawlerstudiov2-prisma-d1, sprint-1, sprint-2

Intel Discovery / Fleet Query First

high
8/20·agents-md-enrich-batch.md

Prompts begin with STEP 0 — before any plan, the model must run 'ls -a', check for graphify-out/GRAPH_REPORT.md/CODEATLAS.md, or run a code-atlas query to discover repo structure. This is Mike's HEEC loop: Hypothesize -> Examine -> Execute -> Check.

Evidence

Templates call it INTEL DISCOVERY; later prompts call it FLEET QUERY FIRST or HEEC LOOP. Always before planning.

Known Gotchas — Do Not Re-Learn

high
7/20·20260720-corpus-explorer-s1-etl.md

Prompts explicitly enumerate gotchas from prior handoffs: incremental staging carry-forward already fixed, Conversation Date = created_at never exported_at, wrangler.jsonc must have nodejs_compat or every route 500s. These compress weeks of debug history into a don't-repeat block.

Evidence

corpus-explorer S1, S2, S3c each carry a 'Known gotchas / invariants / Hard rules' section

Anti-Spelunking Rules

high
12/20·_template.md

Prompts forbid broad file reading: no ~ or relative paths, full absolute paths only, do NOT recursively list or read directories, maximum 20 file reads total, write output before exhaustive reads. The model is constrained to a bounded read budget.

Evidence

DISPATCH SCOPE CONSTRAINTS appears as a hard append in every minimax-m3 dispatch. Smaller prompts bake it into RULES section.

Validation Gate Block (copy-paste bash)

high
10/20·20260710-ephesians4-seo-pass.md

Prompts end with a shell block of curl/grep/bun commands that prove success. The commands are designed to be runnable by a small model and produce a yes/no answer. 'curl -s ... | grep -c og-image # >=1' is a load-bearing gate pattern.

Evidence

All ephesians4-*, corpus-explorer S1/S2, sol-clone migration, crawlerstudiov2-prisma-d1 have shell-verifiable gates

Don't-Touch / Out-of-Scope List

high
11/20·sol-clone-pi-080-migration.md

Prompts explicitly enumerate files the model must NOT modify: do NOT touch wrangler.toml, content markdown, api/register.ts, wrangler.jsonc, package.json, migrations. Do NOT run wrangler deploy. Touch NOTHING in primary loom-builder. This narrows blast radius.

Evidence

sol-clone, crawlerstudiov2-prisma-d1, phase0-integration-phaseAB, all ephesians4-*, code-lens-scaffold, sprint-2 each have a forbidden-modify list

REPORT BACK / Digest Contract

high
15/20·crawlerstudiov2-prisma-d1.md

Prompts specify the exact shape of the final report: files modified + per-section status table + verification command outputs, or a CLAUDE_DIGEST.md with a table of migrated APIs (file:line, old to new), test counts, manifest path. Consumable by the orchestrator's validator.

Evidence

REPORT BACK (CLAUDE_DIGEST.md) section appears in nearly every multi-step coding prompt

Cross-Prompt Handoff Citation

high
6/20·sprint-2.md

Later prompts cite earlier dispatches by name: see ephesians4-seo-pass for the head pattern, Sprint 0 OrchestratorDO already EXISTS extend it, Sprint 1 src/execution/ is complete REUSE its pieces. The corpus acts as a living knowledge base.

Evidence

sprint-2 cites sprint-1, sol-clone cites primary loom-builder, corpus-explorer S2 cites S1's seams

Anti-Patterns (9)

Common failure modes. High-severity entries cause the 'file exists but doesn't work' class of dispatch failure.

Vague / Subjective 'Done' Definition

high
4/20·arch-compare-synthesis.md

Prompts that say 'produce a comprehensive report' or 'make a working site' without enumerating falsifiable checks. Models interpret these as license to stop at the first plausible output.

Fix

Replace 'comprehensive' with quantified metric: sections covered >=7, comparison matrix with >=10 rows, next-steps section with >=5 concrete actions. Gate on the count.

No Intel Discovery / Code-Atlas Reference

medium
9/20·webgraph-phase1-foundation.md

Prompts that do not instruct the model to query code-atlas or check graphify-out before reading source. The model then either reads too much or too little. Especially harmful in multi-repo dispatches.

Fix

Add a STEP 0 block: run <atlas query> against <db-path> --top 10, or check for graphify-out/GRAPH_REPORT.md before reading source. Cite the database path explicitly.

Single-Line / Bare-Scope Prompts

high
3/20·smoke.md

Prompts under 10 lines that delegate a non-trivial task with no context, no metric, no constraints. These are scaffold prompts for smoke-tests but have leaked into the corpus. They cannot be validated and cannot be improved without re-running.

Fix

Even smoke prompts need a 4-line contract: ROLE, GOAL, ONE GATE, REPORT. Otherwise they produce un-reviewable artifacts.

Missing RIGHT/WRONG Blocks for API-Critical Code

high
6/20·20260707-code-lens-scaffold.md

Prompts that delegate work to a known-fragile API (Playwright, Cloudflare Workers, Camoufox, Prisma adapter, DuckDB-WASM) without showing the RIGHT shape. The model falls back to training-data guesses that are out of date.

Fix

Every prompt that touches an API likely to have moved since training (Playwright/Cloudflare/DuckDB-WASM/prisma/bun internals) must include a RIGHT/WRONG block with citation to the installed package's docs/CHANGELOG.

Encourages Broad File Reading

medium
4/20·20260707-crawlerstudiov2-agents-md.md

Prompts that say 'read the full S0 handoff' or 'explore the entire src/ tree' or 'read both reports completely' without bounding the read. Models spend 30+ tool calls reading before writing anything.

Fix

Replace 'read everything' with a numbered list of named files + the page-range to read. 'Read pages 1-5 of CLAUDE_HANDOFF.md, sections S3 + S7'.

No Blast Radius / Out-of-Scope List

medium
5/20·20260707-code-lens-scaffold.md

Prompts that name the goal but don't enumerate forbidden files. Models refactor adjacent code, breaking gates that the orchestrator wasn't watching. Especially common in 'scaffold from scratch' prompts.

Fix

Add a 'Do NOT touch' line: preserve <existing files>; extend, do not rewrite. For multi-repo: other repos are read-only references.

No Copy-Paste Validation Gate

high
6/20·agents-md-organization-pass.md

Prompts that end with 'report back' but no shell block to run. The model claims success and the orchestrator has to invent a check. This is the most common source of 'file exists but doesn't work' failures.

Fix

Every prompt must end with at least one bash block the model runs and pastes the output of. 'curl + grep' for HTTP, 'bun test' for code, 'wc -l' for content.

Over-Loaded Context (10+ files to read first)

medium
3/20·20260720-corpus-explorer-s1-etl.md

Prompts that list 8-12 'read first' files. The model reads them all, exhausts its read budget, and writes output under context pressure. The corpus-explorer S1 prompt pushes the upper limit at 6 numbered items + known gotchas.

Fix

Cap at 5 'read first' files. Move the rest to a 'Reference if blocked' appendix. Or summarize the additional files in 2-3 lines so the model doesn't need to read them.

Inconsistent Section Naming Across Prompts

low
7/20·smoke.md vs 20260720-corpus-explorer-s1-etl.md

Some prompts use 'Read FIRST', others 'Context', others 'INPUT FILES'. Some use 'GOAL', others 'User intent (restated)', others 'TASK'. The structural drift is real but minor — Mike reads them all, but small models pattern-match inconsistently.

Fix

Lock the template to a single section ordering: ROLE -> STATE ANCHOR -> INTEL DISCOVERY -> GOAL -> REQUIREMENTS -> STEPS -> GATES -> REPORT. Migrate older prompts in a separate pass.

Prompt Scores (20)

Click a column header to sort. Default ordering is by overall score (descending).

PromptStructSpecRailsMeasCtxOverallNotes
20260720-corpus-explorer-s1-etl.md555555.0Model-defining. Hard rules from CLAUDE.md, known gotchas block, missing-spec callout, ordered read list with status, quantified '12 assertions pass green' metric, bound to DDL + corpus.config.ts.
20260720-corpus-explorer-s2-astro-site.md555555.0Sister to S1, equally strong. Calls out the binding SPEC ADDENDUM v1.1, the seams S1 left, the exact Parquet manifest row counts. Hard rules on set:html for JSON-LD.
20260720-corpus-explorer-s3e-thumbnail-hang-fix.md555555.0Diagnoses the prior root cause explicitly, then dictates the fix with Bun.spawn RIGHT/WRONG, orphan-process verification, schema-correct status buckets. Reads like a senior engineer's incident postmortem.
20260710-ephesians4-donations.md555555.0House pattern (register.ts) cited as proven. Exact Stripe + Square API shapes verbatim. Signature verification hand-rolled for WebCrypto. E2E graceful-degradation proof with zero keys.
20260710-ephesians4-seo-pass.md555555.0Checklist-driven: each section of the universal SEO checklist maps to an implement step. Curl/grep gates verbatim. Site facts named explicitly (no invention). Don't-touch list.
20260707-crawlerstudiov2-prisma-d1.md555544.8Honest about known defect (two Prisma singletons) and gives the consolidation choice to the model. 'Do NOT run wrangler deploy' is repeated three times for emphasis. v5 vs v6 vs v7 Prisma decision is delegated correctly.
20260707-phase0-integration-phaseAB.md555544.8BINDING DECISIONS D1/D4/D5/D6 enumerated, source cited (ARD + ADR). 'Deleting/skipping a fixture = task failure' is exemplary. Work items are surgical edits with full paths.
sol-clone-pi-080-migration.md555544.8Quantified 4-point success metric with end-to-end smoke proof. Pre-080 archive directory mandated before edits. 'gates verify untouched' for the primary repo. Clone is not git — handles it.
sprint-1.md555454.89 modules built in pure-core / thin-shell architecture. Module-level contracts cited (ExecutionTrace, DispatchEnvelope). 'Tests MUST NOT hit network' is the kind of constraint that prevents hours of waste.
sprint-2.md555454.8Extends Sprint 1 — explicitly forbids duplicating execution/. PURE CORE / THIN SHELL rule. HMAC token format must be shared across Loop 1 + Loop 3 (cross-loop contract surfaced).
20260720-corpus-explorer-s3c-ssr-search-content.md555544.8Calls out the prior S3 failure by name (file-existence gates pass while search returns nothing). New metric is 'real Pagefind result for a real distinctive phrase, not a claim'. The forensic tone is exemplary.
20260710-astro-local-build-runbook-review.md554444.4Runbook distillation from a real session. Cites 'proven: all routes 500 to 200' for the nodejs_compat claim — strong ground-truth discipline. Knowledge captured is reusable across the whole Astro-on-Workers pipeline.
agents-md-enrich-batch.md454544.4Quantified 14/14 success metric. HEEC loop, FLEET QUERY FIRST, exact repo list. Missing: per-repo shell gate for line count.
20260710-ephesians4-blog-content.md454344.0Strong: voice/format anchors, exact 4 file paths, schema, dates, scripture. Weak: no shell-verifiable gate; '4 markdown files exist' is the only check.
20260710-ephesians4-seo-validate.md444444.0Companion validator dispatch — assumes the seo-pass output. Lightly-scoped but role-appropriate.
architecture-first-workflow.md444444.0Compact dispatch that encodes citations, budget, and YAML validation in 30 lines. Reuses the template's BUDGET formula verbatim.
sprint-3.md444343.8Cites Sprint 1 + Sprint 2 contracts. Weaker on 'done' — needs more explicit gates.
20260707-crawlerstudiov2-agents-md.md443433.6Good H2 section spec with required sections. Weak: 'explore the full src/ tree' invites broad reads, no explicit blast-radius for the existing README/Caddyfile/components.json.
webgraph-phase1-foundation.md443343.6Good META-EXECUTION PROTOCOL loop (Hypothesize-Execute-Evaluate-Commit). Weak: no code-atlas STEP 0, no shell-verifiable gate at the end.
smoke.md131221.8Canonical anti-example. 3 lines, no ROLE, no metric, no gate. Used as a sanity probe to confirm the harness responds. Belongs in _archive, not the main corpus.

Top-scoring

  • 20260720-corpus-explorer-s1-etl.md
  • 20260720-corpus-explorer-s2-astro-site.md
  • 20260720-corpus-explorer-s3e-thumbnail-hang-fix.md
  • 20260710-ephesians4-donations.md
  • 20260710-ephesians4-seo-pass.md

Lowest-scoring

  • smoke.md
  • agents-md-organization-pass.md
  • webgraph-phase1-foundation.md

Recommendations (10)

Ordered by impact. The first three address the largest variance gap in the corpus.

  1. 1Lock the template section ordering: ROLE -> STATE ANCHOR -> INTEL DISCOVERY -> GOAL -> REQUIREMENTS -> STEPS -> GATES -> REPORT. Migrate older prompts that use 'Context' / 'INPUT FILES' / 'User intent (restated)' / 'TASK' variants in a separate pass.
  2. 2Make RIGHT/WRONG blocks mandatory for any prompt that touches: Playwright, Camoufox, Prisma adapter, DuckDB-WASM, Cloudflare Workers runtime APIs, bun child-process, Stripe/Square webhooks, Anthropic Messages API. Cite the installed package's CHANGELOG or node_modules .d.ts.
  3. 3Cap 'Read FIRST' lists at 5 numbered items. Move anything beyond that to a 'Reference if blocked' appendix. The corpus-explorer S1 prompt demonstrates the breaking point.
  4. 4Every prompt must end with a copy-paste bash gate the model runs and pastes the output of. Without one, models default to claiming success. The 'file exists but doesn't work' failure class is the single most common dispatch failure.
  5. 5Adopt the FLEET QUERY FIRST / HEEC LOOP block as a required STEP 0 across all multi-repo prompts. Cite the code-atlas database path explicitly so the model doesn't grep blindly.
  6. 6Add a 'Forensic reference' section when a prompt supersedes a prior dispatch (e.g. S3c calls out S3's file-existence-gate failure). This compresses the orchestrator's review loop and prevents regression to the broken pattern.
  7. 7Standardize the REPORT BACK shape: files modified (full paths), per-section status table, verification command outputs (condensed), judgment calls. Move it from optional to required.
  8. 8Add a per-prompt 'NOT TOUCH' line that names the 3-5 files most likely to be refactored by accident. Multi-repo dispatches must name the read-only sibling repos.
  9. 9Prompts that touch a Cloudflare Workers runtime API should include the 'Never trust training data' rule with citation to node_modules and 2026 date stamp. Training data is 18+ months stale for the runtime.
  10. 10Add a 'tsc --noEmit / bun run build / curl + grep' minimum-viable gate to every coding prompt, even smoke prompts. The 5-line cost pays back immediately.

Dimension Averages

structure
4.25
specificity
4.65
guardRails
4.25
measurability
4.10
contextCompleteness
4.10
overall
4.28