Grafix Art Loop Orchestrator
目的
- grafixを用いて、ハイクオリティなアートをLLM自身で生成する。副産物として生じるprimitiveやeffectをgrafixの新ネタ候補として貯めていく。
- 全イテレーション終了後、このスキルを改善(ex. コンテキストの無駄消費削減、より多様で高品質なアートを生成)するための
skill_improvement_report.json出力。
全体像
- ideaman: 初回はアートの核となるアイデア
CreativeBrief.jsonをM個生成。criticの批評を受け取った際は、それを踏まえた次反復の改善指示。 - artist: 1を基に、M体のサブエージェントで完全に独立したM個の
sketch.pyバリアントを実装。レンダリングして画像生成。後述のMCPツールでartistを呼び出すこと。 - critic: 2の出力画像を認識し、アートとしてのクオリティを批評した
critique.jsonを生成。
- 上記を1イテレーションとする。1イテレーションごとに、生成アートをタイル状に並べたcontact_sheet.pngを出力。
- 全イテレーション後、
contact_sheet.pngをさらにタイル状に並べたsummary.pngを出力。合わせてskill_improvement_report.jsonを出力。
実行ルール
- skill 開始直後に
run_idを作成し、全出力の保存先であるsketch/agent_loop/runs/<run_id>ディレクトリを生成。その中にiter_XXディレクトリを都度作成。 - run ディレクトリ生成は機械処理として次を使って固定する(run_id は
run_YYYYMMDD_HHMMSS_n{n}m{m}形式のみ)。PYTHONPATH=src /opt/anaconda3/envs/gl5/bin/python .agents/skills/grafix-art-loop-orchestrator/scripts/init_run_dir.py --n <N> --m <M> --update-latest
- 生成の多様性を保つため、以下を遵守すること。
- 各 variant ごとに作業ディレクトリ(
.../iter_XX/vY/)を切り、artistはsketch.pyを独立して実装(各ファイルでアプローチを分ける)。 - ideaman/artist/critic は LLM が担う roleであり、その出力はLLMによって直接生成する。つまり、固定 JSON を吐くだけの補助スクリプト(例:
tools/ideaman.py)での代替禁止。
- 各 variant ごとに作業ディレクトリ(
python実行が必要な場合は、必ず/opt/anaconda3/envs/gl5/bin/pythonを使う。python -m grafix ...形式の実行は、/opt/anaconda3/envs/gl5/bin/python -m grafix ...に統一。- contact sheet 生成は創作判断ではなく機械処理として、次を使って固定する。
- iteration 用:
PYTHONPATH=src /opt/anaconda3/envs/gl5/bin/python .agents/skills/grafix-art-loop-orchestrator/scripts/make_contact_sheet.py --mode iter --iter-dir sketch/agent_loop/runs/<run_id>/iter_XX - 最終集約用:
PYTHONPATH=src /opt/anaconda3/envs/gl5/bin/python .agents/skills/grafix-art-loop-orchestrator/scripts/make_contact_sheet.py --mode final --run-dir sketch/agent_loop/runs/<run_id>
- iteration 用:
- 出力境界
- 出力(画像・JSON・
sketch.py・stdout/stderr・診断ファイル・中間ファイル)は すべてsketch/agent_loop/runs/<run_id>/配下に保存する。 sketch/agent_loop外への出力を禁止する(例:/tmp, リポジトリ直下, ホーム配下の任意パス)。mktempの既定ディレクトリ、tempfileの既定/tmpを使わない。- 一時作業が必要な場合は
sketch/agent_loop/runs/<run_id>/.tmp/のみ使用する。
- 出力(画像・JSON・
- 全イテレーション後の
skill_improvement_report.jsonimprovementsには、実際の run 内 evidence に紐づく改善提案だけを書く。「作品の出来」ではなく「skills 改善」に限定。discovery_costには、今回追加で調べた項目と「次回はどの references に前置きすべきか」を書く。redundant_infoには、次回入力から削除/要約できる情報のみを書く。decisions_to_persistには、次 run で固定適用する決定だけを最小表現で残す。
Artist 実行
- 実行系 MCP サーバ
grafix-art-loop-codex-child-artist- tool:
art_loop.run_codex_artist - 引数:
variant_dir(例:sketch/agent_loop/runs/<run_id>/iter_XX/vYY) - tool:
art_loop.read_text_tail - 用途: run 配下のログ末尾確認
- tool:
参照資料
- イテレーション開始前に、まず次を読む。
.agents/skills/grafix-art-loop-orchestrator/references/project_quick_map.md.agents/skills/grafix-art-loop-orchestrator/references/grafix_artist_guide.md.agents/skills/grafix-art-loop-orchestrator/references/contact_sheet_spec.md(contact sheet 生成時)
- 上記で足りる情報について、リポジトリ全体の横断探索をしない。
- 追加探索は「不足している具体情報」に限定。
skill_improvement_report.jsonに再発防止策を残す。 - primitive/effect レジストリ参照順(CLI優先)
- 第1優先:
PYTHONPATH=src /opt/anaconda3/envs/gl5/bin/python -m grafix list primitives/PYTHONPATH=src /opt/anaconda3/envs/gl5/bin/python -m grafix list effectsの実行結果を使う。
- 第1優先:
- フォールバック: 上記が実行不能な場合のみ
.agents/skills/grafix-art-loop-orchestrator/references/primitives.txt/.agents/skills/grafix-art-loop-orchestrator/references/effects.txtを参照する。
Converted and distributed by TomeVault — claim your Tome and manage your conversions.