User Flow Map — Personal Workstation

Alignment Status: review · Tier: prototype · Category: product-design · Skill: user-flow-map · Date: 2026-06-17

Summary. This is a review (pre-approval) alignment page for a redo-from-scratch user flow map of the gblock-party personal workstation — the single-user dogfood environment for managed, always-on AI coding agents. It maps entry points, a happy path (S1→Ship), seven named alternate-path branch roots, eight decision points (D1–D8), a ten-screen inventory (S1–S10), per-screen action/state matrices, failure/recovery, handoffs, and low-fidelity wireframe notes.

The canonical artifacts have already been written to design/ and the user confirmed assumptions ("looks good to me") and coverage conversationally. The gates below ask you to confirm those already-written artifacts. Two material changes since the prior version: (1) Claude Code ToS is now resolved — Anthropic permits subscription use from third-party apps (2026-06-17), so Claude Code is first-class with no asterisk; and (2) output location was corrected from specs/ to design/.

✓ Alignment Confirmed

This page is current for the completed alignment cycle. It is finished but amendable: later research can amend it only by archiving this confirmed page first and highlighting what changed. Confirmed means approved/current, not immutable.

1. Scope & Context

Redo-from-scratch rebuild. Supersedes the prior flow map that was written to specs/ (incorrect location — pre-prototype flow maps are canonical under design/). Prior copies archived under docs/history/archive/2026-06-17/104712/.

Explicit Non-Goals

2. Assumptions Checkpoint

Confirmed Assumptions

Assumptions Needing Validation

Gate 1: Flow Assumptions approved

The assumptions above are already written into design/user-flow-personal-workstation.md, and you confirmed them conversationally ("looks good to me"). Please confirm the written record.

Are the confirmed and needs-validation assumptions accurately captured as written?

Decision: Yes — confirmed as written

3. Technical Architecture

Workflow-level context only. These notes establish what surfaces the flow connects to; they are not implementation specs.

Tool Integration Patterns

PatternExamplesIntegration MethodNotes
API-nativeClaude Agent SDKREST API, server-side sessionsCleanest integration; direct programmatic control. First-class — no ToS caveat (see below).
Headless CLI with daemonCodex CLI (remote-control / app-server), Cursor (agent worker start)Daemon on managed backend, Unix socket/URL task submissionBuilt-in remote capabilities; moderate integration effort.
Headless CLI (process mgmt)Claude Code CLI, Aider, Continue (cn), Cline CLI, Copilot CLI, Augment (auggie)Process supervision, stdout captureMultica-style stdout parsing; works with any CLI tool.
IDE-dependentWindsurf, TabnineRequires desktop IDE runtimeNot viable for headless backend — out of scope.

Claude Code ToS — resolved (2026-06-17)

Per a recent Anthropic announcement, Claude Code subscriptions are now usable from third-party applications. Claude Code CLI and the Claude Agent SDK are therefore first-class supported BYO-client tools with no ToS asterisk and no deferral. The architecture framing is unchanged: gblock-party runs on the user's managed VM with the user's own subscription; the Agent Board is a router/connector, never a proxy — it never touches API keys or model traffic.

Session Persistence by Tool

ToolResume?State LocationBest Integration
Codex CLIYes (codex resume <id>)~/.codex/sessions/remote-control daemon + Unix socket
Claude Agent SDKYes (API-native)Server-sideDirect REST API
Claude Code CLIYes (--continue, --resume <id>)~/.claude/projects/ JSONLProcess mgmt + --resume
CursorYes (headless worker)Worker-managedagent worker start + URL
AiderNo built-inGit commits as checkpointsProcess mgmt
Continue (cn)Yes (cn --resume)~/.continue/sessions/ JSONProcess mgmt + --resume
Cline CLIPartial (cron persists)Config-shared with IDEProcess mgmt + MCP
Copilot CLIYes (/memory, /chronicle)GitHub-managedProcess mgmt + prompt mode

Access Mode Architecture

Mode A — Dashboard Router

Status cards, approval queue, async recap. Multica-style stdout parsing for real-time status. Low latency, mobile-friendly. Primary interface for monitoring and quick interactions.

Mode B — Terminal Drill-Down

Full xterm.js terminal via WebSocket to the tmux session. Sub-100ms keystroke echo target. For interactive debugging, manual commands, and deep agent interaction. Desktop-optimized.

Mode C — Code-Server IDE

