Skip to content

フィードバックチケットから実装プランを立てる plan-from-feedback スキルを追加#5863

Merged
TinyKitten merged 4 commits intodevfrom
feature/plan-from-feedback-skill
Apr 21, 2026
Merged

フィードバックチケットから実装プランを立てる plan-from-feedback スキルを追加#5863
TinyKitten merged 4 commits intodevfrom
feature/plan-from-feedback-skill

Conversation

@TinyKitten
Copy link
Copy Markdown
Member

@TinyKitten TinyKitten commented Apr 21, 2026

概要

TrainLCD のフィードバック置き場(TrainLCD/Issues)から open issue を取得し、トリアージレベルと Claude 推定の対応難易度で絞り込んで、各チケットに短い実装プランを付けてチャットに出力する read-only スキル plan-from-feedback を追加する。

変更の種類

  • バグ修正
  • 新機能
  • リファクタリング
  • ドキュメント
  • CI/CD
  • その他

変更内容

  • .claude/skills/plan-from-feedback/SKILL.md を新規追加
    • gh issue list --repo TrainLCD/Issues をベースにした候補取得フロー
    • triage / platform / category / difficulty / exclude_labels による絞り込み引数と既定値
    • 難易度推定のヒューリスティック(easy / medium / hard)
    • 1 チケット 10-15 行の実装プランテンプレ
    • 書き込み系操作(issue edit / comment / close / git commit / PR 作成)は明示的に禁止する read-only 契約

テスト

  • npm run lint が通ること
  • npm test が通ること
  • npm run typecheck が通ること

.claude/skills/ 配下のみのメタ変更で、アプリ本体・ビルド成果物・CI ワークフローには影響しないため上記 3 コマンドは未実行。

関連Issue

スクリーンショット(任意)

Summary by CodeRabbit

  • 新機能
    • 「plan-from-feedback」スキルを追加。フィードバックから該当チケットを抽出・厳密に絞り込み(トリアージ/難易度/プラットフォーム/カテゴリ/除外ラベル等)し、難易度推定と優先度で上位候補を選出。各チケットについて要約、症状/要求、想定作業のステップ、タッチするファイル候補、難易度理由をコンパクトなMarkdownで出力。出力は読み取り専用。

@TinyKitten TinyKitten self-assigned this Apr 21, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 21, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 938029b7-651f-4050-a64a-e8692acdc3f0

📥 Commits

Reviewing files that changed from the base of the PR and between ca0ea40 and cbc03e2.

📒 Files selected for processing (1)
  • .claude/skills/plan-from-feedback/SKILL.md

📝 Walkthrough

Walkthrough

プライベートリポジトリのIssueを取得し、スペース区切りのkey=value入力を解析してデフォルトを適用、ラベル/トリアージ/プラットフォーム/カテゴリで絞り込み、難易度推定と優先度付けを行い、上位候補ごとに実装プランをMarkdownで出力する読み取り専用スキルを追加。

Changes

Cohort / File(s) Summary
新しいスキル定義
\.claude/skills/plan-from-feedback/SKILL.md
新規スキルplan-from-feedbackを追加。key=value入力(CSV対応)を解析、gh issue list --repo TrainLCD/Issues --json number,title,labels,body,url,createdAt,updatedAtで最大50(必要時100)件取得、exclude_labelsで除外、triage/platform/categoryで絞り込み(自動緩和なし)、本文を最大count * 4まで参照して難易度推定(easy/medium/hard/unknown)、difficulty指定時はunknownを除外、トリアージ/難易度/更新日時でランク付けし上位count件に対して短いMarkdown実装プラン(URL、正規化ラベル、難易度と一行理由、症状/要求要約、touch file提案、手順、任意の「未確定」行)を出力。書き込み操作(コメント/PR/編集/クローズ等)は禁止。

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Skill as "plan-from-feedback\n(skill)"
  participant CLI as "gh CLI"
  participant Repo as "TrainLCD/Issues"
  participant Analyzer as "Local Analyzer"

  User->>Skill: 指定の`key=value`入力
  Skill->>CLI: `gh issue list --repo TrainLCD/Issues ... --json ...`
  CLI->>Repo: query open issues
  Repo-->>CLI: issues (JSON)
  CLI-->>Skill: returned issues
  Skill->>Analyzer: フィルタ/難易度推定/本文参照
  Analyzer-->>Skill: ranked candidates + rationales
  Skill-->>User: コンパクトなMarkdown実装プラン(読み取り専用)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 新しい道を描いたよ、ぴょん
Issueを集めてラベルを辿り、
難易度をそっと当てて並べ、
一行の計画を渡すよ、ぴょん。

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed PR タイトルは、新しい Claude スキル「plan-from-feedback」の追加という主要な変更を明確に要約しており、リポジトリの他の変更と区別できる具体的な内容を示しています。
Description check ✅ Passed PR 説明は、テンプレートの主要セクション(概要、変更の種類、変更内容)をすべて記入しており、スキルの機能と制約を詳しく説明しています。テスト非実施の理由も明記されています。
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/plan-from-feedback-skill

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
.claude/skills/plan-from-feedback/SKILL.md (1)

90-90: Gemini 要約の位置づけを「補助情報」に弱めるのを推奨します。

