From 9950d01ab4668c7b6c0b14fda9b914018c84afdf Mon Sep 17 00:00:00 2001 From: Matt Van Horn Date: Fri, 6 Mar 2026 10:33:34 -0800 Subject: [PATCH] fix: save research silently via background Bash, not Write tool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Write tool displays "Wrote N lines..." after the invitation, ruining the end-of-run experience. Now saves via background Bash with a subtle 📎 footer line in the invitation text. Co-Authored-By: Claude Opus 4.6 --- SKILL.md | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/SKILL.md b/SKILL.md index ae86517..8faf843 100644 --- a/SKILL.md +++ b/SKILL.md @@ -500,25 +500,23 @@ For `/last30days war in Iran` (NEWS): ## Save Research to Documents -After displaying the invitation, save the complete research briefing to the user's Documents folder. This happens automatically on every run. +After displaying the invitation, save the complete research briefing to `~/Documents/Last30Days/`. This happens automatically on every run. -1. **Create the directory** (if it doesn't exist): - ```bash - mkdir -p ~/Documents/Last30Days - ``` +**Generate the filename** from TOPIC: +- Lowercase, replace spaces/special chars with hyphens, remove consecutive hyphens, trim to 60 chars +- Example: "Claude Code Best Practices" → `claude-code-best-practices.md` +- If file already exists, append today's date: `{slug}-YYYY-MM-DD.md` -2. **Generate the filename** from TOPIC: - - Lowercase the topic - - Replace spaces and special characters with hyphens - - Remove consecutive hyphens - - Trim to 60 characters max - - Example: "Claude Code Best Practices" -> `claude-code-best-practices` +**End your invitation with a single `📎` footer line:** -3. **Check for duplicates**: If `~/Documents/Last30Days/{slug}.md` already exists, append today's date: `{slug}-YYYY-MM-DD.md` +``` +📎 ~/Documents/Last30Days/{slug}.md +``` -4. **Use the Write tool** to save to `~/Documents/Last30Days/{slug}.md` with this exact structure: +**Then immediately save using a background Bash command** (`run_in_background: true`): -```markdown +```bash +mkdir -p ~/Documents/Last30Days && cat > ~/Documents/Last30Days/{slug}.md << 'RESEARCH_EOF' # {TOPIC} > Researched {date} | Query type: {QUERY_TYPE} | Target tool: {TARGET_TOOL or "general"} @@ -537,15 +535,20 @@ After displaying the invitation, save the complete research briefing to the user --- *Generated by [last30days](https://github.com/mvanhorn/last30days-skill) v2.9.1* +RESEARCH_EOF ``` -5. **Confirm briefly** after saving: `Saved to ~/Documents/Last30Days/{slug}.md` +**CRITICAL RULES:** +1. NEVER use the `Write` tool — it displays "Wrote N lines..." which ruins the experience +2. ALWAYS use `run_in_background: true` so the Bash call is nearly invisible +3. The `📎` line is part of your text message, not a separate tool call +4. The invitation + `📎` line must be the LAST visible thing on screen --- ## WAIT FOR USER'S RESPONSE -After showing the stats summary with your invitation, **STOP and wait** for the user to respond. +**STOP and wait** for the user to respond. ---