# Specification Survey: 21 Inbox Design Requests (DRQs) & Tech Art Pipeline

## 1. Observation

Direct investigation of authoritative specifications:
1. **Source Documents**:
   - `docs/design_requests/inbox/` (21 markdown files, `DRQ-20261001-*.md`).
   - `docs/design_requests/approved/` (18 approved historical files).
   - `ORIGINAL_REQUEST.md` (section `## 2026-10-02T06:36:44Z`, requirements R1, R2, R3).
   - `tools/asset_pipeline/design_pipeline_manager.py` (lines 74-210, 278-429) & `design_pipeline_types.py`.
2. **Current Pipeline State** (verified via `python -m tools.asset_pipeline.design_pipeline_cli report`):
   - `Inbox`: 21 requests.
   - `In Progress`: 0 requests.
   - `Pending Review`: 0 requests.
   - `Approved`: 18 requests (Target post-execution: $18 + 21 = 39$).
   - `Rejected`: 0 requests.
   - `assets/pending_review/`: Empty directory (0 items).
3. **Surveyed Scope**: Exactly 21 DRQs across 5 departments, yielding **78 deliverables** (55 PNG image files, 3 Apple Metal `.metal` shaders, 20 Atlas metadata `.json` files).

---

## 2. Comprehensive Survey of All 21 DRQs

