forge について
forge は、主に SessionEnd hook からセッションの記録を分析し、知識候補を抽出するエージェントスキルです。決定、学び、失敗、パターンを記録し、確認後に学びのプールへ昇格させます。
主な機能
- 01セッション記録の分析
- 02決定、学び、失敗、パターンの抽出
- 03候補への信頼度スコア付け
- 04確認・昇格用の候補キュー
- 05捕捉した教訓パターンの追跡
活用シーン
- 01作業セッションでの決定の記録
- 02セッション由来の学びを確認キューに登録
- 03検証済み候補を学びのプールへ昇格
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ boshu2/ agentops --skill forgeインストール後、Claude Code で/forgeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/.gitkeepexamples.mdfeedback-compiler-drafts.mdforge.featureuncaptured-lesson-patterns.mdscripts/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/ 内の各ファイルについて:
- ファイルの内容を読み取る
- 必須フィールド(
# Learning:、**Category**:、**Confidence**:)があることを確認する - ファイル名を維持したまま
.agents/learnings/にコピーする .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
.agents/forge/capture-tracking.jsonが存在する場合は読み取り、存在しない場合は{}で開始します- 一致したパターンごとに、パターン番号をキーとしてエントリを追加または更新します。
{ "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"} } - 更新した 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)