canny
Cannyは、ユーザーからの製品に関する要望や意見を収集・管理し、機能要望の優先順位付け、公開ロードマップの作成、ユーザーによる機能投票などをサポートすることで、製品開発を効率化するSkill。
📜 元の英語説明(参考)
Collect and manage product feedback with Canny. Use when a user asks to set up a feature request board, prioritize product feedback, build a public roadmap, or let users vote on features.
🇯🇵 日本人クリエイター向け解説
Cannyは、ユーザーからの製品に関する要望や意見を収集・管理し、機能要望の優先順位付け、公開ロードマップの作成、ユーザーによる機能投票などをサポートすることで、製品開発を効率化するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o canny.zip https://jpskill.com/download/14717.zip && unzip -o canny.zip && rm canny.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14717.zip -OutFile "$d\canny.zip"; Expand-Archive "$d\canny.zip" -DestinationPath $d -Force; ri "$d\canny.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
canny.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
cannyフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Canny
概要
Canny は、製品フィードバックを収集、整理、優先順位付けします。ユーザーは機能リクエストを送信し、アイデアに投票し、アップデートをフォローします。チームは公開ロードマップを作成し、機能がリリースされたときにループを閉じます。
手順
ステップ 1: ユーザーの識別
// components/CannySdk.tsx — ログインしているユーザーを識別します
'use client'
import { useEffect } from 'react'
export function CannyIdentify({ user }) {
useEffect(() => {
if (window.Canny && user) {
window.Canny('identify', {
appID: process.env.NEXT_PUBLIC_CANNY_APP_ID,
user: {
id: user.id,
email: user.email,
name: user.name,
avatarURL: user.avatar,
created: new Date(user.createdAt).toISOString(),
customFields: { plan: user.plan, mrr: user.mrr },
},
})
}
}, [user])
return null
}
ステップ 2: フィードバックウィジェットの埋め込み
// アプリにフィードバックウィジェットを埋め込みます
function FeedbackButton() {
return (
<button
data-canny-link
data-board-token="your-board-token"
className="fixed bottom-4 right-4 bg-blue-600 text-white px-4 py-2 rounded-full"
>
💡 Feedback
</button>
)
}
ステップ 3: API 連携
// lib/canny.ts — プログラムによるフィードバック管理
const CANNY_API_KEY = process.env.CANNY_API_KEY!
// プログラムで投稿(機能リクエスト)を作成します
await fetch('https://canny.io/api/v1/posts/create', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
apiKey: CANNY_API_KEY,
authorID: userId,
boardID: 'board-id',
title: 'Dark mode support',
details: 'Would love a dark theme option for the dashboard.',
}),
})
// 最も投票数の多い投稿を取得します
const response = await fetch('https://canny.io/api/v1/posts/list', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
apiKey: CANNY_API_KEY,
boardID: 'board-id',
sort: 'score',
limit: 20,
}),
})
ガイドライン
- Free tier: 1 board、基本機能。Growth ($79/月): 無制限の boards、ロードマップ、連携機能。
- カスタムフィールドを使用して、プランごとにフィードバックをセグメント化します(有料顧客がどの機能を求めているかを表示します)。
- 公開された変更ログはループを閉じます — ユーザーはリクエストされた機能がいつリリースされたかを確認できます。
- 無料の代替手段としては、GitHub Discussions またはシンプルな upvote board の使用を検討してください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Canny
Overview
Canny collects, organizes, and prioritizes product feedback. Users submit feature requests, vote on ideas, and follow updates. Teams build public roadmaps and close the loop when features ship.
Instructions
Step 1: Identify Users
// components/CannySdk.tsx — Identify logged-in users
'use client'
import { useEffect } from 'react'
export function CannyIdentify({ user }) {
useEffect(() => {
if (window.Canny && user) {
window.Canny('identify', {
appID: process.env.NEXT_PUBLIC_CANNY_APP_ID,
user: {
id: user.id,
email: user.email,
name: user.name,
avatarURL: user.avatar,
created: new Date(user.createdAt).toISOString(),
customFields: { plan: user.plan, mrr: user.mrr },
},
})
}
}, [user])
return null
}
Step 2: Embed Feedback Widget
// Embed the feedback widget in your app
function FeedbackButton() {
return (
<button
data-canny-link
data-board-token="your-board-token"
className="fixed bottom-4 right-4 bg-blue-600 text-white px-4 py-2 rounded-full"
>
💡 Feedback
</button>
)
}
Step 3: API Integration
// lib/canny.ts — Programmatic feedback management
const CANNY_API_KEY = process.env.CANNY_API_KEY!
// Create a post (feature request) programmatically
await fetch('https://canny.io/api/v1/posts/create', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
apiKey: CANNY_API_KEY,
authorID: userId,
boardID: 'board-id',
title: 'Dark mode support',
details: 'Would love a dark theme option for the dashboard.',
}),
})
// Retrieve top voted posts
const response = await fetch('https://canny.io/api/v1/posts/list', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
apiKey: CANNY_API_KEY,
boardID: 'board-id',
sort: 'score',
limit: 20,
}),
})
Guidelines
- Free tier: 1 board, basic features. Growth ($79/mo): unlimited boards, roadmap, integrations.
- Use custom fields to segment feedback by plan (show which features paying customers want).
- Public changelog closes the loop — users see when their requested features ship.
- For free alternative, consider using GitHub Discussions or a simple upvote board.