Agent skill

E2E Test Thinker

by UniClipboard in UniClipboard/UniClipboard

Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.

AGPL-3.0Auto-check passedTesting & QA

Install E2E Test Thinker

skills CLI
$ npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a claude-code

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

GitHub CLI
$ gh skill install UniClipboard/UniClipboard e2e-test-thinker --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/UniClipboard/UniClipboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/e2e-test-thinker .claude/skills/e2e-test-thinker && 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
e2e-test-thinker
GitHub stars
1.9k
Token cost
~1.7k tokens
SKILL.md length
744 words
Files
1
Skills in repo
24
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.

  • Works in 6 steps: Gather the Diff → Classify Each Change → Check for Existing Coverage → …
  • The user wants to think about
  • SKILL.md covers When to Use, Background: The E2E Harness, Procedure and Decision Criteria: When NOT to…, plus 1 more section
  • Calls git and cargo

What it does

E2E Test Thinker is an agent skill from UniClipboard/UniClipboard. Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests. Outputs a concrete test plan with runnable test case sketches using the uc-e2e-tests harness. Use when the user wants to think about, plan, or evaluate e2e test coverage for their current work.

Its SKILL.md is about 1.7k 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 End-to-end testing, Test generation and Test coverage. The repository describes itself as: Real-time clipboard sync across all your devices — local-first, peer-to-peer, and end-to-end encrypted. No account. No cloud dependency. No central server. The licence is AGPL-3.0.

When your agent uses it

  • The user wants to think about
  • Evaluate e2e test coverage for their current work

Example prompts

  • “/e2e-test-thinker”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Gather the Diff
  2. Classify Each Change
  3. Check for Existing Coverage
  4. Design Test Cases
  5. Output the Plan
  6. Ask Before Writing

What it can do on your machine

Read from SKILL.md and the folder at commit 101ffb3. 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:

    • git
    • cargo

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

  • Network

    No URLs in SKILL.md. Its commands use git, 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

E2E Test Thinker loads about 1.7k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 744 words of instructions outside code blocks.

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

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 UniClipboard/UniClipboard at commit 101ffb3, republished under its AGPL-3.0 licence (© UniClipboard). 744 words, ~1,710 tokens.

