TE

textual-ui-developer

Tools for developing and testing Textual-based terminal user interfaces.

Install

mkdir -p .claude/skills/textual-ui-developer && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5512" && unzip -o skill.zip -d .claude/skills/textual-ui-developer && rm skill.zip

Installs to .claude/skills/textual-ui-developer

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.

Develop and debug the MassGen Textual TUI with deterministic replay, snapshot regression tests, and targeted runtime checks.
124 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Reproduce UI behavior deterministically from event logs
  • Verify TUI layout and styling in a real shell environment
  • Update snapshot regression tests and golden transcripts
  • Render snapshot SVG files using a browser engine
  • Execute targeted runtime checks without API calls

How it works

The skill replays recorded event logs through the Textual app pipeline to recreate UI states. It then compares these states against stored golden transcripts or visual snapshots to identify regressions.

Inputs & outputs

You give it
events.jsonl file
You get back
visual TUI rendering or snapshot report

When to use textual-ui-developer

  • Debug TUI layout issues
  • Update snapshot regression tests
  • Replay UI events for troubleshooting

About this skill

Textual UI Developer

Use this skill to improve the MassGen Textual UI while minimizing flaky reproduction and API cost.

Use This Skill When

  • You need to debug timeline rendering or ordering issues.
  • You need to verify layout/styling changes in the real Textual shell.
  • You need to update or add TUI regression tests (snapshot/golden/transcript).
  • You need to reproduce UI behavior from events.jsonl deterministically.

Default Strategy

Prefer deterministic workflows before live model runs:

  1. Reproduce from recorded/synthetic events (events.jsonl) with no API calls.
  2. Confirm behavior in the real shell using --tui-real.
  3. Encode findings into tests (unit, transcript golden, snapshot).
  4. Use live massgen --display textual or --textual-serve only when needed.

Quick Commands

# Full frontend/TUI test suite
uv run pytest massgen/tests/frontend -q

# Timeline transcript goldens
uv run pytest massgen/tests/frontend/test_timeline_transcript_golden.py -q
UPDATE_GOLDENS=1 uv run pytest massgen/tests/frontend/test_timeline_transcript_golden.py -q

# Snapshot scaffold tests
uv run pytest massgen/tests/frontend/test_timeline_snapshot_scaffold.py -q
uv run pytest massgen/tests/frontend/test_timeline_snapshot_scaffold.py --snapshot-update -q
uv run pytest massgen/tests/frontend/test_timeline_snapshot_scaffold.py -q --snapshot-report snapshot_report.html
uv run python scripts/render_snapshot_svgs.py --real-tui-only

# Event replay (no API cost)
uv run python scripts/dump_timeline_from_events.py /path/to/events.jsonl [agent_id]
uv run python scripts/dump_timeline_from_events.py --tui /path/to/events.jsonl [agent_id]
uv run python scripts/dump_timeline_from_events.py --tui-real /path/to/events.jsonl [agent_id]

# Example synthetic fixture
uv run python scripts/dump_timeline_from_events.py --tui-real massgen/tests/frontend/fixtures/synthetic_tui_events.jsonl agent_a

Workflow

1) Reproduce with Event Replay (No API Cost)

Start with transcript replay to verify timeline semantics quickly:

uv run python scripts/dump_timeline_from_events.py /path/to/events.jsonl agent_a

Then inspect visually:

# Lightweight timeline-focused view
uv run python scripts/dump_timeline_from_events.py --tui /path/to/events.jsonl agent_a

# Full runtime TextualApp shell
uv run python scripts/dump_timeline_from_events.py --tui-real /path/to/events.jsonl agent_a

Optional speed control for real replay:

MASSGEN_TUI_REPLAY_SPEED=8 uv run python scripts/dump_timeline_from_events.py --tui-real /path/to/events.jsonl agent_a

Exit replay with q.

2) Convert Findings into Tests

Pick the narrowest layer that captures the bug:

  • Unit logic: test_tool_batch_tracker.py, test_content_processor.py, helpers.
  • Transcript/golden behavior: test_timeline_transcript_golden.py + massgen/tests/frontend/golden/.
  • Widget/shell snapshots: test_timeline_snapshot_scaffold.py + massgen/tests/frontend/__snapshots__/.
  • Replay script behavior: test_dump_timeline_from_events_script.py.

Final Presentation Focus Loop

When iterating specifically on final-answer visualization:

  1. Validate header semantics in unit tests (winner line, tie-break markers, vote line formatting) in test_timeline_section_widget.py.
  2. Regenerate only final-presentation snapshots if intended UI changed:
    • uv run pytest massgen/tests/frontend/test_timeline_snapshot_scaffold.py --snapshot-update -q
  3. Verify runtime shell appearance with no API cost:
    • uv run python scripts/dump_timeline_from_events.py --tui-real massgen/tests/frontend/fixtures/synthetic_tui_events.jsonl agent_a
  4. Run full frontend suite before finalizing:
    • uv run pytest massgen/tests/frontend -q

3) Snapshot Workflow

