User Flow Map - Skill Execution Handoff

Confirmed alignment page for $user-flow-map skills-showcase skill-execution-handoff. The approved user-flow spec and interview log have been written to canonical markdown files, and this page preserves the approval record.

alignment_status: confirmed prototype tier
generated: 2026-06-12 (review)
confirmed: 2026-06-12
skill: user-flow-map v0.2
product path: skills-showcase from research/.progress.yaml
alignment artifact: alignment/user-flow-map-skill-execution-handoff.html
confirmed artifacts: specs/skills-showcase/user-flow-skill-execution-handoff.md ยท specs/skills-showcase/user-flow-skill-execution-handoff-interview.md
approval source: final compiled YAML, 7/7 gates answered, section_feedback: [], no needs-clarification, no requested edits (verbatim record in Approval Record)
prior review page: archived at docs/history/archive/2026-06-12/102540/alignment/user-flow-map-skill-execution-handoff.html
downstream: $ui-interview --requirements-only skill-execution-handoff
This page is finished and current for the completed alignment cycle. It remains amendable: later research may change or extend these conclusions only by archiving this confirmed page first and highlighting the amendment against the preserved approval record.

1. Review Summary

The proposed flow starts after a user has selected a deck or workflow and needs to leave the site with an actionable local execution artifact. It connects the existing deck-builder output model to the operating-mode model in docs/operating-modes.md: direct terminal execution, hybrid /delegate, async /handoff --target=codex, and Codex execution of an approved packet through $exec --execute-approved.

Corrected persona wording carried into the proposed spec:

Personas covered: a new evaluator choosing a GSkillPacks deck for adoption, and an existing user configuring another repo. Their shared goal is to leave the site with a clear command or config they can run locally.

Prototype preview: execution handoff branch
1. SourceCompleted deck output or /workflows Production step.
2. ReviewCommand/config plus prerequisites and mode context.
3. Choose pathDirect, config, hybrid delegate, or async handoff.
4. Local runUser runs command or resumes approved execution locally.
Default path: choose a deck or workflow, review the generated command/config, then copy or download an artifact for local execution.

2. Evidence Context

EvidenceObserved factDecision impactConfidence
research/.progress.yamlExactly one active product path: skills-showcase.Write proposed canonical specs under specs/skills-showcase/ after approval.High
research/skills-showcase/idea-brief.mdThe showcase should produce actionable output: copyable CLI command and downloadable project.json.The handoff flow must end in a local command/config artifact, not a web-only success state.High
specs/skills-showcase/user-flow-deck-creation.mdDeck completion unlocks CLI, project.json download, share, and keep-editing paths.Skill execution handoff starts from the completed deck/output state and extends the artifact handoff.High
specs/skills-showcase/user-flow-deck-creation-interview.mdDeck flow approval recorded artifact destination, file changes, and post-approval route gates.Reuse the same alignment-gated review model and do not overwrite deck-creation files.High
apps/skills-showcase/docs/deck-builder-ux.mdLocked choices: deck-first entry, canvas plus real URLs, tap-to-add, phase-labeled slots, localStorage progress, no accounts.Do not introduce account-backed install state or server-side execution.High
docs/decks.mdNpm deck installs use npx skillpacks install-deck <slug>; current release requires bash and jq for deck materialization, while direct npm pack installs do not require jq.Prerequisite states must distinguish deck install from direct pack install/config download.High
docs/operating-modes.mdModes are claude-only, codex-only, and hybrid. Hybrid uses /delegate; async handoff uses /handoff --target=codex; Codex consumes with $exec --execute-approved.The flow must branch by user execution mode and packet lifecycle without inventing new local automation.High
docs/operating-modes.md and scripts/approved-plan.shApproval packet writes require jq; only lifecycle approved is executable; freshness checks can mark a packet stale.Handoff branch needs prerequisite and stale-packet recovery states.High
apps/skills-showcase/app/workflows/page.tsx and workflow-data.ts/workflows presents the AFPS phase walkthroughs; the Production workflow includes roadmap, plan phase, run, ship, and close steps.Current app surface can enter handoff from workflow selection as well as from completed deck output.High
Conversation checkpointsAssumptions confirmed as-is, coverage reviewed, persona wording corrected.Carry the corrected persona wording and show approval gates instead of re-asking terminal interview questions.High (user-stated via handoff plan)

3. Confirmed Spec - specs/skills-showcase/user-flow-skill-execution-handoff.md

3.1 Status, Scope, And Source Evidence

3.2 Flow Assumptions Checkpoint

Checkpoint status from prior conversation context: assumptions confirmed as-is. Persona wording corrected as follows and treated as authoritative for this proposed spec.

Personas covered: a new evaluator choosing a GSkillPacks deck for adoption, and an existing user configuring another repo. Their shared goal is to leave the site with a clear command or config they can run locally.
#AssumptionSource
1The primary persona is a new evaluator choosing a GSkillPacks deck for adoption.[from corrected conversation checkpoint]
2The secondary persona is an existing user configuring another repo.[from corrected conversation checkpoint]
3Both personas share one success condition: leave the site with a clear command or config they can run locally.[from corrected conversation checkpoint]
4Entry can come from a completed deck output panel, the /workflows Production walkthrough, a shared deck URL, or docs/npm links that land on a deck/workflow surface.[from spec + codebase]
5Direct web-to-terminal execution is a copy path, not browser-side execution.[from docs/decks.md + inferred boundary]
6Web-to-repo execution is a download/copy path for project.json or command text; the user places or runs it locally.[from idea brief + deck-creation spec]
7Hybrid and async handoff paths explain existing commands: /delegate, /handoff --target=codex, and $exec --execute-approved. The showcase does not create hidden approval packets for the user.[from operating-modes.md]
8Approval packet lifecycle and freshness matter enough to be visible in the flow: draft, approved, consumed, stale, superseded, uncertain; only approved is executable.[from operating-modes.md]
9jq prerequisite messaging is required for packet write paths and npm deck materialization prerequisites.[from docs/decks.md + scripts/approved-plan.sh]
10States to represent: empty/no selection, loading data, generated output ready, copied/downloaded success, clipboard denied, missing prerequisite, stale packet, mode mismatch, invalid deck/workflow, offline after first load, and review/edit before handoff.[inferred from evidence]
11Handoffs include web to terminal, web to repo config, web to Claude orchestration, Claude to Codex through approval packet, and person-to-person sharing.[from spec + operating-modes.md]
12Layout and styling remain wireframe-level; UI details move to $ui-interview --requirements-only skill-execution-handoff after approval.[from skill contract]

3.3 Persona, Goal, And Success Condition

PersonaGoalSuccess conditionTempo
New evaluator choosing a GSkillPacks deck for adoptionUnderstand enough about the deck/workflow to trust running it in a project.Leaves with a clear local command, config download, or agent handoff route.Exploratory: may inspect deck contents, prerequisites, and execution mode before copying.
Existing user configuring another repoMove quickly from known deck/workflow to runnable setup.Copies a command or downloads project.json with minimal friction.Direct: wants fast copy/download plus recovery if local state is stale.

3.4 Entry Points And Preconditions

IDEntryTriggerPreconditionLands on
E1Completed deck output panelUser fills deck core slots or selects a completed preset.Deck output command/config can be generated.S1 Handoff source.
E2/workflows Production workflowUser explores the AFPS Production workflow in the current TUI surface.Workflow data loads and the Production workflow is selectable.S1 Handoff source with workflow-derived command path.
E3Direct deck URL such as /deck/[slug]Shared or bookmarked deck.Slug is known; otherwise recover through invalid-deck state.S1 or S2, depending on completion state.
E4Downloaded or copied project.json from a prior sessionReturning user wants to reuse config in another repo.File still matches current deck/package model.S3 Config review or F7 stale-config recovery.
E5Docs/npm README link to showcaseUser arrives from package documentation.Skills data and workflow data load.S1 with source context from link target when available.

3.5 Happy Path