| # | DRQ ID | Category | Priority | Department | Assigned Agent | Header Dims | Size Budget | Normal Map | Emissive Mask | Metal Shader | Atlas JSON | Deliv Count |
|---|--------|----------|----------|------------|----------------|-------------|-------------|:----------:|:-------------:|:------------:|:----------:|:-----------:|
| 01 | `DRQ-20261001-CLI-LOADING-SCREEN-ART` | CONCEPT | LOW | Client Engine | `concept_artist` | 1024x1024 | < 2MB | NO | NO | NO | YES | 3 |
| 02 | `DRQ-20261001-CLI-LOGIN-PARALLAX-LAYERS` | SPRITE | LOW | Client Engine | `isometric_animator` | 1024x512 | < 2MB | NO | NO | NO | YES | 4 |
| 03 | `DRQ-20261001-CLI-TOUCH-CONTROLS-PROMOTION` | UI | HIGH | Client Engine | `mobile_ui_designer` | 512x256 | < 150KB | NO | NO | NO | YES | 3 |
| 04 | `DRQ-20261001-CLI-WORLD-BACKGROUND-LAYERS` | SPRITE | MEDIUM | Client Engine | `isometric_animator` | 512x512 | < 150KB | NO | NO | NO | YES | 3 |
| 05 | `DRQ-20261001-ECO-BAZAAR-TRADE-PANELS` | UI | MEDIUM | Economy | `mobile_ui_designer` | 1024x512 | < 150KB | NO | NO | NO | YES | 4 |
| 06 | `DRQ-20261001-ECO-CRAFTING-ORBS-CATALOG` | UI | HIGH | Economy | `mobile_ui_designer` | 512x512 | < 150KB | YES | Spec (Core) | NO | YES | 3 |
| 07 | `DRQ-20261001-ECO-CURRENCY-BLOODSTONES` | UI | MEDIUM | Economy | `mobile_ui_designer` | 512x256 | < 150KB | YES | YES (File) | NO | YES | 5 |
| 08 | `DRQ-20261001-ECO-LOOT-DROP-PARTICLES` | VFX | HIGH | Economy | `vfx_tech_artist` | 256x512 | < 150KB | NO | NO | YES | YES | 4 |
| 09 | `DRQ-20261001-NPC-CUTSCENE-STORYBOARD` | CONCEPT | MEDIUM | Narrative & NPC | `concept_artist` | 1024x1024 | < 2MB | NO | NO | NO | NO | 4 |
| 10 | `DRQ-20261001-NPC-FERAL-ELDERS-AVATARS` | CONCEPT | HIGH | Narrative & NPC | `concept_artist` | 512x1024 | < 2MB | NO | NO | NO | YES | 3 |
| 11 | `DRQ-20261001-NPC-QUEST-SCROLL-VARIANTS` | UI | MEDIUM | Narrative & NPC | `mobile_ui_designer` | 512x512 | < 150KB | NO | NO | NO | YES | 3 |
| 12 | `DRQ-20261001-SEC-ALERT-BADGES-QUARANTINE` | UI | HIGH | Security | `mobile_ui_designer` | 256x256 | < 150KB | NO | NO | NO | YES | 3 |
| 13 | `DRQ-20261001-SEC-SHIELD-ACTIVE-ANIMATION` | VFX | HIGH | Security | `vfx_tech_artist` | 512x256 | < 150KB | YES | Spec (Core) | YES | YES | 4 |
| 14 | `DRQ-20261001-SEC-UI-FORENSIC-WATERMARK` | UI | MEDIUM | Security | `mobile_ui_designer` | 256x256 | < 50KB | NO | NO | NO | YES | 3 |
| 15 | `DRQ-20261001-SRV-AGENT-ORB-ACTIVATION-VFX` | VFX | LOW | Server & AI Agents | `vfx_tech_artist` | 256x512 | < 150KB | NO | NO | YES | YES | 4 |
| 16 | `DRQ-20261001-SRV-AOI-SYNC-TELEMETRY-VISUAL` | UI | LOW | Server & AI Agents | `mobile_ui_designer` | 256x128 | < 50KB | NO | NO | NO | YES | 3 |
| 17 | `DRQ-20261001-SRV-HARVEST-REPORT-OVERLAY` | UI | MEDIUM | Server & AI Agents | `mobile_ui_designer` | 1024x512 | < 150KB | NO | NO | NO | YES | 4 |
| 18 | `DRQ-20261001-SYS-CRAFTING-STATION-UI` | UI | HIGH | Systems | `mobile_ui_designer` | 1024x512 | < 150KB | NO | NO | NO | YES | 4 |
| 19 | `DRQ-20261001-SYS-HIDEOUT-SAFEHAVEN-PROPS` | SPRITE | MEDIUM | Systems | `concept_artist` | 512x512 | < 50KB/150KB | YES | NO | NO | YES | 4 |
| 20 | `DRQ-20261001-SYS-MAP-DEVICE-ARENA` | SPRITE | HIGH | Systems | `isometric_animator` | 512x512 | < 2MB | YES | Spec (Core) | Spec | YES | 5 |
| 21 | `DRQ-20261001-SYS-PASSIVE-TREE-NODES` | UI | HIGH | Systems | `mobile_ui_designer` | 1024x1024 | < 150KB | YES | YES (File) | NO | YES | 5 |

---

## 3. Detailed Deliverables & Dimension Inventory (78 Deliverables)

### Group 1: Client Engine (CLI) — 13 Deliverables
- **DRQ 01: `DRQ-20261001-CLI-LOADING-SCREEN-ART`** (Target: `client/webapp/assets/ui/loading/`)
  1. `loading_screen_tangkhiem.png` — $1024\times 1024$, PNG, Albedo full-bleed concept art (< 2MB).
  2. `loading_spinner_bagua.png` — $128\times 128$, PNG, Rotating Bagua loading spinner icon (< 150KB).
  3. `loading_metadata.json` — Atlas/layout JSON coordinates.
- **DRQ 02: `DRQ-20261001-CLI-LOGIN-PARALLAX-LAYERS`** (Target: `client/webapp/assets/ui/login/`)
  1. `parallax_layer_far.png` — $1024\times 512$, PNG (RGBA 32-bit), Far background layer (< 2MB combined).
  2. `parallax_layer_mid.png` — $1024\times 512$, PNG (RGBA 32-bit), Midground ruined cliffs/fog.
  3. `parallax_layer_near.png` — $1024\times 512$, PNG (RGBA 32-bit), Foreground chains and dead trees.
  4. `parallax_metadata.json` — Parallax speed coefficients & coordinate metadata.
