Estimate: 25m · Depends on: 1.1.5, 1.1.6, 1.1.7
Mid-stream Subtask added between 1.1.7 and 1.1.8 as a precondition for the starter snapshots. Two unrelated-but-paired concerns landed in one Subtask:
Card-wrapped auth layout. The Story-1.1.1 mockup was Clay-style (no card chrome, wordmark top-left). User asked mid-validation to flip to a more modern card-wrapped layout — a white card with soft shadow, centered on a tinted page background — and to remove the placeholder “Motir” wordmark entirely. The wordmark removal is the deeper decision: in a real Motir-planned project, the brand mark is a late-Epic-4 Subtask (agent or human task) scheduled when the product has enough surface for the brand decision to be informed. Shipping UI Subtasks without placeholder branding avoids a filler element becoming load-bearing across every screen. Captured as a current-state principle in MOTIR.md.
Vercel preview-cleanup workflow. notes.html mistake #25 ("Vercel-Neon Marketplace integration auto-provisions Neon branches per preview but doesn't auto-tear them down") had been tracked as unresolved operational debt with a "wait until cadence justifies" deferral. The 1.1.8 + 1.1.9 starter snapshots multiply branch pressure (each new preview deploy gets its own Neon branch), so cleanup became precondition rather than nice-to-have. A .github/workflows/cleanup-preview-deployments.yml workflow now listens for pull_request: closed and deletes every Vercel preview deployment for the closing PR's head ref; the Vercel-Managed Neon integration cascades the branch deletion automatically. Implementation detail worth flagging: initial instinct was to delete the Neon branch directly via the Neon API, but the docs check revealed that under the Vercel-Managed integration, Neon-branch cleanup is bound to Vercel deployment lifecycle (not Git ref lifecycle), so the right primitive is to delete the Vercel deployment. The workflow self-validated on its own first PR merge — when 1.1.10 merged, the just-active workflow caught its own closure event and deleted PR #20's preview.
Why bundled into one Subtask: both changes were small enough (single-file edit + new workflow file) that splitting them would have meant two PRs with ~30 min of round-trip overhead each. The card change was the trigger; the cleanup workflow was the user's gated precondition before dispatching 1.1.8 + 1.1.9 ("we need the neon branch clean on PR merge too in the pipeline before doing 1.1.8 and 1.1.9, add this in the current PR"). Both shipped in PR #20 with two focused commits.
Execution mode: first Subtask where the planner executed directly rather than dispatching a coding agent. Justification: the scope was small (one layout file + one workflow file + two doc updates), the decisions were settled, and the agent-dispatch overhead (worktree creation, prompt-writing, env setup) outweighed the implementation cost. Calibration point for future small UI / infra Subtasks.
app/(auth)/layout.tsx renders the auth pages inside a white card with soft shadow, centered on a tinted page background. No placeholder wordmark anywhere in the layout.--radius-card, --shadow-elevated, --color-surface) — no new tokens added..github/workflows/cleanup-preview-deployments.yml fires on pull_request: closed, enumerates Vercel preview deployments by branch ref, and DELETEs each via the Vercel API. The Vercel-Managed Neon integration cascades the Neon-branch deletion.secrets.VERCEL_TOKEN (Vercel Access Token, team-scoped) and hardcoded project/org IDs for motir-core. For the starters (1.1.8 + 1.1.9), the same workflow is parameterized with GitHub repo vars instead of hardcoded IDs so each user wires their own.app/(auth)/layout.tsx — current Clay-style layout from 1.1.5app/globals.css — existing radius/shadow/surface tokens to composeexpires_at, manual)v6/deployments (list) and v13/deployments/{id} (delete)