ワンクリックで
newsletter
Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when writing, editing, or organizing documentation, when planning what docs a feature needs, and whenever planning or implementing a new feature or change in a repo (docs ship with the code). Triggers on "write docs for X", "document this feature", "add a guide", "update the docs", "reorganize the docs", "plan feature X", "implement X", or /docs.
Use when the user wants to write, draft, or author an RFC (Request for Comments) / technical design doc for a feature, change, or architectural decision. Interactively interviews the user, grounds the proposal in the actual codebase, presents 2-3 concrete API/code-snippet approaches to choose from, then writes a review-ready RFC. Triggers on "write an RFC", "draft an RFC", "RFC for X", "design doc for X", or /rfc.
Use when the user wants to create presentation slides, a slide deck, a technical talk, or a conference talk for a topic or library — built on Slidev. Interviews the user, deep-researches and code-grounds the topic FIRST, applies presentation-craft best practices, generates a Slidev deck, self-verifies it in a headless browser, and ends with the dev server running and the deck open in the browser with zero manual steps. Triggers on "make a presentation", "make slides", "build a deck", "presentation about X", "technical talk", "conference talk", "slidev deck", "build slides for X", "present <library>".
Use when the user wants to generate a rendered promotional video (not just a script) for a PR, feature, or product change — produces a HyperFrames HTML composition, iterates with `npx hyperframes preview`, and outputs mp4 + poster for X/LinkedIn/social.
Use when the user wants to turn a raw talking-head / screen-share recording into a finished, edited, annotated video plus a full content package. Removes silences, flags mistakes for the user to cut, transcribes, adds transcript-synced overlays (code, on-screen code highlights, word highlights, lists, comparisons, diagrams, section labels, punch-in zooms), renders with original audio, then generates blog/socials/YouTube content. Triggers on "produce a video", "edit my video", "annotate my recording", "/produce-video".
Use when the user wants to transcribe a video or audio file to text with word-level timestamps — spins up a self-contained local Whisper (whisper.cpp) Docker service bundled in this skill and returns transcript.txt, transcript.srt, and word-level transcript.words.json. Also used as a building block by /produce-video. Triggers on "transcribe this video", "get a transcript", "transcribe-video".
| name | newsletter |
| description | Use when the user wants to write a product update email, feature announcement newsletter, or digest email for users or subscribers |
Write product update emails and feature announcement newsletters. Handles subject lines, preview text, email structure, and audience-appropriate content.
Resolve the argument (if provided) in this order:
.md containing "Executive Summary" or "Key Messages") -> marketing brief.md with blog post structure) -> blog post.md with Added/Fixed/Changed sections or CHANGELOG.md) -> changelog#\d+ pattern -> PR... or .. -> git ref rangeIf no argument is provided, ask: "What should the newsletter cover? You can provide a marketing brief, blog post, changelog, PR URL/number, git ref range, file/directory path, or just describe the update."
If multiple interpretations match, confirm with the user.
digraph newsletter {
rankdir=TB;
"Resolve input" [shape=box];
"Phase 1: Discovery" [shape=box];
"Phase 2: Configure" [shape=box];
"Phase 3: Write" [shape=box];
"Phase 4: Review" [shape=box];
"Approved?" [shape=diamond];
"Phase 5: Output" [shape=box];
"Resolve input" -> "Phase 1: Discovery";
"Phase 1: Discovery" -> "Phase 2: Configure";
"Phase 2: Configure" -> "Phase 3: Write";
"Phase 3: Write" -> "Phase 4: Review";
"Phase 4: Review" -> "Approved?";
"Approved?" -> "Phase 3: Write" [label="revisions"];
"Approved?" -> "Phase 5: Output" [label="yes"];
}
Do NOT skip phases. Ask questions at a natural pace. If the user answers multiple questions at once, accept bundled answers and skip ahead.
If the user says "just pick defaults", "you choose", or similar, pick reasonable defaults based on context, state what you chose, and ask for a single confirmation before proceeding.
Never assume without confirming.
| Input type | What to read |
|---|---|
| Marketing brief | Extract problem statement, value prop, audience, key messages. Skip to Step 3. Still do Step 2 if brief lacks product context. |
| Blog post | Extract headline, key points, audience, CTA. Skip to Step 3. Still do Step 2 if lacking product context. |
| Changelog | Extract all entries. Use as the basis for a digest email. Skip to Step 3. |
| PR | Diff, PR description, review comments, commit messages (gh pr view, gh pr diff). For large PRs (20+ files), focus on user-facing changes. |
| Git refs | git diff and git log between refs. For large ranges, prioritize commit messages and user-facing changes. |
| Codebase feature | Read the specified files/directories. |
| Freeform text | Parse the user's description. If it lacks specifics, ask the user to provide more detail or point to a specific file/PR. Fall back to open-ended questions only if they can't. |
User-facing changes include: new features, UI changes, API changes, performance improvements, bug fixes, and documentation updates. Internal changes include: refactors, test additions, CI changes, and dependency bumps. When uncertain, list what you found and ask the user which are relevant.
Error handling:
gh not available -> inform user, suggest gh auth login, offer alternative inputRead if they exist: README, docs/, package.json (or equivalent).
If nothing found, ask: "I couldn't find product context in the repo. Can you briefly describe the product and who it's for?"
Present a structured summary:
"Here's what I'll base the newsletter on:"
- Update A - short description
- Update B - short description
"Anything to add, remove, or correct?"
Then determine the email format based on the number of updates:
Confirm the format with the user.
If no user-facing changes are found in the input, tell the user and stop: "No user-facing changes found in this input. Nothing to write a newsletter about."
Do NOT proceed until the user confirms scope and format.
Ask these questions:
Q1 - Audience: "Who is this email going to?" (all users, power users, new users, specific plan tier, developers, non-technical users, other)
Q2 - Output format: "What format do you want the email in?"
Q3 - Tone: Read existing repo content (README, docs, blog posts) to detect the product's voice. Then confirm:
"Based on your existing content, the tone seems [e.g. conversational and developer-friendly]. Should I match that or go a different direction?"
If no existing content to analyze, ask directly what tone the user wants.
Q4 - CTA: Infer the most appropriate call to action from context:
"I'd suggest the CTA be: [inferred CTA]. Want to go with that or something different?"
Generate 3-5 subject line options with different approaches:
Recommend one and explain why it works best. Also explain the trade-offs of the others.
Rules:
Generate preview text for each subject line option. Preview text is the secondary line visible in inbox previews.
Rules:
Single feature email structure:
<!-- TODO: Add screenshot or GIF showing the feature in action --> with a description of what to captureDigest email structure:
After generating the primary email, ask:
"Want me to generate variants for different audience segments? (e.g. a more technical version for developers, a simpler version for non-technical users)"
If yes, generate the requested variants, adjusting tone, depth, and feature emphasis per segment.
Present the complete email:
"Here's the newsletter:"
Subject line options: (with recommendation and preview text for each)
- Subject: "..." / Preview: "..."
- Subject: "..." / Preview: "..."
- Subject: "..." / Preview: "..."
Body: [full email content]
"Pick a subject line and let me know if you want any changes."
Wait for the user to select a subject line and approve or request revisions. Only proceed to output once approved.
Always print the final approved email to terminal.
Then ask: "Want me to save this to emails/<slug>.md? Or a different path?"
Create the directory if it doesn't exist. If file already exists, ask whether to overwrite or create a versioned copy.
gh not available -> inform user, offer alternative inputemails/, create it/blog-post or /social-copy)