mcpField
F
forge

forge

github.com/boshu2エージェントワークフロー450987 回インストール今日更新
リポジトリ

forge について

forge は、主に SessionEnd hook からセッションの記録を分析し、知識候補を抽出するエージェントスキルです。決定、学び、失敗、パターンを記録し、確認後に学びのプールへ昇格させます。

主な機能

  1. 01セッション記録の分析
  2. 02決定、学び、失敗、パターンの抽出
  3. 03候補への信頼度スコア付け
  4. 04確認・昇格用の候補キュー
  5. 05捕捉した教訓パターンの追跡

活用シーン

  1. 01作業セッションでの決定の記録
  2. 02セッション由来の学びを確認キューに登録
  3. 03検証済み候補を学びのプールへ昇格

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/boshu2/agentops --skill forge

インストール後、Claude Code で/forgeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
.gitkeep
examples.md
feedback-compiler-drafts.md
forge.feature
uncaptured-lesson-patterns.md
scripts/
validate.sh

詳細

Forge スキル

他ベンダーにおける類似機能: Anthropic Managed Agents の memory + dreaming のペア(2026 年 5 月)のうち、capture に相当します。Forge はトランスクリプトを分析し、$curate --mode=dream はセッション間でキュレーションを行います。API を使わず、ローカルで、ベンダーを問わず利用できます。

通常は SessionEnd フックで自動実行されます。

ループ内の位置: 運用ループの move 7 における capture のサブステップです。トランスクリプトから学びの候補を抽出し、昇格のラチェットがどれを残すか決定します(一度きりのものは引き継ぎ時に消え、繰り返し出現するものは .agents/learnings/ に昇格します)。Forge は絞り込み機能ではなく、集約の入り口です。

セッションのトランスクリプトから知識を抽出します。

仕組み

SessionEnd フックは次を実行します。

ao forge transcript --last-session --queue --quiet

これにより、セッションが知識抽出のキューに追加されます。

フラグ

フラグデフォルト説明
--promoteオフ.agents/knowledge/pending/ から保留中の抽出結果を処理し、.agents/learnings/ に昇格します。旧 extract スキルの機能を統合しています。

Promote モード

/forge --promote を指定した場合:

