fix(release): v2.9.5 - remove re-introduced Save Research section

PR merges on March 7 (PR #48 Xiaohongshu, upstream merge) regressed
SKILL.md by re-introducing the "Save Research to Documents" section
that v2.9.4 removed. Those branches were forked before v2.9.4 and
brought the old content back via merge resolution.

Fixes: remove save section, restore --save-dir flag on bash command,
update agent mode line, add tool-call guard to STOP instruction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt Van Horn
2026-03-08 11:55:35 -07:00
parent 4503da7920
commit 8f7fb5a7fe
3 changed files with 101 additions and 64 deletions
+5 -53
View File
@@ -1,6 +1,6 @@
---
name: last30days
version: "2.9.1"
version: "2.9.5"
description: "Research a topic from the last 30 days. Also triggered by 'last30'. Sources: Reddit, X, YouTube, TikTok, Instagram, Hacker News, Polymarket, web. Become an expert and write copy-paste-ready prompts."
argument-hint: 'last30 AI video tools, last30 best project management tools'
allowed-tools: Bash, Read, Write, AskUserQuestion, WebSearch
@@ -44,7 +44,7 @@ metadata:
- prompts
---
# last30days v2.9.1: Research Any Topic from the Last 30 Days
# last30days v2.9.5: Research Any Topic from the Last 30 Days
> **Permissions overview:** Reads public web/platform data and optionally saves research briefings to `~/Documents/Last30Days/`. X/Twitter search uses optional user-provided tokens (AUTH_TOKEN/CT0 env vars) — no browser session access. All credential usage and data writes are documented in the [Security & Permissions](#security--permissions) section.
@@ -139,7 +139,7 @@ If `--agent` appears in ARGUMENTS (e.g., `/last30days plaud granola --agent`):
5. **Skip** the follow-up invitation ("I'm now an expert on X...")
6. **Output** the complete research report and stop - do not wait for further input
Agent mode still saves the research briefing to `~/Documents/Last30Days/` using the same logic as interactive mode (see "Save Research to Documents" section).
Agent mode saves raw research data to `~/Documents/Last30Days/` automatically via `--save-dir` (handled by the script, no extra tool calls).
Agent mode report format:
@@ -183,7 +183,7 @@ if [ -z "${SKILL_ROOT:-}" ]; then
exit 1
fi
python3 "${SKILL_ROOT}/scripts/last30days.py" "$ARGUMENTS" --emit=compact --no-native-web # Add --x-handle=HANDLE if RESOLVED_HANDLE is set
python3 "${SKILL_ROOT}/scripts/last30days.py" "$ARGUMENTS" --emit=compact --no-native-web --save-dir=~/Documents/Last30Days # Add --x-handle=HANDLE if RESOLVED_HANDLE is set
```
Use a **timeout of 300000** (5 minutes) on the Bash call. The script typically takes 1-3 minutes.
@@ -514,57 +514,9 @@ For `/last30days war in Iran` (NEWS):
---
## Save Research to Documents
After displaying the invitation, save the complete research briefing to `~/Documents/Last30Days/`. This happens automatically on every run.
**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`
**End your invitation with a single `📎` footer line:**
```
📎 ~/Documents/Last30Days/{slug}.md
```
**Then immediately save using a background Bash command** (`run_in_background: true`):
```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"}
## What I learned
{The full synthesis section you just displayed - all topics, patterns, and citations}
## Stats
{The full stats box with source counts and engagement - copy exactly as displayed}
## Follow-up suggestions
{The 2-3 specific suggestions from the invitation block}
---
*Generated by [last30days](https://github.com/mvanhorn/last30days-skill) v2.9.1*
RESEARCH_EOF
```
**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
**STOP and wait** for the user to respond.
**STOP and wait** for the user to respond. Do NOT call any tools after displaying the invitation. The research script already saved raw data to `~/Documents/Last30Days/` via `--save-dir`.
---