review-tui
Comprehensive BubbleTea TUI code review for terminal applications
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/anderskev/review-tuiTUI Code Review
Arguments
--parallel: Spawn specialized subagents per technology area- Path: Target directory (default: current working directory)
Gates (sequence)
Advance only when each pass condition is true (reduces scope drift and unsubstantiated blocking claims):
| Gate | Pass condition |
|---|---|
| G1 — Scope | Step 1 produced a concrete list of target .go paths (from the git command or an explicit user path). If the list is empty, you stopped for scope clarification or recorded an agreed non-git scope (e.g. single file/dir) before reviewing. |
| G2 — Skills before review | beagle-go:review-verification-protocol, beagle-go:go-code-review, and beagle-go:bubbletea-code-review are loaded; Step 4 conditionals (tests → go-testing-code-review, Wish → wish-ssh-code-review) are loaded before Step 5. |
| G3 — Evidence for Critical/Major | Each Critical/Major finding cites file path + line (or a short quoted snippet) from the opened source—not from diff hunks alone. |
| G4 — Pre-output hygiene | Each retained finding was checked against Step 7 and the loaded verification protocol before writing the Issues section. |
Do not start Step 5 until G2 passes. Do not publish Critical/Major until G3 and G4 pass.
Step 1: Identify Changed Files
git diff --name-only $(git merge-base HEAD main)..HEAD | grep -E '\.go$'
Step 2: Detect Technologies
# Detect BubbleTea (required for TUI review)
grep -r "charmbracelet/bubbletea" --include="*.go" -l | head -3
# Detect Lipgloss styling
grep -r "charmbracelet/lipgloss\|lipgloss\.Style" --include="*.go" -l | head -3
# Detect Bubbles components
grep -r "charmbracelet/bubbles\|list\.Model\|textinput\.Model\|viewport\.Model" --include="*.go" -l | head -3
# Detect Wish SSH server
grep -r "charmbracelet/wish\|ssh\.Session" --include="*.go" -l | head -3
# Check for test files
git diff --name-only $(git merge-base HEAD main)..HEAD | grep -E '_test\.go$'
Step 3: Load Verification Protocol
Load beagle-go:review-verification-protocol skill and keep its checklist in mind throughout the review.
Step 4: Load Skills
Use the Skill tool to load each applicable skill (e.g., Skill(skill: "beagle-go:go-code-review")).
Always load:
beagle-go:go-code-reviewbeagle-go:bubbletea-code-review
Conditionally load based on detection:
| Condition | Skill |
|---|---|
| Test files changed | beagle-go:go-testing-code-review |
| Wish SSH detected | beagle-go:wish-ssh-code-review |
Step 5: Review Focus Areas
Model/Update/View (Elm Architecture)
- Model is immutable (Update returns new model)
- Init returns proper initial command
- Update handles all message types
- View is pure function (no side effects)
- tea.Quit used correctly for exit
Lipgloss Styling
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-anderskev-review-tui": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
explanation-docs
Explanation documentation patterns for understanding-oriented content - conceptual guides that explain why things work the way they do
tutorial-docs
Tutorial patterns for documentation - learning-oriented guides that teach through guided doing
pytest-code-review
Reviews pytest test code for async patterns, fixtures, parametrize, and mocking. Use when reviewing test_*.py files, checking async test functions, fixture usage, or mock patterns.
reference-docs
Reference documentation patterns for API and symbol documentation. Use when writing reference docs, API docs, parameter tables, or technical specifications. Triggers on reference docs, API reference, function reference, parameters table, symbol documentation.
serde-code-review
Reviews serde serialization code for derive patterns, enum representations, custom implementations, and common serialization bugs. Use when reviewing Rust code that uses serde, serde_json, toml, or any serde-based serialization format. Covers attribute macros, field renaming, and format-specific pitfalls.