Scenario Testing
aiskillstore/marketplace
This skill should be used when writing tests, validating features, or needing to verify code works.
Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.
$ npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install UniClipboard/UniClipboard e2e-test-thinker --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "e2e-test-thinker" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/e2e-test-thinker into .claude/skills/e2e-test-thinker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e-test-thinker", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/e2e-test-thinkerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install UniClipboard/UniClipboard e2e-test-thinker --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/e2e-test-thinker .agents/skills/e2e-test-thinker && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "e2e-test-thinker" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/e2e-test-thinker into .agents/skills/e2e-test-thinker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e-test-thinker", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install UniClipboard/UniClipboard e2e-test-thinker --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/e2e-test-thinker .cursor/skills/e2e-test-thinker && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "e2e-test-thinker" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/e2e-test-thinker into .cursor/skills/e2e-test-thinker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e-test-thinker", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/UniClipboard/UniClipboard.git --path .agents/skills/e2e-test-thinker--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install UniClipboard/UniClipboard e2e-test-thinker --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/e2e-test-thinker .gemini/skills/e2e-test-thinker && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "e2e-test-thinker" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/e2e-test-thinker into .gemini/skills/e2e-test-thinker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e-test-thinker", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install UniClipboard/UniClipboard e2e-test-thinkerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/e2e-test-thinker .github/skills/e2e-test-thinker && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "e2e-test-thinker" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/e2e-test-thinker into .github/skills/e2e-test-thinker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e-test-thinker", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UniClipboard/UniClipboard --skill e2e-test-thinker -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install UniClipboard/UniClipboard e2e-test-thinker --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/e2e-test-thinker .opencode/skills/e2e-test-thinker && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "e2e-test-thinker" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/e2e-test-thinker into .opencode/skills/e2e-test-thinker/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "e2e-test-thinker", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
e2e-test-thinkerAnalyze 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. 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.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 101ffb3. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitcargoFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from UniClipboard/UniClipboard at commit 101ffb3, republished under its AGPL-3.0 licence (© UniClipboard). 744 words, ~1,710 tokens.
.claude/skills/e2e-test-thinker/SKILL.md (or your agent's skills folder).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.
The harness lives at tests/e2e/ and provides three building blocks:
| Component | Purpose |
|---|---|
TestProfile | UUID-based profile isolation — each test gets its own data dir, socket, and identity |
TestDaemon | Spawn uniclipd with a test profile, wait for /health to return 200, kill on drop |
TestCli | Run 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):
| File | Covers |
|---|---|
daemon_lifecycle.rs | start, health, kill |
single_node.rs | init, status, send, search, devices, members (+ JSON variants) |
error_cases.rs | double-init, empty passphrase, commands before init |
stop_and_restart.rs | stop, start, foreground, already-running, setup gate |
dual_node.rs | invite + join pairing (infrastructure only) |
clipboard_history.rs | history list/search |
clipboard_sync.rs | cross-node clipboard sync |
file_transfer.rs | file send/receive |
watch_events.rs | event stream / watch mode |
daemon_api.rs | direct HTTP API calls |
mobile_sync.rs | mobile sync gateway |
Run these commands to understand what changed on the current branch:
# What files changed?
git diff main...HEAD --stat
# Full diff for analysis
git diff main...HEAD
# Commit messages for intent
git log main..HEAD --onelineIf the branch IS main (no divergence), fall back to git diff HEAD~5..HEAD or ask the user which range to analyze.
For every changed file/module, classify it into one of these buckets:
| Bucket | CLI-Testable? | Example |
|---|---|---|
| CLI command added/modified | ✅ Yes — primary target | New subcommand, changed output format, new flag |
| Daemon API endpoint added/modified | ✅ Yes — via CLI or direct HTTP | New route, changed response shape |
| Core business logic change | ⚠️ Maybe — only if it surfaces through CLI output or behavior | Encryption change that affects init flow |
| GUI-only change | ❌ No — needs browser/host test | React component, host command handler |
| Build/CI/docs change | ❌ No | Cargo.toml deps, CI yaml, markdown |
| Internal refactor (same behavior) | ⚠️ Regression only — existing tests should still pass | Renamed internal module, changed data structure |
For each ✅/⚠️ item, grep existing test files to see if it's already covered:
grep -r "relevant_command_or_keyword" tests/e2e/tests/Report what's covered and what's not.
For each uncovered testable change, produce a test case sketch following these rules:
Structure rules:
#[tokio::test] #[ignore] async fn test_<descriptive_name>() per scenarioTestProfile::new("unique-slug") for isolationTestDaemon::start(profile).await to spawn daemonTestCli::new(&daemon.profile) for CLI commandsrun_capture() for assertions on exit code, stdout, stderr--json flag when testing structured outputserde_json::from_str::<serde_json::Value>() for schema assertionsAssertion patterns:
assert!(output.success()) or assert!(!output.success())json.get("field").and_then(|v| v.as_str())combined.contains("expected") serde_json::from_str(output.stdout.trim()).is_ok()Decide which test file the new case belongs in:
Present the results as:
## 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>After presenting the plan, ask the user:
Do NOT write test code until the user confirms.
Skip proposing e2e tests when:
In these cases, explain WHY and suggest the appropriate test layer (unit test, integration test, manual test, GUI test).
--json mode and parse structured output.TestProfile. Shared profiles cause flaky parallel test runs.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
Just SKILL.md in .agents/skills/e2e-test-thinker of UniClipboard/UniClipboard.
Open the folder on GitHubat commit 101ffb3
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| E2E Test Thinker this skillUniClipboard/UniClipboard | 1.9k | — | ~1.7k | Automated safety check: Pass | AGPL-3.0 | |
| Scenario Testingaiskillstore/marketplace | 430 | 1 repos | ~830 | Automated safety check: Pass | None | |
| Senior QAnicepkg/auto-company | 192 | 3 repos | ~1.1k | Automated safety check: Notes | None | |
| Senior QAalirezarezvani/claude-skills | 28k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Coveryonatangross/orchestkit | 289 | — | ~6.3k | Automated safety check: Notes | MIT | |
| Add E2E Test Suitecrowdin/crowdin-cli | 320 | — | ~2.4k | Automated safety check: Pass | MIT |
aiskillstore/marketplace
This skill should be used when writing tests, validating features, or needing to verify code works.
nicepkg/auto-company
Comprehensive QA and testing skill for quality assurance, test automation, and testing strategies for ReactJS, NextJS, NodeJS applications.
alirezarezvani/claude-skills
Generates unit tests, integration tests, and E2E tests for React/Next.js applications.
yonatangross/orchestkit
Generate tests that do not exist yet. An agent skill from yonatangross/orchestkit.
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.
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.
UniClipboard/UniClipboard
Pick and install beUI (@beui) animated React components from the shadcn registry.
UniClipboard/UniClipboard
Push the current branch and open a GitHub pull request against main.
UniClipboard/UniClipboard
定期审计代码库的工程设计问题(高心智复杂度、单一真相源被破坏、catch-all 胖接口、死代码、散落魔法字面量、泄漏抽象、资源生命周期靠环形缓冲)与可优化点,范围限定为自上次审计以来的 git churn,每条发现都落到 file:line 并对照本项目自己的 VISION.md / 各级 AGENTS.md / memory…
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.
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.
UniClipboard/UniClipboard
Record a lesson learned into crates/AGENTS.md (CONVENTIONS or ANTI-PATTERNS section).
Categories
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.
E2E Test Thinker fits situations like: the user wants to think about; evaluate e2e test coverage for their current work.
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.
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.
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.
Going by SKILL.md and its folder, E2E Test Thinker needs the command-line tools its instructions call (git and cargo).
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.
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.
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.
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.
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.
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.