ads
無料Generates paid ad copy for Google, Meta, and LinkedIn. Produces platform-ready variants using a creative matrix approach with headlines, descriptions, and image briefs.
日本語の概要は準備中です。原文の説明を表示しています。
Weekly feature launch announcement pipeline. Reads recent MRs, generates Slack announcement (with approval gate), then autonomously produces a blog post, LinkedIn posts (brand + personal), and a LinkedIn carousel. Use when: weekly roundup, feature launch announcement, what's new, launch pipeline, weekly announcement.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
A weekly pipeline that turns recent merge requests into a complete announcement package: Slack copy, blog post, LinkedIn posts, and a LinkedIn carousel. One approval gate after Slack copy. Everything else runs autonomously.
| Step | Output | Mode |
|---|---|---|
| 1. Gather MRs | Summarized feature list | Automatic |
| 2. Slack announcement | Slack message copy | Approval gate |
| 3. Blog post | Feature announcement blog | Autonomous |
| 4. LinkedIn posts | Brand + personal posts | Autonomous |
| 5. LinkedIn carousel | PPTX carousel slides | Autonomous |
All outputs land in output/launch-roundups/{product-name}-{YYYY-MM-DD}/.
Ask the user TWO questions:
- Repo path — Absolute path to the local git repo (e.g.,
~/repos/ai-agent)- Time window — How far back? (default: 7 days)
Wait for the user to answer before proceeding. If they only provide the path, use 7 days.
Fallback: If the user doesn't have a local repo, they can also provide:
Run this git command against the provided repo path to extract merged MRs:
git -C {repo_path} log --merges --since="{N} days ago" --format="commit:%H%nauthor:%an%ndate:%ad%nsubject:%s%n%b%n---" --date=short
If the repo uses squash merges (no merge commits), fall back to:
git -C {repo_path} log --since="{N} days ago" --format="commit:%H%nauthor:%an%ndate:%ad%nsubject:%s%n%b%n---" --date=short --first-parent
If neither produces results, try without --first-parent and deduplicate by subject line.
For each commit/MR, also read the full diff summary to understand what changed:
git -C {repo_path} show --stat --format="" {commit_hash}
Enrich thin commit messages: If a commit subject is vague (e.g., "fix bug", "update"), read the diff stat and the changed files to infer what the feature does. Group related commits under a single feature when they clearly belong together (e.g., multiple commits touching the same module in the same day).
From the git output, extract:
| Field | Where it comes from |
|---|---|
| Feature names | Commit subjects, MR titles, or inferred from changed files |
| What it does | Commit body, diff stat, or inferred from the code changes |
| Who it helps | Cross-reference with target_personas.md based on the feature area |
| Technical detail | Diff stat, changed files, commit body |
Filtering rules:
Then read these files for product context:
| File | What to extract |
|---|---|
docs/inputs/product_brief.md | Product name, positioning, capabilities (for accuracy) |
docs/inputs/messaging_positioning.md | Value props, pain points, competitive differentiation |
docs/inputs/target_personas.md | Audience context, job titles, technical level |
docs/inputs/brand_guidelines.md | Visual style for carousel generation |
Private data override: If docs/inputs-local/ exists, read from there instead of docs/inputs/.
Compile a feature summary table:
| Feature | What it does | Who it helps | Technical detail |
|---------|-------------|--------------|------------------|
| [name] | [summary] | [persona] | [detail] |
Present this table to the user for a quick sanity check. If they correct anything, update before proceeding.
Generate a Slack announcement using these rules:
Format:
*What's New in [Product]: [Date Range]*[blog link]) and a note like "Full writeup on the blog."Voice:
*bold*, _italic_, `code`, code blocks with triple backticksLength: 200 to 400 words total. Enough to be useful in a Slack channel, short enough to read without expanding.
Output: Save to output/launch-roundups/{product-name}-{YYYY-MM-DD}/slack-announcement.md
After generating the Slack copy, present it to the user and say:
"Here's the Slack announcement. Review this with your PM and EM. Once approved, reply and I'll generate the blog, LinkedIn posts, and carousel automatically."
Do not proceed until the user explicitly approves. If they request changes, revise and present again. The approved Slack copy becomes the source of truth for all downstream assets.
Once approved, generate a feature announcement blog post. Do not ask any questions. Use these pre-filled inputs:
| Input | Value |
|---|---|
| Blog type | Feature announcement |
| Source content | The approved Slack announcement + the original MR summaries |
| Target keyword | Derive from the product name + primary feature theme |
| Distribution surfaces | Website + LinkedIn Pulse (tri-publish if the user's messaging_positioning.md mentions LinkedIn as a channel, otherwise website only) |
| Disclosure | None (this is brand content, not personal) |
| Internal link domain | Extract from product_brief.md or messaging_positioning.md if a domain is mentioned. If not found, skip internal linking. |
Follow the full blog skill structure for Feature Announcement type:
# [Feature Name or Theme]: [Benefit Statement]
TLDR (2 to 3 sentences)
## The Problem
## Introducing [Feature/Theme]
## How It Works (with code snippets if applicable)
## Use Cases (2 to 3, each highlighting a DIFFERENT capability)
## Getting Started
## FAQ (3 to 5 questions)
CTA + Post-Publication Checklist
Apply all blog skill rules: Authority Content bar, SEO/AEO requirements (metadescription, TLDR, FAQ, schema markup, internal linking), writing rules (no passive voice, no banned words, max 3 dashes, Oxford comma), visual callout flags.
If multiple features shipped: Frame the blog as a "What's New" roundup rather than a single feature deep-dive. Use H2s for each major feature and H3s for sub-features.
Output: Save to output/launch-roundups/{product-name}-{YYYY-MM-DD}/blog-post.md
Generate LinkedIn posts using the approved Slack copy and the blog post as source material. Do not ask any questions. Use these pre-filled inputs:
| Input | Value |
|---|---|
| Platform | |
| Account types | Both (brand + personal) |
| Brand/company name | From product_brief.md |
| Key link | [blog link] (placeholder for the blog URL) |
| Author context (personal) | Extract from messaging_positioning.md if an author or spokesperson is mentioned. If not, use: "a member of the [Product] team" |
Follow the full social-posts skill rules for LinkedIn:
Brand LinkedIn:
Personal LinkedIn:
Output: Save to output/launch-roundups/{product-name}-{YYYY-MM-DD}/linkedin-posts.md
Generate a LinkedIn carousel using the blog post as source material. Do not ask any questions.
Carousel structure:
| Slide | Content |
|---|---|
| 1. Cover | "WHAT'S NEW" + Product name + Date range + "Swipe for details" |
| 2 to N. Feature slides | One slide per major feature. Bold feature name, 2 to 3 sentence description, visual element (before/after card, screenshot placeholder, or diagram placeholder) |
| Final. CTA | Summary statement + product URL + CTA button |
Visual style:
docs/inputs/brand_guidelines.md for colors, fonts, and motifs[Replace with {feature} screenshot]Build method:
build_carousel.py) using python-pptx that creates the PPTXpython-pptx is not available or the script fails, output the carousel as a detailed Markdown specification that can be built manuallyOutput: Save all carousel files to output/launch-roundups/{product-name}-{YYYY-MM-DD}/carousel/:
build_carousel.py{product-name}-whats-new-carousel.pptxAfter all steps complete, present the user with a summary:
## Launch Roundup Complete
**Date:** {YYYY-MM-DD}
**Features covered:** {count}
### Outputs
| Asset | Path | Status |
|-------|------|--------|
| Slack announcement | output/launch-roundups/{name}/slack-announcement.md | Ready to post |
| Blog post | output/launch-roundups/{name}/blog-post.md | Ready for review |
| LinkedIn (brand) | output/launch-roundups/{name}/linkedin-posts.md | Ready to post |
| LinkedIn (personal) | output/launch-roundups/{name}/linkedin-posts.md | Ready to post |
| LinkedIn carousel | output/launch-roundups/{name}/carousel/ | Ready (replace screenshot placeholders) |
### Next steps
- Post the Slack announcement to your channel
- Publish the blog and update the [blog link] placeholders in the LinkedIn posts
- Upload the carousel PPTX to LinkedIn or import into Canva for final polish
- Replace screenshot placeholders in the carousel with actual product screenshots
When only 1 feature shipped:
When 5+ features shipped:
When MR descriptions are thin:
When product_brief.md is empty:
When brand_guidelines.md is sparse:
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Generates paid ad copy for Google, Meta, and LinkedIn. Produces platform-ready variants using a creative matrix approach with headlines, descriptions, and image briefs.
日本語の概要は準備中です。原文の説明を表示しています。
Use when you want paid ad copy for Google, Meta, or LinkedIn, including headlines, descriptions, and image briefs.
日本語の概要は準備中です。原文の説明を表示しています。
Use when you want campaign performance reviewed against benchmarks, with a health score and prioritized optimization recommendations.
日本語の概要は準備中です。原文の説明を表示しています。
Use when you want a strict review of a marketing asset against style rules, factual accuracy, and messaging alignment.
日本語の概要は準備中です。原文の説明を表示しています。
Skill Optimization: Auto Research. Autonomously optimize any Claude Code skill by running it repeatedly, scoring outputs against binary evals, mutating the prompt, and keeping improvements. Based on Karpathy's autoresearch methodology. Use when: optimize this skill, improve this skill, run autoresearch on, make this skill better, self-improve skill, benchmark skill, eval my skill, run evals on. Outputs: an improved SKILL.md, a results log, and a changelog of every mutation tried.
日本語の概要は準備中です。原文の説明を表示しています。
Use when you want to benchmark and improve an existing repo skill through repeated evals, prompt mutations, and score tracking.
日本語の概要は準備中です。原文の説明を表示しています。