開発者: 継続的な課題追跡
トリガー
重要なコーディングイテレーションの終了時、またはユーザーが明示的に要求したときに実行します。タスクの途中では実行せず、自然な区切りを待ってください。
このスキルはセッション開始時にデフォルトで読み込まれます。安全で破壊的ではありません。書き込み先は knowledge/issues/open/ と knowledge/issues/INDEX.md のみです。
アルゴリズム
フェーズ1 — 現在のチャットをスキャン
現在の会話から以下のシグナルタイプを確認します:
| シグナル | 例 | 優先度 |
|---|---|---|
| エラー修正 | "PowerShellが {{ }} を誤って解釈した", "ngx-translate v18に forRoot() がない" | HIGH |
| API発見 | "linkedSignal には Node ≥22 が必要", "provideZonelessChangeDetection() は Angular 22 で安定" | HIGH |
| 回避策発見 | "テンプレートには Set-Content の代わりに create_file を使う" | MEDIUM |
| 繰り返しパターン | 同じエラーがこのセッションだけで2回以上発生 | HIGH |
| プロジェクトの癖 | "このモノレポは npm workspaces を使用", ".gitignore が .github/ を除外" | MEDIUM |
| ツールの制限 | "Copilot が usage.prompt_tokens を直接公開しない" | LOW |
| ユーザーの好み | "コマンドは && ではなく ; で区切ることを好む" | MEDIUM |
フェーズ2 — 課題レジストリとのクロスリファレンス
knowledge/issues/INDEX.mdを読み取る — 既存の課題ID、タイトル、カテゴリをすべて取得する- フェーズ1からの各シグナルを既存の課題と照合する:
- キーワードの重複(タイトル + 説明)で照合
- カテゴリ + 類似エラーパターンで照合
grep_searchを使用してknowledge/issues/open/内の関連コンテンツを検索
フェーズ3 — 課題の作成または更新
新しい課題(一致なし)
ID を生成: ISSUE-YYYYMMDD-XXXX ここで XXXX = UUID の最初の4桁の16進数
PowerShell: [guid]::NewGuid().ToString().Substring(0, 4)
例: ISSUE-20260624-a1b2
TEMPLATE.md を使用して knowledge/issues/open/ISSUE-YYYYMMDD-XXXX.md を作成
occurrences=1, certainty=low, status=open に設定
created_by を "developer"(または現在のエージェント識別子)に設定
INDEX.md の「オープン課題」テーブルに新しい行を挿入
セッショントークンデータがある場合は、オプションで Evidence セクションに追加
ID は UUID ベースです — INDEX.md を事前に読み取る必要はありません。複数の開発者が同時に作業しても衝突のリスクはゼロです。
既存の課題を更新(一致あり)
occurrences を 1 増やす
last_seen を今日の日付に更新
現在のセッション情報を sessions 配列に追加
確信度を再評価:
- 1 回発生 → low
- 2 回発生 → medium
- 3 回以上発生 → high
replace_string_in_file を使用して open/ の課題ファイルを更新
INDEX.md のカウントと行データを更新
INDEX.md のマージ競合
2人の開発者が同時に INDEX.md に行を追加すると、テーブル本体に Git マージ競合が発生します。解決方法: 両方のブランチのすべての行を保持し、ディレクトリを再カウントしてサマリー番号を更新します。
レポート
サマリーテーブルを出力します:
## 開発者レポート — YYYY-MM-DD
| アクション | ID | タイトル | カテゴリ | 詳細 |
|--------|----|-------|----------|--------|
| 🆕 新規 | ISSUE-001 | ... | ... | open/ に作成 |
| 📈 更新 | ISSUE-002 | ... | ... | 1→2 回発生、確信度 low→medium |
重要なルール
-
絶対に課題をプロモーションしないでください。 プロモーションは
ai-engineerスキルの責任です。あなたの出力はopen/内の課題ファイルとINDEX.mdの更新のみです。 -
スキルやメモリファイルを決して変更しないでください。 あなたは
.github/skills/と/memories/の読み取り専用オブザーバーです。それらに触れてはいけません。 -
モデルがすでに知っていることのスキルを作成しないでください — 一般的な知識(例:「
varではなくconstを使う」)の場合は、完全にスキップしてください。 -
課題ファイルは簡潔に保ってください — TEMPLATE.md のフォーマットは最大値であり、最小値ではありません。長文を書かないでください。
-
セッションの分離 — フロントマターの
sessions配列にはセッションUUIDを保存します。利用可能な場合はsession_store_sqlを使用して現在のセッションUUIDを検索し、それ以外の場合は日付ベースの識別子を使用します。 -
常に
created_byを設定してください — エージェント名またはセッション識別子に設定し、ai-engineerがレビュー時に課題の起源を追跡できるようにします。
AIエンジニアへの引き継ぎ
課題が certainty: high(3回以上の発生)に達した場合、ai-engineer スキルがプロモーションを処理します。developer スキルは何をどこにプロモーションするかを決定しません — シグナルの強度を記録するだけです。ユーザーが知識の整理、課題のクリーンアップ、またはパターンのプロモーションを依頼した場合、サブエージェントとして ai-engineer スキルを実行します。
ファイルパスリファレンス
| リソース | パス |
|---|---|
| 課題レジストリインデックス | knowledge/issues/INDEX.md |
| 課題テンプレート | knowledge/issues/TEMPLATE.md |
| オープン課題 | knowledge/issues/open/ISSUE-XXX.md |
| プロモーション済み課題 | knowledge/issues/promoted/ISSUE-XXX.md |
| 破棄された課題 | knowledge/issues/discarded/ISSUE-XXX.md |