#StepScreen
1User reaches a completed deck output or the /workflows Production workflow.S1 Handoff source
2The site shows the generated command/config plus what it will change locally: enabled packs, deck slug or explicit pack list, and any prerequisites.S2 Output review
3User chooses a handoff path: direct terminal command, config download, hybrid delegate guidance, or async Codex handoff guidance.S3 Mode choice
4System validates in-page prerequisites it can know: deck/config available, command not empty, browser can copy/download, and selected branch has required explanation.S3/S4
5User copies command or downloads config/packet guidance.S4 Artifact actions
6User runs the command locally, places config in repo, or uses Claude/Codex commands to produce/consume an approval packet.External local terminal/repo
7If local execution reports stale packet, missing jq, mode mismatch, or dirty-tree blocker, the user returns to S5 recovery guidance instead of guessing.S5 Recovery
8After local success, the site offers keep-browsing/share paths but does not claim the local run succeeded unless the user did it.S6 Post-handoff state

3.6 Alternate Paths And Branches

IDBranchDiverges atBehaviorRejoins
B1Direct terminal commandS3User copies npx skillpacks install-deck <slug> for canonical decks or explicit install commands for modified/custom decks.S4 copy/download success, then local terminal.
B2Config downloadS3User downloads project.json or copies its JSON preview for placement in another repo.S4 download success, then local repo.
B3Hybrid delegate guidanceS3User in Claude/hybrid mode follows guidance that /delegate creates an approval packet and invokes Codex execution inside Claude after approval.S4 guidance copied, then Claude local session.
B4Async handoff to CodexS3User follows guidance that /handoff --target=codex produces the approval packet plus tasks/handoff.md; Codex resumes with $exec --execute-approved.S4 guidance copied, then local Claude/Codex sessions.
B5Codex-only executionS3User skips Claude packet language and uses Codex-side execution routes when Codex is the planner/executor.S4 copied command/guidance.
B6Review/edit before handoffS2/S3User returns to deck/workflow selection to adjust packs, overlays, or workflow step before copying.S1 source surface.
B7Prerequisite warningS3/S4Missing jq, missing bash for deck materialization, or unsupported browser clipboard/download surfaces inline recovery.S5 recovery, then S4 retry.
B8Stale approval packetExternal run returns staleFreshness check failed: lifecycle, HEAD, todo hash, dirty path, manual blocker, or TTL. User is told to re-draft/re-approve rather than force execution.S5 recovery; may return to S3 for async/hybrid path.
B9Share handoff choiceS4User copies a share URL plus command/config summary for a teammate, without implying the teammate's local packet is approved.Recipient starts at E3/E5.

3.7 Decision-Point Table

IDTypeWhereDecisionBranch rule
D1UserS1/S2Proceed with current deck/workflow or edit first?Edit returns to deck/workflow; proceed opens S3.
D2UserS3Direct command, config download, hybrid delegate, async handoff, or Codex-only guidance?Routes to B1-B5.
D3SystemS2Canonical deck intact?Yes: one-line install-deck. No: explicit pack list/config.
D4SystemS3/S4Prerequisites known and explainable?Missing prerequisite opens warning/recovery; output stays copyable if safe with caveat.
D5PermissionS4Clipboard/download permission granted?Success confirmation or manual select/save fallback.
D6External/manualLocal terminalApproval packet freshness passes?Pass executes; fail becomes stale and requires re-approval.
D7External/manualLocal terminalMode compatible with selected command?Compatible proceeds; mode mismatch requires choosing the correct local route.
D8UserS5Resolve issue, change path, or abandon handoff?Retry S4, change S3, or return S1.

3.8 Screen/Route Inventory

IDScreenRoute / surfacePurposeInputsOutputs
S1Handoff sourceCompleted deck panel, /deck/[slug], /workflowsOrient the user around the selected deck/workflow and show that local execution is possible.Deck slug/config, workflow key/step, local progress.S2 output review or return to deck/workflow edit.
S2Output reviewPanel within deck/workflow surfacePreview command/config, prerequisites, and what will be handed off.Deck/workflow output model and operating-mode evidence copy.S3 mode choice, S1 edit.
S3Mode choicePanel/drawer/modal within the same routeSelect direct, config, hybrid delegate, async handoff, or Codex-only path.User selection and generated output availability.S4 action panel or S5 prerequisite recovery.
S4Artifact actionsPanel in flowCopy command, copy guidance, download config, copy share URL.Selected branch, command text, config JSON.External local terminal/repo, S6 success, or S5 recovery.
S5Recovery guidanceInline warning/error stateExplain missing prerequisites, stale packet, mode mismatch, clipboard failure, invalid selection, or stale config.Error/recovery reason.Retry S4, switch branch S3, or edit S1.
S6Post-handoff stateSame flow surfaceConfirm browser-side copy/download only and offer share/keep-browsing.Completed browser action.Share URL, return to deck/workflows, no false local-exec claim.

3.9 Per-Screen Action/State Matrix

ScreenActionsNavigationDisabled / blocked rulesValidationStates
S1 Handoff sourceOpen output review; edit deck/workflow; inspect deck/workflow evidence.S2 or upstream deck/workflow route.Open review disabled if no deck/workflow output exists.Known deck slug or workflow key required.empty, loading, ready, invalid source, restored.
S2 Output reviewInspect command/config preview; view prerequisites; keep editing.S3 or S1.Mode choice blocked if generated output is empty or inconsistent.Canonical vs explicit pack list; config JSON parseable.ready, needs edit, stale config warning.
S3 Mode choiceSelect direct/config/delegate/handoff/Codex-only; compare consequences.S4, S5, or S2.Hybrid/async choices marked guidance-only; browser cannot create local packet.Selected mode has required explanation and target command text.selected, unselected, warning, clarification.
S4 Artifact actionsCopy command; copy guidance; download project.json; copy share URL.External local tool, S5, S6.Copy button disabled only when text is absent; fallback available when clipboard denied.Command/config shown exactly as copied/downloaded.copy-ready, copied, download-ready, downloaded, copy-failed.
S5 Recovery guidanceRead issue, copy fix command/guidance, switch branch, retry.S3/S4/S1.Execution claim never shown from browser recovery alone.Error reason maps to one recovery path.missing jq, missing bash, stale packet, mode mismatch, dirty tree, invalid deck, offline, clipboard denied.
S6 Post-handoff stateShare, keep browsing, start another deck/workflow.S1, share URL.No "successfully ran" wording unless local proof exists outside browser scope.Browser action succeeded.copied, downloaded, shared, done-with-caveat.

3.10 Required State Coverage

State classWhere it appearsHandling
EmptyS1 no selected deck/workflow; S4 no command/config.Ask user to choose a deck/workflow first.
LoadingS1/S2 data load for deck/workflow output.Show non-interactive skeleton; do not render copy actions from partial data.
ErrorInvalid slug/workflow, data load failure, corrupt config.Route to S5 with specific recovery.
PartialDeck incomplete or workflow step not selected.Show locked/needs-selection message; allow edit path.
SuccessCopy/download/share completed in browser.Confirm browser action only; local execution remains outside site.
Permission deniedClipboard/download blocked by browser.Manual select/save fallback with visible command/config.
OfflineAfter initial app load or when assets are already cached.Copy/download existing rendered output; initial load offline remains browser-level failure.
ValidationConfig JSON, command text, branch selection.Do not allow empty or mismatched artifact output.
Stale packetExternal $exec --execute-approved check fails.Explain that consumer marks packet stale and re-prompts with diff; re-draft/re-approve required.
Mode mismatchWrong local command for claude-only, codex-only, or hybrid.Return to mode choice and show compatible route.
Reduced motionAny interactive preview or drawer/sheet.All states reachable without animation.

3.11 Failure And Recovery Paths