VS Code in the browser via code-server. Desktop-replacement experience for extended sessions. Full editor capabilities without a local IDE. Highest resource cost — MVP ROI is an open question.

4. Entry Points & Preconditions

Entry PointPreconditionRoutes To
Open PWA URL (first visit)NoneS2 Setup Wizard
Open PWA URL (returning)Config exists, session validS3 Agent Board
Open PWA URL (session expired)Config exists, session expiredS1 GitHub Auth
Push notification tapPWA installed, push subscription activeS7 Approval or S3 Board
QR code scan from desktopDesktop client showing QR codeS1 auto-auth via one-time token → target view
PWA home-screen iconPWA installedS1 or S3 depending on session

5. Happy Path

Interactive preview — ephemeral, not production code

Walk the primary journey from opening the app to shipping code. Use Next / Prev to step through, or click any step. Requires JavaScript; with JS disabled, the full numbered list below is the fallback.

Open PWA/CLI
[S1] GitHub Auth
[S3] Agent Board
[S4] Start Agent
[S3] New Card
[S5/S6] Interact
[S7] Approval
Close Laptop
[S3] Resume
[S8] Recap
[S9] Diff Review
Ship

Gate 2: Proposed Flow Map approved

The happy path and entry points are already written into design/user-flow-personal-workstation.md. Please confirm the proposed flow map as written.

Does the proposed flow map (entry points + happy path S1→Ship) correctly represent the intended primary journey?

Decision: Yes — flow map confirmed as written

6. Alternate Paths (Branch Roots)

Each lettered path is a named user-flow branch and a candidate root for /ux-variations [flow]. They are not collapsed into a single standard flow. Click each card to expand.

A. First-Time Setup onboarding

  1. Install PWA / open URL for the first time.
  2. [S2] Setup Wizard — GitHub OAuth login (repos auto-discovered), connect model-provider keys/subscriptions, set notification preferences.
  3. Provision infrastructure — gblock-party provisions managed infrastructure automatically.
  4. Health check — verify connectivity, tool availability, GitHub repo access via OAuth token.
  5. [S10] Setup summary — review and save configuration.
  6. Redirect to [S3] Agent Board — empty board with "Start your first agent" prompt.

B. Phone Quick-Check phone-check

  1. Push notification — "Agent needs approval" or "3 tasks completed."
  2. Tap notification — opens the PWA directly to the relevant screen.
  3. [S1] Auto-auth — GitHub OAuth session persists; instant reconnect on mobile.
  4. [S7] Approval card — compact mobile-optimized view with diff summary.
  5. Approve/reject — one-tap action, agent resumes immediately.
  6. Close app — total time under 30 seconds.

C. Parallel Sprint parallel-sprint

  1. [S3] Agent Board — view existing running agents.
  2. [S4] Start Agent #2 — launch a second agent on a different repo/branch.
  3. [S4] Start Agent #3 — launch a third agent on yet another task.
  4. [S3] Monitor all — board shows 3+ cards, each with live status.
  5. Round-robin approvals — handle approval requests as they arrive from different agents.
  6. [S9] Review diffs — review completed work from each agent sequentially.
  7. Ship all — merge PRs, handle any conflicts between agent outputs.

D. Agent Recovery recovery

  1. [S3] Agent card shows error — red status badge, error summary visible.
  2. [S5] Click into agent — view full error output, stack trace, last successful state.
  3. Decision: retry or intervene — one-click retry with the same prompt, or drop to terminal.
  4. [S6] Terminal mode — if manual intervention is needed, full terminal access.
  5. Fix and restart — resolve the issue, restart the agent with an adjusted prompt.
  6. [S3] Agent resumes — card transitions back to running.

E. Session Handoff / Device Switch device-handoff

  1. Working on laptop — active terminal session with agent in Mode B.
  2. Need to leave — close the laptop lid or navigate away.
  3. Agent continues — backend process is unaffected by client disconnect.
  4. Open on phone — PWA opens via bookmark, push notification, or QR code scan from the desktop client.
  5. [S3] Same board state — all agents show current status, no stale data.
  6. [S8] Recap available — summary of activity since the last interaction from the previous device.

F. QR Code Mobile Handoff qr-handoff

  1. User on desktop client — working in the desktop app, web dashboard, or terminal client.
  2. Wants mobile access — clicks "Open on Mobile" or finds the QR code in the header/settings.
  3. QR code displayed — encodes a short-lived, pre-authenticated deep link to the current view (board, specific agent, or approval queue).
  4. Scan with phone camera — the standard OS camera app recognizes the URL.
  5. [S1] Auto-auth — deep link carries a one-time token; GitHub OAuth session established on mobile without manual login.
  6. [S3] or [S7] Context preserved — phone opens to the same screen the user was viewing, or directly to a pending approval.
  7. PWA install prompt — if first mobile visit, prompt to install the PWA for future push notifications and home-screen access.

G. Update Settings settings

  1. [S10] Settings — navigate to settings from the board.
  2. Update tool configuration — add/remove tools, update keys, re-authorize GitHub OAuth scopes.
  3. Health check — verify the new configuration works.
  4. Optional re-provision — if adding a new tool, run provisioning for that tool only.
  5. Return to [S3] — board reflects new capabilities.

7. Flow-Tree Manifest

Manifest at design/flow-tree-personal-workstation.yamlschema_version: v0.1, mode: flat, topic: personal-workstation. Route: user-flow-map → ux-variations → ui-interview → prototype → consolidate-variations → spec-interview. One entry per named user-flow branch (wireframe-tree root); each is a candidate root for /ux-variations [branch_id].

Branch IDNameFlow PathsScreensDescriptionux_variationsDecision
onboardingFirst-Time SetupAS1, S2, S10, S3GitHub OAuth, provisioning, tool/key config, health check, setup summary, empty board.not-startedpending
monitoring-startBoard Monitoring & One-Click Starthappy-path, CS3, S4, S5, S6Agent Board overview, one-click agent start, parallel sprints, live status.not-startedpending
approvalMobile Approval RoutingBS7, S3Push-triggered approval, compact mobile card, one-tap approve/reject/defer, approval queue.not-startedpending
recoveryAgent Error RecoveryDS3, S5, S6Error state, drill-in, retry vs. terminal intervention, restart.not-startedpending
device-handoffCross-Device Continuity & QR HandoffE, FS1, S3, S7, S8Server-canonical state across devices; QR pre-authenticated deep link; async recap on return.not-startedpending
diff-reviewDiff Review & Shiphappy-pathS9, S3Completed-work diff viewer, approve/changes/discard, PR creation to GitHub.not-startedpending
settingsSettings & ConfigurationGS10, S3Tool/key management, notification prefs, OAuth scopes, optional re-provision.not-startedpending

Source artifacts: research/positioning.md, research/journey-map.md, research/icp.md, research/concept-brief-gblock-party-personal.md, research/_working/preliminary-user-flow-map-research.md. Artifacts: flow_map: design/user-flow-personal-workstation.md, interview_log: design/user-flow-personal-workstation-interview.md, alignment_page: alignment/user-flow-map-personal-workstation.html.

Gate 3: Branch & Decision Coverage approved

The seven branch roots and the D1–D8 decision points (Section 8) are already written into design/ and the manifest. You confirmed coverage conversationally. Please confirm the written record.

Do the 7 named branch roots and 8 decision points cover the intended flows and choice points?

Decision: Yes — coverage confirmed as written

8. Decision Points (D1–D8)

#DecisionWho DecidesOptionsBranch To
D1First visit or returning?System (auto-detect)No config → Setup Wizard; config exists → AuthS2 or S1
D2Which access mode?User (explicit)Dashboard (A), Terminal (B), IDE (C)S3 / S6 / code-server
D3Start new agent or interact with existing?UserStart new → S4 modal; click existing → S5/S6S4 or S5/S6
D4Agent requests approvalUserApprove, reject, modify prompt, deferAgent resumes, retries, or pauses
D5Agent encounters errorSystem + UserAuto-retry (transient), alert user (persistent), stop agentRetry loop, S7 alert, or S3 error state
D6Review completed workUserApprove diff, request changes, discardS9 → Ship, S9 → new task, or archive
D7Device switch detectedSystem (auto-detect)Show recap if time gap > threshold, else resume liveS8 recap or S3 live board
D8Multiple agents need approval simultaneouslyUserQueue (FIFO), priority sort, batch approveS7 approval queue or batch action

9. Screen/Route Inventory (S1–S10)

S1 — GitHub OAuth Authentication

S2 — Setup Wizard

S3 — Agent Board

S4 — Start Agent Modal

S5 — Agent Detail (Structured)

S6 — Agent Terminal

S7 — Approval Request

S8 — Async Recap

S9 — Diff Review

S10 — Settings

10. Per-Screen Action/State Matrix

S3 — Agent Board

