Task: Goose情報収集→llmwiki ingestの配管と、embeddingsのローカル分離
背景
decisions/0004の役割分担で、 Goose(情報収集Recipe)が返したingest候補をllmwiki ingestへ渡す配管が最後の 未実装ピースだった。また、OpenCode Goに/embeddingsがないため、embeddingsを Mac mini等のローカル推論へ分離する経路を確立したい。
目的
goose run --recipeのJSON出力から候補URLを取り出してllmwiki ingestへ流す スクリプトが動き、embeddingsをローカルのOpenAI互換エンドポイントへ向ける設定が 検証済みである状態を作る。
受け入れ条件
実施記録(2026-07-05、Fable 5)
make ingest TOPIC="..."をMakefileに追加。実行例:LLMWIKI_PROJECT=~/knowledge/llm-wiki/projects/main-wiki LLMWIKI_CMD="micromamba run -n node24 llmwiki" python3 scripts/ingest-candidates.py --topic "個人情報保護条例と匿名加工情報"。- 実測: 3候補中2件ingest成功、1件失敗(e-Gov法令ページはJS SPAでReadability抽出 不可)。失敗は候補単位で分離され、サマリと終了コードに反映された。
- 知見: e-Gov法令URL(
laws.e-gov.go.jp/law/...)はllmwiki ingestで取り込め ない。法令本文はhouki-egov-mcpのMarkdown出力をSOURCES_CONTRACT.md形式でsources/に直接書く経路が必要(今後の課題)。 - embeddings分離は検証用OpenAI互換シム(127.0.0.1:8765、scratchpad内・非commit) で実証:
OPENAI_EMBEDDINGS_BASE_URL指定で「Skipped embeddings update: 404」が 「Embeddings updated (4 pages, 26 chunks)」になり、.llmwiki/embeddings.jsonにmodel: test-embedで保存された。設計はdecisions/0005 に記録。 - 副次的観測: 新規2ソースは「no concepts — will retry」でconcept抽出が空だった (ソースの本文品質またはモデル起因。モデル品質比較の課題に含める)。うち1件は タイトル抽出に失敗し
untitled.mdになった。
変更範囲
- 変更してよいファイル:
Makefile、docs/配下 - 新しく作ってよいファイル:
scripts/ingest-candidates.py、docs/decisions/0005-*.md - 変更しないもの:
agent/recipes/の既存Recipe、AGENTS.md
確認方法
python3 scripts/ingest-candidates.py --topic "テスト" --dry-run
make check