[FEATURE] Reusable saved prompts for /btw (side chat) — and a /compact that drafts its own instructions there
Preflight Checklist
- [x] I have searched existing requests — closest are #61810 and #36820, both closed as stale (NOT_PLANNED, "inactive for too long"), and both ask for tools/skills in the side channel. This request is strictly smaller: saved prompt text only.
- [x] This is a single feature request
Problem Statement
/btw is the only way to ask something that inherits the main conversation's context without polluting it. That property matters most for one specific job: asking for compaction instructions — the text you paste as the argument of /compact.
Asking in the main thread defeats the purpose: the instructions become part of the very conversation that is about to be summarized.
But /btw only accepts free text typed by hand. There is no way to save a long, reusable prompt and invoke it. I re-paste the ~25-line prompt below from a scratch file every single time.
The prompt I keep pasting
We are in a SIDE CHAT. Do not execute anything — your only deliverable is TEXT.
I want you to write the COMPACTION INSTRUCTIONS for the MAIN conversation, so I can
paste them as the argument of the /compact command over there. In other words: the text
you give me will be read by the SUMMARIZER of the main conversation, telling it what the
summary must preserve and what it may discard.
This is NOT a handoff, NOT a new-session prompt, NOT a summary of the conversation — it
is a list of directives for whoever is going to summarize, in this format:
1. PRESERVE WITH PRIORITY: current task state (what is done, what is in progress, the
exact next step, and what is waiting on me); decisions made and why; rules/agreements
we established; open items and known problems; traps already discovered (mistakes that
were expensive and must not repeat); important file paths and commands.
2. POINT INSTEAD OF REPEATING: if some information is already saved in a file/document,
the summary should cite the path, not copy the content.
3. SAFE TO DISCARD: step-by-step of work already completed and verified (keep only the
final result), raw tool output, intermediate attempts, discussions already resolved.
Deliver ONLY the instruction block, ready to paste, in a code block, adapted to the
specific content of our main conversation.
Why the prompt is shaped that way (this part may be a bug)
The first line — "We are in a SIDE CHAT. Do not execute anything" — is not stylistic. The side chat does not reliably know it is a side chat. Without that preamble it behaves as if it were the main thread: it announces tool calls, tries to act on the task, and answers as a participant in the work instead of as a consultant about the work.
This gets noticeably worse when a workflow is active in the main session: the side chat inherits the workflow framing and believes it is still inside it — it responds as the next step of the workflow rather than as an out-of-band question.
So a large share of the prompt exists purely to undo context the side chat should never have assumed in the first place. If the side chat were told what it is, most of the preamble would be unnecessary.
Proposed Solution
Let a prompt-only custom command supply the /btw payload — /btw /my-command, or via frontmatter:
---
description: Ask the side chat for compaction instructions
side-chat: true
---
The command body becomes the side chat's prompt. No tool access, no execution — purely substituting typed text with saved text.
Ideal end state: since the main use case is compaction, a built-in could close the loop entirely — a /compact variant that first asks the side chat (with an embedded prompt like the one above) to draft the instructions from the live conversation, then feeds them straight into the summarizer. The session would compact itself properly with no copy-paste and no context pollution at all.
Related: compaction output shaped more like a handoff document (state, decisions, next step, traps) rather than a prose recap would be valuable on its own.
Alternative Solutions
- Ask in the main thread — pollutes exactly the context about to be compacted
- Put the template in
CLAUDE.md— works (the side chat inherits it), but taxes every session's context, including sessions that never compact - OS-level text expander (espanso) — works, but an external dependency for something the app could do natively
PreCompacthook — solves compaction only, is generic rather than per-conversation, and does nothing for side chat reuse in general
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags