# Isis Cosmetic Variant Pipeline

## Scope

V2 uses `@v2/isis-cosmetic-pipeline` to build cosmetic variants for
`V2Mode_Cosmetic` content. The pipeline is limited to generated launch/live-ops
cosmetic assets and does not feed rollback simulation.

## Package Chain

Every rigged cosmetic variant is planned in this order:

1. `@isis/3d-generation` creates the base mesh as a high-quality GLB.
2. `@isis/ai-texturing` generates PBR texture sets and material metadata.
3. `@isis/universal-rigging` binds riggable slots to the V2 fighter skeleton.
4. `@bellona/unreal` receives `bellona.cook.enqueue` for Unreal cook.

Static slots such as decals, palettes, weapon skins, and vehicle skins can skip
the rigging stage, but the package remains part of the registered V2 Isis
cosmetic capability for slots that need skeleton binding.

## Content Contract

The pipeline targets:

- mode id: `V2Mode_Cosmetic`
- source content root: `V2/ue/Content/Generated/Isis/Cosmetics/V2Mode_Cosmetic`
- Bellona target root: `Content/Generated/Isis`
- Bellona path prefix: `Cosmetics/V2Mode_Cosmetic`
- generated-event tag: `v2.cosmetic.*`
- cook profile: `v2.cosmetic`

The `isis.asset.generated` payload includes Isis asset id, job id, source URI,
SHA-256 content hash, format, tags, and metadata describing the mode, fighter,
fighter skeleton, content root, and package chain. `@v2/oshun-adapter` then
routes those tagged assets into the existing Bellona cook path.

## Rollback Boundary

Cosmetic generation is content-build work only. `@v2/isis-cosmetic-pipeline`
emits plans with `deterministicGameplay: false` and
`rollbackPolicy: "content-build-only"`. The Bellona handoff is
`rollbackSafe: true` because gameplay can only consume the cooked,
content-addressed asset after the cook and provenance gates finish.
