本文へ移動
cccskills
無料GitHub で公開

prd-v08-changelog-as-marketing

Design the changelog as a distribution surface bridging engineering releases (DEP-/FEA-) to marketing channels (GTM-) during PRD v0.8 Deployment & Ops. Triggers on requests to set up a changelog system, publish releases, or when user asks "how should we publish releases?", "changelog as marketing", "release notes", "Stripe-style changelog", "what to do with our release notes", "ship and tell". Outputs MON-CHG-* changelog entries and per-channel formats.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.1 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Changelog as Marketing

Position in workflow: v0.8 Release Planning → v0.8 Changelog as Marketing → v0.9 Launch Channels (ORB)

Execution Mode

Default is standard. See .claude/rules/08-skill-execution-modes.md for selection logic.

ModeWhat this skill produces
quickOne release format (markdown for site); one channel mapping; minimum-viable changelog page
standardRelease categorization + 2–3 channel mappings; per-channel format templates; publish cadence; attribution plan
deepFull categorization taxonomy; format templates for all relevant channels (email, blog, Twitter, LinkedIn, RSS, Slack); cadence + voice guide; KPI- attribution per channel

What This Does

Treats the changelog as a distribution surface, not an engineering record. Each shipped release becomes a content artifact that lands across Owned and Rented channels with minimal extra effort. This is the bridge between v0.8 (what shipped) and v0.9 (where it gets told).

Done well, this is one of the highest-leverage Owned-channel investments — Stripe, Linear, Vercel, and Sentry have shown that an opinionated changelog drives ongoing inbound that compounds over years. Done badly, it's a dumping ground for "fixed bug X" that nobody reads.