StateTriggerDisplayAvailable ActionsDisabled/Blocked
EmptyNo agents configured or all stoppedEmpty state, "Start your first agent" CTA + quick-start guideStart agent, open settingsApproval/diff actions hidden
All RunningAll agents actively processingGrid of green-badged cards w/ live stdout preview, elapsed timeOpen agent, start agent, stop
Mixed StatusSome running, some idle/waiting/errorCards sorted: error > waiting > running > idleOpen any agent, triage approvals
Approval PendingOne+ agents waitingApproval-queue badge in header; waiting cards pulsate subtlyOpen approval, batch approve
All CompleteAll agents finishedCards show completion summary, "Review diffs" CTA prominentReview diffs, start agent
Connection LostWebSocket dropsBanner: "Reconnecting to workspace…" w/ auto-retry; last-known state shownView last-known stateStart/stop disabled until reconnect

S4 — Start Agent

StateTriggerDisplayAvailable ActionsDisabled/Blocked
ReadyModal opened, repos + tools loadedRepo picker, tool selector, prompt textarea, "Start" enabledStart, cancelStart disabled until repo+tool+prompt set
Loading ReposFetching repo listSkeleton loaders in repo picker, other fields disabledCancelAll inputs disabled
LaunchingUser clicked StartSpinner on button, fields disabled, "Starting agent…"All inputs disabled
ErrorLaunch failed (tool not found, git error)Error message w/ retry, fields re-enabledRetry, cancel
Tool UnavailableSelected tool not in workspaceWarning w/ "Install tool" link to S10Install tool → S10, pick another toolStart disabled

S5 — Agent Detail (Structured)

StateTriggerDisplayAvailable ActionsDisabled/Blocked
StreamingAgent actively producing outputLive parsed output, progress indicators, file-change list updatingInject prompt, stop, open terminal
Waiting for InputAgent paused for approval/inputInline approval card, prompt-injection textareaApprove/reject, inject prompt
IdleTask finished, awaiting nextCompletion summary, "Assign next task" CTANew task, review diff
ErrorAgent crashed / fatal errorError details, stack trace if availableRetry, restart, open terminal
ReconnectingWebSocket dropped mid-stream"Reconnecting…" overlay; buffered output replays on reconnectWait, retryInject/stop disabled until reconnect

S6 — Agent Terminal

StateTriggerDisplayAvailable ActionsDisabled/Blocked
ConnectingWebSocket handshake"Connecting to session…"Cancel/backInput disabled
ActiveTerminal stream liveFull xterm.js terminalType commands, key input, back to board
Waiting for ApprovalAgent blockedTerminal + overlay/badge for pending approvalApprove inline, continue typing
DisconnectedWebSocket dropped"Reconnecting…" w/ auto-retry; tmux preserves stateWait, manual retryInput disabled until reconnect
CompletedAgent finishedTerminal output + "Session complete" bannerRestart, back to board

S7 — Approval Request

StateTriggerDisplayAvailable ActionsDisabled/Blocked
PendingAgent requested approval, no action yetDiff preview, approve/reject buttons, wait-duration timerApprove, reject, modify, defer, expand
ReviewingUser expanded full diff/contextFull diff viewer, file tree, agent explanationApprove, reject w/ reason, collapse
ApprovedUser approvedBrief "Approved" confirmation; auto-return to S3 or next approval— (auto-advances)
RejectedUser rejected w/ optional feedbackRejection-reason textarea; agent receives feedbackSubmit reason
ExpiredConfigurable timeout elapsedGrayed card; still-approve option or auto-rejected per settingsApprove late (if allowed)Approve disabled if auto-rejected

S8 — Async Recap

StateTriggerDisplayAvailable ActionsDisabled/Blocked
Activity SummaryUser returns after absence > thresholdTimeline: tasks completed, approvals pending, errors, PRs createdOpen item, dismiss
Nothing NewUser returns but agents were idle"All quiet" messageGo to board
Urgent ItemsErrors or expired approvals during absenceUrgent items highlighted at top, sorted by priorityResolve urgent, dismiss
DismissedUser closes recapRedirect to S3; recap accessible from history menuReopen from history

Gate 4: State Coverage approved

The per-screen action/state matrices for S3, S4, S5, S6, S7, S8 are already written into design/. Please confirm the written record.

Are the per-screen states, triggers, actions, and blocked actions sufficient and accurate?

Decision: Yes — state coverage confirmed as written

11. Failure & Recovery Paths

