color-management-decision
Skill3 starsChanged 6 months agoMITView on GitHub
Pin Display Device, View Transform, Look, and Sequencer per consumer pipeline (web sRGB, VFX ACES linear, game engine, print, GLB-Three.js) before render.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- acceptance-criteria-builderSkill
- asset-discoverySkill
- asset-fallback-strategySkill
- asset-library-planSkill
- asset-license-checkerSkill
- asset-style-checkSkill
- blender-brainstormingSkill
- blender-recipe-decomposerSkill
- blender-troubleshootingSkill
- blendops-helpSkill
- bridge-conflictsSkill
- camera-compositionSkill
- character-portraitSkill
- cli-appendix-job-outlineSkill
- composition-quality-checkerSkill
- cycles-vs-eevee-decisionSkill
- done-criteriaSkill
- environment-shotSkill
- glb-animation-handoffSkill
- glb-web-handoffSkill
- intent-to-3d-brief-writerSkill
- interior-sceneSkill
- lighting-material-planSkill
- lighting-quality-checkerSkill
- material-quality-checkerSkill
- mobile-glb-budgetSkill
- output-format-decisionSkill
- pack-prerequisite-checkerSkill
- path-one-host-outlineSkill
- plain-language-responseSkill
- polycount-budget-checkerSkill
- pre-handoff-verificationSkill
- preview-reportSkill
- product-grid-scene-plannerSkill
- product-hero-scene-plannerSkill
- r3f-component-planSkill
- recipe-fit-assessorSkill
- render-export-evidenceSkill
- resolution-aspect-decisionSkill
- runtime-attempt-reportSkill
- runtime-path-pickerSkill
- runtime-readinessSkill
- runtime-setupSkill
- scene-readinessSkill
- scope-guardSkill
- stage-gatesSkill
- <skill-name>Skill
- workflow-stage-routerSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 9 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Avoid the most common Blender color mistake: rendering with the wrong color space and then "fixing" it in post.
- Distinctive: line 18
before render / lookdev pass
- Distinctive: line 19
when consumer color pipeline is known
- Distinctive: line 20
when a previous render had unexpected color shifts
- Very specific: line 85
Default Artifact status is Not Produced.
- Distinctive: line 103
Document per-output color transforms if multiple outputs are required.
- Distinctive: line 193
Verify with a known reference (color chart or brand color).
- Distinctive: line 194
Document choices in scene metadata.
- Distinctive: line 195
Avoid post-process color grading inside Blender for web — let the consumer do it.
- Distinctive: line 248
Run Blender or execute renders.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
color-management-decision
Purpose
Avoid the most common Blender color mistake: rendering with the wrong color space and then "fixing" it in post. Pick the color management strategy upfront based on the consumer's color pipeline.
Quick start
- Identify the consumer pipeline (
web sRGB/film/VFX ACES linear/game engine/print/GLB-Three.js). - Pin the 4-line render color config:
Display Device,View Transform,Look, andSequencer. - Define per-output color transforms if multiple outputs exist.
- Emit the 4-line config record, caveats, truth states (
Not Run/Not Produced), and handoff.
When to use
- before render / lookdev pass
- when consumer color pipeline is known
- when a previous render had unexpected color shifts
When not to use
<!-- blendops:generated:start exclusions -->- Post-render color grading or soft-proofing (handled by compositor / DCC after render). → use
../output-format-decision/SKILL.md(Delegates out-of-scope requests to output-format-decision) - Validating per-material texture color spaces such as sRGB vs Non-Color/Linear (material-quality-checker). → use
../material-quality-checker/SKILL.md(Delegates out-of-scope requests to material-quality-checker) - Selecting file formats or bit depths (output-format-decision). → use
../output-format-decision/SKILL.md(Delegates out-of-scope requests to output-format-decision) - Choosing the render engine (cycles-vs-eevee-decision). → use
../cycles-vs-eevee-decision/SKILL.md(Delegates out-of-scope requests to cycles-vs-eevee-decision) - Monitor hardware calibration (out of scope). → use
../material-quality-checker/SKILL.md(Delegates out-of-scope requests to material-quality-checker) - Raw modeling without lookdev (color management does not affect geometry accuracy). → use
../cycles-vs-eevee-decision/SKILL.md(Delegates out-of-scope requests to cycles-vs-eevee-decision)
<!-- blendops:generated:end exclusions -->Trigger phrases
<!-- blendops:generated:start triggers -->- "what color space"
- "Filmic vs Standard"
- "ACEScg for our pipeline"
- "colors look weird"
<!-- blendops:generated:end triggers -->Prerequisites / readiness
- Consumer pipeline known (
web sRGB,film/VFX ACES linear,game engine,print, orGLB-Three.js). - Target output list known (or handed off from
output-format-decision).
Input schema
Required inputs
| Input | Why it is required |
| Consumer pipeline | Determines Display Device, View Transform, Look, and Sequencer (web sRGB, film/VFX ACES linear, game engine, print, GLB-Three.js) |
| Target output list | Identifies which outputs need per-output color transform rules (file format ownership stays in output-format-decision) |
Optional inputs
| Input | Use |
| Brand color spec | Add caveat on verifying brand color appearance under the chosen View Transform and Look |
| Existing scene color config | Identify mismatches causing unexpected color shifts |
Assumptions to confirm
- The user knows the consumer pipeline (or is willing to confirm it before pinning).
- "Just looks good" is not a valid target; explicit consumer pipeline match is required.
Output schema
Primary output
A 4-line config record: Display Device, View Transform, Look, Sequencer.
Secondary output
- Per-output color transform rules when multiple outputs are planned
- Caveats per choice
- Truth-state and evidence block
Evidence / caveat output
Runtime status: Not Run | Attempted | Produced | Verified | Failed
Artifact status: Not Produced | Produced | Verified | Failed
Evidence used: <links, paths, logs, or "none">
Limitations: <known gaps>Rules:
- Default
Artifact statusisNot Produced. - Truth states are downgrade-only, never upgrade.
- Pinning a color config never produces a render (
Runtime status: Not Run,Artifact status: Not Produced).
Required laws
../../laws/evidence-before-done.md../../laws/non-blender-user-language.md../../laws/no-arbitrary-python-interface.md../../laws/official-runtime-only.md
Official runtime boundary
Decision skill — does not run Blender. Pins config; operator applies in scene render properties.
Operating procedure
- Identify the consumer pipeline (
web sRGB,film/VFX ACES linear,game engine,print, orGLB-Three.js). - Map the pipeline to the 4-line scene render color config (see
references/pipeline-mapping.md). - Pin
Display Device,View Transform,Look, andSequencer. - Document per-output color transforms if multiple outputs are required.
- List pipeline caveats and delegate adjacent scopes (
material-quality-checkerfor material texture spaces,output-format-decisionfor file formats,cycles-vs-eevee-decisionfor engine choice,glb-web-handofffor GLB web delivery,render-export-evidencefor post-render verification).
Decision tree
Web (sRGB)?
-> Display Device: sRGB | View Transform: Filmic or AgX (Standard for flat unlit color) | Look: None | Sequencer: sRGB
Film / VFX with ACES (linear)?
-> Display Device: sRGB | View Transform: AgX or Filmic (for viewport preview) | Look: None | Sequencer: sRGB | Per-output transform: scene-linear for linear handover (file format owned by output-format-decision)
Game engine?
-> Display Device: sRGB | View Transform: Standard | Look: None | Sequencer: sRGB | Hand off per-material texture color-space validation to material-quality-checker
Print?
-> Display Device: sRGB | View Transform: Filmic or AgX | Look: None | Sequencer: sRGB | Caveat: CMYK conversion/soft-proofing belongs to external print prep / DCC outside this skill
GLB-Three.js?
-> Display Device: sRGB | View Transform: Filmic or AgX | Look: None | Sequencer: sRGB | Caveat: match with Three.js outputColorSpace via glb-web-handoff; delegate texture space checks to material-quality-checkerPlaybooks
Playbook A: Web hero (web sRGB)
Display Device: sRGBView Transform: Filmic (or AgX)Look: None (or Medium High Contrast if requested)Sequencer: sRGB- Per-output transform: Bake display/view transform into display-referred web output (format owned by
output-format-decision).
Playbook B: Film / VFX ACES linear
Display Device: sRGBView Transform: AgXLook: NoneSequencer: sRGB- Per-output transform: Preserve scene-linear data without baked view transform for VFX turnover (format owned by
output-format-decision).
Playbook C: Game engine
Display Device: sRGBView Transform: StandardLook: NoneSequencer: sRGB- Per-output transform: Keep ungraded display transform; hand off per-material texture color-space checks to
material-quality-checker.
Playbook D: GLB-Three.js
Display Device: sRGBView Transform: Filmic (or AgX)Look: NoneSequencer: sRGB- Per-output transform: Align Blender viewport lookdev transform with target Three.js
outputColorSpace = SRGBColorSpaceviaglb-web-handoff; hand off material texture color-space validation tomaterial-quality-checker.
Mode handling
Text-only mode
Emit the 4-line config record, per-output transforms, caveats, and truth states (Runtime status: Not Run, Artifact status: Not Produced).
Runtime-ready mode
Emit the 4-line config record, per-output transforms, and caveats for the operator to apply in Blender scene render properties. Because this skill never runs Blender and pinning a config never produces a render, keep Runtime status: Not Run and Artifact status: Not Produced until render-export-evidence evaluates actual output.
Blocked runtime mode
Emit the 4-line config record, per-output transforms, caveats, and truth states (Runtime status: Not Run, Artifact status: Not Produced).
Validation checklist
- Consumer pipeline identified (
web sRGB,film/VFX ACES linear,game engine,print, orGLB-Three.js) - All 4 lines pinned (
Display Device,View Transform,Look,Sequencer) - Per-output color transform rules specified when multiple outputs exist
- Caveats listed and no subjective "looks good" verdict used
- Truth states set to
Runtime status: Not RunandArtifact status: Not Produced(downgrade-only; pinning never produces a render) - No role blur into per-material texture spaces (
material-quality-checker), file formats (output-format-decision), engine choice (cycles-vs-eevee-decision), post-render grading, or monitor calibration
Pass / Warn / Fail rubric
| Verdict | Criteria |
| Pass | Pipeline-correct 4-line config pinned; per-output color transforms explicit; role boundaries respected; truth states accurately set (Not Run / Not Produced). |
| Warn | 4-line config pinned accurately, but a minor caveat for one output transform or downstream handoff is incomplete. |
| Fail | Wrong pipeline match (e.g., baking a display-referred View Transform into a linear VFX turnover); missing any of the 4 config lines; skipped per-output rules; upgrading truth states on a pinned config; crossing into texture validation, format selection, engine choice, post-grading, or monitor calibration; "looks good" verdict. |
Failure handling
- Pipeline unknown: ask once; if still unspecified, state assumption and default to
web sRGB(Display Device: sRGB,View Transform: Filmic,Look: None,Sequencer: sRGB). - Mixed pipelines from the same scene (e.g.,
web sRGBpreview +film/VFX ACES linearturnover): specify distinct per-output color transform rules so the operator applies each transform per output pass without mixing baked and scene-linear color spaces.
Troubleshooting
| Problem | Response |
| Highlights clip or colors look washed out in lit scenes | Verify View Transform is Filmic or AgX rather than Standard for high-dynamic-range lighting. |
| Colors appear overly contrasty | Set Look to None, or compare Filmic vs AgX view transforms. |
| Flat UI / unlit brand color shifts under tone mapping | Use View Transform: Standard with Look: None only when exact flat sRGB hex preservation is required over photoreal lighting roll-off, and document the caveat. |
| Per-material texture looks too bright or normal map looks wrong | Out of scope for scene render config — hand off to material-quality-checker to validate per-material texture color spaces. |
Best practices
- One config per render, not "default and hope".
- Verify with a known reference (color chart or brand color).
- Document choices in scene metadata.
- Avoid post-process color grading inside Blender for web — let the consumer do it.
Good examples
- "Consumer pipeline:
web sRGB.Display Device: sRGB.View Transform: Filmic.Look: None.Sequencer: sRGB. Per-output rule: apply display/view transform to web delivery output (file format pinned viaoutput-format-decision).Runtime status: Not Run.Artifact status: Not Produced."
Bad examples
- "Use Filmic." — no pipeline context.
User-facing response template
Consumer pipeline: <web sRGB | film/VFX ACES linear | game engine | print | GLB-Three.js>
Output(s): <list>
Color management config:
Display Device: <…>
View Transform: <…>
Look: <…>
Sequencer: <…>
Per-output rules:
<output>: <per-output color transform rule>
Caveats: <list>
Runtime status: Not Run | Attempted | Produced | Verified | Failed
Artifact status: Not Produced | Produced | Verified | Failed
Evidence used: <links, paths, logs, or "none">
Limitations: <known gaps>
Next: <render-export-evidence | material-quality-checker | output-format-decision | cycles-vs-eevee-decision | glb-web-handoff>Anti-patterns
- Saying "Just use Filmic" without identifying the consumer pipeline.
- Claiming
ProducedorVerifiedartifact/runtime status when only pinning a color config. - Auditing per-material texture nodes here instead of handing off to
material-quality-checker. - Prescribing file containers/codecs here instead of handing off to
output-format-decision. - Doing post-render color grading inside the scene color-management decision step.
Cross-skill handoff
<!-- blendops:generated:start handoffs -->- [progression] Output format selection →
../output-format-decision/SKILL.md - [progression] Material texture color spaces →
../material-quality-checker/SKILL.md - [progression] Render engine choice →
../cycles-vs-eevee-decision/SKILL.md - [progression] GLB Three.js delivery →
../glb-web-handoff/SKILL.md - [progression] Render evidence verification →
../render-export-evidence/SKILL.md
<!-- blendops:generated:end handoffs -->Non-goals
- Validate per-material texture color spaces (
material-quality-checker). - Choose output file formats or bit depths (
output-format-decision). - Choose the render engine (
cycles-vs-eevee-decision). - Perform post-render color grading (belongs to compositor / DCC).
- Calibrate a physical monitor (out of scope).
- Run Blender or execute renders.
References
references/pipeline-mapping.mdreferences/per-channel-rules.mdreferences/look-comparison.md../../docs/skill-system.md
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

