docs/asset-gen-manual-verification.md
The asset_gen tools call real third-party APIs and write real files into a licensed
Unity Editor, so they cannot be covered headlessly. Run this checklist by hand with
genuine provider keys and an interactive Editor before shipping.
manage_tools → enable asset_gen (it is off by default).generate_model(provider=tripo, mode=text, prompt="a low-poly oak tree", format=fbx).generate_model(action=status, job_id=<id>) until it reports done.Assets/Generated/Models/.generate_model(provider=tripo, mode=text, prompt="...", format=glb), poll status.generate_image(provider=fal, prompt="a pixel-art coin", transparent=true).Assets/Generated/Images/ with alpha preserved
and correct sRGB color.generate_image(provider=openrouter, prompt="...").import_model(action=search, query="wooden chair"), then
import_model(action=import, uid=<from search>).generate_model(provider=meshy, mode=text, prompt="..."), poll status.These paths are covered by unit tests at the request-shaping layer only — confirm them against real provider APIs (the unit tests can't validate that the provider accepts the shape).
generate_model(provider=meshy, mode=text, prompt="...", texture=true)
→ confirm the result is textured (Meshy runs a preview then a refine task internally).generate_model(provider=meshy, mode=image, image_path=Assets/refs/x.png)
→ confirm it imports a model derived from the local image.generate_image(provider=fal, mode=image, image_path=Assets/refs/x.png, prompt="make it night")
→ confirm fal's /edit endpoint accepts the request and returns an edited image.generate_image(provider=openrouter, mode=image, image_path=..., prompt="...")
→ confirm the reference image influences the result.generate_image(provider=fal, width=512, height=512, prompt="...")
→ confirm the returned image is 512×512.generate_model(provider=tripo, mode=image, image_path=...)
→ confirm the job fails with a clear "Tripo requires a hosted image_url" message (no silent text fallback).import_model(action=search, query="chair", categories=furniture-home, count=12, cursor=<from prior cursors.next>)
→ confirm filtering works and cursors.next advances the page.generate_image(transparent=true) sets the Unity alpha-is-transparency
flag but does NOT produce a transparent background (fal/FLUX limitation) — confirm the expectation.status payload.