structuredCheckpointPrompt top-level constant

String const structuredCheckpointPrompt

Instruction tail for the structured-compaction checkpoint LLM call (pass 2). The checkpoint text must list every covered expand id and carry open user requests verbatim (issue

Source: prompts/compaction/structured_checkpoint.md.

Implementation

const structuredCheckpointPrompt =
    'Write a checkpoint of the conversation above. It replaces a range of\nrecords in the agent\'s context, so it must let the agent continue the work\nwithout the replaced records.\n\nRules:\n- Start with a `covers:` line listing EXACTLY the expand ids given in the\n  `<covers>` block, verbatim, comma-separated. Every replaced segment must\n  stay reachable through that line — never drop an id.\n- If an `<open-user-requests>` block is present, carry each listed request\n  VERBATIM at the top of the checkpoint, under a `open asks:` heading.\n- Keep decisions, conclusions, final answers, error causes, and file paths\n  the agent still needs. Preserve important tool outputs (test verdicts,\n  command results, error traces) with what produced them.\n- Preserve epistemic status: uncertainty qualifiers ("may", "suspect",\n  "unconfirmed") stay verbatim with their claims — never detach or upgrade a\n  hedge. Tag unevidenced claims [assumed] or [hearsay: source]; [verified]\n  marks a claim a kept tool result shows. Every conclusion keeps one line of\n  its why, or the marker "unverified — re-verify" when the evidence is\n  dropped.\n- Timeless content only: never record ephemeral, second-person, or\n  time-scoped statements ("your last tool call\'s result was dropped", "you\n  just ran X") — harness notes about dropped or trimmed context are one-time\n  delivery events, not facts; record only the durable outcome. Durable\n  temporal wording ("the last release was v1.0.492") is fine.\n- Keep it dense prose or tight bullets; no preamble, no restating these\n  instructions.';