Agent skill

Interactive Testing

by Porabuild in Porabuild/Poracode

Run repeatable integration and smoke testing against the real Poracode Electron app through Chrome DevTools Protocol.

Apache-2.0Auto-check: notesTesting & QA

Install Interactive Testing

skills CLI
$ npx skills add Porabuild/Poracode --skill interactive-testing -a claude-code

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

GitHub CLI
$ gh skill install Porabuild/Poracode interactive-testing --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/Porabuild/Poracode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/interactive-testing .claude/skills/interactive-testing && 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
interactive-testing
GitHub stars
114
Token cost
~4.5k tokens
SKILL.md length
1,959 words
Files
13 (incl. scripts)
Skills in repo
21
Repo updated
First seen
Licence
Apache-2.0

At a glance

Run repeatable integration and smoke testing against the real Poracode Electron app through Chrome DevTools Protocol.

  • Works in 8 steps: Inspect git status --short and the… → Choose the validation shape below before… → For an ordinary quick or full smoke, run… → …
  • Asked to smoke test
  • SKILL.md covers Required workflow, Choose the validation shape…, Boot an isolated app and Run the deterministic suite, plus 5 more sections
  • Runs JavaScript scripts from its folder; calls node, pnpm and git

What it does

Interactive Testing is an agent skill from Porabuild/Poracode. Run repeatable integration and smoke testing against the real Poracode Electron app through Chrome DevTools Protocol. Use when asked to smoke test, integration test, interactively test, verify a refactor in the UI, reproduce a renderer crash, click through the app, or check that changes did not regress functionality. Build a diff-derived coverage plan, run the scripted baseline and targeted scenarios, complete every required manual gate, capture screenshots and runtime errors, and report explicit per-surface…

Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts (for example `agents/openai.yaml`).

It sits in Testing & QA, covering Integration testing, Browser testing and QA and bug reports. It works with Chrome DevTools and Electron. The repository describes itself as: One window for all your AI coding agents. Run Claude, Codex, OpenCode, Gemini, Antigravity, Cursor, and Copilot side-by-side. Terminal and chat, any layout. The licence is Apache-2.0.

When your agent uses it

  • Asked to smoke test
  • Integration test
  • Interactively test
  • Verify a refactor in the UI

Example prompts

  • “/interactive-testing”

Requirements

  • Node.js

Workflow steps

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

  1. Inspect git status --short and the relevant diff.
  2. Choose the validation shape below before launching anything.
  3. For an ordinary quick or full smoke, run its one-command runner directly; it creates the isolated fixture, boots the app, derives the…
  4. For a manual live check, generate the plan, then start or reuse one managed debug session
  5. Audit the functional inventory only when changing scripts/smoke-scenarios.mjs, adding a production surface, or investigating coverage…
  6. Use fixture projects, deterministic store state, and mocked provider/auth/runtime data for local regression coverage. The runner executes…
  7. Use --mode real only when real credentials, devices, or external services are intentionally available; complete and acknowledge those…
  8. Reset driven state, stop only the process launched for this run, inspect unexpected git changes, and report evidence.

What it can do on your machine

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

    Ships 11 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • pnpm
    • git

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

  • Network

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