Download SKILL.mdSave it as .claude/skills/e2e-test-thinker/SKILL.md (or your agent's skills folder).
name
e2e-test-thinker
description
Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests. Outputs a concrete test plan with runnable test case sketches using the uc-e2e-tests harness. Use when the user wants to think about, plan, or evaluate e2e test coverage for their current work.

E2E Test Thinker

Analyze the current branch's changes and determine whether — and how — they can be covered by CLI-based end-to-end tests using the uc-e2e-tests harness.

When to Use

  • After completing a feature or bug fix, before opening a PR
  • When the user asks "should I write e2e tests for this?" or "can this be tested via CLI?"
  • When reviewing a branch for test coverage gaps
  • Triggered by: "e2e test", "端到端测试", "think about e2e", "e2e coverage", "CLI test plan"

Background: The E2E Harness

The harness lives at tests/e2e/ and provides three building blocks:

ComponentPurpose
TestProfileUUID-based profile isolation — each test gets its own data dir, socket, and identity
TestDaemonSpawn uniclipd with a test profile, wait for /health to return 200, kill on drop
TestCliRun uniclip subcommands against a test profile; run_ok(), run_capture() helpers

Test pattern: every test is #[tokio::test] #[ignore] and runs with cargo test -p uc-e2e-tests -- --ignored. Tests are black-box: they only interact via the CLI binary and HTTP health endpoint.

Existing test files (for reference and dedup):

FileCovers
daemon_lifecycle.rsstart, health, kill
single_node.rsinit, status, send, search, devices, members (+ JSON variants)
error_cases.rsdouble-init, empty passphrase, commands before init
stop_and_restart.rsstop, start, foreground, already-running, setup gate
dual_node.rsinvite + join pairing (infrastructure only)
clipboard_history.rshistory list/search
clipboard_sync.rscross-node clipboard sync
file_transfer.rsfile send/receive
watch_events.rsevent stream / watch mode
daemon_api.rsdirect HTTP API calls
mobile_sync.rsmobile sync gateway

Procedure

Phase 1: Gather the Diff

Run these commands to understand what changed on the current branch:

bash
# What files changed?
git diff main...HEAD --stat

# Full diff for analysis
git diff main...HEAD

# Commit messages for intent
git log main..HEAD --oneline

If the branch IS main (no divergence), fall back to git diff HEAD~5..HEAD or ask the user which range to analyze.

Phase 2: Classify Each Change

For every changed file/module, classify it into one of these buckets:

BucketCLI-Testable?Example
CLI command added/modified✅ Yes — primary targetNew subcommand, changed output format, new flag
Daemon API endpoint added/modified✅ Yes — via CLI or direct HTTPNew route, changed response shape
Core business logic change⚠️ Maybe — only if it surfaces through CLI output or behaviorEncryption change that affects init flow
GUI-only change❌ No — needs browser/host testReact component, host command handler
Build/CI/docs change❌ NoCargo.toml deps, CI yaml, markdown
Internal refactor (same behavior)⚠️ Regression only — existing tests should still passRenamed internal module, changed data structure
Phase 3: Check for Existing Coverage

For each ✅/⚠️ item, grep existing test files to see if it's already covered:

bash
grep -r "relevant_command_or_keyword" tests/e2e/tests/

Report what's covered and what's not.

Show full SKILL.md (348 more words)Show less
Phase 4: Design Test Cases

For each uncovered testable change, produce a test case sketch following these rules:

Structure rules:

  1. One #[tokio::test] #[ignore] async fn test_<descriptive_name>() per scenario
  2. Use TestProfile::new("unique-slug") for isolation
  3. Use TestDaemon::start(profile).await to spawn daemon
  4. Use TestCli::new(&daemon.profile) for CLI commands
  5. Always init before testing business commands (unless testing pre-init behavior)
  6. Use run_capture() for assertions on exit code, stdout, stderr
  7. Use --json flag when testing structured output
  8. Parse JSON with serde_json::from_str::<serde_json::Value>() for schema assertions

Assertion patterns:

  • Exit code: assert!(output.success()) or assert!(!output.success())
  • JSON field: json.get("field").and_then(|v| v.as_str())
  • Contains: combined.contains("expected")
  • Valid JSON: serde_json::from_str(output.stdout.trim()).is_ok()

Decide which test file the new case belongs in:

  • Fits an existing file's theme → add to that file
  • New feature area → propose a new file name
Phase 5: Output the Plan

Present the results as:

text
## E2E Test Analysis for branch `<branch-name>`

### Changes Summary
- <one-line per changed area>

### Not Testable via CLI
- <item>: <reason>

### Already Covered
- <item>: covered by `<test_file>::<test_fn>`

### Proposed New Tests

#### 1. `test_<name>` → `<target_file>.rs`

**What it tests:** <one sentence>

**Sketch:**
```rust
#[tokio::test]
#[ignore]
async fn test_<name>() {
    // ... concrete test code ...
}
```text

**Confidence:** High / Medium / Low
**Why:** <why this confidence level>
Phase 6: Ask Before Writing

After presenting the plan, ask the user:

  1. Which tests to actually write (all / subset / none)
  2. Whether to create new test files or append to existing ones
  3. Any edge cases they want added

Do NOT write test code until the user confirms.

Decision Criteria: When NOT to Propose E2E Tests

Skip proposing e2e tests when:

  • The change is purely GUI (React/host commands) with no CLI surface
  • The change is a docs/CI/build-only change
  • The change is an internal refactor where existing tests provide regression coverage
  • The CLI binary doesn't expose the changed behavior (e.g., internal daemon-to-daemon protocol change with no CLI observability)

In these cases, explain WHY and suggest the appropriate test layer (unit test, integration test, manual test, GUI test).

Common Pitfalls

  • Don't test daemon internals — e2e is black-box. If you need to assert internal state, that's a unit/integration test.
  • Don't parse human-readable CLI output with exact string matching — use --json mode and parse structured output.
  • Don't forget profile isolation — every test MUST use a unique TestProfile. Shared profiles cause flaky parallel test runs.
  • Don't assume network — single-node tests don't need network. Dual-node tests use localhost loopback only.
  • Don't test timing — avoid sleep-based assertions. Poll with a deadline loop if you need to wait for async behavior.

© UniClipboard, AGPL-3.0. 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 .agents/skills/e2e-test-thinker of UniClipboard/UniClipboard.

Open the folder on GitHubat commit 101ffb3

Compare with similar skills

E2E Test Thinker 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.

E2E Test Thinker compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E Test Thinker this skillUniClipboard/UniClipboard1.9k—~1.7kAutomated safety check: PassAGPL-3.0
Scenario Testingaiskillstore/marketplace4301 repos~830Automated safety check: PassNone
Senior QAnicepkg/auto-company1923 repos~1.1kAutomated safety check: NotesNone
Senior QAalirezarezvani/claude-skills28k1 repos~2.1kAutomated safety check: PassMIT
Coveryonatangross/orchestkit289—~6.3kAutomated safety check: NotesMIT
Add E2E Test Suitecrowdin/crowdin-cli320—~2.4kAutomated safety check: PassMIT

Similar skills

  • Scenario Testing

    aiskillstore/marketplace

    This skill should be used when writing tests, validating features, or needing to verify code works.

    430 GitHub starsUsed in 1 repo~830 tokens
    Testing & QAAuto-check passed
  • Senior QA

    nicepkg/auto-company

    Comprehensive QA and testing skill for quality assurance, test automation, and testing strategies for ReactJS, NextJS, NodeJS applications.

    192 GitHub starsUsed in 3 repos~1.1k tokens
    Testing & QAAuto-check: notes
  • Senior QA

    alirezarezvani/claude-skills

    Generates unit tests, integration tests, and E2E tests for React/Next.js applications.

    28k GitHub starsUsed in 1 repo~2.1k tokens
    Testing & QAAuto-check passed
  • Cover

    yonatangross/orchestkit

    Generate tests that do not exist yet. An agent skill from yonatangross/orchestkit.

    289 GitHub stars~6.3k tokensUpdated today
    Testing & QAAuto-check: notes
  • Add E2E Test Suite

    crowdin/crowdin-cli

    Adds a new end-to-end (e2e) test suite for the Crowdin CLI under tests/e2e/suites/, exercising real CLI commands against a freshly-created Crowdin project.

    320 GitHub stars~2.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Atdd Mutate

    swingerman/engineer

    A skill your agent uses to add a third validation layer to the ATDD workflow — after acceptance tests verify WHAT and unit tests verify HOW, mutation testing verifies the tests actually catch bugs.

    154 GitHub stars~2.7k tokensUpdated 15 days ago
    Testing & QAAuto-check passed

More from UniClipboard/UniClipboard

All 24 skills in this repo
  • Beui

    UniClipboard/UniClipboard

    Pick and install beUI (@beui) animated React components from the shadcn registry.

    1.9k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Create PR

    UniClipboard/UniClipboard

    Push the current branch and open a GitHub pull request against main.

    1.9k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Design Audit

    UniClipboard/UniClipboard

    定期审计代码库的工程设计问题(高心智复杂度、单一真相源被破坏、catch-all 胖接口、死代码、散落魔法字面量、泄漏抽象、资源生命周期靠环形缓冲)与可优化点,范围限定为自上次审计以来的 git churn,每条发现都落到 file:line 并对照本项目自己的 VISION.md / 各级 AGENTS.md / memory…

    1.9k GitHub stars~554 tokensUpdated today
    Auto-check passed
  • Dual Side Debug

    UniClipboard/UniClipboard

    Inspect uniclipboard logs from BOTH the macOS host and the mounted Windows peer when debugging cross-platform sync, pairing, transfer, or daemon issues.

    1.9k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • iOS Log Diagnose

    UniClipboard/UniClipboard

    Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.

    1.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Learn

    UniClipboard/UniClipboard

    Record a lesson learned into crates/AGENTS.md (CONVENTIONS or ANTI-PATTERNS section).

    1.9k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Categories

Questions about E2E Test Thinker

What does E2E Test Thinker do?

Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests. E2E Test Thinker is an agent skill from UniClipboard/UniClipboard. Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.

When should I use E2E Test Thinker?

E2E Test Thinker fits situations like: the user wants to think about; evaluate e2e test coverage for their current work.

How do I install E2E Test Thinker in Claude Code?

Run `npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a claude-code`. Or copy the skill folder (.agents/skills/e2e-test-thinker in UniClipboard/UniClipboard) into .claude/skills/e2e-test-thinker in your project. Claude Code loads it when a task matches its description.

How do I install E2E Test Thinker in Codex?

Run `npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a codex`. Or copy the skill folder (.agents/skills/e2e-test-thinker in UniClipboard/UniClipboard) into .agents/skills/e2e-test-thinker in your project. Codex loads it when a task matches its description.

Can I use E2E Test Thinker 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 UniClipboard/UniClipboard --skill e2e-test-thinker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/e2e-test-thinker, .gemini/skills/e2e-test-thinker, .github/skills/e2e-test-thinker and .opencode/skills/e2e-test-thinker in your project.

What does E2E Test Thinker need to run?

Going by SKILL.md and its folder, E2E Test Thinker needs the command-line tools its instructions call (git and cargo).

Does E2E Test Thinker access the network?

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

Is E2E Test Thinker 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 E2E Test Thinker use?

E2E Test Thinker is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does E2E Test Thinker use?

About 1.7k tokens (SKILL.md is roughly 6.8k 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 E2E Test Thinker?

Skills that share tags, products or a category with E2E Test Thinker: Scenario Testing (aiskillstore/marketplace, 430 stars), Senior QA (nicepkg/auto-company, 192 stars), Senior QA (alirezarezvani/claude-skills, 28k stars) and Cover (yonatangross/orchestkit, 289 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E Test Thinker?

UniClipboard (a GitHub organization) maintains it in UniClipboard/UniClipboard, which has 1,856 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 8, 2026.

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