Scenario Testing
aiskillstore/marketplace
This skill should be used when writing tests, validating features, or needing to verify code works.
Writes and documents the test suite for a generated cli-web- CLI (Phase 3): unit tests with mocked HTTP, live E2E tests, subprocess tests via resolvecli, and the TEST.md plan/results record.
$ npx skills add ItamarZand88/CLI-Anything-WEB --skill testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ItamarZand88/CLI-Anything-WEB testing --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/ItamarZand88/CLI-Anything-WEB.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-anything-web-plugin/skills/testing .claude/skills/testing && 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 "testing" agent skill from https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/testing into .claude/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", 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/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/testingType 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 ItamarZand88/CLI-Anything-WEB --skill testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ItamarZand88/CLI-Anything-WEB testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItamarZand88/CLI-Anything-WEB.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-anything-web-plugin/skills/testing .agents/skills/testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "testing" agent skill from https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/testing into .agents/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", 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 ItamarZand88/CLI-Anything-WEB --skill testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ItamarZand88/CLI-Anything-WEB testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItamarZand88/CLI-Anything-WEB.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-anything-web-plugin/skills/testing .cursor/skills/testing && 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 "testing" agent skill from https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/testing into .cursor/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", 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/ItamarZand88/CLI-Anything-WEB.git --path cli-anything-web-plugin/skills/testing--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 ItamarZand88/CLI-Anything-WEB --skill testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ItamarZand88/CLI-Anything-WEB testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItamarZand88/CLI-Anything-WEB.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-anything-web-plugin/skills/testing .gemini/skills/testing && 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 "testing" agent skill from https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/testing into .gemini/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", 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 ItamarZand88/CLI-Anything-WEB testingInstalls 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 ItamarZand88/CLI-Anything-WEB --skill testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ItamarZand88/CLI-Anything-WEB.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-anything-web-plugin/skills/testing .github/skills/testing && 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 "testing" agent skill from https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/testing into .github/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", 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 ItamarZand88/CLI-Anything-WEB --skill testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ItamarZand88/CLI-Anything-WEB testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ItamarZand88/CLI-Anything-WEB.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-anything-web-plugin/skills/testing .opencode/skills/testing && 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 "testing" agent skill from https://github.com/ItamarZand88/CLI-Anything-WEB/tree/main/cli-anything-web-plugin/skills/testing into .opencode/skills/testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing", 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.
testingWrites and documents the test suite for a generated cli-web- CLI (Phase 3): unit tests with mocked HTTP, live E2E tests, subprocess tests via resolvecli, and the TEST.md plan/results record.
Testing is an agent skill from ItamarZand88/CLI-Anything-WEB. Writes and documents the test suite for a generated cli-web- CLI (Phase 3): unit tests with mocked HTTP, live E2E tests, subprocess tests via resolvecli, and the TEST.md plan/results record. Use after the methodology skill completes implementation.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/resolve-cli-pattern.md`, `references/test-code-examples.md` and `references/vcr-testing.md`).
It sits in Testing & QA, covering End-to-end testing, Test generation and Unit testing. The repository describes itself as: Claude Code plugin that generates production-grade Python CLIs for any web app. 20 CLIs and counting. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 931e201. 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:
pythonpipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, 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.
Testing loads about 3.3k tokens when it runs, and up to ~5.9k if it reads all its reference files. Until then it costs about 65 tokens; SKILL.md has 1,144 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 ItamarZand88/CLI-Anything-WEB at commit 931e201, republished under its MIT licence (© ItamarZand88). 1,144 words, ~3,326 tokens.
.claude/skills/testing/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Write and document tests for cli-web-* CLIs. This skill owns the full testing lifecycle: test implementation and test documentation (plan + results).
Copy this checklist and check off items as you complete them:
Phase 3 Progress:
- [ ] Prerequisites: implementation complete, CLI installed, <APP>.md exists
- [ ] Auth verified working (auth login + status) — auth CLIs only
- [ ] Unit tests written (mocked HTTP, typed-exception + helper coverage)
- [ ] E2E tests written (live round-trips, FAIL not skip on missing auth)
- [ ] Subprocess tests written (_resolve_cli pattern)
- [ ] TEST.md Part 1 generated (generate-test-docs.py plan)
- [ ] Full suite green incl. CLI_WEB_FORCE_INSTALLED=1 subprocess run
- [ ] TEST.md Part 2 appended (generate-test-docs.py results)
- [ ] phase-state marked completeDo NOT start unless:
pip install -e . succeeds and cli-web-<app> is on PATH<APP>.md exists with API map and auth schemeIf implementation is incomplete, invoke the methodology skill first. If the
methodology phase is marked failed in phase-state, follow
skills/shared/RECOVERY.md §phase-state Check Failures.
For auth-required sites: run cli-web-<app> auth login then auth status (must show valid).
Tests that skip or catch auth errors are broken — use pytest.fail() if auth is missing
(CONVENTIONS.md §Auth Rules "Tests"). No-auth sites skip auth setup entirely.
Goal: Comprehensive test suite. Document what you're testing as you write it — TEST.md Part 1 (the plan) is written alongside the test code, not as a separate gate before it.
The standard three-layer suite is: unit tests (mocked HTTP) + live E2E tests + subprocess tests. This covers fast correctness, real integration, and installed CLI.
| Layer | File | Purpose |
|---|---|---|
| Unit | test_core.py | Core functions with mocked HTTP. No network. Fast. |
| E2E live | test_e2e.py | Real API calls. Require auth — FAIL (not skip) without it. |
| CLI subprocess | test_e2e.py | Installed cli-web-<app> via _resolve_cli(). Full end-to-end. |
| Integration (VCR) | test_integration.py | Recorded HTTP cassettes via VCR.py. Reproducible, no network. Recommended for RPC protocols. |
Optional — fixture replay layer: Only add this if the site has complex HTML parsing or non-trivial response transformations worth preserving. For straightforward JSON APIs, fixture replay adds maintenance cost without much benefit.
| Layer (optional) | File | Purpose |
|---|---|---|
| E2E fixture | test_e2e.py | Replay captured responses from tests/fixtures/. Verifies parsing logic. |
Dispatch test_core.py and test_e2e.py writing as parallel subagents — they're
independent. Start unit tests during Phase 2 if possible (they don't depend on commands).
unittest.mock.patch for HTTP, real CSS class names in HTML fixtures_resolve_cli("cli-web-<app>") — see references/resolve-cli-pattern.mdisinstance(results, list)references/test-code-examples.md for patternsFor complex protocols, add a recorded-cassette layer between unit and live
E2E — real responses, replayed offline. Setup, recording workflow, and the
marker convention: references/vcr-testing.md.
If the CLI uses HTML scraping (BeautifulSoup, lxml), unit test fixtures must mirror the real page's CSS class structure — not a generic simplified table.
A fixture like <table><tr><td>GK</td><td>95</td></tr></table> will pass even if
the real parser is completely broken against the live site's actual markup. The parser
was written to match specific CSS classes (table-player-name, platform-ps-only,
table-pos-main) — the fixture must have those same classes.
When to apply this: any CLI module that calls .find(class_=...) or .find_all(...)
on response HTML. If the module only parses JSON (resp.json()), skip this — JSON
fixtures are naturally structural.
Practical check: look at your parser's .find(class_="...") calls. If your fixture
HTML doesn't contain those exact class names, the fixture is not testing the parser.
Every --json output must be checked for raw protocol leakage. These are bugs
the agent MUST catch before declaring tests pass:
# In E2E tests, assert the output is real data, not raw RPC fragments:
def test_chat_returns_text_not_rpc(client, notebook_id):
"""Chat answer must be human-readable text, not raw batchexecute chunks."""
result = client.chat_query(notebook_id, "What is this about?")
# RED FLAGS — fail if any of these appear in the answer:
assert "wrb.fr" not in result, "Raw RPC data leaked into chat output"
assert "af.httprm" not in result, "Raw RPC data leaked into chat output"
assert '"di"' not in result, "Raw RPC data leaked into chat output"
assert len(result) > 50, "Answer too short — may be empty or error"
def test_sources_list_after_add(client, notebook_id):
"""Sources must appear in list after being added."""
source = client.add_url_source(notebook_id, "https://example.com")
import time; time.sleep(5) # Wait for indexing
sources = client.list_sources(notebook_id)
assert len(sources) > 0, "Sources list empty after add — check GET_NOTEBOOK params"
assert any(s.id == source.id for s in sources), "Added source not in list"Subprocess test equivalent:
def test_cli_chat_output_is_text(self):
"""CLI chat --json output must contain readable answer, not raw RPC."""
result = subprocess.run(
[cli, "chat", "ask", "--query", "test", "--json"],
capture_output=True, text=True, encoding="utf-8",
)
data = json.loads(result.stdout)
assert "wrb.fr" not in data.get("answer", ""), "Raw RPC leaked"
assert len(data.get("answer", "")) > 20, "Answer suspiciously short"Verify response bodies for every CRUD operation — status 200 alone is insufficient. Create → check fields match, Read → check ID matches, Delete → verify 404 on re-read.
Unit tests MUST verify that the client raises the correct typed exceptions — without
these assertions, a client that always raises generic Exception would pass the suite:
# test_core.py
def test_auth_error_on_401(mock_client):
"""Client raises AuthError on 401, not generic exception."""
with pytest.raises(AuthError) as exc_info:
mock_client.notebooks.list() # mocked to return 401
assert exc_info.value.recoverable is True
def test_rate_limit_error_on_429(mock_client):
"""Client raises RateLimitError with retry_after on 429."""
with pytest.raises(RateLimitError) as exc_info:
mock_client.notebooks.list() # mocked to return 429
assert exc_info.value.retry_after == 60
def test_json_error_output(cli_runner):
"""--json mode outputs structured error, not plain text."""
result = cli_runner.invoke(cli, ["--json", "notebooks", "get", "nonexistent"])
data = json.loads(result.output)
assert data["error"] is True
assert "code" in dataUnit tests cover the shared helpers in utils/helpers.py — every command
routes through them, so a bug here silently breaks the whole CLI. Required
coverage: partial-ID resolution (unique prefix, ambiguous raises), filename
sanitization, persistent context set/get, and handle_errors exit codes.
Complete code patterns: references/test-code-examples.md §Helper tests.
CLIs scaffolded from template v2.1+ map domain errors to the numeric exit-code contract (CONVENTIONS.md §Exit Codes) — assert the contract:
def test_handle_errors_auth_exit_code():
with pytest.raises(SystemExit) as exc:
with handle_errors():
raise AuthError("expired")
assert exc.value.code == 3 # EXIT_AUTH
def test_handle_errors_unknown_exit_code():
with pytest.raises(SystemExit) as exc:
with handle_errors():
raise ValueError("bug")
assert exc.value.code == 1 # EXIT_UNKNOWNCLIs generated before template v2.1 use the legacy codes (domain=1,
unexpected=2) — assert whatever the CLI's own helpers.py implements; do
not change a legacy CLI's exit codes from a test.
Every E2E live test MUST include at minimum a create-read-verify round-trip — a test that only creates without reading back cannot detect silent data loss or malformed request bodies:
create entity -> read it back -> verify fields match -> update ->
verify update -> delete -> verify 404 on readTests that only create without reading back give false confidence.
For read-only CLIs: The round-trip becomes: list resources → get one by ID → verify fields match between list and detail views. No create/update/delete round-trip is needed.
_resolve_cli PatternThe subprocess test rule is defined in
skills/shared/CONVENTIONS.md §Subprocess Test Rule (_resolve_cli, no cwd,
CLI_WEB_FORCE_INSTALLED=1, UTF-8 subprocess encoding). The complete helper
function and TestCLISubprocess class are in
references/resolve-cli-pattern.md.
After writing all tests, generate the test plan automatically:
python ${CLAUDE_PLUGIN_ROOT}/scripts/generate-test-docs.py plan \
<app>/agent-harness/cli_web/<app>/tests/ --app-name <app>This parses test files via AST and creates TEST.md Part 1 with test inventory, class breakdowns, and method listings. Review and enhance the generated plan with additional context:
Some batchexecute/RPC operations are client-side — the browser generates the ID and the API just acknowledges (returns null). Common for project/document creation in Google apps.
create_X() returned None during the methodology smoke check.pytest.skip with the reason when create is
browser-only. Code patterns: references/test-code-examples.md
§Client-side operations.Verify auth is working FIRST:
cli-web-<app> auth login # opens browser via Python playwright
cli-web-<app> auth status # must show live validation: OKIf auth status fails, fix it before proceeding.
Run full test suite: python -m pytest cli_web/<app>/tests/ -v --tb=short
Run subprocess tests: CLI_WEB_FORCE_INSTALLED=1 python -m pytest cli_web/<app>/tests/ -v -s -k subprocess
ALL tests must pass. If E2E tests fail with auth errors, go back to step 1. Do NOT record "auth not configured" as a test result — that means auth is broken.
Goal: Append test results to TEST.md (Part 2).
Part 2 is appended to the existing Part 1. Never overwrite.
Generate Part 2 automatically after all tests pass:
python ${CLAUDE_PLUGIN_ROOT}/scripts/generate-test-docs.py results \
<app>/agent-harness/cli_web/<app>/tests/ --app-name <app>This runs pytest, captures output, and appends Part 2 with summary metrics and raw output. Review the generated results for accuracy.
Include example CLI usage in README.md.
When tests fail:
When all tests pass, mark phase complete and invoke the standards skill:
python ${CLAUDE_PLUGIN_ROOT}/scripts/phase-state.py complete <app> --phase testingReferences: resolve-cli-pattern.md, test-code-examples.md
© ItamarZand88, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in cli-anything-web-plugin/skills/testing of ItamarZand88/CLI-Anything-WEB.
Open the folder on GitHubat commit 931e201
Testing 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 |
|---|---|---|---|---|---|---|
| Testing this skillItamarZand88/CLI-Anything-WEB | 231 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Scenario Testingaiskillstore/marketplace | 430 | 1 repos | ~830 | Automated safety check: Pass | None | |
| Senior QAalirezarezvani/claude-skills | 28k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Run TestsPortwood-Global-Solutions/Portwood | 125 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Test CommanderEliasOulkadi/shokunin | 114 | — | ~3k | Automated safety check: Notes | MIT | |
| Frontmcp Testingagentfront/frontmcp | 146 | — | ~10k | Automated safety check: Notes | Apache-2.0 |
aiskillstore/marketplace
This skill should be used when writing tests, validating features, or needing to verify code works.
alirezarezvani/claude-skills
Generates unit tests, integration tests, and E2E tests for React/Next.js applications.
Portwood-Global-Solutions/Portwood
Run Portwood's test suites — the one-command QA harness, the anonymous-Apex e2e scripts, Apex unit tests, prettier, and Code Analyzer.
EliasOulkadi/shokunin
Generate unit, integration, E2E, and visual regression tests following the Testing Trophy methodology (80% integration).
agentfront/frontmcp
A skill your agent uses for anything about testing FrontMCP servers: writing or running unit, integration, and E2E tests and reaching the 95%+ coverage bar.
borghei/Claude-Skills
Testing for React/Next.js with Jest, React Testing Library, and Playwright.
ItamarZand88/CLI-Anything-WEB
Runs Phase 4 review/publish/verify for a cli-web- CLI: implementation review by 3 parallel agents, the tiered quality checklist (Tier 1 critical fail-fast, then comprehensive), pip install + smoke…
ItamarZand88/CLI-Anything-WEB
Searches Airbnb from the terminal via cli-web-airbnb — find stays by location, dates, and filters; get listing details, guest reviews, and availability calendars; autocomplete location names.
ItamarZand88/CLI-Anything-WEB
Searches Amazon from the terminal via cli-web-amazon — product search, product details by ASIN, Best Sellers by category, and autocomplete suggestions.
ItamarZand88/CLI-Anything-WEB
Searches Booking.com from the terminal via cli-web-booking — find hotels, apartments, and hostels by destination, dates, and guests; get property details by slug; resolve destination names to IDs.
ItamarZand88/CLI-Anything-WEB
Use cli-web-booking to search Booking.com for hotels, apartments, hostels, and accommodations by destination, dates, and filters.
ItamarZand88/CLI-Anything-WEB
Queries US congressional stock trades (STOCK Act disclosures) on capitoltrades.com via the cli-web-capitoltrades command-line tool — trades with rich filters, politician profiles and leaderboards…
Categories
Writes and documents the test suite for a generated cli-web- CLI (Phase 3): unit tests with mocked HTTP, live E2E tests, subprocess tests via resolvecli, and the TEST.md plan/results record. Testing is an agent skill from ItamarZand88/CLI-Anything-WEB.md plan/results record.
Testing fits situations like: tasks that involve End-to-end testing; tasks that involve Test generation; tasks that involve Unit testing.
Run `npx skills add ItamarZand88/CLI-Anything-WEB --skill testing -a claude-code`. Or copy the skill folder (cli-anything-web-plugin/skills/testing in ItamarZand88/CLI-Anything-WEB) into .claude/skills/testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ItamarZand88/CLI-Anything-WEB --skill testing -a codex`. Or copy the skill folder (cli-anything-web-plugin/skills/testing in ItamarZand88/CLI-Anything-WEB) into .agents/skills/testing 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 ItamarZand88/CLI-Anything-WEB --skill testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/testing, .gemini/skills/testing, .github/skills/testing and .opencode/skills/testing in your project.
Going by SKILL.md and its folder, Testing needs the command-line tools its instructions call (python and pip). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use pip, 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.
Testing is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Testing: Scenario Testing (aiskillstore/marketplace, 430 stars), Senior QA (alirezarezvani/claude-skills, 28k stars), Run Tests (Portwood-Global-Solutions/Portwood, 125 stars) and Test Commander (EliasOulkadi/shokunin, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ItamarZand88 (a GitHub user) maintains it in ItamarZand88/CLI-Anything-WEB, which has 231 GitHub stars. The repository holds 42 skills in this directory. The repository was last updated on October 1, 2026.
Source: ItamarZand88/CLI-Anything-WEB on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.