一键导入
api-endpoints
Implement typed async endpoint methods on ClickUpClient in clickup-api. Use this when creating or modifying files in clickup-api/src/endpoints/.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Implement typed async endpoint methods on ClickUpClient in clickup-api. Use this when creating or modifying files in clickup-api/src/endpoints/.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
SPECTRA v4 — vendor-agnostic specification and planning methodology for AI agents.
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.
Create documentation, issue templates, release workflows, and test suites for clickup-rs. Use this when preparing for release or writing project documentation.
| name | api-endpoints |
| description | Implement typed async endpoint methods on ClickUpClient in clickup-api. Use this when creating or modifying files in clickup-api/src/endpoints/. |
This skill implements the typed async methods that call each ClickUp API endpoint. Each method lives in its own module under endpoints/, uses ClickUpClient for HTTP, and returns strongly-typed model structs.
clickup-apihttp-client completed — ClickUpClient with get() and get_with_params() methods existdomain-models completed — all model structs existcrates/clickup-api/src/endpoints/mod.rs — Re-exports all endpoint modulescrates/clickup-api/src/endpoints/users.rs — get_authenticated_user()crates/clickup-api/src/endpoints/workspaces.rs — get_workspaces()crates/clickup-api/src/endpoints/spaces.rs — get_spaces(), get_space()crates/clickup-api/src/endpoints/folders.rs — get_folders()crates/clickup-api/src/endpoints/lists.rs — get_lists_in_folder(), get_folderless_lists(), get_list()crates/clickup-api/src/endpoints/tasks.rs — get_tasks(), get_task()crates/clickup-api/src/endpoints/comments.rs — get_task_comments()Implement each endpoint as an impl ClickUpClient method. Reference the endpoint table for exact URL patterns and parameters.
impl ClickUpClient {
/// Get the authenticated user.
pub async fn get_authenticated_user(&self) -> Result<User> {
let response: AuthenticatedUserResponse = self.get("/user").await?;
Ok(response.user)
}
}
AuthenticatedUserResponse → User, WorkspacesResponse → Vec<Workspace>)get_tasks() must use the pagination helper — accumulate all pages until last_page == trueget_task() should pass include_subtasks=true and include_markdown_description=true as query paramstracing::debug!("GET {path}") before the HTTP callcrate::error::Result<T> — never anyhowEach endpoint module should include #[cfg(test)] mod tests that:
wiremock::MockServerClickUpClient pointing at the mock serverid and name)list, folder, space fields)wiremock-based integration testget_tasks()get_task() passes include_subtasks=true&include_markdown_description=truetracing::debug!