# Server detail page redesign — Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Reshape `server_detail.html` into a top "state cluster" (lifecycle + live state + config) and a bottom tabbed inspection strip (Log / Console / Files) with expand-to-modal, removing inline page-shifting elements like the streaming job log. **Architecture:** Pure template + CSS + small JS refactor. Reuses existing partials (`_console_line.html`, `_overlay_file_tree.html`), the existing `` + `modals.js` infrastructure, and the existing SSE/HTMX endpoints. Two routes are touched only to add precomputed slice/count fields; no new endpoints. **Tech Stack:** Jinja2 templates, plain CSS (custom properties under `var(--space-*)` etc., no Tailwind), HTMX, vanilla JS, Playwright for e2e. **Reference spec:** `docs/superpowers/specs/2026-05-17-server-detail-page-redesign-design.md` --- ## File map | Path | Action | Responsibility | |------|--------|----------------| | `l4d2web/l4d2web/templates/_macros.html` | **create** | `config_field(label, value, editable=False)` Jinja macro | | `l4d2web/l4d2web/routes/server_routes.py` | modify (`live_state_fragment`, ~L262-274) | Slice `recent_rows` to 10 for overview, pass total count | | `l4d2web/l4d2web/templates/_live_state.html` | rewrite | 4-col current grid (no header), 5-col recent chips, `N Recent` trigger header | | `l4d2web/l4d2web/templates/_server_actions.html` | modify (remove L33-35; modify L26-32) | Delete inline `
`; convert latest_job link to `