Interactive Testing loads about 4.5k tokens when it runs. Until then it costs about 136 tokens; SKILL.md has 1,959 words of instructions outside code blocks.

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

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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:85
    nvrc`, `asdf` local, `mise`, a per-repo `.env`) is invisible to the detector even though it works inside the project — d

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); the scripts in this folder are not scanned.

SKILL.md

The full file from Porabuild/Poracode at commit bffd89d, republished under its Apache-2.0 licence (© Porabuild). 1,959 words, ~4,539 tokens.

Download SKILL.mdSave it as .claude/skills/interactive-testing/SKILL.md (or your agent's skills folder). This skill also uses 12 other files; get the full folder from GitHub.
name
interactive-testing
description
Run repeatable integration and smoke testing against the real Poracode Electron app through Chrome DevTools Protocol. Use when asked to smoke test, integration test, interactively test, verify a refactor in the UI, reproduce a renderer crash, click through the app, or check that changes did not regress functionality. Build a diff-derived coverage plan, run the scripted baseline and targeted scenarios, complete every required manual gate, capture screenshots and runtime errors, and report explicit per-surface evidence.

Interactive Testing — Poracode

Test the real Electron renderer, preload bridge, main process, and supervisor integration. Treat unit tests as complementary; do not substitute them for this workflow when the skill triggers.

Required workflow

  1. Inspect git status --short and the relevant diff.

  2. Choose the validation shape below before launching anything.

  3. For an ordinary quick or full smoke, run its one-command runner directly; it creates the isolated fixture, boots the app, derives the scope plan, runs the checks, and tears the app down.

  4. For a manual live check, generate the plan, then start or reuse one managed debug session:

    sh
    node .agents/skills/interactive-testing/scripts/poracode-integration-smoke.mjs plan --scope changed
    node .agents/skills/interactive-testing/scripts/run-poracode-smoke.mjs --launch-only --mode mock
  5. Audit the functional inventory only when changing scripts/smoke-scenarios.mjs, adding a production surface, or investigating coverage selection:

    sh
    node .agents/skills/interactive-testing/scripts/poracode-integration-smoke.mjs audit
  6. Use fixture projects, deterministic store state, and mocked provider/auth/runtime data for local regression coverage. The runner executes these gates automatically and reports them as mocked.

  7. Use --mode real only when real credentials, devices, or external services are intentionally available; complete and acknowledge those gates with --ack-manual.

  8. Reset driven state, stop only the process launched for this run, inspect unexpected git changes, and report evidence.

Never claim “all functionality passed.” Report automated, manual, skipped, and not-applicable coverage separately.

Choose the validation shape first

Use the smallest path that proves the requested behavior. Do not run more than one app-launch command for a single validation run.

NeedRunWhat it proves
Quick regression smoke after a focused changeRun the smoke runner below with --scope changed --mode mock.Isolated app boots, changed-surface checks and relevant mock gates pass, and no renderer/runtime errors occur. This is the default.
Broad regression or release confidenceRun the smoke runner below with --scope full --mode mock.Full functional inventory, including app-shell and cross-provider surfaces.
One real provider / credential / device workflowRun the managed launcher below with --mode real, drive the real controls, then run the acknowledgement command.The external integration actually completes end to end.
Continue an already-running managed sessionRun node <CDP helper> info; it resolves the one active session and does not launch anything.The requested next interaction in that exact app.

Use the quick smoke by itself when the user asks to “smoke test,” “check the app,” or “make sure this did not regress.” Use the real workflow when the user asks whether a provider, ACP/tool call, login, device, PTY, or other external integration works live. Run the full smoke only for release-scale, broad cross-cutting, IPC/app-shell, or cross-provider changes.

Boot an isolated app

Choose exactly one launch path per test run. Never use raw pnpm run dev or pnpm run dev:test for CDP work: those commands do not allocate a managed session and make wrong ports, shared state, and duplicate launches possible. The smoke runner owns and tears down its app. The managed launcher keeps one app alive for repeated manual actions, and its owner process performs every stop.

The one-command runner below allocates its own free ports, so each invocation spawns a fully isolated dev app. Runs from multiple worktrees can execute side by side without colliding on the Vite or CDP port.

sh
node .agents/skills/interactive-testing/scripts/run-poracode-smoke.mjs --scope changed --mode mock

For slow cold starts, pass --startupTimeoutSeconds 450 to the runner. This overrides the default 180-second app-readiness deadline; scenario timeouts stay unchanged.

This allocates distinct free dev-server and CDP ports (override with --vitePort/--port; explicit values are verified free), creates and commits a disposable fixture project, seeds an isolated database, starts Electron with an isolated profile and compiled runtime, dismisses and verifies the first-launch welcome screen, runs the integration suite, writes screenshots/report artifacts under ~/.poracode-smoke, and tears down the process automatically. Managed launches never reclaim an occupied port or rebuild another session's runtime. No provider credentials, PTY input, git mutations, MCP server, mobile device, or native update flow is required for the default mock run.

HOME and provider detection — no drift between test and app. Poracode's own state is always isolated via PORACODE_BASE_DIR, independent of HOME. Provider detection, however, resolves each CLI through the login-shell command -v (e.g. kimi → ~/.kimi-code/bin/kimi) and reads credentials under the home dir — so it only matches the real app when HOME is the real home. Therefore:

  • Mock mode sandboxes HOME/APPDATA and uses a mock keychain (deterministic isolation; providers are mocked). Real providers legitimately show "Not found" here — that is expected, not a bug, and mock gates never depend on real credentials.
  • Real mode (--mode real) keeps the real HOME, so authenticated providers (Kimi, Qwen, …) can detect as in the shipped app. Always verify a provider-dependent surface in real mode; never diagnose a real detection issue from a mock-mode "Not found".

Real HOME is necessary but not always sufficient: detection probes command -v <binary> in a login+interactive shell with cwd: homedir(), so a CLI whose bin dir is on PATH only via a project-scoped mechanism (direnv .envrc, asdf local, mise, a per-repo .env) is invisible to the detector even though it works inside the project — direnv unloads at the home cwd. Symptom: the app log prints direnv: unloading and the provider shows "Not found". Fix in the environment, not the app: put the binary on a globally-resolvable PATH (e.g. symlink into ~/.local/bin, as qwen/grok are). This is why ~/.kimi-code/bin/kimi (direnv-only) can miss while ~/.local/bin-installed providers detect fine.

For a persistent interactive app, use the managed launcher:

sh
node .agents/skills/interactive-testing/scripts/run-poracode-smoke.mjs --launch-only --mode mock
# Use the real HOME and provider credentials only when the task needs them:
node .agents/skills/interactive-testing/scripts/run-poracode-smoke.mjs --launch-only --mode real

When an agent must launch an intentionally independent session and then keep working in the same turn, use the detached CDP launch command instead of inventing a Start-Process, shell-redirection, or helper-script wrapper:

sh
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs launch --new --mode mock --root "$HOME/.poracode-smoke/<unique-agent-root>"

It returns only after READY and prints the exact sessionFile, ports, URL, owner PIDs, and launch time. --new plus a fresh unique root is mandatory so parallel agents cannot reuse or stop each other's apps. Its default 180-second deadline accommodates several concurrent cold Vite transforms; once READY, individual CDP actions should still finish in milliseconds, not inherit that cold-start budget.

The command allocates ports, creates the fixture, isolates the compiled Electron bundle and runtime resources, skips the welcome gate, and waits until the main renderer has a mounted root plus preload and DEV bridges. It prints READY only after those checks pass. Keep that exact terminal alive. When testing is complete, request verified teardown from any shell with:

sh
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs stop

The stop command returns success only after the owner has closed both ports, removed its isolated build, and marked session.json stopped. Ctrl-C in the owning terminal is a fallback and uses the same teardown path, but some Windows PTY hosts report the outer shell interruption as exit 1 even after clean teardown. A cold renderer transform can take about a minute on a busy Windows checkout; state: "starting" still owns the launch, so wait for READY or a concrete failure instead of starting another app.

The launcher reuses an existing healthy debug session for this checkout instead of launching a duplicate. Only use --new when concurrent same-checkout apps are the behavior under test. If more than one session exists, every helper refuses to guess; pass the exact session printed by its launcher:

sh
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs info --session "<session.json path printed by launcher>"

The authoritative <run-id>/session.json records the unique token, lifecycle, repo/worktree, app URL, distinct ports, base directory, isolated build, and owner PIDs. ports.json remains report metadata, not an attachment instruction. Never invent a port or copy one from another run. The helpers accept a complete explicit port + URL pair only for deliberate unmanaged-app diagnosis; they reject either value alone and have no 9222/3100 fallback.

Show full SKILL.md (745 more words)Show less

Run the deterministic suite

Changed-surface run against the one active managed debug session (or pass --session <session.json> when concurrent sessions intentionally exist):

sh
node .agents/skills/interactive-testing/scripts/poracode-integration-smoke.mjs run --scope changed --mode mock --outDir "<outDir from session.json>"

Full functional inventory run:

sh
node .agents/skills/interactive-testing/scripts/poracode-integration-smoke.mjs run --scope full --mode mock --outDir "<outDir from session.json>"

Exit meanings:

  • 0: automated scenarios and deterministic mock gates passed.
  • 1: an automated scenario or coverage audit failed.
  • 2: --mode real was selected and real manual gates remain.

The runner first dismisses the welcome screen through its real primary action and verifies the overlay stays absent. It then checks boot/render health, the preload and dev bridges, crash-screen markers, runtime exceptions, unhandled rejections, console errors, and screenshots. Depending on the plan it also walks every Settings section, opens thread search, runs the dedicated Browser harness, and executes mock IPC/project/provider/auth/terminal/runtime checks against the isolated fixture.

Do not acknowledge a real gate before exercising it. After completing real gates through real controls, record them:

sh
node .agents/skills/interactive-testing/scripts/poracode-integration-smoke.mjs run --scope changed --mode real --outDir "<outDir from session.json>" --ack-manual provider-live,runtime-requests

Replace the acknowledgement list with every real gate actually exercised. For example, an ACP AskUserQuestion run that visibly opened the form, submitted an answer, and received the provider reply acknowledges changed-surface,ipc-roundtrip,provider-live,runtime-requests.

Drive real controls for manual gates

Use the managed CDP helper for state, evaluation, screenshots, clicks, and typing:

sh
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs info
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs eval 'location.href'
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs nav about
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs click '[data-testid="settings-save"]'
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs type 'input[name="query"]' 'test'
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs shot - "<outDir from session.json>/manual-about.png"
node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs reset

In PowerShell, invoke action commands directly with the call operator; use variables or quoted positional values so selectors containing spaces remain one argument. Never use Start-Process for CDP actions:

powershell
$cdp = ".agents/skills/interactive-testing/scripts/poracode-cdp.mjs"
$session = "C:\Users\me\.poracode-smoke\my-run\session.json"
$selector = '[data-composer-input-anchor] [contenteditable="true"]'
& node $cdp type $selector "latency probe" --session $session --commandTimeoutMs 2000
& node $cdp eval 'document.body.innerText.includes("latency probe")' --session $session --commandTimeoutMs 2000
@'
(() => ({ title: document.title, windowKind: document.documentElement.dataset.windowKind }))()
'@ | & node $cdp eval - --session $session --commandTimeoutMs 2000

Use eval - for multi-line or quote-heavy JavaScript so PowerShell passes it on stdin without rewriting it. Do not create a temporary wrapper script for an action sequence.

The helper binds every action to the session token and main window by default. Pass --windowKind quickComposer or --windowKind browserExtract only when that surface is the one under test. It rejects missing, hidden, disabled, read-only, off-screen, and ambiguous targets instead of clicking by stale coordinates. Re-query selectors after navigation, portal opening, or hot reload; HeroUI menus and dialogs render in portals. A successful click/type confirms safe input dispatch, not application behavior; immediately evaluate or screenshot the expected state change before marking the gate passed.

For a changed provider, start a fresh thread in the isolated project, observe the user row and first provider output, then stop it. For a permission flow, request a harmless read-only command and choose Deny unless the user authorized execution. For terminal changes, verify a real PTY launch, input, resize, interrupt, and stop. For git/file changes, mutate only the fixture repository.

Browser-specific testing

The integration runner invokes this automatically when Browser-related paths changed. It can also be run directly:

sh
node .agents/skills/interactive-testing/scripts/poracode-browser-smoke.mjs --outDir "<outDir from session.json>/browser"

It verifies embedded page creation, DOM access, navigation history, toolbar state, Browser settings, screenshots, and zero renderer console errors.

Coverage integrity

scripts/smoke-scenarios.mjs is the functional source of truth. It maps production paths to automated scenarios and manual gates. Update it in the same change whenever adding a new production surface or subsystem.

Run audit after modifying the inventory. The audit must fail if any tracked production file is unmapped. Broad catch-all areas prevent accidental omission, while the printed plan exposes which detailed and manual gates apply.

If a changed behavior cannot be automated against a safe fixture, add a deterministic mock gate with a concrete assertion. Keep a corresponding real gate only when an external system is genuinely required. Do not silently omit it or weaken an assertion to make the run green.

Safety and teardown

  • Default to PORACODE_BASE_DIR under $HOME/.poracode-smoke; never mutate real threads or settings.
  • Treat session.json as the only managed attachment authority; never infer ports from window titles, old logs, or nearby listeners.
  • Never blanket-kill Electron, Node, or electron.exe. Stop only the background process/session launched for this run.
  • Never send destructive prompts or approve destructive permission requests.
  • Write artifacts outside the repository so file watchers do not restart Electron.
  • Call node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs reset and close transient panels before teardown.
  • Stop with node .agents/skills/interactive-testing/scripts/poracode-cdp.mjs stop; do not infer failure from an outer PTY's Ctrl-C exit code.
  • Leave the isolated smoke directory for inspection unless the user requested cleanup.
  • Never commit smoke artifacts or source changes created only to reach a UI state.

Report

Give one verdict per functional area. Include:

  • automated scenarios and PASS/FAIL;
  • mock gates and PASS/FAIL, plus real gates and PASS/FAIL/SKIPPED with reasons;
  • console/runtime error count and the first three errors;
  • screenshot and smoke-report.json paths;
  • any untested functionality and why;
  • suspected source file/line for each regression.

Do not call a --mode real run successful while the script exits 2 or any required real gate is unresolved. A mock-mode PASS means deterministic local integration passed; it does not claim that external provider credentials or devices were tested.

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

Files

SKILL.md and 12 other files (scripts) in .agents/skills/interactive-testing of Porabuild/Poracode.

  • SKILL.md
  • agents/openai.yaml
  • scripts/poracode-browser-smoke.mjs
  • scripts/poracode-cdp-launch.mjs
  • scripts/poracode-cdp-target.mjs
  • scripts/poracode-cdp.mjs
  • scripts/poracode-debug-session.mjs
  • scripts/poracode-integration-smoke.mjs
  • scripts/run-poracode-smoke.mjs
  • scripts/seed-poracode-smoke-db.mjs
  • scripts/smoke-live-voice-draft.mjs
  • scripts/smoke-live-voice.mjs
  • scripts/smoke-scenarios.mjs

Open the folder on GitHubat commit bffd89d

Compare with similar skills

Interactive 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.

Interactive Testing compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Interactive Testing this skillPorabuild/Poracode114—~4.5kAutomated safety check: NotesApache-2.0
OpenWork Electron Browser Automationdifferent-ai/openwork24k—~780Automated safety check: PassCustom licence
Diff-Driven Smoke TestsSkyvern-AI/skyvern23k—~5.2kAutomated safety check: PassAGPL-3.0
Tracecat QATracecatHQ/tracecat3.8k—~1.1kAutomated safety check: WarnAGPL-3.0
Team Frontend Debugcatlog22/Claude-Code-Workflow2.1k—~2.8kAutomated safety check: NotesMIT
Testing QAaiskillstore/marketplace4303 repos~1.2kAutomated safety check: PassNone

Similar skills

  • Attaches OpenCode browser tools to the OpenWork Electron dev app through CDP to explore its UI, send a composer task and debug, not to give test verdicts.

    24k GitHub stars~780 tokensUpdated today
    Testing & QAAuto-check passed
  • Diff-Driven Smoke Tests

    Skyvern-AI/skyvern

    Reads your git diff, writes a handful of happy-path browser smoke tests, runs them with Skyvern or Chrome DevTools MCP and posts screenshot evidence to the PR.

    23k GitHub stars~5.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Tracecat QA

    TracecatHQ/tracecat

    QA Tracecat product features in a real local cluster. An agent skill from TracecatHQ/tracecat.

    3.8k GitHub stars~1.1k tokensUpdated today
    Testing & QAAuto-check: warnings
  • Team Frontend Debug

    catlog22/Claude-Code-Workflow

    Frontend debugging team using Chrome DevTools MCP. An agent skill from catlog22/Claude-Code-Workflow.

    2.1k GitHub stars~2.8k tokensUpdated 3 mo ago
    Testing & QAAuto-check: notes
  • Testing QA

    aiskillstore/marketplace

    Comprehensive testing and QA workflow covering unit testing, integration testing, E2E testing, browser automation, and quality assurance.

    430 GitHub starsUsed in 3 repos~1.2k tokens
    Testing & QAAuto-check passed
  • Doctor

    bluzir/claude-code-design

    First-run setup + health check. An agent skill from bluzir/claude-code-design.

    106 GitHub stars~931 tokensUpdated 5 mo ago
    Testing & QAAuto-check passed

More from Porabuild/Poracode

All 21 skills in this repo
  • Release Notes

    Porabuild/Poracode

    Write consistent, hand-written-looking changelog entries for a Poracode release.

    114 GitHub stars~4.2k tokensUpdated today
    Auto-check passed
  • Skill Creator Poracode

    Porabuild/Poracode

    Create a new reusable agent skill managed by Poracode. An agent skill from Porabuild/Poracode.

    114 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • App Controls

    Porabuild/Poracode

    Inspect and drive Poracode itself — the Terminal panel, other threads, projects, workspaces, git, pull requests, and schedules — through the poracode MCP.

    114 GitHub stars~745 tokensUpdated today
    Auto-check passed
  • Chrome Control

    Porabuild/Poracode

    Use the user's real Chrome tabs and signed-in sessions for visible browser workflows.

    114 GitHub stars~691 tokensUpdated today
    Auto-check passed
  • Computer Use

    Porabuild/Poracode

    Inspect and operate native Windows, macOS, or Linux applications through Poracode's desktop-control tools.

    114 GitHub stars~718 tokensUpdated today
    Auto-check passed
  • Provider Chat Smoke

    Porabuild/Poracode

    Smoke test real Poracode provider chat threads and ACP sessions end to end.

    114 GitHub stars~4.2k tokensUpdated today
    Auto-check passed

Categories

Questions about Interactive Testing

What does Interactive Testing do?

Run repeatable integration and smoke testing against the real Poracode Electron app through Chrome DevTools Protocol. Interactive Testing is an agent skill from Porabuild/Poracode. Run repeatable integration and smoke testing against the real Poracode Electron app through Chrome DevTools Protocol.

When should I use Interactive Testing?

Interactive Testing fits situations like: asked to smoke test; integration test; interactively test; verify a refactor in the UI.

How do I install Interactive Testing in Claude Code?

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

How do I install Interactive Testing in Codex?

Run `npx skills add Porabuild/Poracode --skill interactive-testing -a codex`. Or copy the skill folder (.agents/skills/interactive-testing in Porabuild/Poracode) into .agents/skills/interactive-testing in your project. Codex loads it when a task matches its description.

Can I use Interactive Testing 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 Porabuild/Poracode --skill interactive-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/interactive-testing, .gemini/skills/interactive-testing, .github/skills/interactive-testing and .opencode/skills/interactive-testing in your project.

What does Interactive Testing need to run?

Going by SKILL.md and its folder, Interactive Testing needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node, pnpm and git). Our summary lists: Node.js.

Does Interactive Testing 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 Interactive Testing safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Interactive Testing use?

Interactive Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Interactive Testing use?

About 4.5k tokens (SKILL.md is roughly 18k 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 Interactive Testing?

Skills that share tags, products or a category with Interactive Testing: OpenWork Electron Browser Automation (different-ai/openwork, 24k stars), Diff-Driven Smoke Tests (Skyvern-AI/skyvern, 23k stars), Tracecat QA (TracecatHQ/tracecat, 3.8k stars) and Team Frontend Debug (catlog22/Claude-Code-Workflow, 2.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Interactive Testing?

Porabuild (a GitHub organization) maintains it in Porabuild/Poracode, which has 114 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 7, 2026.

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