Param Forge reference notes (for Brood)
Note: This file documents the reference tarball (param_forge_ref/) and should be treated as read-only context for compatibility.
This doc records the Param Forge receipt schema and loop patterns to mirror. It is based on the reference tarball in param_forge_ref/ (see scripts/forge_image_api/*, scripts/param_forge.py, and docs/).
Receipt schema (Param Forge)
Defined in param_forge_ref/param_forge/scripts/forge_image_api/core/receipts.py and core/contracts.py.
Top-level keys (schema_version = 1):
schema_version (int)
request (ImageRequest serialized)
- prompt, mode, size, n, seed, output_format, background
- inputs (init_image, mask, reference_images)
- provider, provider_options, user, out_dir, stream, partial_images, model
- metadata (free-form)
resolved (ResolvedRequest serialized)
- provider, model, size, width, height, output_format, background, seed, n
- user, prompt, inputs, stream, partial_images
- provider_params (provider-specific resolved params)
- warnings
provider_request (sanitized provider payload)
provider_response (sanitized provider payload)
warnings (list of strings)
artifacts
result_metadata (free-form; expanded post-run)
Observed result_metadata fields from Param Forge:
render_seconds (float)
render_started_at / render_completed_at (ISO strings; documented in docs/llm_review_context.md)
llm_scores (object: adherence, quality, model, version)
llm_retrieval (object: score, axes, packet, model, gated, gate_reasons)
image_quality_metrics (object: metrics, gates, version)
Notes:
- Provider request/response are sanitized to omit raw image bytes.
- Receipts are immutable in intent, but Param Forge appends metadata fields after generation.
Loop patterns to mirror
1) Interactive optimize loop (core UX)
Pattern in scripts/param_forge.py:
- Collect provider/model/size/params and prompt.
- Generate images + receipts.
- Post-run analysis (optional): LLM-based receipt analysis recommends param changes.
- Show diffs (settings + prompt) between current and recommended.
- User accepts or rejects recommendations; repeat if accepted.
Loop shape: generate -> evaluate -> recommend -> accept -> regenerate.
2) Batch run (plan -> execute -> resume)
Pattern in docs/experiment_mode_spec.md:
- Build a plan from prompts + matrix + limits.
- Write a run manifest (run.json) before execution.
- Execute with concurrency + budget enforcement.
- Resume by skipping completed jobs.
Loop shape: plan -> execute -> summarize -> resume if needed.
3) Viewer & winner selection
Pattern in param_forge.py view:
- Load receipts + manifest.
- Render grid, enable compare, winner pick, and copy snippet.
- Use receipts as the source of truth for prompt + params.
Loop shape: browse -> compare -> select winner -> copy/branch.
These patterns inform Brood's receipt-driven event stream, iterative agent loops, and deterministic versioning.
1---2name: param-forge-reference-notes-for-brood3description: Note: This file documents the reference tarball (paramforgeref/) and should be treated as read-only context for compatibility.4---5# Param Forge reference notes (for Brood)67Note: This file documents the reference tarball (`param_forge_ref/`) and should be treated as read-only context for compatibility.89This doc records the Param Forge receipt schema and loop patterns to mirror. It is based on the reference tarball in `param_forge_ref/` (see `scripts/forge_image_api/*`, `scripts/param_forge.py`, and `docs/`).1011## Receipt schema (Param Forge)12Defined in `param_forge_ref/param_forge/scripts/forge_image_api/core/receipts.py` and `core/contracts.py`.1314Top-level keys (schema_version = 1):15- `schema_version` (int)16- `request` (ImageRequest serialized)17 - prompt, mode, size, n, seed, output_format, background18 - inputs (init_image, mask, reference_images)19 - provider, provider_options, user, out_dir, stream, partial_images, model20 - metadata (free-form)21- `resolved` (ResolvedRequest serialized)22 - provider, model, size, width, height, output_format, background, seed, n23 - user, prompt, inputs, stream, partial_images24 - provider_params (provider-specific resolved params)25 - warnings26- `provider_request` (sanitized provider payload)27- `provider_response` (sanitized provider payload)28- `warnings` (list of strings)29- `artifacts`30 - image_path31 - receipt_path32- `result_metadata` (free-form; expanded post-run)3334Observed `result_metadata` fields from Param Forge:35- `render_seconds` (float)36- `render_started_at` / `render_completed_at` (ISO strings; documented in `docs/llm_review_context.md`)37- `llm_scores` (object: adherence, quality, model, version)38- `llm_retrieval` (object: score, axes, packet, model, gated, gate_reasons)39- `image_quality_metrics` (object: metrics, gates, version)4041Notes:42- Provider request/response are sanitized to omit raw image bytes.43- Receipts are immutable in intent, but Param Forge appends metadata fields after generation.4445## Loop patterns to mirror4647### 1) Interactive optimize loop (core UX)48Pattern in `scripts/param_forge.py`:49- Collect provider/model/size/params and prompt.50- Generate images + receipts.51- Post-run analysis (optional): LLM-based receipt analysis recommends param changes.52- Show diffs (settings + prompt) between current and recommended.53- User accepts or rejects recommendations; repeat if accepted.5455Loop shape: `generate -> evaluate -> recommend -> accept -> regenerate`.5657### 2) Batch run (plan -> execute -> resume)58Pattern in `docs/experiment_mode_spec.md`:59- Build a plan from prompts + matrix + limits.60- Write a run manifest (run.json) before execution.61- Execute with concurrency + budget enforcement.62- Resume by skipping completed jobs.6364Loop shape: `plan -> execute -> summarize -> resume if needed`.6566### 3) Viewer & winner selection67Pattern in `param_forge.py view`:68- Load receipts + manifest.69- Render grid, enable compare, winner pick, and copy snippet.70- Use receipts as the source of truth for prompt + params.7172Loop shape: `browse -> compare -> select winner -> copy/branch`.7374These patterns inform Brood's receipt-driven event stream, iterative agent loops, and deterministic versioning.