Communityライティング&編集github.com

pablodiazjorge/prompt-forge

AIコーディングエージェントにセッションをまたがった永続的なメモリを提供するドロップイン型ツールキット。エージェントスキル、クロスセッション学習ループ、知識の永続化を実現。依存関係ゼロ、バックエンド不要。

prompt-forge とは?

このスキルは、開発エージェントが複数のセッションにわたって学習した内容(エラーの修正、APIの発見、回避策、繰り返されるパターン、プロジェクトの癖など)を自動的に記録し、再利用可能な知識ベースとして蓄積するためのツールキットです。各コーディングイテレーションの終了時に、現在の会話からシグナルをスキャンし、既存の課題レジストリ(`knowledge/issues/INDEX.md`)とクロスリファレンスを行い、新しい課題を作成するか既存の課題を更新します。課題は`open/`ディレクトリにファイルとして保存され、発生日数に基づいて確信度(低/中/高)が自動評価されます。依存関係がなく、バックエンドも不要なため、任意のAIコーディングエージェント(Claude Code、Cursor、Codexなど)にシームレスに統合でき、チーム全体での知識の共有と継続的な改善を促進します。

対応~Claude Code~Codex CLI~Cursor
npx skills add pablodiazjorge/prompt-forge

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

開発者: 継続的な課題追跡

トリガー

重要なコーディングイテレーションの終了時、またはユーザーが明示的に要求したときに実行します。タスクの途中では実行せず、自然な区切りを待ってください。

このスキルはセッション開始時にデフォルトで読み込まれます。安全で破壊的ではありません。書き込み先は 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 — 課題レジストリとのクロスリファレンス

  1. knowledge/issues/INDEX.md を読み取る — 既存の課題ID、タイトル、カテゴリをすべて取得する
  2. フェーズ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 |

重要なルール

  1. 絶対に課題をプロモーションしないでください。 プロモーションは ai-engineer スキルの責任です。あなたの出力は open/ 内の課題ファイルと INDEX.md の更新のみです。

  2. スキルやメモリファイルを決して変更しないでください。 あなたは .github/skills/ と /memories/ の読み取り専用オブザーバーです。それらに触れてはいけません。

  3. モデルがすでに知っていることのスキルを作成しないでください — 一般的な知識(例:「var ではなく const を使う」)の場合は、完全にスキップしてください。

  4. 課題ファイルは簡潔に保ってください — TEMPLATE.md のフォーマットは最大値であり、最小値ではありません。長文を書かないでください。

  5. セッションの分離 — フロントマターの sessions 配列にはセッションUUIDを保存します。利用可能な場合は session_store_sql を使用して現在のセッションUUIDを検索し、それ以外の場合は日付ベースの識別子を使用します。

  6. 常に 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

関連スキル