Agent skill

Verify

by tloncorp in tloncorp/tlon-apps

Verify tlon-apps web UI changes end-to-end with a single local ship + vite dev server (lighter than the full playwright-dev rig)

MITAuto-check passedTesting & QA

Install Verify

skills CLI
$ npx skills add tloncorp/tlon-apps --skill verify -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tloncorp/tlon-apps verify --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tloncorp/tlon-apps.git skills-src && mkdir -p .claude/skills && cp -r skills-src/tools/agent-skills/verify .claude/skills/verify && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
verify
GitHub stars
107
Token cost
~1.4k tokens
SKILL.md length
579 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Verify tlon-apps web UI changes end-to-end with a single local ship + vite dev server (lighter than the full playwright-dev rig)

  • Works in 5 steps: Piers + urbit binary live in… → Boot the zod ship (http port 35453 per… → Start the web server. It runs in the… → …
  • Tasks that involve Frontend development
  • SKILL.md covers Gotchas (hit these before,…, Recipe, Browser-driving notes and Teardown
  • Calls pnpm, asdf and curl

What it does

Verify is an agent skill from tloncorp/tlon-apps. Verify tlon-apps web UI changes end-to-end with a single local ship + vite dev server (lighter than the full playwright-dev rig)

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Frontend development, Browser testing and End-to-end testing. It works with Playwright, Zod and pnpm. The repository describes itself as: Native, web clients, and server for Tlon Messenger. The licence is MIT.

When your agent uses it

  • Tasks that involve Frontend development
  • Tasks that involve Browser testing
  • Tasks that involve End-to-end testing

Example prompts

  • “/verify”

Requirements

  • Node.js

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Piers + urbit binary live in apps/tlon-web/rube/dist/ after any rube
  2. Boot the zod ship (http port 35453 per apps/tlon-web/e2e/shipManifest.json).
  3. Start the web server. It runs in the foreground and blocks, so launch it as
  4. Browse http://localhost:3000/apps/groups/, log in with zod code
  5. Vite serves packages/app etc. from source (workspace main: index.ts),

What it can do on your machine

Read from SKILL.md and the folder at commit 61e412a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm
    • asdf
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Verify loads about 1.4k tokens when it runs. Until then it costs about 34 tokens; SKILL.md has 579 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~34
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from tloncorp/tlon-apps at commit 61e412a, republished under its MIT licence (© tloncorp). 579 words, ~1,373 tokens.

Download SKILL.mdSave it as .claude/skills/verify/SKILL.md (or your agent's skills folder).
name
verify
description
Verify tlon-apps web UI changes end-to-end with a single local ship + vite dev server (lighter than the full playwright-dev rig)

Verify tlon-apps UI changes (single-ship recipe)

The full ./start-playwright-dev.sh rig boots 2+ ships (2GB loom each) and can get OOM-killed on low-memory machines mid desk-commit ("Ships process exited unexpectedly with code null"). For UI verification a single ship + one vite server is enough and much lighter.

Capabilities assumed (this is a recipe, not tied to one agent — any agent with these can follow it): a shell (urbit binary, pnpm, curl, lsof), filesystem access to the repo, and a browser-automation tool that can navigate, type/fill inputs, click by selector, evaluate JS in the page, and screenshot. Where noted, use your tool's own verbs for those actions.

Gotchas (hit these before, save the debugging)

  • asdf: if the pnpm shim fails with "No version is set for command pnpm", the pinned Node isn't installed. The repo pins 22.22.0 (.nvmrc and apps/tlon-web/.tool-versions) — run asdf install nodejs 22.22.0, don't override ASDF_NODEJS_VERSION to a newer Node: 24+ has no prebuilt better-sqlite3@11.x binaries and falls back to compiling via node-gyp.
  • peru: rube's desk assembly needs peru on PATH (brew install pipx && pipx install peru). Without it rube dies at "Vendoring desk dependencies".
  • Process sandbox: launch the ship and web server as real, long-lived detached processes. Some agent execution sandboxes kill detached/background processes — if yours does, run these steps with the sandbox disabled.

Recipe

  1. Piers + urbit binary live in apps/tlon-web/rube/dist/ after any rube run (zod/, ten/, urbit_extracted/urbit). If missing, let ./start-playwright-dev.sh run once to download/extract, then kill it.
  2. Boot the zod ship (http port 35453 per apps/tlon-web/e2e/shipManifest.json). First make sure zod's own port/pier isn't already live — deleting a live .vere.lock and booting a second Vere on the same pier corrupts/wedges it. Gate on zod specifically — its port :35453 or a live process on the zod/zod pier. Check both, because a zod daemon that is still booting has created .vere.lock but hasn't bound :35453 yet; a port-only check would then delete a live lock and start a second Vere on the same pier (the exact corruption this guards against). The pier-path match keeps it zod-specific, so another rube ship like ~ten (ten/ten, :38473) is correctly ignored and doesn't make you skip booting zod. The -d flag runs Vere as a detached daemon, so the boot returns and you can proceed:
    cd apps/tlon-web
    # Note the [r] trick: `pgrep -f 'rube/...'` would otherwise match the wrapper
    # shell running this very block (its command line contains the pattern) and
    # always report "live". `[r]ube` matches the ship process but not the literal
    # `[r]ube` in this shell's argv.
    if lsof -ti :35453 >/dev/null 2>&1 || pgrep -f '[r]ube/dist/zod/zod' >/dev/null; then
      echo "zod already live (port :35453 or zod/zod pier process) — reuse it; do NOT delete the lock or boot again."
    else
      rm -f rube/dist/zod/zod/.vere.lock
      ./rube/dist/urbit_extracted/urbit rube/dist/zod/zod -d --http-port 35453   # -d = daemon (detached)
    fi
  3. Start the web server. It runs in the foreground and blocks, so launch it as a long-lived background/detached process (your agent's background-run mechanism, a separate terminal/session, or append &) — otherwise the recipe hangs here and never reaches the browser step:
    cd apps/tlon-web
    # --strictPort: fail loudly if :3000 is taken instead of silently falling
    # through to the next free port (which would leave you verifying stale UI at
    # localhost:3000). If it fails, kill/reuse the existing :3000 server first.
    SHIP_URL=http://localhost:35453 VITE_DISABLE_SPLASH_MODAL=true pnpm dev-no-ssl --port 3000 --strictPort &
  4. Browse http://localhost:3000/apps/groups/, log in with zod code lidlut-tabwed-pillex-ridrup. Rube nukes ship state, so create a quick group via the + button to get a chat channel.
  5. Vite serves packages/app etc. from source (workspace main: index.ts), so edits hot-reload; confirm served code with curl -s "http://localhost:3000/apps/groups/@fs/<abs-path-to-file>" | grep <new-identifier>.
Show full SKILL.md (118 more words)Show less

Browser-driving notes

  • Synthesized key events (cmd+a, Backspace, Return) do NOT reach the RN-web textarea. Use your browser tool's type/fill action instead. To "select-all + type over", set the value in one fill/input action (same as a real replace) rather than key-by-key. To send, click [data-testid="MessageInputSendButton"].
  • The TanStack devtools floating toggle overlaps the send button bottom-right; hide it first: document.querySelector('button[aria-label="Open Tanstack query devtools"]').style.display='none'.
  • Screenshot coords are viewport × (screenshot_width / viewport_width) — get element rects via JS and scale.
  • Link-preview metadata fetches go browser → ship metagrab → target URL, so a local node HTTP server with a setTimeout response works as a slow/ controllable metadata target (ship can reach localhost).

Teardown

lsof -ti:3000 | xargs kill -9; lsof -ti:35453 | xargs kill -9; pkill -f "rube/dist/urbit_extracted"

© tloncorp, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in tools/agent-skills/verify of tloncorp/tlon-apps.

Open the folder on GitHubat commit 61e412a

Compare with similar skills

Verify next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Verify compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Verify this skilltloncorp/tlon-apps107—~1.4kAutomated safety check: PassMIT
E2E VerificationChorus-AIDLC/Chorus1.2k—~1.5kAutomated safety check: NotesAGPL-3.0
E2E PlaywrightAsvarox/allkaraoke261—~876Automated safety check: PassNone
Ha Frontend Testinghome-assistant/frontend5.7k—~1.7kAutomated safety check: PassApache-2.0
Common Tasksidavidov13/agentic-playwright223—~2.5kAutomated safety check: PassMIT
Kouchou AI Testingdigitaldemocracy2030/kouchou-ai171—~355Automated safety check: PassAGPL-3.0

Similar skills

  • E2E Verification

    Chorus-AIDLC/Chorus

    A skill your agent uses when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev server with the Playwright MCP, logging in…

    1.2k GitHub stars~1.5k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • E2E Playwright

    Asvarox/allkaraoke

    Run, write, and debug Playwright E2E tests for this project.

    261 GitHub stars~876 tokensUpdated today
    Testing & QAAuto-check passed
  • Ha Frontend Testing

    home-assistant/frontend

    Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~1.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Common Tasks

    idavidov13/agentic-playwright

    Copy-paste AI prompt templates for common Playwright scaffold development tasks — adding page objects, functional/E2E/API tests, Zod schemas, factories, fixtures, and components.

    223 GitHub stars~2.5k tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • Kouchou AI Testing

    digitaldemocracy2030/kouchou-ai

    Testing commands and strategy for the kouchou-ai repo, including unit/integration tests and Playwright E2E rules.

    171 GitHub stars~355 tokensUpdated today
    Testing & QAAuto-check passed
  • E2E Earn

    LedgerHQ/ledger-live

    Check, update, and RUN Earn E2E tests for Ledger Wallet Desktop (Playwright) and Mobile (Detox).

    622 GitHub stars~3.8k tokensUpdated today
    Testing & QAAuto-check passed

More from tloncorp/tlon-apps

  • Mobile QA

    tloncorp/tlon-apps

    Run a mobile QA checklist on a physical Android device over adb for tlon-apps, then triage what fails into fixes.

    107 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Tlon

    tloncorp/tlon-apps

    Read Tlon activity and message history; manage workspaces (Tlon groups), channels, Markdown notes, shared Bucket files, contacts, profiles, settings, and channel hooks; expose content publicly…

    107 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Tlon Workflow

    tloncorp/tlon-apps

    A skill your agent uses when taking a Tlon Messenger task from a fresh worktree to a merged pull request: reproducing or fixing something in the iOS, Android or web app, validating it on a…

    107 GitHub stars~8.9k tokensUpdated today
    Auto-check: notes
  • Tlon Workflow Doctor

    tloncorp/tlon-apps

    A skill your agent uses when setting up a machine for mobile agent work on this repository, when the tlon-workflow skill's prerequisite check fails, or when stim, agent-device, eas-cli, gh, or their…

    107 GitHub stars~1.2k tokensUpdated today
    Auto-check: notes
  • Tlon Product Guide

    tloncorp/tlon-apps

    Answer questions about Tlon, Urbit, Tlon Messenger, Tlonbot, and OpenClaw — what they are, how they work, and how to use them.

    107 GitHub stars~11k tokensUpdated today
    Auto-check passed

Categories

Questions about Verify

What does Verify do?

Verify tlon-apps web UI changes end-to-end with a single local ship + vite dev server (lighter than the full playwright-dev rig). Verify is an agent skill from tloncorp/tlon-apps.

When should I use Verify?

Verify fits situations like: tasks that involve Frontend development; tasks that involve Browser testing; tasks that involve End-to-end testing.

How do I install Verify in Claude Code?

Run `npx skills add tloncorp/tlon-apps --skill verify -a claude-code`. Or copy the skill folder (tools/agent-skills/verify in tloncorp/tlon-apps) into .claude/skills/verify in your project. Claude Code loads it when a task matches its description.

How do I install Verify in Codex?

Run `npx skills add tloncorp/tlon-apps --skill verify -a codex`. Or copy the skill folder (tools/agent-skills/verify in tloncorp/tlon-apps) into .agents/skills/verify in your project. Codex loads it when a task matches its description.

Can I use Verify in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tloncorp/tlon-apps --skill verify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verify, .gemini/skills/verify, .github/skills/verify and .opencode/skills/verify in your project.

What does Verify need to run?

Going by SKILL.md and its folder, Verify needs the command-line tools its instructions call (pnpm, asdf and curl). Our summary lists: Node.js.

Does Verify access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Verify safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Verify use?

Verify is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Verify use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Verify?

Skills that share tags, products or a category with Verify: E2E Verification (Chorus-AIDLC/Chorus, 1.2k stars), E2E Playwright (Asvarox/allkaraoke, 261 stars), Ha Frontend Testing (home-assistant/frontend, 5.7k stars) and Common Tasks (idavidov13/agentic-playwright, 223 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Verify?

tloncorp (a GitHub organization) maintains it in tloncorp/tlon-apps, which has 107 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 7, 2026.

Source: tloncorp/tlon-apps on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.