Skip to content

prototype: one-keypress onboarding review screen (mocked) - #1903

Draft
gtrrz-victor wants to merge 2 commits into
mainfrom
worktree-onboarding-proto
Draft

prototype: one-keypress onboarding review screen (mocked)#1903
gtrrz-victor wants to merge 2 commits into
mainfrom
worktree-onboarding-proto

Conversation

@gtrrz-victor

@gtrrz-victor gtrrz-victor commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

What

A throwaway, fully-mocked prototype of a "one-keypress" entire enable onboarding UX, for iterating on flow + wording. Not wired to entire-cli — every side effect (login, mirror, hooks, git) is faked.

Demo: screen-recorded and attached below.

The idea

A single inline review screen where every value is pre-decided and editable, and Enter builds the folder — instead of today's ~5 sequential prompts.

  • Folder-state aware (see below), or real auto-detect.
  • Mirror is a first-class decision (Mirror to Entire row / Publish row for no-origin), defaulting on where mirrorable so one keypress lands you connected.
  • Copy pitches what mirroring unlocks in entire.io (code, commits, search, transcripts) and links the mirrors docs.

Folder states (--state)

--state Simulates Onboarding shape
auto (default) Real detection of the current folder resolves to one of the below
repo-gh Git repo with a GitHub origin Mirror to Entire row, defaults Yes → lands connected
repo-no-origin Git repo, no/again non-GitHub origin local-only; opt-in Publish (off by default) → publishes to GitHub + mirrors
empty Empty / non-git folder Repository row (local / + GitHub / bare); + GitHub publishes + mirrors

Run

cd prototypes/onboarding
go run . --state repo-gh          # or repo-no-origin | empty | auto
go run . --state repo-gh --yes    # non-interactive

↑↓ move · ←→/space change · enter accept · esc cancel. See the README for all flags.

Isolation

Its own nested Go module under prototypes/onboarding/, so the main module's build/lint/CI skip it — no production-lint friction while iterating. Shares only cobra/bubbletea/lipgloss so the look transfers to a real implementation.

Status

Draft / for discussion. Explores the UX only; the real implementation would back these rows with the existing resolvers (detectOrSelectAgent, resolveFirstRunCheckpointBackend, the mirror offer, …).

🤖 Generated with Claude Code

A throwaway prototype of the "one-keypress" entire enable UX: a single inline
Bubble Tea review screen where every value is pre-decided and editable, and
Enter builds the folder. Every side effect (login, mirror, hooks, git) is
mocked so we can iterate on flow and wording fast.

Folder-state aware (repo-gh / repo-no-origin / empty via --state, or real
auto-detect), with the mirror decision surfaced as a first-class row and copy
that pitches what mirroring unlocks in entire.io (code, commits, search,
transcripts) linking the mirrors docs.

Isolated as its own nested Go module under prototypes/onboarding so the main
module's build, lint, and CI skip it entirely. Imports nothing from
cmd/entire/cli — shares only cobra/bubbletea/lipgloss so the look transfers.
Includes a VHS demo.tape for recording a GIF and a README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 5, 2026 12:29

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 3ca4ad0. Configure here.

m.showMore = !m.showMore
return m, nil
}
f := fs[m.focus]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Focus invalid after collapsing options

High Severity

Toggling showMore off leaves focus at the old moreIdx, which is then past the end of fields(). The next //space indexes fs[m.focus] and panics. Collapsing "Fewer options" is the normal way to leave that row, so this is easy to hit.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3ca4ad0. Configure here.

if slug := githubSlug(strings.TrimSpace(string(out))); slug != "" {
return StateRepoGitHub, slug, nil
}
return StateRepoNoOrigin, "", nil

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Empty slug on auto no-origin

Medium Severity

detectState returns an empty Slug for no-origin (and non-GitHub) repos, while --state repo-no-origin and empty-folder detection seed a mock slug. Enabling Publish then prints a blank created-repo name and a broken entire.io/gh/ URL — and demo.tape exercises exactly this auto-detect publish path.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 3ca4ad0. Configure here.

Recording will be done natively; remove demo.tape, the README recording
section, and the *.gif ignore.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a standalone, fully-mocked onboarding prototype under prototypes/onboarding/ to iterate on a single-screen “one-keypress” entire enable flow (Bubble Tea inline review UI + mocked execution plan), intentionally isolated as its own Go module so it doesn’t affect the production CLI build/lint/CI.

Changes:

  • Introduces an inline Bubble Tea review screen that edits a resolved Config and generates an ordered Plan to execute.
  • Implements mocked plan execution output (simulated delays, fake login/mirror/publish steps) for demo realism.
  • Adds prototype module scaffolding + docs + VHS script to record a demo GIF.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
prototypes/onboarding/tui.go Bubble Tea inline review screen for editing onboarding decisions and confirming/canceling.
prototypes/onboarding/run.go Mocked plan execution + outcome messaging with simulated delays.
prototypes/onboarding/model.go Core state/config model and pure planFromConfig mapping.
prototypes/onboarding/main.go Cobra entry point, flags, state resolution (auto-detect + simulated states), and wiring review→plan→run.
prototypes/onboarding/README.md Usage and demo instructions for the prototype.
prototypes/onboarding/go.mod Nested Go module definition and direct dependencies for the prototype.
prototypes/onboarding/go.sum Dependency checksums for the prototype module.
prototypes/onboarding/demo.tape VHS script to record a demo run as a GIF.
prototypes/onboarding/.gitignore Ignores built binary and generated GIF artifacts.

Comment on lines +111 to +123
func detectState() (FolderState, string, error) {
if err := exec.Command("git", "rev-parse", "--git-dir").Run(); err != nil {
return StateEmpty, "github.com/acme/new-project", nil
}
out, err := exec.Command("git", "remote", "get-url", "origin").Output()
if err != nil {
return StateRepoNoOrigin, "", nil
}
if slug := githubSlug(strings.TrimSpace(string(out))); slug != "" {
return StateRepoGitHub, slug, nil
}
return StateRepoNoOrigin, "", nil
}
Comment on lines +16 to +17
// StateRepoNoOrigin: git repo, no/again non-GitHub origin. Local tracking;
// no mirror row (nothing to mirror to).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants