summarizationPrompt top-level constant
String
const summarizationPrompt
Lossless context-checkpoint prompt for a first-time compaction. Forked from pi's SUMMARIZATION_PROMPT; body wording diverges deliberately (no s-word framing).
Source: prompts/compaction/summary.md.
Implementation
const summarizationPrompt =
'The messages above are a conversation to hand off. Write a complete context checkpoint for the agent that continues this work. Preserve EVERY fact, path, error message, and open task — the continuation has no access to what you omit. This is a lossless handoff, not a digest.\n\nUse this EXACT format:\n\n## Open User Requests\n- [ ] <open ask> (asked <date>, record id)\n List EVERY ask with its acceptance criterion; steering counts in full. Closes ONLY via Done+evidence (test id) or explicit user cancel. No evidence = "(Partial — acceptance pending)", stays. Empty: "(none)".\n\n## Goal\n[What is the user trying to accomplish? Can be multiple items if the session covers different tasks.]\n\n## Constraints & Preferences\n- [Any constraints, preferences, or requirements mentioned by user]\n- [Or "(none)" if none were mentioned]\n\n## Progress\n### Done\n- [x] [Completed tasks/changes]\n\n### In Progress\n- [ ] [Current work]\n\n### Blocked\n- [Issues preventing progress, if any]\n\n## Key Decisions\n- **[Decision]**: [Brief rationale]\n\n## Next Steps\n1. [Ordered list of what should happen next]\n\n## Critical Context\n- [Data, examples, references and important tool results (test verdicts, command outputs, error traces) with what produced them; trivial outputs may go]\n- [Or "(none)" if not applicable]\n\nKeep each section tight but complete. Preserve exact file paths, function names, and error messages.';