skills/asset-pipeline/SKILL.md
Design and configure the asset sourcing, generation, provenance, compliance, optimization, and import pipeline for game projects. Use after repo-scaffold-factory when a generated repo needs machine-checkable asset truth.
npx skillsauth add merceralex397-collab/scafforge asset-pipelineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to configure the asset operating framework for a game project.
Scafforge now treats asset work as source routes plus pipeline stages, not as one flat route-family list.
Default policy order:
Hosted commercial generation APIs remain denied by default in this package contract.
| Capability | What it owns | Typical inputs | Required proof |
| --- | --- | --- | --- |
| source-open-curated | Curated open sources with straightforward licenses | Kenney, Quaternius, Poly Haven, ambientCG, Google Fonts | manifest source URL, license, author/origin, license-report allowlist pass |
| source-mixed-license | Sources that need per-asset attribution or commercial review | OpenGameArt, Freesound, itch.io free assets, Game-icons | attribution-required manifest entry, attribution ledger, license review result |
| procedural-2d | Repo-authored 2D/UI/VFX/procedural audio content | shaders, particles, themes, icon composition, sprite cleanup, AudioStreamGenerator | workflow record, import proof, preview when needed |
| procedural-layout | Deterministic layout or tile assembly | TileMap, TileSet, WFC, room-layout generators | workflow record, preview/contact sheet, import proof |
| procedural-world | Noise-driven terrain or world generation | FastNoiseLite, Terrain3D, voxel/world generators | workflow record, optimization status, import proof |
| local-ai-2d | Local/open image generation and refinement | ComfyUI, InvokeAI, AUTOMATIC1111, Diffusers wrappers | tool chain, model/checkpoint, prompt/recipe, workflow record, preview, license pass |
| local-ai-audio | Local/open audio generation | open-weight local audio models | tool chain, model/checkpoint, prompt/recipe, license pass |
| reconstruct-3d | 3D reconstruction bootstrap lanes | image-to-3D or similar local reconstruction stacks | workflow record, preview, cleanup and import proof |
| dcc-assembly | Blender/DCC assembly, cleanup, UV, material, and export | Blender, Geometry Nodes, Material Maker-informed cleanup | workflow record, preview, optimization stage, import proof |
optimize-importprovenance-complianceThese stages are not alternate source routes. Every asset category should record its selected source route separately from these required proof stages.
Asset presence is not enough. For visually reviewable repos, the generated output must also satisfy the named visual rubric in references/visual-quality-rubric.md.
Key rules:
Generated repos should converge on:
assets/requirements.jsonassets/pipeline.jsonassets/manifest.jsonassets/ATTRIBUTION.mdassets/PROVENANCE.mdassets/workflows/assets/previews/assets/qa/import-report.jsonassets/qa/license-report.json.opencode/meta/asset-provenance-lock.json| Surface | Authority |
| --- | --- |
| assets/requirements.json | requested asset intent, category needs, quality bar, and preferred routes |
| assets/pipeline.json | category-level route selection, fallback order, capability policy, and stage configuration |
| assets/manifest.json | authoritative per-asset provenance, compliance, workflow, and import truth |
| .opencode/meta/asset-provenance-lock.json | authoritative pipeline-contract revision and digest truth |
| assets/ATTRIBUTION.md | derived human attribution summary |
| assets/PROVENANCE.md | derived human provenance ledger |
| assets/qa/import-report.json | latest import and optimization verification report |
| assets/qa/license-report.json | latest license and compliance verification report |
If these surfaces disagree, assets/manifest.json wins on per-asset truth and .opencode/meta/asset-provenance-lock.json wins on process-contract truth.
This skill treats the cited research as route policy, not as passive bibliography.
| Capability | Default guidance | Non-default exception |
| --- | --- | --- |
| source-open-curated | Prefer Kenney, Quaternius, Poly Haven, ambientCG, and Google Fonts as the lowest-friction open defaults. | Move to source-mixed-license when attribution or per-asset commercial review is required. |
| source-mixed-license | Use OpenGameArt, Freesound, itch.io free assets, and similar sources only with explicit manifest fields and attribution coverage. | Deny by default when the license is unknown, non-commercial, no-derivatives, or otherwise unsupported. |
| procedural-2d | Prefer Godot shaders, particles, theme resources, SVG/icon composition, and lightweight 2D tooling. | Do not escalate to AI for routine UI chrome or simple iconography before deterministic composition is exhausted. |
| procedural-layout | Prefer TileMap or WFC-style layout generation for repeatable rooms, chunks, and tile-driven content. | Stop and ask for human direction when authored encounter quality and procedural coverage still conflict. |
| procedural-world | Prefer noise-driven terrain, chunk generation, and bounded world-building systems. | Do not imply autonomous AAA-world generation. |
| local-ai-2d | Treat ComfyUI, InvokeAI, AUTOMATIC1111, and Diffusers wrappers as implementation options, not hard-coded package dependencies. | Hosted commercial image APIs remain denied by default in this baseline. |
| local-ai-audio | Use only local/open tooling plus open-weight models by default, and only after procedural or sourced audio routes leave a genuine gap. | Commercial or non-commercially restricted audio models remain denied by default. |
| reconstruct-3d | Treat image-to-3D or similar reconstruction as a bootstrap lane that still needs cleanup and QA. | Do not present raw reconstruction output as final truth without cleanup, optimization, and import proof. |
| dcc-assembly | Use Blender-driven assembly, cleanup, UV, material, and export flows for 3D content that needs it. | Blender-MCP is an execution surface, not a semantic guarantee of final asset quality. |
third-party-open-licensed maps to source-open-curated by default and to source-mixed-license when the selected source needs attribution or commercial review.procedural-repo-authored maps to procedural-2d, procedural-layout, or procedural-world depending on the asset class.godot-native-authored maps to the same procedural split above; engine-specific wording is no longer the canonical route label.blender-mcp-generated maps to dcc-assembly by default and may map to reconstruct-3d when reconstruction is the real operating mode.Run:
python3 skills/asset-pipeline/scripts/init_asset_pipeline.py <repo-root>
That initializer reads .opencode/meta/bootstrap-provenance.json when present, then seeds:
assets/requirements.jsonassets/pipeline.jsonassets/manifest.jsonassets/ATTRIBUTION.mdassets/PROVENANCE.mdassets/workflows/assets/previews/assets/qa/import-report.jsonassets/qa/license-report.json.opencode/meta/asset-pipeline-bootstrap.json.opencode/meta/asset-provenance-lock.jsonassets/import-reports/ is deprecated. Use assets/qa/import-report.json.
Read the canonical brief and align it to assets/requirements.json:
Update assets/pipeline.json rather than inventing new files.
Rules:
primary source route per categoryoptimize-import and provenance-compliance as separate required stagesEvery committed asset belongs in assets/manifest.json.
Minimum manifest truth per asset:
Generated assets must also record tool chain, workflow, and model or prompt provenance when applicable.
For visually reviewable outputs, QA should also leave visual-proof evidence that maps the current surface back to the rubric. Use screenshot, render, or short capture artifacts rather than free-form taste claims.
assets/workflows/.assets/previews/ when the asset is not trivially inspectable.assets/qa/import-report.json.assets/qa/license-report.json.assets/previews/ or another repo-local path named by the brief.dcc-assembly is activeTreat .opencode/meta/asset-pipeline-bootstrap.json as the machine-readable handoff for project-skill-bootstrap and opencode-team-bootstrap.
When dcc-assembly is selected:
required_agents includes blender-asset-creatorrequired_skills includes asset-description and blender-mcp-workflowrequired_mcp_servers includes blender_agentWhen dcc-assembly is not selected, keep blender_agent disabled even if Blender exists on the host.
Blender is a bounded execution lane, not a magic quality button. Follow the truthful support matrix in ../project-skill-bootstrap/references/blender-support-matrix.md.
For Blender-derived assets:
workflow_ref, tool_chain, and preview_path in the manifest entryUse these defaults unless the canonical brief says otherwise:
python3 skills/asset-pipeline/scripts/validate_provenance.py <repo-root>assets/manifest.json carries every committed asset file outside the support directoriesassets/qa/import-report.json and assets/qa/license-report.json exist and stay currentassets/ATTRIBUTION.md and assets/PROVENANCE.md reflect the manifest instead of competing with ittesting
Use when validating Android feature flows in an emulator with adb-driven launch, input, UI-tree inspection, screenshots, and logcat capture.
development
Best practices for Remotion - Video creation in React
development
Set browser-game architecture before implementation. Use when the user needs engine choice, simulation and render boundaries, input model, asset organization, or save/debug/performance strategy.
development
Prepare and optimize browser-game 3D assets. Use when the user asks for GLB or glTF shipping work, including Blender cleanup and export, collision or LOD setup, compression, texture packaging, and runtime validation.