How It Works

  1. Define the changelog audience(s) — Engineering changelogs (for users running self-hosted or integrating an API), customer-facing changelogs (for end-users), and internal changelogs (for the team) have different shapes. Anchor to the Positioning best-fit segment.
  2. Categorize release content — Each shipped item gets a category:
    • New feature (publish loudly)
    • Improvement (publish, briefly)
    • Breaking change (publish, prominently, with migration path)
    • Deprecation (publish, with timeline)
    • Fix (publish only if user-visible)
    • Internal (don't publish externally)
  3. Map categories to channels — Each category gets a channel destination from the ORB mix:
    • New feature → Blog post + email + Twitter + LinkedIn
    • Breaking change → Email (high-priority) + RSS + blog
    • Improvement → Blog (digest) + Twitter (digest)
    • Fix → Changelog page only
  4. Build per-channel format templates — Each channel has a length/tone constraint:
    • Email: subject line + 2-paragraph body + CTA
    • Blog: full writeup, screenshots, code samples
    • Twitter/X: 280 chars, one image
    • LinkedIn: 1,000-1,500 chars, professional voice
    • Slack/Discord: short with link to blog
    • RSS: full content for engineering audiences
  5. Set publish cadence — Per-release (every shipped release publishes immediately) vs. digest (weekly/monthly roll-up). Most teams need both: per-release for big things, digest for the rest.
  6. Plan attribution — Every channel-published release gets a UTM. Track changelog → signup conversion to identify which categories convert.

Example

A developer-tools product ships:

ItemCategoryChannels
New /api/v2/webhooks endpointNew featureBlog (full), email, Twitter, LinkedIn, RSS
/api/v1/webhooks deprecation (sunset in 6mo)DeprecationEmail (high-priority), blog, RSS
30% faster response time on heavy queriesImprovementTwitter, weekly digest
Fixed: webhook signing edge caseFixChangelog page only
Internal: refactored auth middlewareInternal(none)

Tuesday publish:

  • Blog post: "Webhooks v2 is live — here's what changed and how to migrate"
  • Email to API customers (segment-targeted, not full list): "Action needed: webhook v1 sunset"
  • Twitter: "Webhooks v2 ships today. v1 is sunset in 6 months. Migration guide: [link]"
  • Changelog page: all five items (including the fix and internal note marked appropriately)

What You Get Back

  • MON-CHG-* changelog entries (one per shipped release) — Master record with category, audience, channel mapping, links to per-channel publications
  • GTM-CHG-* per-channel formats (one per channel) — Templates and example content
  • Publish cadence schedule — Per-release vs. digest decisions
  • KPI attribution plan — UTMs and conversion tracking

When to Use It

TriggerMode
First release post-launch (no changelog system yet)quick
Standard launch cadence stabilizingstandard
Pre-investor / pre-Series A — changelog as proof of velocitydeep
API or developer-tool productdeep (changelog is a primary surface)
One-time announcements (acquisition, big feature)standard

Consumes

  • DEP-* release entries (from v0.8 Release Planning) — What's being released, when
  • FEA-* features (from v0.3) — What new features exist; categorization input
  • GTM-* channel mix (from v0.9 Launch Channels ORB, when available) — Where to publish
  • GTM-* positioning (from v0.9 Positioning, when available) — Voice and tone constraints
  • PER-* best-fit characteristics — Audience tone calibration
  • KPI-* baselines — Attribution targets

When this skill runs before v0.9 has executed, channel mapping uses placeholder channels and is reconciled when v0.9 channels are finalized.

Produces

  • MON-CHG-* entries in SoT/SoT.DEPLOYMENT.md (or a dedicated SoT/SoT.CHANGELOG.md if release volume warrants)
  • GTM-CHG-* entries with Type=Channel-Changelog (per-channel format templates)
  • CFD-* gaps surfaced — If a release category lacks an obvious channel mapping, log as research gap

Output Template

MON-CHG-XXX: Release — [Release name / version]
Type: Changelog
Date: YYYY-MM-DD
Owner: [Person / role]
Status: [Drafted | Reviewed | Published]

Released items:
  - [Item 1] — Category: [New feature | Improvement | Breaking change | Deprecation | Fix | Internal]
  - [Item 2] — Category: ...

Audience: [API customers | All users | Internal team | Mixed]

Channel publications:
  - Blog: [URL or "scheduled YYYY-MM-DD"]
  - Email: [Segment + scheduled date]
  - Twitter: [Scheduled date]
  - LinkedIn: [Scheduled date]
  - Changelog page: [Updated YYYY-MM-DD]

Attribution: utm_campaign=changelog-<version>

Linked IDs: DEP-AAA (release), FEA-BBB (features shipped), GTM-CHG-CCC (channel formats), KPI-DDD (attribution)
GTM-CHG-XXX: Channel Format — [Channel name]
Type: Channel-Changelog
Channel: [Blog | Email | Twitter | LinkedIn | RSS | Slack]
Owner: [Person / role]

Format constraints:
  Length: [chars / words / sections]
  Tone: [Conversational | Technical | Formal — anchored in Positioning voice]
  Visuals: [Required / optional]
  CTA: [Specific action expected]

Template:
  [Reusable template for this channel, with variable placeholders]

Example (most recent use):
  [Concrete example from MON-CHG-XXX]

Publish trigger: [Per-release | Weekly digest | Monthly digest]

Linked IDs: MON-CHG-AAA (latest use), GTM-YYY (positioning voice)

Anti-Patterns

PatternSignalFix
Dumping internal commitsChangelog reads like git logCategorize; publish only what users care about
Same content everywhereSame blog post copy-pasted to Twitter and LinkedInEach channel has its own format constraints; honor them
Vague feature claims"Various improvements"Name the specific change; "30% faster heavy queries" beats "performance improvements"
Engineering-only voiceCustomer changelog uses internal jargonTone-shift per audience; engineer changelog ≠ end-user changelog
No attributionChangelog publishes but no idea what convertsUTM every link; track per-channel conversion
Sporadic cadencePublish heavily for 2 months, then quiet for 6Pick per-release or digest cadence; commit to it
Breaking change buriedHidden in a sea of small itemsBreaking changes get a dedicated, prominent slot

Quality Gates

Before publishing the first release:

  • Audience(s) defined (engineering, customer-facing, internal — separately if needed)
  • Categorization scheme exists (at minimum: new / improvement / breaking / fix)
  • Channel mapping table exists (categories → channels)
  • Per-channel format templates exist
  • Publish cadence committed
  • Attribution plan (UTM convention) defined
  • Voice/tone honors GTM- positioning (if v0.9 is done)

Downstream Connections

ConsumerWhat it usesExample
Launch Channels (ORB)Changelog is an Owned channel; rolls into mix matrixBlog-changelog = Owned-content
Launch MetricsPer-channel changelog conversion targetsKPI-changelog-blog-signups
Feedback Loop SetupChangelog reader comments become CFD-Blog comment threads → CFD- pattern
AEO AuditHigh-traffic changelog posts become AI citation sourcesChangelog entries cited by AI search
v1.0 Case Study BuilderShipped features in changelog feed case study material"How we use [feature] at [customer]"

Detailed References

  • Stripe changelog: stripe.com/changelog — the canonical example
  • Linear changelog: linear.app/changelog — opinionated voice
  • Vercel changelog: vercel.com/changelog — visual-heavy
  • jonathimer's changelog-updates skill (devmarketing-skills)
  • (No bundled references/ — read the source examples for current best practice)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Validates gate criteria before PRD lifecycle advancement by delegating to the readiness scoring pipeline (scripts/readiness.py). Returns a graduated PASS / WARN / BLOCK verdict with top blockers and their causal chain. Triggers before advancing from v0.X to v0.Y or explicit `/ghm-gate-check`.

日本語の概要は準備中です。原文の説明を表示しています。

mattgierhart/PRD-driven-context-engineering1812026年8月31日 更新

Extracts durable insights from temp/ files to SoT during EPIC Phase E. Triggers at EPIC completion or explicit `/ghm-harvest` invocation. Outputs new SoT entries and archive manifest.

日本語の概要は準備中です。原文の説明を表示しています。

mattgierhart/PRD-driven-context-engineering1812026年8月31日 更新

Validates and registers new SoT IDs with cross-reference integrity. Triggers when creating BR-XXX, UJ-XXX, API-XXX, or CFD-XXX entries. Outputs formatted SoT entry with validated cross-references.

日本語の概要は準備中です。原文の説明を表示しています。

mattgierhart/PRD-driven-context-engineering1812026年8月31日 更新

Install the PRD-Driven Context Engineering methodology into a fresh OR existing repository — the subscription-native alternative to forking the whole repo. Runs an interactive wizard that seeds the framework (.claude/ hooks, skills, agents, rules, scripts) without clobbering product content. Triggers on "install the methodology", "adopt this into my repo", "self-install", "set up PRD lifecycle here", "onboard existing project". Outputs an installed framework + a verification report.

日本語の概要は準備中です。原文の説明を表示しています。

mattgierhart/PRD-driven-context-engineering1812026年8月31日 更新

Creates new Source of Truth (SoT) files when existing templates don't fit your needs. Triggers on requests to create a new SoT file, add a new artifact type, or when user says "I need to track [X] but there's no SoT for it", "create SoT", "new source of truth". Outputs a properly structured SoT.*.md file with ID prefix, frontmatter, and update protocol.

日本語の概要は準備中です。原文の説明を表示しています。

mattgierhart/PRD-driven-context-engineering1812026年8月31日 更新

Synchronizes README.md Command Center with current project state. Triggers on gate changes, EPIC status changes, or explicit `/ghm-status-sync` invocation. Outputs updated README.md dashboard with current lifecycle stage, blockers, and metrics.

日本語の概要は準備中です。原文の説明を表示しています。

mattgierhart/PRD-driven-context-engineering1812026年8月31日 更新

mattgierhart のスキルをすべて見る

このスキルの問題を報告する