Plugin Testing
polyipseity/obsidian-terminal
Skill for testing Obsidian plugin features in this repository.
GUI desktop app only. An agent skill from warpdotdev/warp.
$ npx skills add warpdotdev/warp --skill gui-integration-test -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install warpdotdev/warp gui-integration-test --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/warpdotdev/warp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/gui-integration-test .claude/skills/gui-integration-test && 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 "gui-integration-test" agent skill from https://github.com/warpdotdev/warp/tree/master/.agents/skills/gui-integration-test into .claude/skills/gui-integration-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gui-integration-test", 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/warpdotdev/warp/tree/master/.agents/skills/gui-integration-testType 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 warpdotdev/warp --skill gui-integration-test -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install warpdotdev/warp gui-integration-test --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/gui-integration-test .agents/skills/gui-integration-test && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gui-integration-test" agent skill from https://github.com/warpdotdev/warp/tree/master/.agents/skills/gui-integration-test into .agents/skills/gui-integration-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gui-integration-test", 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 warpdotdev/warp --skill gui-integration-test -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install warpdotdev/warp gui-integration-test --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/gui-integration-test .cursor/skills/gui-integration-test && 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 "gui-integration-test" agent skill from https://github.com/warpdotdev/warp/tree/master/.agents/skills/gui-integration-test into .cursor/skills/gui-integration-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gui-integration-test", 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/warpdotdev/warp.git --path .agents/skills/gui-integration-test--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 warpdotdev/warp --skill gui-integration-test -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install warpdotdev/warp gui-integration-test --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/gui-integration-test .gemini/skills/gui-integration-test && 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 "gui-integration-test" agent skill from https://github.com/warpdotdev/warp/tree/master/.agents/skills/gui-integration-test into .gemini/skills/gui-integration-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gui-integration-test", 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 warpdotdev/warp gui-integration-testInstalls 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 warpdotdev/warp --skill gui-integration-test -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/gui-integration-test .github/skills/gui-integration-test && 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 "gui-integration-test" agent skill from https://github.com/warpdotdev/warp/tree/master/.agents/skills/gui-integration-test into .github/skills/gui-integration-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gui-integration-test", 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 warpdotdev/warp --skill gui-integration-test -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install warpdotdev/warp gui-integration-test --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/gui-integration-test .opencode/skills/gui-integration-test && 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 "gui-integration-test" agent skill from https://github.com/warpdotdev/warp/tree/master/.agents/skills/gui-integration-test into .opencode/skills/gui-integration-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gui-integration-test", 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.
gui-integration-testGUI desktop app only. An agent skill from warpdotdev/warp.
Gui Integration Test is an agent skill from warpdotdev/warp. GUI desktop app only. Writes, runs, and debugs Warp integration tests using the custom Builder/TestStep framework in crates/integration. Use when adding a new integration test, fixing a failing integration test, wiring a test into the manual runner or nextest suite, or verifying end-to-end UI and terminal behavior in Warp.
Its SKILL.md is about 5.1k 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 Integration testing. The repository describes itself as: Warp is an agentic development environment, born out of the terminal. The licence is AGPL-3.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f571865. 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:
cargoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Gui Integration Test loads about 5.1k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 2,526 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 warpdotdev/warp at commit f571865, republished under its AGPL-3.0 licence (© warpdotdev). 2,526 words, ~5,128 tokens.
.claude/skills/gui-integration-test/SKILL.md (or your agent's skills folder).Scope — GUI desktop app only. This skill applies to Warp's GUI desktop front-end (the app/ crate on the WarpUI pixel/GPU framework). It does not apply to the headless TUI front-end (crates/warp_tui; cell-grid TuiElement library under crates/warpui_core/src/elements/tui), which has its own components, tests, and change-verification workflow. For TUI work, see the tui-ui-guidelines, tui-testing, and tui-verify-change skills instead.
Use this skill for Rust integration tests in Warp's custom framework under crates/integration/.
These are not ordinary unit tests. They boot a real Warp app instance, give it an isolated test home directory, drive it with synthetic UI and terminal events, and poll assertions until success or timeout.
Integration tests are the most expensive tests in the repo. They boot the app, they are orders of magnitude slower than a unit test, and they are the most likely to go flaky. Write one when the risk you are covering genuinely lives between components:
Do not reach for an integration test when:
rust-unit-tests); it will run in milliseconds and point straight at the failure.tui-testing — this harness does not drive the TUI at all.computer_use or the gui-integration-test-video skill instead of attaching weak assertions to a full app boot.If a behavior is hard to reach from a unit test only because of how the code is structured, prefer fixing the structure over writing a slow test around it.
The core pieces are:
crates/integration/src/bin/integration.rsBuilder factories.crates/integration/tests/common/mod.rscargo test and cargo nextest.PATH, RUST_*, WARP_*, WARPUI_*, WGPU_*, display-related vars).crates/integration/src/test.rspub use their functions so the runner can see them.crates/integration/tests/integration/ui_tests.rscrates/integration/tests/integration/shell_integration_tests.rscrates/integration/src/builder.rscrates/warpui_core/src/integration/driver.rson_finish.crates/warpui_core/src/integration/step.rsTestStep, input/event APIs, assertion polling, step-to-step data passing, and screenshot/recording hooks.app/src/integration_testing/crates/integration/tests/integration/*.rs calls run_integration_test("test_name").integration binary with the test name.crates/integration/src/bin/integration.rs looks up the name in register_tests(), builds the Builder, and turns it into a TestDriver.Builder::build(...) creates an isolated temp directory, points HOME at it, writes minimal rc files, and initializes file-backed user preferences.TestStep in order:PreconditionFailed, the binary exits with the rerun code and the outer harness retries the whole test.on_finish and export artifacts/runtime tags.This means integration tests should be written for a hermetic environment. Do not rely on the developer's real shell dotfiles, home directory contents, or persisted Warp settings.
Add the actual test function in a module under crates/integration/src/test/.
Use these heuristics:
crates/integration/tests/integration/ui_tests.rs if it is primarily a UI/app behavior test.crates/integration/tests/integration/shell_integration_tests.rs if it needs to run against every shell, or depends on a specific shell/set of shells.Being present in crates/integration/src/test/*.rs is not enough. For a test to run under cargo nextest, it also needs to be listed in one of the macro files in crates/integration/tests/integration/.
When adding a new integration test, do all of the following:
pub fn test_name() -> Builder in a module under crates/integration/src/test/.crates/integration/src/test.rs.pub use the new module's exports from crates/integration/src/test.rs.register_test!(test_name); in crates/integration/src/bin/integration.rs.test_name to either:crates/integration/tests/integration/ui_tests.rs, orcrates/integration/tests/integration/shell_integration_tests.rs#[ignore] when the task explicitly calls for manual-only coverage or there is a concrete, documented reason it cannot run reliably in CI.The normal shape is:
use crate::Builder;
use warp::integration_testing::step::new_step_with_default_assertions;
use warp::integration_testing::terminal::{
clear_blocklist_to_remove_bootstrapped_blocks,
execute_command_for_single_terminal_in_tab,
wait_until_bootstrapped_single_pane_for_tab,
util::ExpectedExitStatus,
};
pub fn test_example() -> Builder {
Builder::new()
.with_step(wait_until_bootstrapped_single_pane_for_tab(0))
.with_step(clear_blocklist_to_remove_bootstrapped_blocks())
.with_step(execute_command_for_single_terminal_in_tab(
0,
"echo hello".to_string(),
ExpectedExitStatus::Success,
"hello".to_string(),
))
.with_step(
new_step_with_default_assertions("Assert some UI state")
.add_named_assertion("specific assertion name", |app, window_id| {
// inspect app state and return AssertionOutcome
warpui::integration::AssertionOutcome::Success
}),
)
}Prefer a small number of focused steps with descriptive names over a huge monolithic test.
Builder::new()Start here almost every time.
Warp's wrapper automatically gives you:
HOMEWARPUI_USE_REAL_DISPLAY_IN_INTEGRATION_TESTS is presentwith_setup(...)Use this for filesystem or environment setup before the app runs.
Common patterns:
utils.set_env("NAME", Some(value))utils.test_dir()Prefer this over reaching into the real filesystem.
with_user_defaults(...)Use this to set persisted Warp preferences before the test starts.
This is the right tool for settings backed by user preferences rather than environment variables.
set_should_run_test(...)Use this to gate tests on shell/platform/runtime capabilities when the test genuinely cannot run everywhere.
with_on_finish(...)Use this for final verification or artifact inspection that should happen after all steps complete, such as checking that screenshots or recordings were written.
with_real_display()Use this explicitly when the test needs a real display for frame capture or visual workflows. Video/screenshot tests should normally be manual or ignored in CI unless there is a stable real-display path.
TestStep guidanceTestStep is the unit of execution. Each step can have:
Prefer:
wait_until_bootstrapped_single_pane_for_tab(0)new_step_with_default_assertions("...")new_step_with_default_assertions_for_pane("...", tab, pane)The default step helpers already assert:
These are good baseline invariants for most UI interactions.
Use high-level helpers from app/src/integration_testing/ whenever possible:
Drop to raw with_event(...), with_event_fn(...), or saved-position mouse events only when there is no suitable helper.
Prefer add_named_assertion(...) over unnamed assertions. Named assertions make failure output and runtime tags much easier to interpret.
Assertions are polled until success or timeout. Lean on that model instead of hardcoding sleeps.
Good pattern:
Avoid brittle timing assumptions.
If a later step needs data from an earlier one, use:
add_named_assertion_with_data_from_prior_step(...)StepDataMapThis is useful for saving measured positions, counts, IDs, or other values from prior frames.
set_retries(...) can help for a legitimately retryable step, but do not use it to hide deterministic failures. Prefer making the step more robust first.
PreconditionFailed for genuinely environmental flakesIf the environment reaches a state where the rest of the test is invalid, return AssertionOutcome::PreconditionFailed(...) instead of failing hard. The outer harness can rerun the entire test up to 10 times. The existing bootstrap helper is a good model for this.
Use this deliberately. The rerun mechanism exists for conditions the test genuinely cannot control, such as bootstrap racing or shell startup timing. It is not a way to turn an intermittently failing test green. A real bug that reproduces one run in five will pass under rerun and ship to users.
Before reaching for PreconditionFailed, confirm the failure is actually environmental by looking at the failure rate and the failure mode:
for i in {0..50}; do
RUST_BACKTRACE=full cargo run -p integration --bin integration -- test_name || break
doneIf the same assertion fails in different ways, or fails while the environment looks fine, it is a product or test bug. Fix it rather than absorbing it into a rerun.
The scope of a test follows the scope of what you boot and drive, so cover one user journey per test and let separate tests cover separate journeys. When a flow is long, prefer several shorter tests that each verify one hop over a single test that walks the whole path. A long test is slower, harder to diagnose, and fails for many unrelated reasons.
The framework can see internal state, which makes it tempting to assert on it. Anchor each test on the user-observable outcome:
Internal state assertions are still useful, but they should support the visible behavior rather than replace it. Assertions that mirror internal call sequences become change detectors: they break on every refactor and catch no bugs.
An integration test spans processes, so a stack trace tells the next engineer almost nothing. The failure output has to carry the context instead:
"terminal shows command output", not "check blocks".Assume the person reading the failure has never seen this test and does not own the code it covers.
Builder::new() already gives you an isolated HOME, generated rc files, and file-backed preferences. Preserve that. Set up everything you depend on inside the test via with_setup(...) and with_user_defaults(...), and never rely on the developer's dotfiles, real settings, network access, or state left behind by another test. A test that assumes a resource is already in the right state will fail for the wrong reason on someone else's machine or in CI.
Larger tests span components, so ownership is ambiguous by default and unowned tests rot. If you add one, you are the person who fixes it when it breaks. Put it in the module matching the feature area it covers so the next person can find the right owner.
For most terminal-facing tests, the first real step should be:
wait_until_bootstrapped_single_pane_for_tab(0)Do not start asserting on terminal UI before bootstrap completes.
If the test relies on saved positions like block_index:0, clear the block list after bootstrap:
clear_blocklist_to_remove_bootstrapped_blocks()Otherwise the first user-generated block index depends on bootstrap output and the active shell.
Prefer helpers like:
execute_command_for_single_terminal_in_tab(...)execute_echo(...)execute_echo_str(...)execute_long_running_command(...)These helpers already handle a lot of correctness and output validation.
Use this first while authoring:
cargo run -p integration --bin integration -- test_nameThis is the fastest way to iterate on a specific test because it bypasses the outer Rust test wrapper and runs the named test directly.
Once it is wired into one of the tests/integration/*.rs macro lists, run it with nextest:
cargo nextest run --no-fail-fast --workspace test_nameFor screenshot/video or other real-display flows:
WARPUI_USE_REAL_DISPLAY_IN_INTEGRATION_TESTS=1 cargo run -p integration --bin integration -- test_nameOr with nextest:
WARPUI_USE_REAL_DISPLAY_IN_INTEGRATION_TESTS=1 cargo nextest run --no-fail-fast --workspace test_nameRUST_BACKTRACE=1 cargo run -p integration --bin integration -- test_nameThis is useful when running locally and you want to inspect the failed UI state:
WARPUI_PAUSE_INTEGRATION_TEST_ON_FAILURE=1 cargo run -p integration --bin integration -- test_nameUseful for understanding exactly what the test is doing:
WARPUI_PAUSE_INTEGRATION_TEST_AT_EVERY_STEP=1 cargo run -p integration --bin integration -- test_nameIf the task is specifically about recording a test, collecting screenshots, or validating overlay/video artifacts, also use the gui-integration-test-video skill (located at .warp/skills/gui-integration-test-video/SKILL.md).
utils.set_env(...) affects runtime environment lookups such as std::env::var(...).
It does not affect compile-time lookups like option_env!(...). If the product code uses option_env!, changing the env var inside the test will not change that behavior without rebuilding.
Before considering a new integration test done, verify all of the following:
crates/integration/src/test/.crates/integration/src/test.rs.crates/integration/src/bin/integration.rs.src/test/*.rs and forgetting the nextest macro list.PreconditionFailed to paper over a deterministic bug.When asked to add or fix an integration test:
© warpdotdev, 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/gui-integration-test of warpdotdev/warp.
Open the folder on GitHubat commit f571865
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in warpdotdev/warp, which our catalogue first saw on October 7, 2026.
Gui Integration Test 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 |
|---|---|---|---|---|---|---|
| Gui Integration Test this skillwarpdotdev/warp | 65k | 1 repos | ~5.1k | Automated safety check: Pass | AGPL-3.0 | |
| Plugin Testingpolyipseity/obsidian-terminal | 948 | — | ~828 | Automated safety check: Pass | AGPL-3.0 | |
| Create Modulecartography-cncf/cartography | 4.1k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Td Integration Testmarcus/td | 250 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Integration E2E Testingshinpr/claude-code-workflows | 690 | — | ~3.5k | Automated safety check: Pass | MIT | |
| JS-in-HTML Testingliaohch3/claude-tap | 3.3k | — | ~924 | Automated safety check: Pass | MIT |
polyipseity/obsidian-terminal
Skill for testing Obsidian plugin features in this repository.
cartography-cncf/cartography
Author a new Cartography intel module end-to-end (entry point, sync GET/TRANSFORM/LOAD/CLEANUP, declarative data model, integration test, schema docs).
marcus/td
Write integration tests for the td-sync admin API using the TestHarness in internal/api/testharnesstest.go.
shinpr/claude-code-workflows
Integration and E2E test design principles, ROI calculation, test skeleton specification, and review criteria.
liaohch3/claude-tap
Tests JavaScript embedded in an HTML file in two layers: pytest checks of the logic ported to Python, and Playwright runs in a real browser for the DOM.
google/crosvm
Skill to assist with running tests and managing test VMs in the crosvm repository.
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
warpdotdev/warp
Authors and edits file-based Warp software factory definitions rooted at factory.yaml, covering agents, automations, scorers and webhooks, and validates them before a pull request.
warpdotdev/warp
Turns a Figma frame or component into production code that matches the design, using the Figma MCP server and the project's own design system.
warpdotdev/warp
Migrates the compatible subset of settings and global file-based MCP servers from the Warp desktop app into Warp Agent CLI without exposing credentials or state.
warpdotdev/warp
Creates project-specific design system rules from your codebase so coding agents implement Figma designs with your components, naming and tokens.
Categories
GUI desktop app only. An agent skill from warpdotdev/warp. Gui Integration Test is an agent skill from warpdotdev/warp. GUI desktop app only.
Gui Integration Test fits situations like: adding a new integration test; fixing a failing integration test; wiring a test into the manual runner; verifying end-to-end UI and terminal behavior in Warp.
Run `npx skills add warpdotdev/warp --skill gui-integration-test -a claude-code`. Or copy the skill folder (.agents/skills/gui-integration-test in warpdotdev/warp) into .claude/skills/gui-integration-test in your project. Claude Code loads it when a task matches its description.
Run `npx skills add warpdotdev/warp --skill gui-integration-test -a codex`. Or copy the skill folder (.agents/skills/gui-integration-test in warpdotdev/warp) into .agents/skills/gui-integration-test 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 warpdotdev/warp --skill gui-integration-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gui-integration-test, .gemini/skills/gui-integration-test, .github/skills/gui-integration-test and .opencode/skills/gui-integration-test in your project.
Going by SKILL.md and its folder, Gui Integration Test needs the command-line tools its instructions call (cargo).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Gui Integration Test 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 5.1k tokens (SKILL.md is roughly 21k 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 Gui Integration Test: Plugin Testing (polyipseity/obsidian-terminal, 948 stars), Create Module (cartography-cncf/cartography, 4.1k stars), Td Integration Test (marcus/td, 250 stars) and Integration E2E Testing (shinpr/claude-code-workflows, 690 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
warpdotdev (a GitHub organization) maintains it in warpdotdev/warp, which has 65,380 GitHub stars. The repository holds 46 skills in this directory. The repository was last updated on October 7, 2026.
Source: warpdotdev/warp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.