diff --git a/docs/superpowers/specs/2026-03-13-script-library-pane-takeover-design.md b/docs/superpowers/specs/2026-03-13-script-library-pane-takeover-design.md
new file mode 100644
index 00000000..3adcaf62
--- /dev/null
+++ b/docs/superpowers/specs/2026-03-13-script-library-pane-takeover-design.md
@@ -0,0 +1,190 @@
+# Script Library — Left Pane Takeover Design Spec
+
+> **Created:** 2026-03-13
+> **Feature:** Redesign Script Library left pane to have two distinct modes: Browse and Configure
+
+---
+
+## Overview
+
+The Script Library left pane gains two distinct modes. In **Browse mode** the user sees the full template list with filter bar and a "Configure →" button on each card. Clicking "Configure →" transitions the entire left pane to **Configure mode**, which replaces the list with a full-height view of the selected template's header, parameter form, and action buttons. The right pane (preview/output) is always visible. "Back to library" returns to Browse mode with filter/search state preserved.
+
+---
+
+## Goals
+
+- Make template selection intentional (no accidental click-to-configure)
+- Give the parameter form more vertical space
+- Keep the output preview always visible on the right
+- Preserve filter/search state across Browse ↔ Configure transitions
+
+---
+
+## Non-Goals
+
+- No changes to the right pane (`ScriptPreview`, `ScriptGeneratorPanel` output section)
+- No changes to the Zustand store shape or actions
+- No changes to the filter/search debounce logic
+- No changes to routing
+
+---
+
+## Left Pane — Two Modes
+
+### Browse Mode
+
+Rendered when `selectedTemplate === null` OR when the user has returned via "Back to library".
+
+Layout (top to bottom, full pane height):
+
+1. **Filter bar** (`ScriptFilterBar`) — category pills + search input, same as current
+2. **Template list** (`ScriptTemplateList`) — scrollable, fills remaining height
+
+**TemplateCard changes:**
+- Remove the full-card `onClick` that calls `selectTemplate()`
+- Remove the active/selected visual state (`bg-primary/10 border-l-[3px]` etc.) — cards are never "selected" in browse mode, they are only "configured"
+- Add a **"Configure →"** button to each card (right-aligned, replaces the old click-anywhere behavior)
+ - Style: `bg-primary/10 border border-primary/20 text-primary text-xs px-2.5 py-1 rounded-md hover:bg-primary/20 transition-colors`
+ - On click: calls `selectTemplate(template.id)` then transitions pane to Configure mode
+ - The rest of the card (name, description, tags, complexity badge) is non-interactive
+
+### Configure Mode
+
+Rendered when `selectedTemplate !== null` (or `isLoadingDetail === true`).
+
+The entire left pane (including filter bar area) is replaced by the Configure view. No filter bar visible.
+
+Layout (top to bottom, full pane height, `overflow-y-auto`):
+
+1. **Back button** — top of pane
+ - `← Back to library`
+ - Style: `flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors mb-4`
+ - On click: calls `store.clearOutput()` then sets pane mode back to Browse (see State section)
+ - Does NOT call `selectTemplate(null)` or clear `selectedTemplate` in the store — the store selection is preserved; only the pane view changes
+
+2. **Template header**
+ - Name: `text-base font-semibold font-heading text-foreground`
+ - Description (if present): `text-sm text-muted-foreground mt-0.5`
+ - Tag row: complexity badge + category name + template tags (first 3, overflow as `+N`) — same badge styles as current `TemplateCard`
+ - `ShieldAlert` elevation icon if `requires_elevation`
+ - Separator: `border-t border-border mt-3 pt-3`
+
+3. **`ScriptParameterForm`** (existing component, `canGenerate` prop unchanged)
+
+4. **Action bar**
+ - **Generate** button: full-width, `bg-gradient-brand`, same disabled/loading behavior as current
+ - **Download .ps1** + **Copy** buttons: side by side below Generate, each `flex-1`
+ - Error text below if `generateError` is set
+ - Warnings callout above Generate if `generationWarnings.length > 0` (same amber box as current)
+
+**Loading state:** When `isLoadingDetail === true`, the Configure pane shows a centered `