lesson-learned
gitの履歴から最近のコード変更を分析し、ソフトウェアエンジニアリングの教訓を抽出します。「ここから何を学べる?」「この経験から得た教訓は?」「このコードを振り返りたい」など、最近の作業から原則や気づきを引き出したいときに使用してください。
description の原文を見る
Analyze recent code changes via git history and extract software engineering lessons. Use when the user asks 'what is the lesson here?', 'what can I learn from this?', 'engineering takeaway', 'what did I just learn?', 'reflect on this code', or wants to extract principles from recent work.
SKILL.md 本文
Lesson Learned
実際のコード変更から具体的で根拠のあるソフトウェアエンジニアリングの教訓を抽出します。講義ではなく、鏡です。ユーザーのコードが既に示しているものを見せます。
開始する前に
まず原則リファレンスを読み込んでください。
references/se-principles.mdを読んで原則カタログを参照可能にする- 必要に応じて
references/anti-patterns.mdを読む(変更箇所に改善の余地があると疑われる場合) - 分析の対象範囲を決定します(フェーズ 1 参照)
少なくとも se-principles.md を読み込むまで進まないでください。
フェーズ 1: 対象範囲の決定
ユーザーに確認するか、コンテキストから分析対象を推測します。
| 対象範囲 | Git コマンド | 使用場面 |
|---|---|---|
| フィーチャーブランチ | git log main..HEAD --oneline + git diff main...HEAD | ユーザーが非 main ブランチ上にいる(デフォルト) |
| 最後の N コミット | git log --oneline -N + git diff HEAD~N..HEAD | ユーザーが範囲を指定、または main 上にいる(デフォルト N=5) |
| 特定のコミット | git show <sha> | ユーザーが特定のコミットを参照している |
| 作業中の変更 | git diff + git diff --cached | ユーザーがコミット前に「これらの変更については?」と言う |
デフォルト動作:
- フィーチャーブランチ上の場合: ブランチのコミットを main と比較して分析
- main 上の場合: 最後の 5 コミットを分析
- ユーザーが別の対象範囲を指定した場合: それを使用
フェーズ 2: 変更を収集
- 決定した対象範囲で
git logを実行してコミットリストとメッセージを取得 - 対象範囲の完全な diff を取得するために
git diffを実行 - diff が大きい場合(500 行以上): まず
git diff --statを使用し、その後上位 3~5 の最も変更されたファイルを選別して読む - コミットメッセージを注意深く読む -- 生の diff では見えない意図が含まれている
- 変更されたファイルのみを読む。リポ全体は読まない。
フェーズ 3: 分析
支配的なパターン -- これらの変更について最も教訓的な単一の事柄を特定します。
以下を探す:
- 構造的決定 -- コードはどのように組織されたか? なぜそのような境界か?
- 行われたトレードオフ -- 何を得て何を犠牲にしたか?(可読性 vs パフォーマンス、DRY vs 明確性、速度 vs 正確性)
- 解決された問題 -- before/after はどうか? 「after」が何を改善したか?
- 見落とされた機会 -- コードはどこで改善できるか?(「次回は...を検討してください」として優しく提示)
references/se-principles.md の具体的な原則にマッピングします。具体的に -- 実際のコード、実際のファイル名と行変更を参照します。
フェーズ 4: 教訓を提示
このテンプレートを使用してください:
## Lesson: [原則名]
**コードで起きたこと:**
[ファイルとコミットを参照して、特定の変更を説明する 2~3 文]
**動作している原則:**
[SE 原則を説明する 1~2 文]
**重要である理由:**
[実際の結果を説明する 1~2 文 -- これがないと何が起きるか、またはこれがあるから何が上手くいくか]
**次回のための教訓:**
[ユーザーが将来の仕事に適用できる 1 つの具体的で実行可能な文]
注目する価値がある 2 番目の教訓がある場合(最大 2 つまで追加):
---
### また注目する価値あり: [原則名]
**コードで:** [1 文]
**原則:** [1 文]
**教訓:** [1 文]
やらないこと
| 回避すること | 理由 | 代わりに |
|---|---|---|
| 漠然と適用できるあらゆる原則を列挙 | 圧倒的で一般的 | 最も関連性の高い 1~2 個を選ぶ |
| 変更されていないファイルを分析 | スコープクリープ | diff に固執 |
| コミットメッセージを無視 | 意図が含まれている | 主要なコンテキストとして読む |
| コードから切り離された抽象的なアドバイス | 実行不可能 | 常に特定のファイル/行を参照 |
| ネガティブフィードバックのみ | 士気低下 | 上手くいっていることをリード、その後改善を提案 |
| 3 つ以上の教訓 | インサイトが薄まる | 曖昧な 7 つより根拠のある 1 つの方がよい |
会話スタイル
- 命令的ではなく反省的に。 ユーザー自身のコードを主要な証拠として使用します。
- 「あなたは...すべきだった」と言わないでください -- 代わりに「ここでのアプローチは...を示しています」または「次回これに直面した場合、...を検討してください」を使用
- コードが良い場合は、そう言ってください。 すべての教訓が間違ったことについてではありません。良いパターンを認識することで強化されます。
- 変更が些細な場合(単一の設定変更、タイプミス修正): 無理に教訓を作らず、正直に言いましょう。「これらの変更は簡潔です -- 深い教訓はありません。ただ良い整理です。」
- 具体的に。 一般的なアドバイスは無価値です。すべての主張は具体的なコード変更を指す必要があります。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- softaworks
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/softaworks/agent-toolkit / ライセンス: MIT
関連スキル
makepad-basics
【重要】Makepadの初期設定とアプリケーション構造の説明に使用します。以下のキーワードで起動します: makepad、Makepad入門、Makepadチュートリアル、live_design!、app_main!、Makepadプロジェクト設定、Makepad Hello World、「Makepadアプリの作成方法」、makepad 入门、创建 makepad 应用、makepad 教程、makepad 项目结构
arxiv
arXivから学術論文を検索、ダウンロード、要約できます。ユーザーが「arXivを検索」「論文をダウンロード」「arXivから取得」「論文のPDFを取得」などと指示した場合、またはarXivから論文を見つけてローカルのペーパーライブラリに保存したい場合に使用します。
slr-prisma
PRISMA 2020フレームワークに従ったシステマティックレビュー(SLR)の作成をガイドします。ユーザーが「systematic review」「systematic literature review」「SLR」「PRISMA」「PRISMA 2020」「PRISMA flow diagram」「PRISMAチェックリスト」と言及したり、報告ガイドラインに準拠した文献レビューの執筆、構成、監査をリクエストした場合に活用できます。また、レビューの適格基準、Scopus・WoS・PubMedなどのデータベース検索戦略、研究選定プロセス、バイアスリスク評価、ナラティブシンセシスについての質問があった場合にも対応します。PRISMA 2020チェックリスト全27項目をカバーし、ジャーナル投稿形式のWordドキュメント原稿を作成、注釈付きのPRISMAフロー図を生成、APA第7版の引用形式を厳密に適用します。メタアナリシスや統計的統合には対応していません。
learning-opportunities
Learning Opportunitiesワークフロースキル。ユーザーがAI支援コーディング中に意図的なスキル開発を促進する必要がある場合に使用します。アーキテクチャ作業(新規ファイル、スキーマ変更、リファクタリング)後にインタラクティブな学習演習を提供します。機能完成時、設計判断時、またはユーザーがコードをより深く理解したいと要求した場合に使用してください。「学習演習」「理解を助けてほしい」「教えてほしい」「なぜこれが機能するのか」といった表現、または新規ファイル・モジュール作成後にトリガーされます。緊急のデバッグ、クイックフィックス、ユーザーが「とにかくリリースしたい」と言った場合には使用しないでください。なお、マージや引き継ぎ前に、オペレーターは上流のワークフロー、コピーされたサポートファイル、およびプロビナンス情報を保持する必要があります。
research-paper-writing
NeurIPS/ICML/ICLRなどの機械学習会議向けの論文を、企画から投稿まで一貫して執筆できます。研究テーマの設計、実験の実施、論文の執筆、そして学会への投稿準備まで、全プロセスをサポートします。
software-engineering-research
ソフトウェアエンジニアリングの研究トピックと方法論のガイド