fix(skills): improve summarize selection

This commit is contained in:
Peter Steinberger
2026-01-15 10:14:59 +00:00
parent 95735c3978
commit 0facc63019
2 changed files with 38 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
--- ---
name: summarize name: summarize
description: Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube). description: Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for “transcribe this YouTube/video”).
homepage: https://summarize.sh homepage: https://summarize.sh
metadata: {"clawdbot":{"emoji":"🧾","requires":{"bins":["summarize"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/summarize","bins":["summarize"],"label":"Install summarize (brew)"}]}} metadata: {"clawdbot":{"emoji":"🧾","requires":{"bins":["summarize"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/summarize","bins":["summarize"],"label":"Install summarize (brew)"}]}}
--- ---
@@ -9,6 +9,14 @@ metadata: {"clawdbot":{"emoji":"🧾","requires":{"bins":["summarize"]},"install
Fast CLI to summarize URLs, local files, and YouTube links. Fast CLI to summarize URLs, local files, and YouTube links.
## When to use (trigger phrases)
Use this skill immediately when the user asks any of:
- “use summarize.sh”
- “whats this link/video about?”
- “summarize this URL/article”
- “transcribe this YouTube/video” (best-effort transcript extraction; no `yt-dlp` needed)
## Quick start ## Quick start
```bash ```bash
@@ -17,6 +25,16 @@ summarize "/path/to/file.pdf" --model google/gemini-3-flash-preview
summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto
``` ```
## YouTube: summary vs transcript
Best-effort transcript (URLs only):
```bash
summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto --extract-only
```
If the user asked for a transcript but its huge, return a tight summary first, then ask which section/time range to expand.
## Model + keys ## Model + keys
Set the API key for your chosen provider: Set the API key for your chosen provider:

View File

@@ -0,0 +1,19 @@
import fs from "node:fs";
import path from "node:path";
import { describe, expect, it } from "vitest";
import { parseFrontmatter } from "./skills/frontmatter.js";
describe("skills/summarize frontmatter", () => {
it("mentions podcasts, local files, and transcription use cases", () => {
const skillPath = path.join(process.cwd(), "skills", "summarize", "SKILL.md");
const raw = fs.readFileSync(skillPath, "utf-8");
const frontmatter = parseFrontmatter(raw);
const description = frontmatter.description ?? "";
expect(description.toLowerCase()).toContain("transcrib");
expect(description.toLowerCase()).toContain("podcast");
expect(description.toLowerCase()).toContain("local files");
expect(description).not.toContain("summarize.sh");
});
});