ui-debug
Inspect, debug, and compare the Deep Cuts UI using an available browser tool.
Skill by robertolupi
Chalk Labs
Need help deploying ui-debug?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/robertolupi-ui-debug
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ui-debug
What's inside
- Skill name
ui-debug- Description
- Inspect, debug, and compare the Deep Cuts UI using an available browser tool. Use this skill whenever the user wants to inspect DOM structure, read computed CSS styles, take a screenshot of the app, or compare the UI before and after a Svelte/CSS change. Triggers on phrases like "show me the DOM", "what styles does X have", "screenshot the app", "compare before and after", "inspect the detail pane", "check the layout", or any request to verify a visual change. Also use proactively when finishing a CSS or Svelte refactor — capture a before snapshot, apply the change, then diff to confirm only intended styles changed.
- License
- AGPL-3.0
- Instructions
- 277 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# UI Debug Skill
This skill connects to the running Deep Cuts dev server with whichever browser automation is available. Use Chrome MCP when available; in Codex, prefer the in-app Browser plugin for localhost/file targets. The goal is the same in every environment: inspect the live UI, read DOM/accessibility structure, capture computed styles, take screenshots, and diff styles before/after a change.
## Prerequisites
- The app must be running: `npm run tauri dev` (or just `npm run dev` for frontend-only)
- A browser inspection tool must be available: Chrome MCP, Codex in-app Browser, Playwright, or a manual browser fallback
- For realistic data, use the `?local_debug=1` query parameter (see below)
## The local_debug mode
Navigating to `http://localhost:1420/?local_debug=1` activates mock IPC data
(5 fixture tracks, 2 playlists) so the full UI renders in Chrome without needing
the Tauri backend. Use this URL for all CSS/Svelte debugging. Without the param,
the library will be empty because `window.__TAURI__` is not injected in Chrome.
## Setup sequence — Chrome MCP
Run this once per session before any inspection tools:
```
1. mcp__Claude_in_Chrome__list_connected_browsers → get deviceId
2. mcp__Claude_in_Chrome__select_browser → connect to it
3. mcp__Claude_in_Chrome__tabs_context_mcp → get tabId (createIfEmpty: true)
4. mcp__Claude_in_Chrome__navigate → http://localhost:1420/?local_debug=1
(skip if already on that URL)
```
After setup, reuse the same `tabId` for all subsequent calls.
## Setup sequence — Codex in-app Browser
When working in Codex with the Browser plugin available:
1. Start `npm run dev` for frontend-only inspection, or `npm run tauri dev` for full Tauri behavior.
2. Navigate the in-app Browser to `http://localhost:1420/?local_debug=1` for mock IPC data.
3. Use screenshots and DOM inspection to verify the changed surface at desktop and narrow widths.
4. If a component depends on real Tauri APIs not represented by local-debug mocks, add or update the mock in `src/lib/ipc.ts` before judging the UI.
## Fallback A — Codex / no-MCP browser
Use this when no Chrome MCP extension is connected but a browser can be opened
(e.g. the Codex environment with its in-app Browser plugin).
**Start the dev server:**
```bash
# Full Tauri stack (required for Rust IPC commands):
npm run tauri
# Frontend only (sufficient for CSS / Svelte component work):
npm run dev
```
**Navigate to the mock-data URL:**
```
http://localhost:1420/?local_debug=1 # Tauri dev server default port
http://localhost:5173/?local_debug=1 # Vite-only (npm run dev)
```
The `?local_debug=1` flag activates built-in mock IPC data (5 fixture tracks,
2 playlists) so the full UI renders without a running Tauri backend.
**What to verify:**
- The five mock tracks appear in the track list with correct title / artist / duration.
- Selecting a track populates the right detail pane (cover art, metadata fields).
- The player bar renders at the bottom with transport controls visible.
- No red error banners or "Library is empty" placeholder are shown.
- Repeat at a narrow viewport (~900 px) to confirm panels don't overflow.
- Check that the theme (dark / light) matches what was changed — the CSS custom
properties in `src/app.css` drive all colours; a single token regression shows
everywhere.
If a component depends on a Tauri API not yet covered by local-debug mocks, add
or update the fixture in `src/lib/ipc.ts` before judging the UI.
---
## Fallback B — Playwright screenshot / DOM assertion
Use this when no interactive browser MCP is available but Node.js is present.
**One-shot screenshot** (no config file needed):
```bash
npx --yes playwright@latest screenshot \
--browser chromium \
"http://localhost:1420/?local_debug=1" \
/tmp/deep-cuts-ui.png
```
Read the resulting image with the `Read` tool to inspect it visually.
**Inline script for DOM assertions** (save as `/tmp/check-ui.mjs`, run once):
```js
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('http://localhost:1420/?local_debug=1');
await page.waitForSelector('.track-row', { timeout: 5000 });
const trackCount = await page.locator('.track-row').count();
const detailPane = await page.locator('[data-region="detail"]').isVisible();
const playerBar = await page.locator('[data-region="player"]').isVisible();
const consoleErrs = [];
page.on('console', m => { if (m.type() === 'error') consoleErrs.push(m.text()); });
console.log({ trackCount, detailPane, playerBar, consoleErrs });
await browser.close();
```
```bash
node /tmp/check-ui.mjs
```
**What to verify:**
- `trackCount` equals the number of fixture tracks (5 for the default mock set).
- `detailPane` and `playerBar` are both `true`.
- `consoleErrs` is empty — any entry is a regression worth investigating.From robertolupi/deep-cuts, AGPL-3.0.
More from robertolupi/deep-cuts
- 0.534score
how-to-experiment
robertolupi
Experimental protocol for Deep Cuts research, prototypes, model evaluations, threshold tuning, ablations, metric comparisons, and claims about accuracy or…
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
write-blog-post
robertolupi
Draft, structure, and finalize a Deep Cuts blog-series post so it conforms to the post template, house voice, and cross-post link rules.
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
dev-guidelines
robertolupi
Guidelines to prevent development false starts, environment mismatches, and incorrect commands in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
ui-design
robertolupi
Guidelines for the Sonic Glitch design system, theme variables, and multi-theme readability (dark, light, high-contrast)
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
git-commits
robertolupi
Rules for writing commit messages in the deep-cuts repository — subject line format, body content, scope naming, and what to omit
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
release-build
robertolupi
End-to-end checklist for building a signed macOS release — bump manifest min_app_version, verify sidecars, build, and inspect the .app
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
add-tauri-sidecar
robertolupi
How to bundle an external binary and its dylib dependencies with the Tauri app, patch rpaths, sign everything, and resolve the path at runtime
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
using-python
robertolupi
How to run Python scripts and install packages in the deep-cuts project
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
add-analysis-pass
robertolupi
Checklist and guide for adding a new analysis pass to the trait-based modular pipeline
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
add-ipc-command
robertolupi
Pattern for adding a new Tauri IPC command (request/response or push event) in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
bump-dev-version
robertolupi
Bump the app version in Cargo.toml after a release to start the next dev cycle
SkillCFreshness: C★ 7Claude Code +9 - 0.528score
db-migration
robertolupi
Safe pattern for adding SQLite schema migrations in the deep-cuts Rust/rusqlite_migration stack
SkillCFreshness: C★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Jun 7, 2026 (4 months ago)
- Last release
- Jun 8, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/robertolupi/deep-cuts
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from robertolupi
- 0.534score
write-blog-post
robertolupi
Draft, structure, and finalize a Deep Cuts blog-series post so it conforms to the post template, house voice, and cross-post link rules.
SkillCFreshness: C★ 7Claude Code +9 - 0.534score
how-to-experiment
robertolupi
Experimental protocol for Deep Cuts research, prototypes, model evaluations, threshold tuning, ablations, metric comparisons, and claims about accuracy or…
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
release-build
robertolupi
End-to-end checklist for building a signed macOS release — bump manifest min_app_version, verify sidecars, build, and inspect the .app
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
git-commits
robertolupi
Rules for writing commit messages in the deep-cuts repository — subject line format, body content, scope naming, and what to omit
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
add-tauri-sidecar
robertolupi
How to bundle an external binary and its dylib dependencies with the Tauri app, patch rpaths, sign everything, and resolve the path at runtime
SkillCFreshness: C★ 7Claude Code +9 - 0.531score
dev-guidelines
robertolupi
Guidelines to prevent development false starts, environment mismatches, and incorrect commands in the deep-cuts monorepo
SkillCFreshness: C★ 7Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get ui-debug running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
ui-debug skill. Agent Mart. https://agentmart.dev/skills/robertolupi-ui-debug (last updated 2026-10-24)