Skills Plugins MCP Prompt Model 博客 我的中心
内容创作 #ai #agent

integrate-todo-list

TodoWrite panel for an already-approved in-app useAtlasChat UI. New AI features use integrate-fusion-agent. Triggers: TodoWrite, todo panel — only when useAtlasChat already exists.

DeepseekModel 官方收录技能 质量 良好 · 64 v1.0.0

获取

https://deepseekmodel.com/api/download.php?id=cognitedata-builder-skills-skills-integrate-todo-list-skill-md&format=skill
下载 .skill 标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用
.skill 文件中 system_prompt 字段的实际内容。
name integrate-todo-list description TodoWrite panel for an already-approved in-app useAtlasChat UI. New AI features use integrate-fusion-agent. Triggers: TodoWrite, todo panel — only when useAtlasChat already exists. allowed-tools Read, Glob, Grep, Edit, Write, Bash Integrate Todo List Add a TodoWrite tool and panel so the in-app Atlas agent can show task progress. Skip if the app uses the Atlas / EOS sidebar ( integrate-fusion-agent ). Prerequisite: useAtlasChat + src/atlas-agent/ + @sinclair/typebox from integrate-atlas-chat . Step 1 — Read the app Before writing anything, read: package.json — confirm @tabler/icons-react is installed; if not, install it with the app's package manager src/App.tsx — find where to add TodoProvider The file that calls useAtlasChat (likely src/chat/useChatViewModel.ts or src/App.tsx ) — this is where the tool gets wired The chat view component that renders messages — this is where TodoPanel and TodoToolResultCard go Step 2 — Create the src/todo/ module Find the skill directory by running find . -path "*/.agents/skills/integrate-todo-list/code" -type d from the project root. Read each file from <skill-dir>/code/ and write it into src/todo/ with the same filename: File Purpose types.ts TodoItem and TodoList types TodoContext.tsx React context + TodoProvider useTodoList.ts Hook to read/write the todo list todoWriteTool.ts createTodoWriteTool factory — AtlasTool with full CDF task-decomposition guidance useTodoWriteTool.ts Hook that memoizes the tool with current state access TodoPanel.tsx Card UI: progress bar + task rows TodoItemRow.tsx Single row with animated status icons TodoToolResultCard.tsx Compact summary card for tool call display All files use relative imports ( ./types , ./TodoContext , etc.) — no changes needed. Step 3 — Wrap the app in TodoProvider In src/App.tsx (or the root component), wrap the existing tree with <TodoProvider> : import { TodoProvider } from './todo/TodoContext' ; // adjust path to match app conventions function App ( ) { return ( < TodoProvider > {/* existing children */} </ TodoProvider > ); } Step 4 — Wire the tool into useAtlasChat In the file that calls useAtlasChat , add the following. Adjust import paths to match the app's conventions. import { useRef, useCallback } from 'react' ; import { useTodoList } from './todo/useTodoList' ; import { useTodoWriteTool } from './todo/useTodoWriteTool' ; // Inside the hook/component: const { todos, setTodos } = useTodoList (); const todoWriteTool = useTodoWriteTool (); // Keep a ref so getAppContext always reads fresh state without re-creating the callback. const todosRef = useRef (todos); todosRef. current = todos; const getAppContext = useCallback ( () => { const t = todosRef. current ; if (t. length === 0 ) return undefined ; const lines = t. map ( ( item, i ) => ` ${i + 1 } . [ ${item.status} ] ${item.content} ` ); return `Current todo list:\n ${lines.join( '\n' )} ` ; }, []); // Add to useAtlasChat options: const { messages, send, isStreaming, progress, error, reset, abort } = useAtlasChat ({ client : isLoading ? null : sdk, agentExternalId : AGENT_EXTERNAL_ID , tools : [todoWriteTool], // add alongside any existing tools getAppContext, }); // In the reset handler, clear the todo list: const handleReset = useCallback ( () => { reset (); setTodos ([]); }, [reset, setTodos]); // Expose todos in the return value so the view can render TodoPanel: return { ..., todos }; Step 5 — Render TodoPanel in the chat view In the component that renders the chat input area, add <TodoPanel> above the input field: import { TodoPanel } from './todo/TodoPanel' ; // adjust path // In the render: < TodoPanel todos = {todos} /> < YourChatInput ... /> TodoPanel returns null when the list is empty, so it's safe to always render it. Step 6 — Render TodoToolResultCard for tool call steps In the component that renders per-message tool calls (typically a steps accordion or similar), branch on the tool name: import { TodoToolResultCard } from './todo/TodoToolResultCard' ; // adjust path {toolCalls. map ( ( tc, i ) => tc. name === 'TodoWrite' ? ( < TodoToolResultCard key = {i} toolCall = {tc} /> ) : ( < YourDefaultToolCallCard key = {i} toolCall = {tc} /> ) )} Step 7 — Verify Run the app's type-check command (typically pnpm tsc --noEmit ) and confirm there are no errors. If the project has tests, run them to confirm nothing regressed. Done The agent can now use TodoWrite to create and track tasks. It will: Show a task panel as soon as it starts multi-step work Update task status in real-time ( pending → in_progress → completed ) Clear the list automatically when all tasks are done Inject the current task list into each prompt via getAppContext so it knows where it left off
Agent 识别该技能的关键词,点击任意一个即可复制。

该技能未提供触发词。

下载的 .skill 包内含以下字段。
字段 说明
format格式标识(skill/v1)
skill_id技能唯一 ID
name技能名称
version版本号
description技能描述
category所属分类(数组)
trigger_words触发词列表
tags标签列表
source来源标识
source_url来源链接(本页地址)
exported_at导出时间(每次下载生成)
system_prompt系统提示词正文
model_config模型参数:provider / model / temperature / max_tokens / top_p
examples示例
install_guide各平台导入说明(Coze / Dify / Claude / 自定义框架)
同一份技能可按不同平台格式导出。
.skill 标准格式,含 system_prompt 与 model_config,导入任意 Agent 框架即可使用 下载
.skillpro 增强格式,额外含脚本 / 工具 / 依赖 / 钩子占位 下载
.json 纯 JSON 导出,只含 system_prompt 与模型参数 下载
Coze 带 frontmatter 的 Markdown,Coze 平台导入用 下载
Dify Dify DSL,创建应用后直接导入 下载

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。