FailureDetectionRecovery
Backend unreachableWebSocket heartbeat timeout (>10s), health-check failureAuto-reconnect w/ exponential backoff. Banner notification. Agents continue on managed infra if client-side issue; if backend down, show last-known state and alert.
Agent process crashProcess supervisor detects exit code ≠ 0Auto-restart for transient errors (up to 3 retries). Log crash details. Notify user w/ error summary. Offer manual restart or terminal access.
Network tunnel dropConnectivity monitor on backend and clientTunnel auto-reconnect. Dashboard shows "Tunnel reconnecting…". Agents unaffected (running on managed infra).
Model key/subscription expiry or rate limitAgent reports auth or rate-limit errorPause agent, notify user. Link to S10 to update credential. Resume agent after update without losing session state.
GitHub OAuth token expired/revokedAgent git operation returns 401/403Pause affected agents, prompt re-auth via GitHub OAuth. Resume automatically once a new token is issued. No session state lost.
Disk space exhaustionMonitoring daemon checks disk usage > 90%Alert before critical. Suggest cleanup (old sessions, build artifacts). Emergency: pause agents to prevent corruption.
Git conflict during agent workAgent's git operation fails w/ merge conflictAgent pauses and requests approval w/ conflict details. User resolves via S6 terminal or instructs agent to resolve.
Browser/PWA crashService worker detects unclean shutdown on next loadAgents unaffected (server-side). PWA reloads to S3 w/ current state. No data loss.
Concurrent device conflictSame agent interacted with from two devices simultaneouslyLast-write-wins for approvals. Terminal sessions are separate tmux windows. Dashboard state eventually consistent via WebSocket.

12. Handoffs

FromToMechanismNotes
S3 Agent BoardS5/S6 Detail/TerminalClick card; WebSocket attaches to agent's tmux session or stdout streamSeamless; output buffers replayed on connect.
S7 ApprovalAgent process (backend)Approval message via internal API to agent stdin/control socketSub-second delivery; agent resumes immediately.
S4 Start AgentBackend process supervisorREST API call; supervisor spawns tool processProcess isolation per agent; resource limits applied.
Device A (laptop)Device B (phone)Shared server state; new WebSocket from Device B reads same stateNo explicit handoff needed; state is server-canonical. QR provides fast first-connect path.
Desktop client (QR)Mobile PWAQR encodes short-lived pre-authenticated deep link; phone camera scans, opens PWAOne-time token avoids manual OAuth on mobile. Deep link targets current view. Falls back to S1 if token expired.
S9 Diff ReviewGitHub (external)Git push from backend; PR creation via GitHub APIAgent can auto-create PR; user reviews/merges from S9 or GitHub directly.
Push notificationS7 ApprovalDeep link in push opens PWA directly to approval cardRequires PWA service worker + push subscription; falls back to S3 if deep link fails.

Gate 5: Failure/Recovery & Handoff Coverage approved

The failure/recovery table (9 scenarios) and handoffs table (7 handoffs) are already written into design/. Please confirm the written record.

Do the failure/recovery and handoff tables cover the important failure modes and transitions?

Decision: Yes — coverage confirmed as written

13. Low-Fidelity Wireframe Notes

Structural only — regions and groupings, not styling.

S3 — Agent Board

S4 — Start Agent Modal

S5 — Agent Detail (Structured)

S6 — Agent Terminal

S7 — Approval Request (Mobile-Optimized)

S8 — Async Recap

S9 — Diff Review

S10 — Settings

Gate 6: Low-Fidelity Wireframe Notes approved

The structural wireframe notes for S3–S10 are already written into design/ (regions/groupings only, no styling). Please confirm the written record.

Are the low-fidelity wireframe region/grouping notes at the right altitude and complete?

Decision: Yes — wireframe notes confirmed as written

14. Open Questions & Risks

  1. xterm.js latency budget: Can sub-100ms keystroke echo be achieved from a US-based user to the managed backend? If not, should Mode B be deprioritized for MVP in favor of structured output only?
  2. Multica stdout-parsing reliability: How well does the parsing pattern generalize across Codex CLI, Aider, and other tools with different output formats? Do we need per-tool parsers?
  3. Push notification reliability on mobile: Web Push support varies by platform (iOS Safari limitations). Reliable enough for approval routing, or do we need a fallback (SMS, Telegram bot, email)?
  4. code-server (Mode C) ROI for MVP: code-server adds significant complexity (resource usage, extension compatibility, security surface). Defer to post-MVP, or essential for the "desktop replacement" positioning?
  5. Agent resource isolation: Running 5–12 agents simultaneously — memory/CPU requirements? cgroups/containers per agent, or is process-level isolation sufficient for a personal workstation?
  6. BYO-client connectivity validation: Can popular front-end tools (Cursor, Claude Code CLI, Codex CLI) actually connect to a managed backend without custom adapters? Tools with hardcoded endpoints or locked inference layers may require protocol adapters. Load-bearing — the entire BYO-client model depends on it.

