一键导入
feedback
Google Form のフィードバック(Google Spreadsheet からコピー)を GitHub Discussions の Feedback カテゴリに転記する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Google Form のフィードバック(Google Spreadsheet からコピー)を GitHub Discussions の Feedback カテゴリに転記する。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
autopilot の総合サポート。初期設定(必要情報のインタビュー → 起動スクリプト tmp/autopilot_up.sh の生成 → 起動コマンド提示)、Issue の enroll ショートカット(本文や末尾に「enroll autopilot」)、トラブル診断(check-autopilot へ委譲)、運用中の操作支援。「init autopilot」「autopilot開始」「go autopilot」「play autopilot」「enroll autopilot」など、autopilot と一緒にやろうと汲み取れるひとことで起動する。
autopilot daemon の状態確認と異常(Blocked / 認証失効 / stuck)の診断・復旧支援。「check autopilot」「check autopilot
/upstream:merge - Interactive Upstream Merge Workflow. upstream scratch-editor の変更を Smalruby に取り込む半自動ワークフロー。
smalruby3-editor の devcontainer 設定 (.devcontainer/devcontainer.json) を対話的に作成する。テンプレート (.example) を基に、利用者の環境に合わせて mounts セクションを ON/OFF する。devpod / VS Code Dev Containers で開発したい人が初回に使う。
プログラム不具合報告 (smalruby-bug-report) を DynamoDB から取得し、添付作品を S3 からダウンロードして GitHub Issue 化し、対応後に状態・返信を報告者へ書き戻す。管理者の追加/削除も行う。
機能開発完了後の総合レビュー。機能面・UI/UX・セキュリティの3観点で、ドキュメントに基づくPlaywright MCP動作確認とAPIセキュリティテストを実施する。
| name | feedback |
| description | Google Form のフィードバック(Google Spreadsheet からコピー)を GitHub Discussions の Feedback カテゴリに転記する。 |
| argument-hint | <TSV形式のフィードバックデータ(スプレッドシートからコピー)> |
Google Form 経由で収集されたユーザーフィードバックを、GitHub Discussions の Feedback カテゴリに転記する。
$ARGUMENTS には Google Spreadsheet からコピーした TSV(タブ区切り)データを受け取る。
各行は以下の4カラム(タブ区切り):
タイムスタンプ<TAB>メールアドレス<TAB>お問い合わせの種類<TAB>お問い合わせの内容
例:
2026/02/26 11:53:55 example@example.ed.jp 機能要望 {なにかと言っているとき}というブロックが欲しいです。
複数行の場合はバッチ処理する。
$ARGUMENTS をタブ文字で分割してパースするデータの形式が正しくありません。Google Spreadsheet の行をそのままコピー&ペーストしてください。
形式: タイムスタンプ<TAB>メールアドレス<TAB>お問い合わせの種類<TAB>お問い合わせの内容
転記済みのフィードバックを二重に作成しないよう、既存の Discussion を確認する。
gh api graphql -f query='
query {
repository(owner: "smalruby", name: "smalruby3-develop") {
discussions(categoryId: "DIC_kwDOFahn7M4C36ax", first: 50, orderBy: {field: CREATED_AT, direction: DESC}) {
nodes {
title
}
}
}
}
'
各行のタイムスタンプ(YYYY/MM/DD HH:MM 部分)が既存 Discussion のタイトルに含まれている場合はスキップ候補とする。
各フィードバック行について以下を生成する。
@ の前): 先頭3文字を残して *** に置換@ の後): 最後のドット以降(TLD)を残して *** に置換example@example.ed.jp → exa***@***.ed.jptanaka123@gmail.com → tan***@***.com*** に置換YYYY/MM/DD HH:MM [お問い合わせの種類] お問い合わせの内容(50文字以内)
HH:MM まで)YYYY/MM/DD HH:MM:SS に <マスク済みメール> からの smalruby.app への<お問い合わせの種類(ひらがな表記)>をいただきました。
\```text
<お問い合わせの内容(原文そのまま)>
\```
開発チームからの回答をお待ち下さい。
お問い合わせの種類の表記変換(タイトル→本文):
生成した Discussion のタイトルと本文をユーザーに提示し、承認を求める。
複数行の場合は全件をまとめて表示する。
以下の Discussion を作成します。よろしいですか?
---
### Discussion 1
**title:** 2026/02/26 11:53 [機能要望] {なにかと言っているとき}というブロックが欲しいです。
**body:**
2026/02/26 11:53:55 に exa***@***.ed.jp からの smalruby.app への機能要望をいただきました。
(内容省略)
---
「OK」「はい」などで承認してください。修正が必要な場合はお知らせください。
ユーザーの明示的な承認を得てから Phase 5 へ進む。
承認後、gh api graphql で Discussion を作成する。
重要: -f body="$BODY" は本文中の % や ! が zsh でエスケープ問題を起こすため、必ず -F オプションでファイルから直接読み込む。
/tmp/feedback-graphql-query.txt に書き出す(初回のみ):mutation($title: String!, $body: String!) { createDiscussion(input: { repositoryId: "R_kgDOFahn7A", categoryId: "DIC_kwDOFahn7M4C36ax", title: $title, body: $body }) { discussion { url } } }
各 Discussion の本文を Write ツールで /tmp/feedback-discussion-body-N.md に書き出す
-F オプションでファイルを直接参照して API を呼び出す:
gh api graphql \
-F query=@/tmp/feedback-graphql-query.txt \
-F title='<タイトル>' \
-F body=@/tmp/feedback-discussion-body-N.md
rm /tmp/feedback-discussion-body-N.md
rm /tmp/feedback-graphql-query.txt
複数行の場合は1件ずつ作成し、各 Discussion の URL を記録する。独立した API 呼び出しは並列実行してよい。
作成した Discussion の URL をまとめてユーザーに報告する。
以下の Discussion を作成しました:
1. [2026/02/26 11:53 [機能要望] ブロックが欲しい](URL)
2. ...
スキップした行(重複):
- (該当行があれば表示)
作成済みの Discussion に開発チームの回答を投稿する場合($ARGUMENTS に Discussion URL と回答方針が渡される場合)は、以下のルールに従う。
フィードバック原文が英語の場合は英語で回答する(指示があればそれに従う)。
smalruby/smalruby3-editor に Issue を作成する(Feedback の Discussion URL を「関連」として本文に記載)回答コメントの投稿に加えて、必ず以下の 2 つを行う:
タイトルに「【回答済み】」prefix を付与する(既存タイトルの先頭にそのまま付ける):
gh api graphql -f query='mutation { updateDiscussion(input: { discussionId: "<discussion-node-id>", title: "【回答済み】<元のタイトル>" }) { discussion { title } } }'
close ラベルを付与する(label ID: LA_kwDOFahn7M8AAAACakeKNg):
gh api graphql -f query='mutation { addLabelsToLabelable(input: { labelableId: "<discussion-node-id>", labelIds: ["LA_kwDOFahn7M8AAAACakeKNg"] }) { clientMutationId } }'
修正完了・デプロイ済みを伝えるフォローアップコメント(PR リンク + 変更内容の要約 + リロード依頼)を投稿した上で、必ず以下の 2 つを行う:
close ラベルを付与する(同上)prefix の使い分け: 「【回答済み】」= 対応しないと回答してクローズ、「【修正済み】」= 修正を完了してクローズ。
本文は Write ツールで /tmp/comment-N.md に書き出し、-F body=@ で投稿する(Phase 5 と同じ理由):
gh api graphql \
-F query='mutation($discussionId: ID!, $body: String!) { addDiscussionComment(input: { discussionId: $discussionId, body: $body }) { comment { url } } }' \
-F discussionId='<discussion-node-id>' \
-F body=@/tmp/comment-N.md
discussion の node ID は以下で取得できる:
gh api graphql -f query='query { repository(owner: "smalruby", name: "smalruby3-develop") { discussion(number: <N>) { id title body url } } }'
投稿前に、全コメント・Issue の内容をユーザーに提示して承認を得ること(Phase 4 と同様)。
gh auth status の実行を案内する