Runs automated QA and validation for VS Code extensions.

Install

mkdir -p .claude/skills/qa-disentinel && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/11913" && unzip -o skill.zip -d .claude/skills/qa-disentinel && rm skill.zip

Installs to .claude/skills/qa-disentinel

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Run automated QA checks on Grafema VS Code extension via Playwright + MCP cross-validation. Use when: (1) user says "/qa" to start or resume QA session, (2) user wants to validate extension panels against graph data, (3) user wants to re-check previously found bugs after a fix, (4) user wants to run a custom QA task. Requires Docker code-server running.
355 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Run automated QA checks on Grafema VS Code extension
  • Resume QA sessions from previous progress
  • Check specific files for quality issues
  • Re-validate previously found bugs after fixes
  • Execute custom QA tasks based on free-text instructions
  • Cross-validate extension panels with Grafema MCP tools and CLI

How it works

The skill parses user arguments to determine the QA scope, loads the session state, verifies Docker, then launches a QA agent that drives `code-server` via Playwright to perform checks and record findings.

Inputs & outputs

You give it
Optional arguments for auto-resume, file path, `--recheck`, or custom task
You get back
QA session summary, bug reports, gap reports, and updated state file

When to use qa

  • Run automated extension tests
  • Validate UI panels against data
  • Re-verify open bugs

About this skill

/qa -- Grafema VS Code Extension QA

When to Use

  • Validate VS Code extension UI against graph data
  • Check specific files or resume from last session
  • Re-check open bugs after fixes (version validation)
  • Run custom QA tasks (e.g., "check hover tooltips only")

Usage

/qa                                           # Auto-resume from last session
/qa packages/vscode/src/Orchestrator.ts       # Check specific file
/qa --recheck                                 # Re-validate all open bugs
/qa check only the Callers panel              # Custom task (free text)

Prerequisites

  • Docker container code-server running (cd demo && docker-compose up -d)
  • Playwright chromium available (auto-installed if missing)
  • Code-server accessible at http://localhost:8080
  • Grafema graph database populated (extension must be analyzing a project)

How It Works

1. Parse Arguments

Determine the mode from the user's input:

  • No args / empty: auto-resume. Find file with status: "in-progress" in state, resume from lastCheckedLine + 1. If none, pick next unchecked file.
  • File path: check that specific file from line 1 (or resume if already in-progress).
  • --recheck: re-validate all bugs with status: "open" and gaps with status: "blocking".
  • Anything else: treat as free-text custom task. Record in customTasks registry.

2. Load State

Read _qa/qa-state.json. This tracks:

  • Per-file progress (which line we left off at)
  • Bug registry (all bugs found across sessions)
  • Gap registry (infrastructure gaps that block files)
  • Custom task history
  • Coverage statistics
  • Version history

3. Check Docker

Verify the code-server Docker container is running and accessible. If not, print the start command and stop.

4. Launch QA Agent

Read the agent instructions from .claude/agents/qa-agent.md. The agent:

  • Drives code-server via Playwright (inline Node.js scripts in Bash)
  • Takes screenshots and reads them (multimodal -- Claude sees images)
  • Cross-validates every panel with Grafema MCP tools and CLI
  • Records bugs and gaps with full evidence
  • Updates state after every checked line
  • Stops after 10 bugs per session

5. Return Summary

After the session completes, report:

  • How many entities were checked
  • How many bugs and gaps were found
  • Which reports were written
  • What to do next (fix bugs, resolve gaps, re-run /qa)

Modes

Auto-Resume (default)

Finds the first file with status: "in-progress" and resumes from lastCheckedLine + 1. If no file is in progress, picks the next unchecked file using priority order: Orchestrator.ts first, then largest files first.

Specific File

Checks the given file from line 1. If the file was previously in-progress, resumes from where it left off.

Recheck

Re-validates all open bugs and blocking gaps. Does NOT check new lines. Marks fixed bugs as "fixed" and resolved gaps as "resolved". Useful after deploying a fix to verify it works.

Custom Task

Any argument that is not a file path and not --recheck is treated as a free-text instruction. The agent executes the task, records it in customTasks, and still logs any bugs/gaps found to the normal registries.

Output Locations

ArtifactPath
State file_qa/qa-state.json
Bug reports_qa/reports/bug-NNN.md
Gap reports_qa/reports/gap-NNN.md
Session reports_qa/reports/session-YYYY-MM-DD-HH-MM-SS.md
Screenshots_qa/screenshots/ (gitignored)

Session Limits

The agent stops after finding 10 bugs in a single session. This keeps reports manageable and encourages incremental fixing. Fix the bugs, then re-run /qa to continue.

Extension Panels

The extension registers 7 panels: Status, Value Trace, Callers, Blast Radius, Issues, Explorer, Debug Log. Plus the built-in Monaco hover tooltip.

Note: The panel formerly called "Edges Explorer" in early docs is actually "Blast Radius".

Bug vs Gap

  • Bug (ui-bug or core-bug): single entity shows wrong/missing data in one panel. Recorded, agent continues.
  • Gap (infrastructure-gap): entire panel broken across 5+ entities in multiple files. Blocks affected files, agent stops session.

Troubleshooting

Docker not running

cd demo && docker-compose up -d

Playwright not installed

The agent auto-installs chromium. If it fails:

npx playwright install chromium

Code-server not responding

Check Docker logs:

docker logs code-server

Panels not updating after click

The agent waits 3 seconds for async panel updates. If panels are still empty, this may indicate an infrastructure gap rather than a timing issue.

Screenshots unreadable

Small text in screenshots may be hard to read. The agent uses MCP/CLI for exact data validation and screenshots only for structural checks (panel visible, non-empty, has sections).

When not to use it

  • When the `code-server` Docker container is not running or accessible
  • When the Grafema graph database is not populated
  • When the agent has found 10 bugs in a single session

Prerequisites

Docker container `code-server` runningPlaywright chromiumCode-server accessible at `http://localhost:8080`Grafema graph database populated

Limitations

  • Requires a running `code-server` Docker container and populated Grafema database.
  • The QA agent stops after finding 10 bugs in a single session.
  • Screenshots are used for structural checks, not for exact data validation.

How it compares

This skill automates complete QA for a VS Code extension, including visual and data cross-validation, and tracks progress and bugs across sessions, unlike manual testing.

Compared to similar skills

qa side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
qa (this skill)05moReviewAdvanced
python-testing-patterns772moReviewIntermediate
chrome-devtools417moReviewIntermediate
bats97moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

python-testing-patterns

wshobson

Implement comprehensive testing strategies with pytest, fixtures, mocking, and test-driven development. Use when writing Python tests, setting up test suites, or implementing testing best practices.

77204

chrome-devtools

mrgoonie

Browser automation, debugging, and performance analysis using Puppeteer CLI scripts. Use for automating browsers, taking screenshots, analyzing performance, monitoring network traffic, web scraping, form automation, and JavaScript debugging.

41157

bats

OleksandrKucherenko

Bash Automated Testing System (BATS) for TDD-style testing of shell scripts. Use when: (1) Writing unit or integration tests for Bash scripts, (2) Testing CLI tools or shell functions, (3) Setting up test infrastructure with setup/teardown hooks, (4) Mocking external commands (curl, git, docker), (5) Generating JUnit reports for CI/CD, (6) Debugging test failures or flaky tests, (7) Implementing test-driven development for shell scripts.

991

browser-daemon

noiv

Persistent browser automation via Playwright daemon. Keep a browser window open and send it commands (navigate, execute JS, inspect console). Perfect for interactive debugging, development, and testing web applications. Use when you need to interact with a browser repeatedly without opening/closing it.

587

performance-profiling

davila7

Performance profiling principles. Measurement, analysis, and optimization techniques.

633

obsidian-local-dev-loop

jeremylongshore

Configure Obsidian plugin development with hot-reload and fast iteration. Use when setting up development workflow, configuring test vaults, or establishing a rapid development cycle. Trigger with phrases like "obsidian dev loop", "obsidian hot reload", "obsidian development workflow", "develop obsidian plugin".

328

Search skills

Search the agent skills registry