IDFailureRecovery
F1No deck/workflow output exists.Return to deck/workflow selection; explain that handoff needs a generated artifact.
F2Skills/workflow data fails to load.Retry; no copy/download action renders from partial data.
F3Clipboard API denied/unavailable.Auto-select command/guidance text and show keyboard copy hint.
F4jq missing for approval packet writes or current npm deck materialization path.Show prerequisite explanation and install hints; direct pack install/config branch remains available when applicable.
F5bash unavailable for current npm deck materialization backend.Warn before copy; offer config download or explicit direct pack-install path when possible.
F6Approval packet stale.Do not retry blindly. Re-draft/re-approve after inspecting diff from moved HEAD, changed todo hash, dirty tree, manual blockers, or expired TTL.
F7Mode mismatch.Show compatible path: Claude-only inline, Codex-only $exec, hybrid /delegate, async /handoff --target=codex then $exec --execute-approved.
F8Dirty tree blocks approved packet freshness.Commit/stash/re-approve locally, or use allowed-dirty path only through proper packet creation.
F9Downloaded config is stale relative to current deck/package model.Regenerate from current deck output; never silently use old config.
F10User chooses hybrid/async but expects the website to execute locally.Clarify browser boundary and local command requirement.

3.12 Handoffs And External Dependencies

IDHandoffMechanismFailure surface
H1Web to terminalCopy npx skillpacks install-deck <slug>, explicit install commands, or workflow command guidance.Clipboard failure; missing local prerequisites; CLI-side errors out of browser scope.
H2Web to repoDownload or copy project.json matching the deck/config output.Browser download blocked; stale config.
H3Web to Claude orchestrationCopy guidance for /delegate or /handoff --target=codex as local session actions.Mode mismatch, missing jq, user has only Codex available.
H4Claude to CodexApproval packet .agents/approved-plan.json plus mirror tasks/approved-plan.md; consumed by $exec --execute-approved.Stale, superseded, consumed, uncertain, or missing packet.
H5Person to personShare URL plus command/config summary.Recipient local environment may differ; packet approval is not transferable unless intentionally recreated.
H6Browser to local filesystemDownload only; no direct write into repo from website.User must place files correctly; site can explain destination but cannot verify placement.

3.13 Low-Fidelity Wireframe Notes

S1/S2: Source And Output Review

[Deck or Workflow]
title, slug/key, purpose
enabled packs / workflow steps

[Output Preview]
command line or project.json summary
prerequisite badges
[choose handoff path]

S3/S4: Mode Choice And Artifact Actions

[Direct] [Config] [Hybrid delegate] [Async handoff] [Codex-only]

Selected path detail
exact copied text preview
[copy] [download] [share] [back]

S5: Recovery

Problem: stale approved packet
Reason: todo hash changed
Impact: local execution blocked
Next local action: re-draft/re-approve
[copy guidance] [choose another path]

S6: Post-Handoff

Copied / downloaded
Browser action complete
Local execution happens in your terminal
[share] [keep browsing] [start another deck]

Mobile branch notes: mode-choice cards stack vertically; command/config preview wraps with copy controls adjacent; recovery guidance appears above copy/download actions; all actions remain tap-first with no drag-only controls.

3.14 Flow Coverage Checkpoint

Coverage itemStatus
Persona and goalCovered with corrected wording.
Entry pointsCovered: completed deck, workflow lab, direct deck URL, prior config, docs/npm link.
Happy pathCovered: source to output review to mode choice to local run.
Branches and decision pointsCovered: direct, config, hybrid, async, Codex-only, edit, prerequisite, stale packet, share.
Screen/route inventoryCovered: six screens/surfaces.
Actions per screenCovered in action/state matrix.
Required statesCovered including stale packet and mode mismatch.
Failure/recovery pathsCovered: ten named failures.
HandoffsCovered: web-to-terminal, web-to-repo, web-to-Claude, Claude-to-Codex, person-to-person, browser-to-local boundary.
Wireframe-level notesCovered without locking visual design.
Layout/styling non-goalsPreserved.

3.15 Open Questions, Risks, And Explicit Non-Goals