If snapshot tests mismatch:

  1. Open snapshot_report.html.
  2. Check Show difference toggle interpretation:
    • ON = blend-diff overlay (can look purple/black).
    • OFF = raw current vs historical snapshots.
  3. If change is intentional, regenerate with --snapshot-update.
  4. Re-run the frontend suite to confirm stability.

3.1) Mandatory Screenshot Review

For visual/UI tasks, do not rely on test pass/fail alone. You must read screenshots directly before finalizing:

  1. Review the snapshot images in snapshot_report.html (current vs historical).
  2. Keep Show difference OFF first to verify raw rendering; then optionally use ON for pixel-level drift.
  3. If screenshots are provided in chat/task context, inspect those images directly and compare against expected runtime appearance.
  4. If your viewer cannot open .svg, render via browser engine:
    • npx playwright screenshot "file:///ABS/PATH/to/snapshot.svg" /tmp/snapshot.png
    • Batch all (or real-TUI-only): uv run python scripts/render_snapshot_svgs.py [--real-tui-only]
    • Prefer this over ImageMagick conversion for Textual snapshots to avoid false artifacts.
  5. Call out any mismatch between rendered snapshots and expected real TUI look, even if tests pass.
  6. Only conclude "visual change verified" after explicit screenshot review.

4) Optional Live Visual Validation

Use live runs only after deterministic checks pass:

# Native terminal TUI
uv run massgen --display textual

# Browser-hosted Textual
uv run massgen --textual-serve

Key Files

  • scripts/dump_timeline_from_events.py: text replay, --tui, and --tui-real modes.
  • massgen/frontend/displays/textual_terminal_display.py: TextualApp, shell layout, runtime event routing.
  • massgen/frontend/displays/tui_event_pipeline.py: timeline event adapter and filtering logic.
  • massgen/frontend/displays/timeline_event_recorder.py: deterministic text transcript recorder.
  • massgen/tests/frontend/test_timeline_snapshot_scaffold.py: snapshot scaffold (widget + real shell states).
  • massgen/tests/frontend/test_timeline_transcript_golden.py: transcript golden regressions.
  • docs/modules/testing.md: canonical testing commands and parity notes.

Done Criteria

A TUI change is complete when:

  1. Relevant deterministic tests were added or updated first.
  2. uv run pytest massgen/tests/frontend -q passes.
  3. Snapshot/golden updates are intentional and reviewed.
  4. --tui-real replay confirms expected real-shell behavior for the target scenario.

When not to use it

  • When live model interaction is not required for validation
  • When unit tests are sufficient for logic verification

Prerequisites

uvplaywright

Limitations

  • Requires manual screenshot review for visual verification
  • Cannot rely on test pass/fail status alone for UI accuracy

How it compares

Unlike manual testing, this workflow uses deterministic event replay to eliminate flakiness and avoid unnecessary API costs.

Compared to similar skills

textual-ui-developer side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
textual-ui-developer (this skill)26moReviewIntermediate
browser-daemon59moReviewIntermediate
debugging-skill02moNo flagsBeginner
expect04moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

serena

massgen

This skill provides symbol-level code understanding and navigation using Language Server Protocol (LSP). Enables IDE-like capabilities for finding symbols, tracking references, and making precise code edits at the symbol level.

1597

file-search

massgen

This skill should be used when agents need to search codebases for text patterns or structural code patterns. Provides fast search using ripgrep for text and ast-grep for syntax-aware code search.

33

evolving-skill-creator

massgen

Guide for creating evolving skills - detailed workflow plans that capture what you'll do, what tools you'll create, and learnings from execution. Use this when starting a new task that could benefit from a reusable workflow.

10

massgen-config-creator

massgen

Guide for creating properly structured YAML configuration files for MassGen. This skill should be used when agents need to create new configs for examples, case studies, testing, or demonstrating features.

15

massgen-develops-massgen

massgen

Guide for using MassGen to develop and improve itself. This skill should be used when agents need to run MassGen experiments programmatically (using automation mode) OR analyze terminal UI/UX quality (using visual evaluation tools). These are mutually exclusive workflows for different improvement goals.

13

massgen-log-analyzer

massgen

Run MassGen experiments and analyze logs using automation mode, logfire tracing, and SQL queries. Use this skill for performance analysis, debugging agent behavior, evaluating coordination patterns, and improving the logging structure, or whenever an ANALYSIS_REPORT.md is needed in a log directory.

12

You might also like

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

debugging-skill

bitovi

Always start a fresh browser session after any file change, walk through the full user flow, and monitor for errors before proceeding with further work.

00

expect

zakad00e2

Use when editing .tsx/.jsx/.css/.html, React components, pages, routes, forms, styles, or layouts. Also when asked to test, verify, validate, QA, find bugs, check for issues, or fix expect-cli failures.

00

webapp-testing

anthropics

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

353585

ui-ux-expert-skill

fercracix33

Technical workflow for implementing accessible React user interfaces with shadcn/ui, Tailwind CSS, and TanStack Query. Includes 6-phase process with mandatory Style Guide compliance, Context7 best practices consultation, Chrome DevTools validation, and WCAG 2.1 AA accessibility standards. Use after Test Agent, Implementer, and Supabase agents complete their work.

91244

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

Search skills

Search the agent skills registry