Skip to content

Add onboarding verification skill#11158

Merged
zachlloyd merged 4 commits into
masterfrom
zach/onboarding-skill
May 18, 2026
Merged

Add onboarding verification skill#11158
zachlloyd merged 4 commits into
masterfrom
zach/onboarding-skill

Conversation

@zachlloyd
Copy link
Copy Markdown
Contributor

@zachlloyd zachlloyd commented May 17, 2026

Description

Adds .agents/skills/onboarding-verification-skill, a local skill for orchestrating Linux stable Warp first-time onboarding verification in cloud agents.

The skill launches two parallel computer-use cloud agents:

  • logged-out flow: installs stable Warp and verifies the account-free terminal-only onboarding path
  • logged-in flow: installs stable Warp, authenticates with ONBOARDING_AGENT_FTUE_REFRESH_TOKEN, verifies authenticated onboarding, runs a terminal command, then opens the avatar/settings path and captures a screenshot showing the logged-in account email

It also documents safe secret handling for authenticated testing, including normalizing a raw refresh token or desktop redirect URL without printing token contents.

https://www.loom.com/share/2660d3b09f7d45429fb5aa8568d97c08
https://www.loom.com/share/b182f96638f74d5ebc9206e7e508f7d1

Linked Issue

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes).

Testing

  • Validated SKILL.md frontmatter and required content with a Python check.

  • Ran the updated skill with two parallel cloud agents using stable Linux Warp.

  • Logged-out run succeeded: reached a usable terminal and ran echo warp-onboarding-logged-out-ready.

  • Logged-in run succeeded: authenticated via the managed secret, reached a usable terminal, ran echo warp-onboarding-logged-in-ready, and captured the avatar/settings email screenshot.

  • Logged-in artifacts:

    • Manifest artifact: 019e3796-3a9c-7846-9bbd-c637ed0b572a
    • Archive artifact: 019e3796-7966-746b-b453-93bd4976c806
  • I have manually tested my changes locally with ./script/run

Screenshots / Videos

The logged-in run captured screenshots through onboarding and the post-login settings email step. The sanitized archive artifact is 019e3796-7966-746b-b453-93bd4976c806.

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

CHANGELOG-NONE

Co-Authored-By: Oz oz-agent@warp.dev

zachlloyd and others added 2 commits May 17, 2026 11:10
Co-Authored-By: Oz <oz-agent@warp.dev>
Co-Authored-By: Oz <oz-agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label May 17, 2026
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 17, 2026

@zachlloyd

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

This PR adds a new local skill for orchestrating logged-out and logged-in Linux Warp onboarding verification through cloud agents.

Concerns

  • The authenticated redirect URL construction should require URL-encoding of secret-derived query values before they are embedded in warp://auth/desktop_redirect.
  • The authenticated flow should not allow routing the secret-bearing redirect URL through a desktop URI handler in a way that places the token in process arguments or shell history.

Security

  • The current URI-handler guidance can cause the refresh token to appear in process listings or shell history if the child agent uses a command such as xdg-open <warp-url>.

Verdict

Found: 0 critical, 2 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

- Trim surrounding whitespace and one pair of surrounding single or double quotes if present.
- If the secret parses as a URL with a `refresh_token` query parameter, extract that `refresh_token` value and ignore any stale `state` in the secret.
- Otherwise, treat the trimmed secret as the raw refresh token.
- Build `warp://auth/desktop_redirect?refresh_token=<normalized-refresh-token>&deleted_anonymous_user=true&state=<current-state>`.
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.

⚠️ [IMPORTANT] [SECURITY] Require URL-encoding for both the normalized refresh token and current state before building this query string; otherwise reserved characters can corrupt the redirect URL or be interpreted as extra parameters.

- Otherwise, treat the trimmed secret as the raw refresh token.
- Build `warp://auth/desktop_redirect?refresh_token=<normalized-refresh-token>&deleted_anonymous_user=true&state=<current-state>`.
- Do not include `user_uid` unless it is already present in a provided desktop redirect URL; it is not required for this flow.
- Construct the normalized redirect URL in a private temporary file or clipboard value, paste it into Warp's auth token input or route it through the desktop URI handler, then delete the temporary file immediately after use.
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.

⚠️ [IMPORTANT] [SECURITY] Routing the full warp:// URL through a desktop URI handler can leak the refresh token if implemented with command-line arguments; restrict this to paste/clipboard or another mechanism that never puts the URL in shell history or process lists.

@zachlloyd
Copy link
Copy Markdown
Contributor Author

Updated .agents/skills/onboarding-verification-skill/SKILL.md to address the auth-token handling review feedback:

  • Require URL-encoding the normalized refresh token and current-run state separately before constructing the warp://auth/desktop_redirect URL.
  • Treat token-bearing redirect URLs as secret material even after URL-encoding.
  • Restrict the authenticated flow to Warp's pasted auth redirect/token input, and explicitly forbid routing the URL through desktop URI handlers, browser address bars, shell commands, process arguments, logs, artifacts, or reports.
  • Clarify that the managed secret should authenticate as a dedicated non-employee, non-warp.dev FTUE test user.

No token value is included in the repo or PR comment.

Add explicit guidance for rotating the managed FTUE auth token and handling token-bearing redirect URLs during remote computer-use onboarding verification.

Co-Authored-By: Oz <oz-agent@warp.dev>
@zachlloyd zachlloyd requested a review from captainsafia May 18, 2026 01:40
Copy link
Copy Markdown
Contributor

@captainsafia captainsafia left a comment

Choose a reason for hiding this comment

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

Seems good overall! Left a note around cueing the agent to use the "Paste Auth Token" flow for login to avoid it having to parse the redirect URI itself.

Update the onboarding verification skill to explicitly cue cloud agents through Warp's Paste Auth Token UI instead of parsing or routing auth redirects outside of Warp.

Co-Authored-By: Oz <oz-agent@warp.dev>
@zachlloyd zachlloyd enabled auto-merge (squash) May 18, 2026 17:59
@zachlloyd zachlloyd merged commit 57f2d4c into master May 18, 2026
25 checks passed
@zachlloyd zachlloyd deleted the zach/onboarding-skill branch May 18, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants