← Project Log
Chronicle

Prompt Relay Normalization Baseline

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 priority values

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 type to task
  • 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.md
  • PR-0125_cursor_neon-drizzle-infra.md
  • PR-0126_cursor_research-notebook.md
  • PR-0127_cursor_kb-integration-hermeneutic.md
  • PR-0128_cursor_prosopopoeia-mode.md
  • PR-0129_cursor_council-mode.md
  • PR-0133_cursor_chat-widget-and-layout.md

Normalization applied:

  • queued status changed to completed where the file already lived in prompts/completed/
  • missing completed date 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.md
  • PR-0015_claude-code_figure-body-population.md
  • PR-0035_codex_mott-essay-site-placement.md

Typical issues:

  • priority: medium
  • missing completed
  • H1 title not prefixed with prompt ID
  • structured git_status object 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.md
  • PR-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:

  1. manual archival reconstruction to current shape, or
  2. 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.md
  • prompts/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 all passed
  • 132 prompt files validated cleanly
  • no remaining schema failures in prompts/

Next stewardship tranche:

  1. decide the grandfathering policy for legacy prompts
  2. normalize the structured mid-era prompts with small field drift
  3. keep current prompts strict
  4. 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
0:00
0:00