> For the complete documentation index, see [llms.txt](https://faction-os.gitbook.io/faction-os-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://faction-os.gitbook.io/faction-os-docs/assets/readme_assets.md).

# Assets Directory

Tracked media assets live here when they are approved for repository use but are not owned by a single app package.

* `showcase/` contains README and public-demo visual media, including the FactionOS banner and animated battlefield strip.
* `brand/` contains approved project brand media such as the FactionOS logo.
* `battlefield-2d/reference/` contains approved generated 2D battlefield PNG references used for review and regeneration context.
* `generated/game-design/` contains production-owned generated War Effort visual assets tracked by `../docs/game-design/manifest.md`. These files are available for phase promotion but are not app runtime assets until the consuming phase records app paths, cache/mirror behavior, fallbacks, accessibility, and provenance.
* App-served runtime media stays with the app that loads it, such as `apps/web/public/portraits/`, `apps/web/public/battlefield/`, and `public-demo/icon-*.png`.
* Quarantined legacy media stays in gitignored `EXAMPLES/` as reference-only intake. Use it to document standards and gaps, not as a source for direct import, copy, transformation, or shipping.
* Future media pipeline work should add manifests or catalogs here before expanding generated image, audio, music, video, HUD, portrait, achievement, or battlefield asset sets.
* `generated/phase04/` contains non-runtime generated-draft evidence for Phase 04 Session 03. It stores redacted briefs and manifest records, not raw provider output.

Phase 04 media routing lives in `../.spec_system/archive/phases/phase_04/media_gap_matrix.md`. Use it to decide whether a file belongs in `assets/`, an app-owned public directory, `public-demo/`, or a future catalog fixture before adding or promoting media.

Adding media here does not make it runtime-ready. New or expanded media still needs source, rights, attribution, optimization, metadata cleanup, byte size, browser support, fallback, accessibility, privacy, and product-use records.

## Visual Promotion Inventory

The Session 04 promotion gate is `npm run media:visual:check`. It validates the explicit config in `../scripts/media-visual-promotion-config.mjs` and fails when inventory paths, dimensions, bytes, mirror hashes, service-worker cache entries, docs references, or release blockers drift.

Tracked visual references and shared media currently covered by the gate:

```
assets/battlefield-2d/reference/background.png
assets/battlefield-2d/reference/heroes/orc.png
assets/battlefield-2d/reference/heroes/human.png
assets/battlefield-2d/reference/heroes/elf.png
assets/battlefield-2d/reference/heroes/undead.png
assets/battlefield-2d/reference/heroes/lobster.png
assets/brand/factionos-logo.png
assets/brand/factionos-logo.webp
assets/brand/factionos-logo-square.png
assets/brand/factionos-logo-square.webp
apps/web/public/favicon.svg
public-demo/icon-192.png
public-demo/icon-512.png
public-demo/icon-maskable-512.png
assets/showcase/factionos-strip-cover.jpg
assets/showcase/factionos-strip.webp
assets/showcase/heroes-banner.jpg
assets/showcase/strip-frames/1-dusk_muster.jpg
assets/showcase/strip-frames/2-mid_combat.jpg
assets/showcase/strip-frames/3-victory_chorus.jpg
assets/showcase/strip-frames/4-night_watch.jpg
public-demo/assets/showcase/heroes-banner.jpg
```

Runtime battlefield files stay in the owning app and public demo directories, but their approved references stay under this tree:

```
apps/web/public/battlefield/background.webp
apps/web/public/battlefield/heroes/orc.webp
apps/web/public/battlefield/heroes/human.webp
apps/web/public/battlefield/heroes/elf.webp
apps/web/public/battlefield/heroes/undead.webp
apps/web/public/battlefield/heroes/lobster.webp
public-demo/assets/battlefield/background.webp
public-demo/assets/battlefield/heroes/orc.webp
public-demo/assets/battlefield/heroes/human.webp
public-demo/assets/battlefield/heroes/elf.webp
public-demo/assets/battlefield/heroes/undead.webp
public-demo/assets/battlefield/heroes/lobster.webp
```

Do not add generated draft output directly to the lists above. Drafts remain under `assets/generated/phase04/` until a later promotion session records source, rights, optimization, metadata, byte-budget, accessibility, privacy, fallback, and parity approval.

## Generated Draft Evidence

Phase 04 generated drafts use this split:

* Tracked evidence lives under `assets/generated/phase04/`.
* Raw provider output and local run summaries live under ignored `tmp/media-generation/phase04-session03/`.
* Runtime promotion belongs to later Phase 04 sessions after source, rights, optimization, metadata, size, fallback, accessibility, privacy, and parity gates pass.

Do not move draft output from ignored staging into app runtime paths, `public-demo/`, release artifacts, or docs as approved media during Session 03. If provider generation is not approved, record a planned, deferred, or rejected manifest record instead of adding a placeholder binary.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://faction-os.gitbook.io/faction-os-docs/assets/readme_assets.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
