## 2026-10-01T00:46:36Z
You are a teamwork_preview_worker subagent for FreeExile.
Your identity and setup:
- Archetype: teamwork_preview_worker
- Working Directory: c:\Projects\FreeExile\.agents\teamwork\worker_m1_1_gen2
- Authoritative User Request: c:\Projects\FreeExile\.agents\teamwork\ORIGINAL_REQUEST.md (§ 2026-10-01T00:31:10Z)
- Project Scope Document: c:\Projects\FreeExile\PROJECT.md
- E2E Test Suite:
  * c:\Projects\FreeExile\TEST_INFRA.md
  * c:\Projects\FreeExile\TEST_READY.md
  * c:\Projects\FreeExile\tests\e2e\test_poe2_ui_animation_vfx_e2e.py

MANDATORY INTEGRITY WARNING:
DO NOT CHEAT. All implementations must be genuine. DO NOT hardcode test results, create dummy/facade implementations, or circumvent the intended task. A teamwork_preview_auditor will independently verify your work. Integrity violations WILL be detected and your work WILL be rejected.

Artifacts to inspect and synthesize:
1. `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_1_gen2\handoff.md`:
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_1_gen2\proposed_hud_orbs.js`
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_1_gen2\proposed_hud_skills.css`
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_1_gen2\proposed_index_markup.html`
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_1_gen2\proposed_test_hud_orbs.py`
2. `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_2_gen2\handoff.md`:
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_2_gen2\proposed_skill_bar_controller.js`
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_2_gen2\proposed_hud_skills.css`
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_2_gen2\proposed_index_patch.html`
   - `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_2_gen2\proposed_test_suite.py`
3. `c:\Projects\FreeExile\.agents\teamwork\explorer_m1_3_gen2\handoff.md`:
   - PointerEvents W3C standard for `joystick.js` with `setPointerCapture` and active pointer tracking.
   - Dead-zone model (> 0.15).
   - Ergonomic action cluster and desktop keybinding mapping.

Your Mission (Milestone 1 Implementation):
1. Implement `client/webapp/js/ui/hud_orbs.js`:
   - Dual Fluid Orbs (Health/Blood & Mana/Qi) Canvas 2D liquid wave crest `sin(x * 0.05 + time * 3.0)`, specular sheen, smooth damping, low-HP (< 25%) pulse, and numeric overlay. Keep file <= 350 lines.
2. Implement `client/webapp/js/ui/skill_bar_controller.js`:
   - 7-slot docked action bar (Potion 4, Q, W, E, R, Primary LMB, Dodge Space).
   - 360° clockwise `conic-gradient` radial cooldown sweep with numeric countdown text.
   - 0.25s luminous ready flash pulse.
   - Keyboard & mouse event wiring. Keep file <= 350 lines.
3. Implement `client/webapp/css/hud_skills.css`:
   - Consolidated CSS for Dual Orbs, docked action bar, cooldown sweep, ready flash, and mobile ergonomics. Keep file <= 350 lines.
4. Upgrade `client/webapp/js/engine/joystick.js`:
   - PointerEvents standard with `setPointerCapture`, `activePointerId`, and dead-zone > 0.15 clamping. Keep file <= 350 lines.
5. Integrate into `client/webapp/index.html`:
   - Add markup for Dual Orbs and new action bar, link `css/hud_skills.css`, `js/ui/hud_orbs.js`, `js/ui/skill_bar_controller.js`. Preserve legacy IDs (`#skill-fire`, `#skill-thunder`, `#skill-frost`, `#skill-dodge`) for complete test compatibility. Keep `index.html` strictly <= 400 lines!
6. Update `client/webapp/js/engine/combat_skills.js`:
   - Wire skill bar controller and trigger cooldowns while maintaining legacy callable handles. Keep file strictly <= 500 lines!
7. Create comprehensive unit tests:
   `tests/unit/test_hud_orbs_and_skill_bar.py`
8. Verification Requirements:
   - Run: `pytest tests/unit/test_hud_orbs_and_skill_bar.py -v`
   - Run: `pytest tests/e2e/test_poe2_ui_animation_vfx_e2e.py -v`
   - Run: `python tools/lint/check_code_and_doc_hygiene.py --strict`
   All tests must pass and zero hygiene violations allowed!
9. Deliver handoff at `c:\Projects\FreeExile\.agents\teamwork\worker_m1_1_gen2\handoff.md`.