- **DRQ 03: `DRQ-20261001-CLI-TOUCH-CONTROLS-PROMOTION`** (Target: `client/webapp/assets/ui/hud/`)
  1. `virtual_joystick_atlas.png` — $512\times 256$, PNG, Base ring & thumb knob ($128\times 128$ frames) (< 150KB).
  2. `action_buttons_hud_atlas.png` — $512\times 256$, PNG, Primary attack, Q/W/E/R, dodge button states.
  3. `touch_hud_metadata.json` — Hitbox & slice coordinates.
- **DRQ 04: `DRQ-20261001-CLI-WORLD-BACKGROUND-LAYERS`** (Target: `client/webapp/assets/map/atmosphere/`)
  1. `world_fog_noise_texture.png` — $512\times 512$, PNG, Seamless Perlin fog texture (< 150KB).
  2. `fog_of_war_edge_vignette.png` — $512\times 512$, PNG, Radial alpha vignette mask.
  3. `atmosphere_metadata.json` — UV scroll rate and blend mode configurations.

### Group 2: Economy & Items (ECO) — 16 Deliverables
- **DRQ 05: `DRQ-20261001-ECO-BAZAAR-TRADE-PANELS`** (Target: `client/webapp/assets/ui/trade/`)
  1. `bazaar_main_panel.png` — $1024\times 512$, PNG, Main modal trading board (< 150KB).
  2. `bazaar_components_atlas.png` — $512\times 256$, PNG, Listing cards, filter tabs, currency slots.
  3. `trade_tax_stamp.png` — $128\times 128$ (or $256\times 256$), PNG, 5% burnt tax wax seal badge.
  4. `bazaar_ui_metadata.json` — Element bounding boxes & 9-slice grid.
- **DRQ 06: `DRQ-20261001-ECO-CRAFTING-ORBS-CATALOG`** (Target: `client/webapp/assets/currencies/`)
  1. `crafting_orbs_atlas.png` — $512\times 512$, PNG, 6 crafting orbs ($128\times 128$ icons) (< 150KB).
  2. `crafting_orbs_atlas_normal.png` — $512\times 512$, PNG, Tangent-Space Sobel Normal Map (Blue $\ge 128$).
  3. `crafting_orbs_metadata.json` — Orb IDs (`huyen_thach`, `hoang_kim`, etc.) and slice offsets.
- **DRQ 07: `DRQ-20261001-ECO-CURRENCY-BLOODSTONES`** (Target: `client/webapp/assets/currencies/`)
  1. `bloodstones_atlas.png` — $512\times 256$, PNG, 5 Tiers of primal bloodstones ($128\times 128$ icons) (< 150KB).
  2. `bloodstones_atlas_normal.png` — $512\times 256$, PNG, Tangent-Space Sobel Normal Map (Blue $\ge 128$).
  3. `bloodstones_atlas_emissive.png` — $512\times 256$, PNG, Core emissive luminance mask.
  4. `salvage_dust_icon.png` — $128\times 128$, PNG, Salvage bone dust currency icon.
  5. `currency_metadata.json` — Tier mapping and exchange rate metadata.
- **DRQ 08: `DRQ-20261001-ECO-LOOT-DROP-PARTICLES`** (Target: `client/webapp/assets/savage_vfx/`)
  1. `loot_beams_atlas.png` — $256\times 512$, PNG, Vertical loot beam gradients by rarity (< 150KB).
  2. `ground_sparkle_particle.png` — $128\times 128$, PNG, Additive ground glint particle billboard.
  3. `loot_beam_shader.metal` — Apple Metal compute/fragment shader for beam flare & oscillation.
  4. `loot_vfx_metadata.json` — Color tint hex codes & animation timers.

