Install
openclaw skills install review-tuiComprehensive BubbleTea TUI code review for terminal applications. Use when reviewing charmbracelet/bubbletea, lipgloss, bubbles, or Wish SSH code; optionally reviews each area concurrently.
openclaw skills install review-tui--parallel: Review each technology area concurrently if the agent supports it (see Step 6)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 | review-verification-protocol, go-code-review, and 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.
git diff --name-only $(git merge-base HEAD main)..HEAD | grep -E '\.go$'
# 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$'
Load the review-verification-protocol skill and keep its checklist in mind throughout the review.
Load each applicable skill below (open its SKILL.md and follow it).
Always load:
Conditionally load based on detection:
| Condition | Skill |
|---|---|
| Test files changed | go-testing-code-review |
| Wish SSH detected | wish-ssh-code-review |
If the agent supports subagents, dispatch one per technology area in parallel; otherwise run the areas sequentially. Either path produces identical output.
Sequential (default, and the fallback when subagents are unavailable):
Parallel (--parallel, only if the agent supports subagents):
Before reporting any issue:
You MUST report ALL issues across ALL categories (style, logic, types, tests, security, performance) in a single review pass. Do not hold back issues for later rounds.
Before submitting findings, ask yourself:
If yes to either: include those anticipated downstream issues NOW, in this review, so the author can address everything at once.
Fixes to existing code should be flagged at their real severity regardless of size.
However, requests for net-new code that didn't exist before the diff must be classified as Informational:
These are improvement suggestions for the author to consider in future work, not review blockers.
If this is a re-review after fixes were applied:
## Review Summary
[1-2 sentence overview of findings]
## Issues
### Critical (Blocking)
1. [FILE:LINE] ISSUE_TITLE
- Issue: Description of what's wrong
- Why: Why this matters (UI freeze, crash, resource leak)
- Fix: Specific recommended fix
### Major (Should Fix)
2. [FILE:LINE] ISSUE_TITLE
- Issue: ...
- Why: ...
- Fix: ...
### Minor (Nice to Have)
N. [FILE:LINE] ISSUE_TITLE
- Issue: ...
- Why: ...
- Fix: ...
### Informational (For Awareness)
N. [FILE:LINE] SUGGESTION_TITLE
- Suggestion: ...
- Rationale: ...
## Good Patterns
- [FILE:LINE] Pattern description (preserve this)
## Verdict
Ready: Yes | No | With fixes 1-N (Critical/Major only; Minor items are acceptable)
Rationale: [1-2 sentences]
After fixes are applied, run:
go build ./...
go vet ./...
golangci-lint run
go test -v -race ./...
All checks must pass before approval.