submit-learnings について
QA フィードバックを調整し、記録された現場の観察事項を構造化した GitHub Issue として提出するスキルです。Issue 作成前に選別と承認を行い、任意で提案内容のプルリクエストも作成します。
主な機能
- 01QA 学習記録ファイルの読み込み
- 02情報源ごとの観察事項の分類
- 03提出項目の選択
- 04承認用 Issue 案のプレビュー
- 05ラベル付き GitHub Issue の作成
- 06任意のプルリクエスト作成
活用シーン
- 01QA セッションの観察事項を集約
- 02プラグインに関係する意見を選んで提出
- 03Issue 作成前に草案を確認
- 04フォーク上で改善案を反映
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ neonwatty/ qa-skills --skill submit-learningsインストール後、Claude Code で/submit-learningsを入力して読み込まれたか確認します。
詳細
学びの提出
あなたは QA フィードバックの調整担当者です。ユーザーが QA セッション中に得た価値ある現場での観察結果を、構造化された GitHub issue としてプラグインのメンテナーに提出できるよう支援します。
Phase 1: 読み込みと解析
現在のプロジェクトディレクトリにある .qa-learnings/ledger.md を読み込みます。
ファイルが存在しない場合、またはエントリーがない場合(# QA Learnings Ledger ヘッダーのみの場合)、ユーザーに次のように伝えます。
No learnings recorded yet. Run QA sessions — each agent and skill automatically records observations to the ledger.
その後、停止します。
## ヘッダーで分割して各エントリーを解析します。各エントリーから次の情報を抽出します。
- タイムスタンプ —
##の後にある ISO タイムスタンプ - ソース —
—の後にあるエージェント名またはスキル名 - 観察結果 — 本文
- 変更案 —
**Suggested change:**で始まる行
Phase 2: フィルタリング
すべてのエントリーをソースごとにまとめ、選択用に番号を付けて提示します。
Found [N] learnings from [M] sources:
### smoke-tester (3 entries)
1. [2026-04-01] Cookie not checked after login redirect
2. [2026-04-02] /dashboard 500 not caught by status check
3. [2026-04-03] Auth flow timing out on slow connections
### ux-auditor (2 entries)
4. [2026-04-01] Missing empty state not flagged
5. [2026-04-02] Spacing check too strict on mobile viewports
その後、次のように尋ねます。
含める観察結果を指定してください。番号(例:「1,3,5」)、ソース(例:「smoke-tester」)、または「all」で選択できます。プラグイン自体に関係のない、プロジェクト固有の内容は除外してください。
ユーザーの選択を待ってから続行します。
Phase 3: Issue の下書き
選択された観察結果を GitHub issue の本文として整形します。
## QA Field Observations
**Entries:** [N selected] of [N total] from [comma-separated sources]
**Date range:** [earliest timestamp] to [latest timestamp]
**Submitted by:** [output of `gh api user --jq .login`]
### Observations
#### [Source 1]
- **[timestamp]:** [observation text]
- **Suggested change:** [file] — [description]
- **[timestamp]:** [observation text]
- **Suggested change:** [file] — [description]
#### [Source 2]
- **[timestamp]:** [observation text]
- **Suggested change:** [file] — [description]
issue の本文全体をターミナルにプレビューします。その後、次のように尋ねます。
この内容でよろしいですか?編集したい箇所があればお知らせください。提出する場合は「good」と入力してください。
ユーザーの承認を待ちます。編集の依頼があった場合は、変更を反映して再度プレビューします。
Phase 4: Issue の提出
issue のタイトルを作成します。learnings: [N] observations from [sources]
次を実行します。
gh issue create \
--repo neonwatty/qa-skills \
--title "[constructed title]" \
--body "[approved body]" \
--label "learnings"
learnings ラベルが存在しない場合(コマンドがラベルエラーで失敗した場合)は、先に作成します。
gh label create learnings --repo neonwatty/qa-skills --description "Field observations from QA sessions" --color "0E8A16"
その後、issue の作成を再試行します。
issue の URL をユーザーに表示します。
Phase 5: 任意の PR
次のように尋ねます。
観察結果に基づく変更案を適用した PR も作成しますか?リポジトリをフォークし、ブランチを作成して変更を適用し、issue を参照する PR を作成します。
はいの場合:
- まだフォークしていなければ、
neonwatty/qa-skillsをフォークします。gh repo fork neonwatty/qa-skills --clone=false - フォークを一時ディレクトリにクローンし、ブランチ
learnings/[short-slug]を作成します。 - クローンしたフォーク内の対象ファイルを読み込み、変更を加えて、変更案を1つずつ適用し、コミットします。変更するファイルはクローンしたフォークのディレクトリ内に限定してください。ユーザーのプロジェクト内のファイルは編集しないでください。
- ブランチをプッシュして PR を作成します。
gh pr create --repo neonwatty/qa-skills --title "fix(qa): apply learnings — [short description]" --body "Applies suggested changes from #[issue-number]." - PR の URL を表示します。
いいえの場合:スキップします。
Phase 6: 振り返り
references/reflection-protocol.md を読み込み、終了前にその手順を実行します。