### Group 3: Narrative & NPC (NPC) — 10 Deliverables
- **DRQ 09: `DRQ-20261001-NPC-CUTSCENE-STORYBOARD`** (Target: `client/webapp/assets/illustrations/`)
  1. `splash_chapter1_exile.png` — $1024\times 1024$, PNG, Chapter 1 exile shores splash art (< 2MB).
  2. `splash_chapter2_crypt.png` — $1024\times 1024$, PNG, Chapter 2 primordial crypts splash art (< 2MB).
  3. `splash_chapter3_flame.png` — $1024\times 1024$, PNG, Chapter 3 burning sanctuary splash art (< 2MB).
  4. `cutscene_cinematic_frame.png` — $1024\times 1024$, PNG, Letterbox cinematic frame overlay.
  *(Note: No metadata JSON required for story splash art).*
- **DRQ 10: `DRQ-20261001-NPC-FERAL-ELDERS-AVATARS`** (Target: `client/webapp/assets/characters/portraits/`)
  1. `npc_elders_portraits_atlas.png` — $512\times 1024$ (or $512\times 512$), PNG, 5 Elder avatar portraits ($256\times 256$ each) (< 2MB).
  2. `npc_elders_standees_atlas.png` — $512\times 1024$, PNG, Half-body dialogue standees.
  3. `npc_elders_metadata.json` — NPC ID mapping (`elder_duoctieu`, `elder_tongson`, etc.).
- **DRQ 11: `DRQ-20261001-NPC-QUEST-SCROLL-VARIANTS`** (Target: `client/webapp/assets/ui/quests/`)
  1. `quest_scroll_variants_atlas.png` — $512\times 512$, PNG, 4 Parchment scroll themes ($256\times 256$ each) (< 150KB).
  2. `quest_stamp_badges.png` — $256\times 256$, PNG, Bounty/Secret Directive wax seals.
  3. `quest_scroll_metadata.json` — Slice offsets and text safe-margins.

### Group 4: Security & Anti-Cheat (SEC) — 10 Deliverables
- **DRQ 12: `DRQ-20261001-SEC-ALERT-BADGES-QUARANTINE`** (Target: `client/webapp/assets/ui/security/`)
  1. `security_badges_atlas.png` — $256\times 256$, PNG, 4 warning shields & hazard icons ($128\times 128$) (< 150KB).
  2. `quarantine_hazard_banner.png` — $512\times 128$, PNG, Full-width emergency quarantine hazard tape.
  3. `security_ui_metadata.json` — Alert severity level coordinate offsets.
- **DRQ 13: `DRQ-20261001-SEC-SHIELD-ACTIVE-ANIMATION`** (Target: `client/webapp/assets/savage_vfx/`)
  1. `security_shield_anim_atlas.png` — $512\times 256$, PNG, 8-frame rotating shield loop ($128\times 128$ frames) (< 150KB).
  2. `security_shield_anim_atlas_normal.png` — $512\times 256$, PNG, Tangent-Space Sobel Normal Map (Blue $\ge 128$).
  3. `shield_pulse.metal` — Apple Metal shader for holographic shield pulse & fresnel rim light.
  4. `security_shield_metadata.json` — Frame timing (120 FPS ProMotion) & atlas coordinates.
- **DRQ 14: `DRQ-20261001-SEC-UI-FORENSIC-WATERMARK`** (Target: `client/webapp/assets/ui/security/`)
  1. `forensic_watermark_tile.png` — $256\times 256$, PNG, 1-2% alpha steganography noise pattern (< 50KB).
  2. `bot_trap_hitbox_atlas.png` — $256\times 256$, PNG, Invisible decoy hitboxes for bot-macro detection.
  3. `forensic_metadata.json` — Grid dimensions and steganography decode seed parameters.

### Group 5: Server Engine & AI Totem (SRV) — 11 Deliverables
- **DRQ 15: `DRQ-20261001-SRV-AGENT-ORB-ACTIVATION-VFX`** (Target: `client/webapp/assets/savage_vfx/`)
  1. `agent_orb_activation_pillars.png` — $256\times 512$, PNG, 3-tier light pillars ($128\times 512$ stripes) (< 150KB).
  2. `agent_summon_rune_circle.png` — $256\times 256$, PNG, Ground activation rune summoning circle.
  3. `agent_orb_beam.metal` — Apple Metal compute/fragment shader for swirling primal energy.
  4. `agent_orb_vfx_metadata.json` — Tier durations and particle birth rate configuration.
- **DRQ 16: `DRQ-20261001-SRV-AOI-SYNC-TELEMETRY-VISUAL`** (Target: `client/webapp/assets/ui/telemetry/`)
  1. `network_telemetry_atlas.png` — $256\times 128$, PNG, Badges for 30Hz tickrate, ping, desync alert ($64\times 64$) (< 50KB).
  2. `aoi_grid_debug_line.png` — $128\times 128$, PNG, Dashed AoI boundary tile line.
  3. `telemetry_metadata.json` — Threshold bounds (< 25ms green, < 60ms yellow, > 60ms red).
- **DRQ 17: `DRQ-20261001-SRV-HARVEST-REPORT-OVERLAY`** (Target: `client/webapp/assets/ui/delegation/`)
  1. `harvest_report_modal.png` — $1024\times 512$, PNG, Offline delegation summary pergament (< 150KB).
  2. `harvest_stat_icons_atlas.png` — $256\times 256$, PNG, Stat badges (EXP, kills, bloodstones, time elapsed).
  3. `btn_claim_rewards.png` — $256\times 128$, PNG, Glowing claim reward action button ($54\times 54\text{ pt}$ safe touch).
  4. `harvest_ui_metadata.json` — Modal layout anchors and item list container dimensions.

### Group 6: Game Systems & World (SYS) — 18 Deliverables
- **DRQ 18: `DRQ-20261001-SYS-CRAFTING-STATION-UI`** (Target: `client/webapp/assets/ui/crafting/`)
  1. `crafting_station_panel.png` — $1024\times 512$, PNG, Anvil & furnace modal interface (< 150KB).
  2. `crafting_slots_atlas.png` — $256\times 256$, PNG, Base item slot, catalyst slots, modification preview.
  3. `crafting_tier_badges.png` — $256\times 256$, PNG, 15 Affix Tier indicators (T1-T15 badges).
  4. `crafting_ui_metadata.json` — Slot coordinates and socket snap points.
- **DRQ 19: `DRQ-20261001-SYS-HIDEOUT-SAFEHAVEN-PROPS`** (Target: `client/webapp/assets/map/props/`)
  1. `hideout_props_atlas.png` — $512\times 512$, PNG, Isometric props (tent, bonfire, weapon rack, chests) (< 150KB).
  2. `hideout_props_atlas_normal.png` — $512\times 512$, PNG, Tangent-Space Sobel Normal Map (Blue $\ge 128$).
  3. `target_dummy_prop.png` — $256\times 256$, PNG, Indestructible target dummy sprite (Safe Haven only).
  4. `hideout_props_metadata.json` — Collision footprints and depth sorting pivots.
- **DRQ 20: `DRQ-20261001-SYS-MAP-DEVICE-ARENA`** (Target: `client/webapp/assets/map/`)
  1. `map_device_atlas.png` — $512\times 512$, PNG, 6-Portal Astral Map Device isometric apparatus (< 2MB).
  2. `map_device_atlas_normal.png` — $512\times 512$, PNG, Tangent-Space Sobel Normal Map (Blue $\ge 128$).
  3. `tile_boss_arena_lava.png` — $512\times 512$, PNG, Molten magma arena floor tile.
  4. `tile_boss_arena_bone.png` — $512\times 512$, PNG, Calcified bone waste arena floor tile.
  5. `map_device_metadata.json` — 6 portal socket positions and arena tiling grid definitions.
- **DRQ 21: `DRQ-20261001-SYS-PASSIVE-TREE-NODES`** (Target: `client/webapp/assets/ui/passive_tree/`)
  1. `passive_node_atlas.png` — $1024\times 1024$, PNG, Small, Notable, Keystone & Socket nodes (< 150KB).
  2. `passive_node_atlas_normal.png` — $1024\times 1024$, PNG, Tangent-Space Sobel Normal Map (Blue $\ge 128$).
  3. `passive_node_atlas_emissive.png` — $1024\times 1024$, PNG, Node allocation glow & vein luminescence mask.
  4. `constellation_bg.png` — $1024\times 1024$, PNG, Dark astral void background with primal bone constellations.
  5. `passive_nodes_metadata.json` — Node bounding frames, anchor origins, and radius metrics.

---

## 4. Technical Specifications & Compliance Rules

1. **Power-of-Two Dimensions ($2^n$)**:
   - All 55 PNG image files MUST strictly adhere to $2^n$ dimensions along both axes ($128, 256, 512, 1024$).
   - Valid rectangular aspect ratios include $1024\times 512$, $512\times 256$, $256\times 512$, and $256\times 128$.
2. **Tangent-Space Sobel Normal Maps**:
   - Exactly 6 DRQs mandate normal maps: `DRQ 06` (Crafting Orbs), `DRQ 07` (Bloodstones), `DRQ 13` (Security Shield), `DRQ 19` (Hideout Props), `DRQ 20` (Map Device & Arena), `DRQ 21` (Passive Tree Nodes).
   - Strict mathematical validation rule: Blue channel mean $\ge 128$ ($Z$-vector pointing outward from surface normal).
3. **Emissive Core Masks**:
   - Dedicated deliverable files: `bloodstones_atlas_emissive.png` (DRQ 07) and `passive_node_atlas_emissive.png` (DRQ 21).
   - Core emissive specs defined for: Crafting Orbs (DRQ 06), Security Shield (DRQ 13), and Astral Map Device (DRQ 20).
4. **Apple Metal Shaders (`.metal`)**:
   - 3 Apple Metal shaders required for ProMotion 120Hz ($8.33\text{ ms/frame}$ budget):
     * `loot_beam_shader.metal` (DRQ 08) — Vertical light column oscillations & beam flares.
     * `shield_pulse.metal` (DRQ 13) — Hardware App Attest biometric rim glow & pulse distortion.
     * `agent_orb_beam.metal` (DRQ 15) — Totemic soul pillar vortex & rune illumination.
5. **Atlas Metadata JSON**:
   - 20 of 21 DRQs require structured JSON metadata defining frame coordinates `[x, y, w, h]`, 9-slice borders, anchors, and animation frame sequences. Only `DRQ 09` (Cutscene Splash Art) is exempt.
6. **Size Budget Constraints**:
   - UI elements, HUD atlases, VFX: `< 150KB` (or `< 50KB` for telemetry/forensics/props).
   - Full-bleed illustrations, high-res splash art, character standees, boss arena tilesets: `< 2MB`.

---

## Features Discovered

| # | Category | Feature | Description | Inputs | Outputs | Error Behavior | Discovered Via |
|---|----------|---------|-------------|--------|---------|----------------|----------------|
| 1 | TECH_ART | Power-of-Two Dimension Enforcement | Validates that image width and height satisfy $n > 0 \land (n \ \& \ (n-1)) == 0$ | PNG/WebP images | Boolean verdict | Fails QA Stage 1 with dimension error | `design_pipeline_types.py:86` |
| 2 | TECH_ART | Tangent-Space Normal Map Audit | Verifies 3-channel RGB normal map with Blue channel mean $\ge 128$ | `*_normal.png` files | Mean blue value | Rejects if Blue mean < 128 or channels != 3 | `ORIGINAL_REQUEST.md:734` & DRQ specs |
| 3 | TECH_ART | Emissive Mask Core Glow | Dedicated black/white luminance mask for ma-năng core and active nodes | `*_emissive.png` | Alpha/Luminance mask | Ignored or unlit if missing | DRQ 07, 21 deliverables & specs |
| 4 | TECH_ART | Metal Compute/Fragment Shaders | GPU compute/fragment code compiled for iOS Apple Metal ProMotion 120Hz | `.metal` shader files | Compiled metallib / shader bytecode | Shader compile failure, fallback to CPU | DRQ 08, 13, 15 deliverables |
| 5 | PIPELINE | Atlas Metadata Slicing Specification | Standardized JSON coordinate schemas for sprite extraction and UI 9-slice | `*_metadata.json` | Parsed frame dictionary | UI rendering misaligns if schema invalid | 20 DRQ deliverables |
| 6 | PIPELINE | Two-Stage Approval Gate | Formal 2-stage verification: Cấp 1 QA Technical Audit -> Cấp 2 CEO & Art Director Audit | DRQ markdown & pending assets | Updated DRQ status & audit notes | Rejects to `rejected/` if audit fails | `design_pipeline_manager.py:278` |
| 7 | CLIENT_SYNC | WebApp Asset Synchronization | Automated copying of approved assets from `assets/approved/` to `client/webapp/assets/` | Approved asset bundles | Synced files in webapp directory | File copy error if target dir unwritable | `design_pipeline_manager.py:417` |
| 8 | UI_UX | Forensic Steganography Tile | High-frequency invisible watermark noise (1-2% alpha) and decoy bot hitboxes | Viewport screen tile | Canvas forensic layer | Non-traceable if omitted | DRQ 14 specs |
| 9 | UI_UX | Safe Area Dynamic Island Adaptation | Top-right and edge anchor positioning preventing UI occlusion by notch/island | Viewport insets | Safe touch coordinates | Touch controls occluded by camera notch | DRQ 03, 13, 18 specs |
| 10 | SYSTEMS | Safe Haven Indestructible Dummy | Target Dummy prop with `isDummy: true` for hideouts, 0 hostile spawns | Hideout entity seed | Static damage sponge entity | Throws error if hostile monster spawns | DRQ 19 & `zone_engine.py` |

---

## Edge Cases

| # | Feature | Input | Observed Behavior |
|---|---------|-------|-------------------|
| 1 | Dimension Verification | Non-power-of-two image (e.g. $1000\times 500$ or $1920\times 1080$) | `qa_technical_audit()` logs error: `File {name} dimensions ({w}x{h}) are not power of 2.` and sets verdict to `FAIL`. |
| 2 | Normal Map Blue Mean | Inverted or non-tangent normal map (e.g. object-space or flat grey, Blue mean = 100) | Violates engineering standard `Blue channel mean >= 128`, causing incorrect PBR lighting and shadow inversion under dynamic shaders. |
| 3 | Asset Size Budget | File size exceeding budget (e.g. `virtual_joystick_atlas.png` at 350KB, budget < 150KB) | `qa_technical_audit()` flags violation: `File {name} size ({size_kb}KB) exceeds limit of {max_file_size_kb}KB.` and rejects to `rejected/`. |
| 4 | Missing Atlas Metadata | DRQ lacking metadata JSON when deliverables require it | Pipeline tools and WebApp spritesheet unpacker fail to resolve tile offsets, leading to missing textures or blank UI slots. |
| 5 | Storyboard Metadata Absence | `DRQ-20261001-NPC-CUTSCENE-STORYBOARD` has 4 PNGs but no JSON deliverable | Normal for full-bleed story splash screens; asset pipeline must tolerate standalone concept illustrations without requiring metadata JSON. |
| 6 | Emissive Mask Nomenclature | DRQs with emissive requirements in specs vs explicit deliverables | DRQ 07 and DRQ 21 explicitly require separate `*_emissive.png` files; DRQ 06, 13, 20 describe emissive core properties in specs that can be embedded in alpha channel or separate mask. |
| 7 | Metal Shader Compilation | iOS Metal shader (`.metal`) deployed on non-Apple environments (Web/Windows) | WebApp client requires fallback GLSL/WebGL shader or CSS animation fallback when running outside iOS native Metal runtime. |
| 8 | Subagent Roster Mapping | 21 DRQs assigned to 4 distinct subagents (`mobile_ui_designer`: 10, `concept_artist`: 4, `isometric_animator`: 4, `vfx_tech_artist`: 3) | Dispatcher must route generation and reviews to specialized domain agents per the Autonomous Game Studio directives. |

---

## 5-Component Handoff Report

### 1. Observation
- Verified all 21 markdown files in `docs/design_requests/inbox/`. Every file contains valid metadata (ID, title, requesting department, priority, category, subagent, dimensions, size budget, normal map flag, deliverables list, and two-stage approval gate).
- Total file count in inbox: exactly 21 files.
- Deliverables count across all 21 files: exactly 78 items (55 PNGs, 3 Metal shaders, 20 JSON metadata files).
- Normal maps explicitly required in 6 files (`DRQ 06, 07, 13, 19, 20, 21`).
- Metal shaders required in 3 files (`DRQ 08, 13, 15`).
- Emissive masks required as explicit deliverable in 2 files (`DRQ 07, 21`) and specified in technical specs in 3 additional files (`DRQ 06, 13, 20`).
- Pipeline status command `python -m tools.asset_pipeline.design_pipeline_cli report` confirmed 21 inbox, 0 in progress, 0 pending, 18 approved.

### 2. Logic Chain
1. *Premise*: Acceptance criteria R1, R2, R3 in `ORIGINAL_REQUEST.md` (2026-10-02T06:36:44Z) demand full delivery, tech-art validation, two-stage approval, and client synchronization for all 21 inbox DRQs.
2. *Premise*: Each DRQ specifies exact deliverables in Section 4 and technical constraints in Sections 1 & 3.
3. *Inference*: To achieve zero-defect implementation, downstream worker subagents (`concept_artist`, `mobile_ui_designer`, `isometric_animator`, `vfx_tech_artist`) must generate precisely the 78 deliverables meeting power-of-2 dimensions ($2^n$), size budgets (< 50KB, < 150KB, < 2MB), and PBR normal map standards (Blue $\ge 128$).
4. *Inference*: The 20 JSON metadata files and 3 Metal shaders must accompany the images to pass Stage 1 QA Technical Audit and enable automated synchronization into `client/webapp/assets/`.

### 3. Caveats
- No assets have been generated yet in `assets/pending_review/` (spec miner is read-only).
- Three DRQs (`DRQ 06`, `DRQ 13`, `DRQ 20`) mention emissive core masks in the technical specifications table, but their Section 4 deliverables lists do not separate the emissive mask into a standalone file name (unlike DRQ 07 and DRQ 21). Workers should follow Section 4 deliverables or provide combined RGBA packing as appropriate.

### 4. Conclusion
- Complete, unambiguous specification survey for all 21 DRQs completed.
- Full inventory of 78 deliverables, power-of-2 dimensions, normal map requirements, emissive requirements, Metal shaders, atlas metadata, and size budgets cataloged and verified.
- The pipeline is primed for immediate dispatch to specialized design subagents.

### 5. Verification Method
- Run `python -m tools.asset_pipeline.design_pipeline_cli report` to verify the 21 inbox DRQs.
- Inspect `c:\Projects\FreeExile\.agents\teamwork\spec_miner_survey_1\survey_summary.json` for machine-readable JSON structure of all 21 DRQs.
- Invalidation conditions: If any deliverable in the 21 DRQs changes filename, dimensions, or path, this survey must be updated.
