| name | report-issue |
| description | bengo-toolkit に対する不具合の報告・機能の要望・フィードバックを送りたい場合に使う。GitHub アカウントなしで、ブラウザの専用フォームから送信できる。「バグを報告したい」「不具合を伝えたい」「こんな機能が欲しい」「フィードバックを送りたい」等の発話で起動する。 |
| version | 1.0.0 |
不具合報告・機能要望(report-issue)
弁護士は GitHub アカウントを持っていないことが多いため、専用フォーム(llama-drive.com/bengo-toolkit/feedback)に誘導する。プラグインは下書きをローカルファイルに書き出してテキストエディタで開き、ブラウザでフォームを開く。利用者は内容を確認してから手動で送信する(自動送信はしない)。
ワークフロー
Step 1: 種別の確認
$ARGUMENTS に --type bug / --type feature / --type other のいずれかがあればそれを使う。なければ以下を 1 度だけ尋ねる:
どの種別で送る?
1. 不具合の報告(バグ)
2. 機能の要望
3. その他のフィードバック
番号で回答(未回答は 3):
回答を bug / feature / other のいずれかにマップする。
Step 2: 件名の確認(任意)
短く件名を教えてほしい(30 字程度。空のままでも OK):
未記入なら空のままで進める。
Step 3: 本文の聞き取り
種別に応じて以下を促す:
不具合(bug)の場合:
不具合の内容を教えてほしい。差し支えなければ以下を含めると対応がはやい:
- どのコマンドで起きたか(例: /family-tree、/template-fill)
- 再現手順(簡潔に箇条書き)
- 期待していた動作
- 実際の動作(エラーメッセージがあればそのまま貼ってよい)
事務所名・依頼者名・案件番号・PDF の本文引用などの機密情報は記載しないでほしい。
記載があった場合、こちらで一読する性質上、削除前提で扱う。
機能要望(feature)の場合:
どんな機能が欲しいか教えてほしい。差し支えなければ以下を含めると検討しやすい:
- どんな場面で必要になったか
- 現状はどう回避しているか
- こんな出力・操作だと嬉しい、というイメージがあれば
事務所名・依頼者名・案件番号・PDF の本文引用などの機密情報は記載しないでほしい。
その他(other)の場合:
感想・要望など自由に書いてほしい。
事務所名・依頼者名・案件番号・PDF の本文引用などの機密情報は記載しないでほしい。
利用者の回答全文を本文として保持する。
Step 4: 本文を一時ファイルに書き出す
利用者の本文を Write ツールで一時ファイルに書き出す:
パス: /tmp/bengo-report-input-<unix epoch>.md
内容: 利用者の本文をそのまま
ファイル名の <unix epoch> は date +%s の結果か、それに準ずるユニークな数値で構わない(既存ファイルと衝突しなければよい)。
Step 5: report.py emit を呼ぶ
python3 skills/_lib/report.py emit \
--type <bug|feature|other> \
--title "<Step 2 の件名 or 空>" \
--body-file "<Step 4 で書いたパス>"
戻り値 JSON:
{
"output_path": "/Users/.../.claude-bengo/reports/feedback_YYYYMMDD_HHMMSS.md",
"form_url": "https://llama-drive.com/bengo-toolkit/feedback?type=...&version=...",
"editor_opened": true,
"browser_opened": true
}
このコマンドは以下を行う:
- 本文と診断情報(プラグイン版・OS・surface)を統合した Markdown を
~/.claude-bengo/reports/feedback_*.md に保存
- そのファイルを OS 既定のテキストエディタで開く
- フォーム URL を既定のブラウザで開く
書き出し後、/tmp/bengo-report-input-*.md は削除して構わない。
Step 6: 利用者への案内
戻り値 JSON の値をもとに、以下のような案内を表示する:
下書きを書き出した:
📝 {output_path}
TextEdit(macOS)/ メモ帳(Windows)/ 既定のエディタで開いた。
送信フォームを開いた:
🌐 {form_url}
エディタ側の本文を全選択コピー(macOS: ⌘A → ⌘C / Windows: Ctrl+A → Ctrl+C)
してから、ブラウザのフォーム本文欄に貼り付けて送信してほしい。
機密情報が紛れていないか、必ず読み直してから送信してほしい。
editor_opened または browser_opened が false の場合は、その旨を明示して手動で開くよう案内する:
- editor_opened=false → 「テキストエディタが自動で開かなかった。{output_path} を手動で開いてほしい」
- browser_opened=false → 「ブラウザが自動で開かなかった。{form_url} をブラウザに貼り付けてほしい」
Step 7: クリーンアップ(任意)
/tmp/bengo-report-input-*.md を Bash で削除しておく:
rm -f "<Step 4 で書いたパス>"
~/.claude-bengo/reports/feedback_*.md は利用者の参照用として残す(削除しない)。
エラーハンドリング
- 本文が空: もう一度聞き直す。空のまま提出はさせない。
report.py emit が exit 1: stderr の JSON error フィールドを利用者に伝える。多くは「本文ファイルが読めない」など I/O 系の問題。
- 機密情報の混入を見つけた: ユーザーには「こちらで自動マスクはしない。送信前にエディタ側で削除してほしい」と案内する。プラグイン側で書き換えてはならない(誤検出で本人の意図と異なる送信内容になる事故を避けるため)。
避けること
- 自動送信しない。 プラグインから llama-drive.com へ直接 POST してはならない。利用者が手元のブラウザでフォームに貼り付け、送信ボタンを押すこと自体が同意プロセスとなる。
- 本文を URL の query param に乗せない。 長い本文は URL 長制限に引っかかるうえ、ブラウザ履歴・サーバアクセスログに残る。本文はあくまで手元のテキストエディタからコピペで運ぶ。
- 自動診断情報に、ファイルパス・コマンド引数・案件フォルダ名などの個人情報を含めない。
report.py emit はプラグイン版・OS ラベル・surface しか付与しない設計。