본문으로 건너뛰기
cccskills
무료GitHub에 공개

scaffold-tui

Generate TUI screen/view with layout, keybindings, state management, and tests

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Context

Project {{project_name}} is a TUI application using {{stack}}. You will create a new screen/view "{{input.name}}" of type {{input.type}}.

Read AGENTS.md for conventions. Read existing views to understand patterns.

Instructions

  1. Analyze existing view patterns

    • Read existing view/screen files
    • Identify: TUI framework (bubbletea, ratatui/tui-rs, textual, blessed, ink, etc.)
    • Identify: component model (Model-View-Update, widgets, components)
    • Identify: styling approach (lipgloss, style objects, CSS-like)
    • Identify: navigation pattern (stack, tabs, router)
    • Note state management patterns
  2. Create view/model file

    • Path: according to project convention
      • Go (bubbletea): internal/ui/{{input.name}}.go or ui/{{input.name}}.go
      • Rust (ratatui): src/ui/{{input.name}}.rs
      • Python (textual): src/screens/{{input.name}}.py
      • Node (ink): src/components/{{input.name}}.tsx
    • Implement based on view type:
      • list: scrollable list with selection, filtering, sorting
      • detail: display item details with sections
      • form: input fields with validation, tab navigation between fields
      • dashboard: multi-pane layout with status/metrics
      • modal: overlay dialog with confirm/cancel
  3. Implement Model (state)

    • Define view state struct/class
    • Initialize with sensible defaults
    • Handle loading, ready, and error states
    • Manage cursor/selection position
  4. Implement Update (event handling)

    • Keybinding handling:
      • Navigation: arrow keys, j/k, tab, enter, escape
      • Actions: custom keys for view-specific actions
      • Global: q/ctrl+c to quit, ? for help
    • Window resize handling
    • Async data loading (if applicable)
  5. Implement View (rendering)

    • Layout: header, content area, footer/status bar
    • Responsive to terminal size
    • Styled text (colors, bold, borders)
    • Scrolling for content that exceeds viewport
    • Loading spinner/indicator
    • Empty state message
  6. Register view in navigation

    • Add to screen router/navigator
    • Setup transitions between views
    • Handle back navigation
  7. Create tests

    • Model initialization
    • State transitions on key events
    • Rendering output verification
    • Edge cases: empty data, very long text, small terminal

Script

#!/bin/bash
# Detect TUI framework
if [ -f "go.mod" ]; then
  if grep -q "bubbletea" go.mod 2>/dev/null; then
    echo "Framework: Bubble Tea (Go)"
    echo "View path: internal/ui/{{input.name}}.go"
    if grep -q "lipgloss" go.mod 2>/dev/null; then
      echo "Styling: Lip Gloss"
    fi
    if grep -q "bubbles" go.mod 2>/dev/null; then
      echo "Components: Bubbles"
    fi
  fi
elif [ -f "Cargo.toml" ]; then
  if grep -q "ratatui" Cargo.toml 2>/dev/null; then
    echo "Framework: Ratatui (Rust)"
    echo "View path: src/ui/{{input.name}}.rs"
  elif grep -q "tui " Cargo.toml 2>/dev/null; then
    echo "Framework: tui-rs (Rust)"
  fi
elif [ -f "pyproject.toml" ] || [ -f "requirements.txt" ]; then
  if grep -q "textual" pyproject.toml requirements.txt 2>/dev/null; then
    echo "Framework: Textual (Python)"
    echo "View path: src/screens/{{input.name}}.py"
  elif grep -q "urwid" pyproject.toml requirements.txt 2>/dev/null; then
    echo "Framework: Urwid (Python)"
  fi
elif [ -f "package.json" ]; then
  if grep -q '"ink"' package.json 2>/dev/null; then
    echo "Framework: Ink (React for CLI)"
    echo "View path: src/components/{{input.name}}.tsx"
  fi
fi

Validation

  • View file created and follows existing patterns
  • View renders correctly in terminal
  • Keybindings work as expected
  • Navigation to/from this view works
  • Responsive to terminal resize
  • Loading and error states handled
  • Empty state displayed when no data
  • Tests created and passing
  • Compile/typecheck passing
  • No flickering or rendering artifacts

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

anoa

무료

Drive a real browser from the command line — open pages, snapshot the interactive elements as refs, click and fill by ref, read text, run JS, screenshot. Use when a task needs a live browser: checking a page renders, walking a login or checkout flow, scraping something that only exists after JavaScript runs, or reproducing a UI bug.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Run linters/typecheckers to calculate health score.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Comprehensive UI/UX compliance check (A11y, performance, responsive).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Infrastructure-first security audit (OWASP, secrets, dependencies).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

auth

무료

Setup authentication flow (register, login, session/JWT, middleware)

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

Deep knowledge about deploying applications to AWS (EC2, ECS, S3, CloudFront, Cloud Run).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

porcupine-md/jonggrang162026년 9월 15일 업데이트

porcupine-md의 스킬 모두 보기

이 스킬의 문제 신고