Promote ステップ 1:保留中のファイルを検索する
ls -lt .agents/knowledge/pending/*.md 2>/dev/null
ls -lt .agents/ao/pending.jsonl 2>/dev/null

保留中のファイルが見つからない場合は、「No pending extractions」と報告して終了します。

Promote ステップ 2:保留中の各ファイルを処理する

.agents/knowledge/pending/ 内の各ファイルについて:

  1. ファイルの内容を読み取る
  2. 必須フィールド(# Learning:、**Category**:、**Confidence**:)があることを確認する
  3. ファイル名を維持したまま .agents/learnings/ にコピーする
  4. .agents/knowledge/pending/ から元のファイルを削除する
Promote ステップ 3:保留中のキューを処理する
if [ -f .agents/ao/pending.jsonl ] && [ -s .agents/ao/pending.jsonl ]; then
  # Process each queued session
  cat .agents/ao/pending.jsonl
  # After processing, clear the queue
  > .agents/ao/pending.jsonl
fi
Promote ステップ 4:報告する
Promoted N learnings from pending → .agents/learnings/
Queue cleared.

完了です。 報告後、すぐに戻ります。


手動実行

/forge [path] を指定した場合:

ステップ 1:トランスクリプトを特定する

ao CLI がある場合:

# Mine recent sessions
ao forge transcript --last-session

# Mine specific transcript
ao forge transcript <path>

ao CLI がない場合: 直近の会話履歴を確認し、手動で学びを抽出します。

ステップ 2:知識の種類を抽出する

シグナルのパターンと、既知の 26 種類の未記録の教訓カテゴリについて、skills/forge/references/uncaptured-lesson-patterns.md を読みます。

トランスクリプト内で、次のパターンを探します。

種類シグナル重み
決定"decided to"、"chose"、"went with"0.8
学び"learned that"、"discovered"、"realized"0.9
失敗"failed because"、"broke when"、"didn't work"1.0
パターン"always do X"、"the trick is"、"pattern:"0.7

未記録の教訓との照合: トランスクリプトのスキャン中に、イベントを既知の 26 個の未記録の教訓パターンと照合します(references/uncaptured-lesson-patterns.md を参照)。一致したパターンのメタデータ(カテゴリ、基本信頼度、パターン番号のタグ)を学びのテンプレートに事前入力します。

ステップ 3:候補を書き込む

書き込み先: .agents/forge/YYYY-MM-DD-forge.md

# Forged: YYYY-MM-DD

## Decisions
- [D1] <decision made>
  - Source: <where in conversation>
  - Confidence: <0.0-1.0>

## Learnings
- [L1] <what was learned>
  - Source: <where in conversation>
  - Confidence: <0.0-1.0>

## Failures
- [F1] <what failed and why>
  - Source: <where in conversation>
  - Confidence: <0.0-1.0>

## Patterns
- [P1] <reusable pattern>
  - Source: <where in conversation>
  - Confidence: <0.0-1.0>
ステップ 4:検索用にインデックスを作成する
if command -v ao &>/dev/null; then
  ao forge markdown .agents/forge/YYYY-MM-DD-forge.md 2>/dev/null
else
  # Without ao CLI: auto-promote high-confidence candidates to learnings
  mkdir -p .agents/learnings .agents/ao
  for f in .agents/forge/YYYY-MM-DD-*.md; do
    [ -f "$f" ] || continue
    # Extract confidence (numeric or categorical)
    CONF=$(grep -i "confidence:" "$f" | head -1 | awk '{print $NF}')
    # Normalize categorical to numeric: high=0.9, medium=0.6, low=0.3
    case "$CONF" in
      high) CONF_NUM=0.9 ;; medium) CONF_NUM=0.6 ;; low) CONF_NUM=0.3 ;; *) CONF_NUM=$CONF ;;
    esac
    # Auto-promote if confidence >= 0.7, prepending required frontmatter
    if (( $(echo "$CONF_NUM >= 0.7" | bc -l) )); then
      { printf -- '---\ntype: learning\nsource: forge\ndate: %s\nmaturity: provisional\nutility: 0.5\n---\n' "$(date +%Y-%m-%d)"; cat "$f"; } > .agents/learnings/"$(basename "$f")"
      TITLE=$(head -1 "$f" | sed 's/^# //')
      echo "{\"file\": \".agents/learnings/$(basename $f)\", \"title\": \"$TITLE\", \"keywords\": [], \"timestamp\": \"$(date -Iseconds)\"}" >> .agents/ao/search-index.jsonl
      echo "Auto-promoted (confidence $CONF): $(basename $f)"
    fi
  done
  echo "Forge indexing complete (ao CLI not available — high-confidence candidates auto-promoted)"
fi
ステップ 5:キャプチャの追跡情報を更新する

未記録の教訓パターンに一致する学びを抽出した後(ステップ 2)、どのパターンをキャプチャしたかを記録します。この状態は .agents/forge/capture-tracking.json に保存されます(ランタイム成果物であり、skills/ 内には保存されません)。

mkdir -p .agents/forge
  1. .agents/forge/capture-tracking.json が存在する場合は読み取り、存在しない場合は {} で開始します
  2. 一致したパターンごとに、パターン番号をキーとしてエントリを追加または更新します。
    {
      "3": {"captured": true, "date": "2026-03-30", "learning_path": ".agents/learnings/tooling/use-bin-cp.md"},
      "7": {"captured": true, "date": "2026-03-29", "learning_path": ".agents/learnings/operations/worktree-commit.md"}
    }
    
  3. 更新した JSON を .agents/forge/capture-tracking.json に書き戻します

パターン番号は、references/uncaptured-lesson-patterns.md の番号付き見出しに対応しています(1~30、パターンは合計 26 個)。

ステップ 6:結果を報告する

ユーザーに次の内容を伝えます。

  • 種類ごとに抽出した項目数
  • Forge の出力先
  • 学びへの昇格候補
  • キャプチャの進捗: 「未記録の教訓パターン X/26 件をキャプチャ済み」(.agents/forge/capture-tracking.json から読み取る)

Quality Pool

Forge によって生成された候補は Tier 0(.agents/forge/)から始まり、人によるレビュー、引用 2 件以上、または信頼度が 0.7 以上の場合の自動昇格(ao を使わない場合のフォールバック)により、Tier 1(.agents/learnings/)に昇格します。

主なルール

  • 自動実行 — 通常はフック経由で実行されます
  • 解釈せず抽出する — 発言された内容を記録します
  • 信頼度でスコア付けする — 抽出内容の価値はそれぞれ異なります
  • レビュー用にキューに追加する — 候補には検証が必要です

例

SessionEnd フックの呼び出し手順と、トランスクリプトを手動でマイニングする手順については、references/examples.md を参照してください。

トラブルシューティング

問題原因解決策
抽出結果が見つからないトランスクリプトにナレッジを示すシグナルがない、または ao CLI を利用できないトランスクリプトに意思決定や学びが含まれていることを確認し、ao CLI がインストールされていることを確認します
信頼度スコアが低いシグナルが弱い、または会話が曖昧セッションでは具体的な意思決定と明示的な学びに焦点を当てます
forge --queue が失敗するCLI を利用できない、または権限エラーセッションのメタデータとともに .agents/ao/pending.jsonl に手動で追記します
forge の出力が重複する同じセッションで forge が複数回実行された書き込み前に forge のファイル名を確認します。ao CLI が重複を自動的に処理します

参考資料

  • references/forge.feature — 実行可能な仕様:トランスクリプトのマイニング → 候補のキューへの追加、フィルタリングではなくファネル、--promote、トランスクリプトを消費してスキルは消費しない(soc-qk4b)
  • references/uncaptured-lesson-patterns.md — トランスクリプトのマイニング用シグナルパターンと、未取得の学びに関する既知のカテゴリ 26 件
  • references/feedback-compiler-drafts.md — 学習ワークフローの自動下書き(F5.4 fail->pass 台帳遷移、cli/internal/feedbackcompiler)

コメント