mcpField
S
submit-learnings

submit-learnings

github.com/neonwattyテスト・品質3449 回インストール1 週間前に更新
リポジトリ

submit-learnings について

QA フィードバックを調整し、記録された現場の観察事項を構造化した GitHub Issue として提出するスキルです。Issue 作成前に選別と承認を行い、任意で提案内容のプルリクエストも作成します。

主な機能

  1. 01QA 学習記録ファイルの読み込み
  2. 02情報源ごとの観察事項の分類
  3. 03提出項目の選択
  4. 04承認用 Issue 案のプレビュー
  5. 05ラベル付き GitHub Issue の作成
  6. 06任意のプルリクエスト作成

活用シーン

  1. 01QA セッションの観察事項を集約
  2. 02プラグインに関係する意見を選んで提出
  3. 03Issue 作成前に草案を確認
  4. 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 を作成します。

はいの場合:

  1. まだフォークしていなければ、neonwatty/qa-skills をフォークします。gh repo fork neonwatty/qa-skills --clone=false
  2. フォークを一時ディレクトリにクローンし、ブランチ learnings/[short-slug] を作成します。
  3. クローンしたフォーク内の対象ファイルを読み込み、変更を加えて、変更案を1つずつ適用し、コミットします。変更するファイルはクローンしたフォークのディレクトリ内に限定してください。ユーザーのプロジェクト内のファイルは編集しないでください。
  4. ブランチをプッシュして PR を作成します。gh pr create --repo neonwatty/qa-skills --title "fix(qa): apply learnings — [short description]" --body "Applies suggested changes from #[issue-number]."
  5. PR の URL を表示します。

いいえの場合:スキップします。

Phase 6: 振り返り

references/reflection-protocol.md を読み込み、終了前にその手順を実行します。

コメント