Prompt Relay Normalization Baseline
Scope
This pass establishes the first stewardship baseline for prompt-corpus normalization after DEC-0020 transferred prompt-relay stewardship to Codex.
The goal was not to fully normalize the entire archive in one shot. The goal was to separate:
- live/current prompt defects that distort day-to-day operations
- recent prompt lifecycle drift that is cheap to fix now
- older historical records that need either manual archival cleanup or an explicit grandfathering policy
Baseline Before Fixes
On 2026-04-03, make prompt-validate TARGET=all reported 59 issues across 23
prompt files.
The highest-signal failure categories were:
- 9
non-completed prompts should use 'completed: null' - 7
missing frontmatter field 'completed' - 7
completed prompts must set a completed date - 7
queued prompts must leave claimed_by and claimed_on as null - 3 missing
tags - 3 invalid
priority: medium - 3 schema-invalid
priorityvalues
The failures clustered into four groups.
Group 1: Current Prompt Defects, Fixed Now
These were active or recently created prompts whose malformed frontmatter could distort current operations immediately.
PR-0139_perplexity_shareable-agent-pm-paper
Problems:
- invalid
type: research - decision IDs incorrectly placed in
references - missing
completed - missing
tags - missing H1 title
Fixes applied:
- normalized
typetotask - moved DEC files into
context_files - added
completed: null - added tags
- added a proper H1 title
scripts/prompt-queue.py ID allocator
Problem:
next_id()trusted the prompt index too heavily and could collide with untracked on-disk prompt files
Fix applied:
next_id()now scans both the index and the actual prompt files on disk, using the maximum observed ID from either source
Group 2: Recent Lifecycle Drift, Fixed Now
These prompts were already in prompts/completed/ but still carried queued
state or otherwise inconsistent completion metadata.
Fixed in this pass:
PR-0124_cursor_wire-chat-page-to-api.mdPR-0125_cursor_neon-drizzle-infra.mdPR-0126_cursor_research-notebook.mdPR-0127_cursor_kb-integration-hermeneutic.mdPR-0128_cursor_prosopopoeia-mode.mdPR-0129_cursor_council-mode.mdPR-0133_cursor_chat-widget-and-layout.md
Normalization applied:
- queued status changed to completed where the file already lived in
prompts/completed/ - missing
completeddate added for PR-0124 - H1 title normalized for PR-0124
Group 3: Legacy Structured Prompts, Good Candidates for Manual Cleanup
These are older prompts that mostly follow the modern schema but drift on a small number of fields:
PR-0014_claude-code_timeline-body-population.mdPR-0015_claude-code_figure-body-population.mdPR-0035_codex_mott-essay-site-placement.md
Typical issues:
priority: medium- missing
completed - H1 title not prefixed with prompt ID
- structured
git_statusobject where the schema expects a string
These are strong candidates for a focused archival cleanup tranche.
Group 4: Legacy Outliers, Likely Better for Grandfathering or Reconstruction
These prompts are not just a field or two off. They represent older prompt shapes that predate the current relay contract:
PR-0040_cursor_kg-essay-overlay.mdPR-0051_cursor_hero-video-background.md
Typical issues:
- missing required frontmatter fields from the modern schema
- non-schema prompt types
- missing required sections
- alternate older metadata conventions
These should not be normalized casually. They need either:
- manual archival reconstruction to current shape, or
- a documented grandfathering rule so the validator can distinguish legacy archive records from current prompts
Remaining Work After This Pass
The remaining failures are now more clearly legacy-leaning than live-system leaning.
After the fixes in this pass, python3 scripts/prompt-queue.py validate all
reported 44 issues across 15 prompt files, down from 59 issues across 23
prompt files at the start of the audit.
After a second normalization tranche, plus adjacent corrective work from another Codex agent on newer prompt records, the validation state improved again to 18 issues across 131 prompt files.
At that point, only two prompt files remained unresolved:
prompts/completed/PR-0040_cursor_kg-essay-overlay.mdprompts/completed/PR-0051_cursor_hero-video-background.md
Those are now confirmed as the true legacy outliers. They should be handled by an explicit grandfathering or archival reconstruction decision, not by casual field patching.
Follow-up reconstruction work on the same day proved both outliers were
recoverable as normal prompt records after all. PR-0040 was reconstructed
from its original Perplexity-authored plan plus landed essay-overlay code, and
PR-0051 was normalized from a mostly modern but slightly older prompt shape.
Final state after that reconstruction tranche:
python3 scripts/prompt-queue.py validate allpassed- 132 prompt files validated cleanly
- no remaining schema failures in
prompts/
Next stewardship tranche:
- decide the grandfathering policy for legacy prompts
- normalize the structured mid-era prompts with small field drift
- keep current prompts strict
- surface validation coverage honestly in telemetry/dashboard views
Verification
This pass included:
- direct inspection of representative failing prompts
- targeted validation of
PR-0139 - targeted validation of
PR-0124 - targeted validation of
PR-0140 - full validation runs before and after the current fixes