webapp-testing

A Playwright-based toolkit for testing web applications. Playwright is a browser-automation tool that can inspect pages, click controls, capture screenshots, and read browser output.

In plain words
What is it for?
Checking frontend behavior, debugging user-interface problems, capturing screenshots, inspecting the page structure, and viewing browser logs.
Why use it?
It helps verify what a web app actually renders and how it behaves, including pages whose content appears only after JavaScript runs.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/luizedupp/rememb/webapp-testing
Any agent
npx skills add LuizEduPP/Rememb --skill webapp-testing
Clone the repo
git clone --depth 1 https://github.com/LuizEduPP/Rememb

Made for: Claude Code, Codex.

Per session 31 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 556 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00031 $0.00556
Opus 5 $0.00015 $0.00278
Sonnet 5 $0.00006 $0.00111
Haiku 4.5 $0.00003 $0.00056

Measured yesterday against content hash 7faef3a65a21, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

webapp-testing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

src/rememb_skills/webapp-testing/SKILL.md · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Web Application Testing

Test web applications using Python Playwright scripts.

Decision Tree

User task → Is it static HTML?
    ├─ Yes → Read HTML file directly for selectors
    │         └─ Write Playwright script
    │
    └─ No (dynamic webapp) → Is server already running?
        ├─ No → Start server first, then test
        │
        └─ Yes → Reconnaissance-then-action:
            1. Navigate and wait for networkidle
            2. Take screenshot or inspect DOM
            3. Identify selectors from rendered state
            4. Execute actions

Basic Playwright Script

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto('http://localhost:5173')
    page.wait_for_load_state('networkidle')  # CRITICAL: Wait for JS
    
    # Reconnaissance
    page.screenshot(path='/tmp/inspect.png', full_page=True)
    
    # Actions
    page.click('button#submit')
    
    browser.close()

Reconnaissance Pattern

  1. Inspect DOM:

    page.screenshot(path='/tmp/inspect.png', full_page=True)
    content = page.content()
    page.locator('button').all()
    
  2. Identify selectors from results

  3. Execute actions with discovered selectors

Common Pitfall

❌ Inspect DOM before waiting for networkidle ✅ Always page.wait_for_load_state('networkidle') first

Best Practices

  • Use sync_playwright() for synchronous scripts
  • Always close browser when done
  • Use descriptive selectors: text=, role=, CSS, IDs
  • Add waits: wait_for_selector(), wait_for_timeout()
  • Launch chromium in headless=True mode

Overview

Use this skill for the capability described in this document.

When to Use

Use this skill when the request matches the capability, constraints, and activation cues described below.

Core Workflow

Follow the primary workflow, commands, and decision points documented in the sections below.

Read the full file on GitHub · 92 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 92 lines · 31 tokens per session scan A 7faef3a65a21

Subscribe to this mod's changes

webapp-testing is a skill published in the GitHub repository LuizEduPP/Rememb (4 stars, last pushed 1mo ago), licensed MIT. It adds 31 tokens to every session and 556 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

claude-api

Build, debug, and optimize Claude API / Anthropic SDK apps. Apps built with this skill should include prompt caching. Also handles migrating existing Claude API code between Claude model versions (4.5 → 4.6, 4.6 → 4.7, retired-model replacements). TRIGGER when: code imports anthropic/@anthropic-ai/sdk; user asks for…

Prismer-AI/PrismerCloud · 193 tokens

agent-coordination

Find other agents, list participants in a conversation, send routed messages, attach files, and recover earlier conversation context (history / resolve a fuzzy reference / read a quoted message / read compressed summaries). Use whenever you need to delegate to another agent, address a peer in a multi-agent…

Prismer-AI/PrismerCloud · 122 tokens

image-generate

Generate an image from a text prompt via the cloud LLM image proxy, persist it as a content-addressed workspace asset, and return a ContentBlock that downstream renderers can attach. Use whenever the user asks "draw / generate / make an image of …", an agent needs a diagram / illustration as a follow-up artifact, or a…

Prismer-AI/PrismerCloud · 103 tokens

claim-agent-ownership

Orchestrator skill for resolving multi-daemon binding contention. Use when you (the orchestrator) detect an agent.binding.contested sync event indicating two daemons are racing for the same agent — explicitly rebind ownership to a chosen target daemon so subsequent dispatches route deterministically. Implements Gap…

Prismer-AI/PrismerCloud · 101 tokens

prismer-im-collab

Coordinate reliably in Prismer conversations, use workspace assets through bounded MCP tools, and keep task work on the board.

Prismer-AI/PrismerCloud · 30 tokens

human-approval

Request human approval before performing a SAFETY-CRITICAL, IRREVERSIBLE, or SCOPE-EXPANDING action — submit a structured context (action, scope, risk, consequence) plus options, then STOP the current turn. The platform redispatches the agent after the human decides. NEVER use for routine deliverables (writing docs /…

Prismer-AI/PrismerCloud · 168 tokens