Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Playwright Demo:Debug

ASecurity

Debug failing Playwright demo steps - selectors, auth, timing, and alignment issues

302 stars
0 votes
0 copies
0 views
Added 9/20/2026
devopstypescriptpythongobashnodedebugging

Works with

cli

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add rossoctl/rossoctl --skill playwright-demo:debug --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Playwright Demo:Debug?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Playwright Demo:Debug
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rossoctl-playwright-demo-debug/badge)](https://www.skillsdirectory.com/skills/rossoctl-playwright-demo-debug)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: playwright-demo:debug
description: Debug failing Playwright demo steps - selectors, auth, timing, and alignment issues
---

# Debug Playwright Demo Issues

Troubleshoot and fix failing steps in Playwright demo walkthrough tests.

## When to Use

- A demo recording step fails (selector not found, auth error, timeout)
- Narration-video alignment validation fails
- Video shows wrong content during narration
- Multiple voices overlapping in output

## Debugging Workflow

1. Check the test output for `[demo]` log lines — identify which step failed
2. Look at screenshots in `local_experiments/test-results/<test-dir>/test-failed-1.png`
3. Run validation to check structural issues:

```bash
python3 local_experiments/validate-alignment.py
```

## Common Issues

### Selector not found

**Symptom**: `element not visible` or `timeout waiting for selector`

Screenshot the page to see actual DOM:

```bash
cd rossoctl/ui-v2 && NODE_PATH=node_modules node -e "
const { chromium } = require('@playwright/test');
(async () => {
  const b = await chromium.launch();
  const p = await b.newPage({ ignoreHTTPSErrors: true });
  await p.goto('TARGET_URL', { waitUntil: 'networkidle', timeout: 30000 });
  await p.screenshot({ path: '/tmp/rossoctl/debug.png', fullPage: true });
  const els = await p.evaluate(() =>
    Array.from(document.querySelectorAll('a, button, [role=tab]')).map(e => ({
      tag: e.tagName, text: e.textContent?.trim()?.substring(0, 50), href: e.href
    }))
  );
  console.log(JSON.stringify(els, null, 2));
  await b.close();
})();
"
```

### Missing markStep timestamp

**Symptom**: Validation shows `Section [name] has no markStep() timestamp`

**Fix**: The `markStep()` call is inside a conditional block that didn't execute. Move it outside:

```typescript
// WRONG - inside conditional
if (await element.isVisible()) {
  markStep('section_name');
  await element.click();
}

// RIGHT - outside conditional
markStep('section_name');
if (await element.isVisible()) {
  await element.click();
}
```

### Keycloak auth lost on SPA navigation

**Symptom**: Page redirects to Keycloak after clicking sidebar link

**Fix**: Use SPA sidebar clicks (client-side routing), not `page.goto()`:

```typescript
// WRONG - full reload loses Keycloak tokens
await page.goto(`${UI_URL}/agents`);

// RIGHT - SPA navigation preserves tokens
const link = page.locator('nav a').filter({ hasText: /^Agents$/ });
await demoClick(link.first(), 'Agents sidebar');
```

### MLflow OIDC login

**Symptom**: MLflow shows login page or "User not allowed"

MLflow uses 2-stage auth:
1. MLflow's own OIDC page at `/oidc/ui/auth` — click SSO button
2. Keycloak login (may auto-login if session exists)

After login, navigate to `${MLFLOW_URL}/#/experiments` (hash routing).

### Kiali OAuth

**Symptom**: OpenShift login page shown

Kiali uses OpenShift OAuth — needs `kubeadmin` credentials (separate from Keycloak). Script auto-discovers from `<kubeconfig-dir>/kubeadmin-password`.

### Overlapping audio

**Symptom**: Multiple voices playing simultaneously

**Cause**: Missing timestamps → audio segments placed at wrong positions

**Fix**: Ensure ALL `markStep()` calls fire unconditionally. Run validation:

```bash
python3 local_experiments/validate-alignment.py
```

Check for `NO TIMESTAMP` errors. Fix those first.

## Task Tracking

On invocation:
1. TaskCreate: `playwright-demos | <cluster> | ad-hoc | debug | | <issue description>`
2. TaskUpdate when issue is resolved

## Related Skills

- `playwright-demo` — Main demo recording workflow
- `rossoctl:ui-debug` — Debug Rossoctl UI issues
- `k8s:health` — Check platform health

Attribution

rossoctlrossoctl
View sourceMore from rossoctl →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Terraform Module Library

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

393431 votes

sematext-otel

Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.

01 votes

Deployment Patterns

Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.

2459130 votes

Babysit

Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

929660 votes

V7 Roster

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

805540 votes
View all in devops →