ItemDetailWhere it resolves
Surface placementDoes the full handoff panel appear in both deck output and workflow lab, or is workflow lab a route into the deck/output handoff?$ui-interview --requirements-only skill-execution-handoff
Config detail depthHow much of project.json should be previewed before download?UI requirements.
Prerequisite detectionWebsite cannot inspect local jq, bash, git state, or agent mode directly.UI copy/state design; local commands remain source of truth.
Packet educationApproval packet lifecycle is important but could overwhelm new evaluators.UI requirements and copy hierarchy.
False success riskBrowser copy/download success is not local execution success.Spec must keep language precise.

3.16 Downstream Handoff After Approval Only

Approved post-approval route: $ui-interview --requirements-only skill-execution-handoff. The canonical flow spec and interview log have been written, and this page preserves the approval record that authorized those writes.

4. Confirmed Interview Log - specs/skills-showcase/user-flow-skill-execution-handoff-interview.md

4.1 Evidence Consulted

4.2 Questions, Options, And User Responses

Prompt / checkpointOptions or recommendationUser response / decisionCarried into proposed spec
Flow Assumptions CheckpointConfirm assumptions as-is or correct them.Confirmed as-is in the prior conversation context.Yes: assumptions table in section 3.2.
Persona wordingClarify who the flow covers and their shared goal.Corrected wording: "Personas covered: a new evaluator choosing a GSkillPacks deck for adoption, and an existing user configuring another repo. Their shared goal is to leave the site with a clear command or config they can run locally."Yes: status summary, persona table, assumptions.
Coverage checkpointReview branch/state/handoff coverage before durable writes.Coverage reviewed in the prior conversation context.Yes: flow coverage checkpoint in section 3.14 and branch/state/handoff gate.
Approval workflow correctionBuild review page first; defer canonical markdown writes until compiled YAML approval.User-provided handoff plan requires alignment-first review.Yes: this page is review-only; canonical files are proposed destinations only.

4.3 Notable Changes From Initial Draft Context

4.4 Remaining Gaps For UI Requirements

5. Approval Record Confirmed 2026-06-12

Final compiled YAML received 2026-06-12: all 7 gates answered, section_feedback: [], no needs-clarification, and no requested edits. The compile controls that produced it were removed when this page converted from review to confirmed.

Evidence Context: Evidence coverage is sufficient for review approval.

Flow Assumptions Checkpoint: Assumptions are accurate; carry into canonical files.

Proposed Spec: Approve the proposed flow map.

Branch/State/Handoff Coverage: Coverage is complete for v1.

Artifact Destination: Approve specs/skills-showcase/user-flow-skill-execution-handoff.md and the interview log companion.

Proposed File Changes: Approve canonical spec/interview writes, page confirmation, and index update after final approval.

Downstream Route: Approve post-approval route to $ui-interview --requirements-only skill-execution-handoff.

alignment_page: "alignment/user-flow-map-skill-execution-handoff.html"
response_status: complete
approval_status: ready-for-agent-review
required_gate_status: complete
unanswered_required_questions:
  []
gate_answers:
  - section: "Evidence Context"
    gate_type: "evidence coverage"
    status: "answered"
    answer: "Evidence coverage is sufficient for review approval"
  - section: "Flow Assumptions Checkpoint"
    gate_type: "assumptions/confidence"
    status: "answered"
    answer: "Assumptions are accurate; carry into canonical files"
  - section: "Proposed Spec"
    gate_type: "flow map"
    status: "answered"
    answer: "Approve the proposed flow map"
  - section: "Branch/State/Handoff Coverage"
    gate_type: "coverage checkpoint"
    status: "answered"
    answer: "Coverage is complete for v1"
  - section: "Artifact Destination"
    gate_type: "artifact destination"
    status: "answered"
    answer: "Approve proposed canonical destinations"
    target_path: "specs/skills-showcase/user-flow-skill-execution-handoff.md"
  - section: "Proposed File Changes"
    gate_type: "proposed file changes"
    status: "answered"
    answer: "Approve canonical spec/interview writes, page confirmation, and index update after final approval"
  - section: "Downstream Route"
    gate_type: "post-approval route"
    status: "answered"
    answer: "Approve post-approval route to $ui-interview --requirements-only skill-execution-handoff"
section_feedback:
  []

What changed during confirmation