一键导入
tui-scaffold
Build the TUI app skeleton with event loop, state machine, and layout framework for clickup-tui. Use this when scaffolding the TUI crate.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Build the TUI app skeleton with event loop, state machine, and layout framework for clickup-tui. Use this when scaffolding the TUI crate.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
SPECTRA v4 — vendor-agnostic specification and planning methodology for AI agents.
Implement typed async endpoint methods on ClickUpClient in clickup-api. Use this when creating or modifying files in clickup-api/src/endpoints/.
Create serde model structs for all ClickUp API entities in clickup-api. Use this when creating or modifying files in clickup-api/src/models/.
Build the core HTTP client with rate limiting, retry, and pagination in clickup-api. Use this when creating client.rs, rate_limiter.rs, or pagination.rs.
Implement authentication commands for clickup-cli. Use this when creating auth.rs, output.rs, or client_factory.rs in the CLI crate.
Implement space, list, and task browsing commands with rich output for clickup-cli. Use this when creating data browsing commands in the CLI crate.
| name | tui-scaffold |
| description | Build the TUI app skeleton with event loop, state machine, and layout framework for clickup-tui. Use this when scaffolding the TUI crate. |
This skill creates the foundational TUI architecture — the app state machine, event system, terminal management, and layout framework. All subsequent TUI skills build on this scaffold.
clickup-tuiapi-endpoints completed — ClickUpClient endpoint methods existcrates/clickup-tui/src/app.rs — App struct with Screen enum, selection state, breadcrumbscrates/clickup-tui/src/event.rs — EventHandler with crossterm polling + tokio mpsc channelscrates/clickup-tui/src/main.rs — Terminal setup/teardown, main loop, panic hookcrates/clickup-tui/src/ui/mod.rs — Main render dispatchercrates/clickup-tui/src/ui/layout.rs — Standard 3-row layoutpub enum Screen {
Loading,
WorkspaceSelect,
SpaceList,
ListView,
TaskDetail,
}
pub struct App {
pub screen: Screen,
pub running: bool,
pub selected_index: usize,
pub breadcrumbs: Vec<String>,
// Data caches (populated by later skills)
pub workspaces: Vec<Workspace>,
pub spaces: Vec<Space>,
pub tasks: Vec<Task>,
pub current_task: Option<Task>,
}
App holds ALL state — screens never have their own statepub enum AppEvent {
Key(KeyEvent),
Tick,
Data(DataPayload), // For async API responses
}
tokio::sync::mpsc channel for cross-task communication~/.config/clickup-rs/tui.log)ClickUpClient from stored tokenpoll event → update state → render frameStandard 3-row layout:
Each screen shows centered text: "Screen Name — Coming Soon" with key hint "q: quit | ?: help"
q and Ctrl+C quit cleanly