Resolved since prior version

Claude Code ToS compliance is no longer an open question — Anthropic now permits subscription use from third-party applications (2026-06-17). Claude Code is a first-class supported tool.

15. Downstream Handoff

The normal AFPS route is /user-flow-map/ux-variations [specific-user-flow]/ui-interview [specific-ux-variation].

Branch roots available for /ux-variations (see flow-tree manifest for IDs):

This flow-map approval authorizes the wireframe-tree root and provides source evidence. It does not approve any UX variation branch, visual mockup, UI proposal, or implementation path, and it does not count as ui-interview completion. Each downstream skill runs its own interaction gates.

16. Interview Log

Full interview log: design/user-flow-personal-workstation-interview.md. Date 2026-06-17, topic personal-workstation, flat mode. Invocation: /user-flow-map redo from scratch.

Evidence Consulted

Redo Rationale & Location Correction

Flow Assumptions Checkpoint (presented inline)

Covered persona/role/goal, entry points & triggers, happy path, alternate paths, key decisions, ~10-screen inventory, states, failure/recovery, handoffs, and boundaries/non-goals. Each assumption tagged with provenance.

User response: "looks good to me" — confirmed as presented. Also confirmed running in one continuous pass (no chunked mode) rather than the per-section setup/brief sessions.

Flow Coverage Checkpoint (presented inline)

Presented an 11-row coverage table (persona/goal, entry points, happy path, branches/decisions, screen inventory, actions per screen, required states, failure/recovery, handoffs, wireframe notes, layout non-goals preserved) plus tree-root framing (7 named branch roots) and carried-forward open questions.

User response (correction, not objection): Claude Code ToS has been updated — subscriptions are now usable from third-party applications per a recent Anthropic announcement / email blast.

Questions Asked, Options, Recommendations & Responses

#TopicOptions / RecommendationUser Response
Q1Run modeOne continuous pass (recommended — full research already in context) vs. chunked per-section sessionsOne continuous pass
Q2Assumptions checkpointConfirm / correct / flag"looks good to me" — confirmed as-is
Q3Coverage — anything missing?Confirm coverage or flag missing branch/state/handoffFlagged one correction: Claude Code ToS now permits third-party-app subscription use

Corrections Carried Into Deliverables

  1. Claude Code ToS — resolved. Removed "pending ToS review" deferral and the ToS-compliance open question. Claude Code CLI + Claude Agent SDK are now first-class supported BYO-client tools with no asterisk. Architecture framing ("your VM, your subscription, router-not-proxy") preserved. Recorded as durable project memory (claude-code-tos-third-party).
  2. Output location corrected from specs/ to design/ per skill convention.

Coverage Result & Remaining Gaps

All checkpoint dimensions covered. Remaining gaps are tracked as Open Questions in the flow map (not resolved here): xterm.js latency budget (Mode B viability); Multica stdout-parsing generality across tools; push-notification reliability on iOS Safari; code-server (Mode C) MVP ROI; agent resource isolation at 5–12 concurrent sessions; BYO-client connectivity validation (load-bearing).

17. Alignment Gates

Gates 1–6 are placed inline under the content they govern (assumptions, flow map, branch/decision coverage, state coverage, failure/handoff coverage, wireframe notes). Gates 7–8 below cover artifact destination/file changes and the downstream route. All gate questions are confirmations of artifacts already written to design/.

Gate 7: Artifact Destination & Proposed File Changes approved

Destination and the file-write set ask the same path-destination question here, so they are combined into one gate per the de-duplication rule. The files have already been written to the paths below; this confirms they are correct.

Confirm the canonical artifacts at these paths:

Decision: Approved — paths and file set correct as written

Gate 8: Downstream Handoff Choice approved

After approval, how should the agent proceed toward /ux-variations? Continuing immediately still requires the next skill's own interaction gates — this choice does not skip them.

What is the downstream handoff?

Decision: Stop here / clear context — I will start /ux-variations [branch] in a fresh session later