For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: Make the TUI input area feel closer to Codex by giving it a floating input-shell look with clearer bottom spacing.
Architecture: Keep the existing REPL loop and natural-language flow intact. Only reshape the prompt chrome: extract a small render helper in the TUI effects layer, use it from the app loop, and lock the visual contract with a focused CLI test.
Tech Stack: TypeScript, Node readline, Vitest
Files:
packages/cli/src/__tests__/tui-input-chrome.test.tspackages/cli/src/tui/effects.tsStep 1: Write the failing test
Add tests that expect:
Step 2: Run test to verify it fails
Run: pnpm --dir packages/cli exec vitest run src/__tests__/tui-input-chrome.test.ts
Expected: FAIL because the helper does not exist yet.
Step 3: Write minimal implementation
Add a small helper in effects.ts that builds the input chrome description from terminal width.
Step 4: Run test to verify it passes
Run: pnpm --dir packages/cli exec vitest run src/__tests__/tui-input-chrome.test.ts
Expected: PASS
Files:
packages/cli/src/tui/app.tspackages/cli/src/tui/effects.tsStep 1: Write the failing test
Extend the input-chrome test (or add a small app-facing assertion) so the exported prompt prefix and spacing are stable enough to drive the REPL loop.
Step 2: Run test to verify it fails
Run: pnpm --dir packages/cli exec vitest run src/__tests__/tui-input-chrome.test.ts src/__tests__/tui-layout.test.ts
Expected: FAIL until the app loop uses the new chrome contract.
Step 3: Write minimal implementation
Update app.ts so:
Step 4: Run test to verify it passes
Run: pnpm --dir packages/cli exec vitest run src/__tests__/tui-input-chrome.test.ts src/__tests__/tui-layout.test.ts
Expected: PASS
Files:
packages/cli/src/tui/app.tspackages/cli/src/tui/effects.tspackages/cli/src/__tests__/tui-input-chrome.test.tsStep 1: Run package build
Run: pnpm --dir packages/cli run build
Expected: PASS
Step 2: Commit
git add docs/plans/2026-04-09-tui-floating-input-implementation.md packages/cli/src/tui/app.ts packages/cli/src/tui/effects.ts packages/cli/src/__tests__/tui-input-chrome.test.ts
git commit -m "feat(tui): float input chrome above terminal edge"