Improve first-run onboarding: close the loop + git-aware project card#633
Open
bborn wants to merge 1 commit into
Open
Improve first-run onboarding: close the loop + git-aware project card#633bborn wants to merge 1 commit into
bborn wants to merge 1 commit into
Conversation
Review of the first-time TUI experience via the ty-qa-firstrun harness
surfaced three papercuts against the "get an agent working on my code with
minimal setup" job-to-be-done:
1. Momentum dead-end: accepting "Create Project" from the detection card
(or the Welcome fork's folder picker) dropped the user onto an empty
board that just said "press n". Setting up the project is only step one
— the job is to run a task in it. Now creation carries straight into the
first-task form, pre-selected to the new project (via SetLastUsedProject).
esc returns to the board.
2. Wrong noun: the detection card said "Create a TaskYou project for this
repo?" and "This directory looks like a project" even for a non-git
marker folder (Worktrees: false). Now git-aware: "repo" vs "folder", and
the "Worktrees: true/false" jargon is spelled out as what it means —
"Isolation: each task runs in its own git worktree" vs "Isolation: off".
3. Unlabeled fork: the Welcome fork's two buttons ("Set up a project" /
"Just start a task") didn't say what they do. Added a one-line hint under
the highlighted choice.
Card copy is extracted into pure, unit-tested helpers (projectDetectTitle /
projectDetectDescription). Verified all three scenarios + the momentum jump
end-to-end with scripts/qa/ty-qa-firstrun.sh.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Reviewed the first-time TUI experience by driving
scripts/qa/ty-qa-firstrun.shacross all three launch scenarios (git repo / non-git marker folder / plain folder). Three papercuts stood out against the JTBD — "get an agent working on my code with as little setup as possible" — and this PR fixes them.1. Momentum dead-end → carry into the first task
Accepting Create Project (from the detection card or the Welcome fork's folder picker) used to drop you onto an empty board that just said "press n". Setting up the project is only step one — the point is to run a task in it. Now creation flows straight into the New Task form, pre-selected to the project you just created (via the existing
SetLastUsedProject).escreturns to the board.Verified end-to-end: pressing
yon the git card now opensNew TaskwithProject: acme-rocketalready selected.2. Wrong noun for non-git folders
The card said "Create a TaskYou project for this repo?" and "This directory looks like a project" even for a non-git marker folder. And it exposed raw
Worktrees: true/falsejargon.Now git-aware:
3. Unlabeled Welcome fork
The two buttons ("Set up a project" / "Just start a task") never said what they do. Added a one-line hint under the highlighted choice.
Implementation notes
projectDetectTitle/projectDetectDescription(nohuh/AppModel deps).Testing
go test ./internal/ui/— greengolangci-lint runwith the CI-pinned v2.8.0 — 0 issuesTestProjectDetectTitle,TestProjectDetectDescription,TestWelcomeChoiceHint,TestWelcomeViewShowsChoiceHint, and momentum assertions added toTestCreateDetectedProjectPersiststy-qa-firstrun.sh(all 3 scenarios) + drove the card→form jump on the isolated harness🤖 Generated with Claude Code