「一次情報として信頼してよい」は強すぎるため、原文優先・要約は補助 と明記すると誤要約耐性が上がります。

Also applies to: 149-149

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/plan-from-feedback/SKILL.md at line 90, The current text
treats the "Gemini 要約" (the section headed "## Geminiによる要約") as
primary/authoritative ("一次情報として扱う"), which is too strong; revise the wording in
both occurrences (around the line with "本文にある Gemini 要約(`## Geminiによる要約` 節)..."
and the repeat at the later occurrence) to explicitly state that the original
source takes priority and the Gemini summary is auxiliary — e.g., replace
"一次情報として扱う" with "原文優先・要約は補助情報として扱う" or similar phrasing that demotes the
summary to supporting information.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/skills/plan-from-feedback/SKILL.md:
- Around line 88-100: Change the selection logic so you do the primary sort by
triage (P0>P1>P2>P3>untriaged) then by updatedAt (newest first) before taking
the top "count * 4" items for difficulty estimation; specifically, replace the
current "先頭から `count * 4` 件を上限" pre-slice with a pass that sorts the full
candidate set by triage then updatedAt and only then selects the first `count *
4` for running the difficulty inference used in the "difficulty フィルタとランキング"
step.
- Line 109: Update the placeholder in the template from "<html_url>" to "<url>"
so it matches the field returned by the GH query; locate the line containing
"URL: <html_url>" in SKILL.md and replace "<html_url>" with "<url>" to ensure
the template variable name matches the `url` field used on line 69.

---

Nitpick comments:
In @.claude/skills/plan-from-feedback/SKILL.md:
- Line 90: The current text treats the "Gemini 要約" (the section headed "##
Geminiによる要約") as primary/authoritative ("一次情報として扱う"), which is too strong;
revise the wording in both occurrences (around the line with "本文にある Gemini
要約(`## Geminiによる要約` 節)..." and the repeat at the later occurrence) to explicitly
state that the original source takes priority and the Gemini summary is
auxiliary — e.g., replace "一次情報として扱う" with "原文優先・要約は補助情報として扱う" or similar
phrasing that demotes the summary to supporting information.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9ee981ec-2db9-4067-85fa-e955dd84ea82

📥 Commits

Reviewing files that changed from the base of the PR and between 1f6cd8d and c50a034.

📒 Files selected for processing (1)
  • .claude/skills/plan-from-feedback/SKILL.md

Comment thread .claude/skills/plan-from-feedback/SKILL.md Outdated
Comment thread .claude/skills/plan-from-feedback/SKILL.md Outdated
@TinyKitten
Copy link
Copy Markdown
Member Author

Fixes Applied Successfully

Fixed 1 file(s) based on 2 unresolved review comment(s).

Files modified:

  • .claude/skills/plan-from-feedback/SKILL.md

Commit: 4649fce03

Applied fixes:

  • 🟠 Major (line 100): 難易度推定の母集団を先頭固定にしていた点を修正。triage(P0>P1>P2>P3>untriaged)→ updatedAt(新しい順)で一次ソートしてから count * 4 件を切り出すよう手順を書き換え、P0/P1 取りこぼしのリスクを明記。
  • 🟡 Minor (line 109): テンプレの <html_url><url> に修正し、gh issue list --json url と統一。

The latest autofix changes are on the feature/plan-from-feedback-skill branch.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/skills/plan-from-feedback/SKILL.md:
- Around line 96-100: The ordering for difficulty is ambiguous because `unknown`
is omitted from the listed sort order; update the spec text (the bullet
describing selection and sorting) to explicitly include `unknown` in the
difficulty precedence (e.g., "difficulty(`easy` > `medium` > `hard` >
`unknown`)") so implementations of the selection step that uses `difficulty` and
`updatedAt` (as described in the block containing "残存から `count` 件を選ぶ。並び順は:" and
the triage/difficulty/`updatedAt` rules) have an unambiguous order to follow.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f977aad2-bc8a-41bb-9412-d464b145a381

📥 Commits

Reviewing files that changed from the base of the PR and between c50a034 and 4649fce.

📒 Files selected for processing (1)
  • .claude/skills/plan-from-feedback/SKILL.md

Comment thread .claude/skills/plan-from-feedback/SKILL.md
@TinyKitten
Copy link
Copy Markdown
Member Author

Fixes Applied Successfully

Fixed 1 file(s) based on 1 unresolved review comment(s).

Files modified:

  • .claude/skills/plan-from-feedback/SKILL.md

Commit: cbc03e25d

Applied fixes:

  • 🟡 Minor (line 99): difficulty ランキングに unknown を明示。easy > medium > hard > unknown と書き、difficulty 指定時は Line 96 の規定通り unknown は除外されるためこのキーが効くのは未指定時のみである旨も併記。

The latest autofix changes are on the feature/plan-from-feedback-skill branch.

@TinyKitten TinyKitten merged commit 1f706e1 into dev Apr 21, 2026
4 checks passed
@TinyKitten TinyKitten deleted the feature/plan-from-feedback-skill branch April 21, 2026 07:43
@TinyKitten TinyKitten mentioned this pull request Apr 25, 2026
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant