关于 storage-taskwarrior
用于按当前 Git 仓库管理 Taskwarrior 任务的 skill。它从远程 URL 推导项目 ID,也支持环境变量覆盖,并涵盖任务操作与报告。
主要功能
- 01从 Git 远程地址推导项目 ID
- 02通过 TASK_PROJECT_ID 覆盖 ID
- 03列出并筛选项目任务
- 04添加、更新、删除及完成任务
- 05查看统计数据与摘要
- 06导入和导出 JSON
适用场景
- 01按仓库隔离任务
- 02按状态、标签或优先级查找任务
- 03查看项目任务统计
- 04以 JSON 备份或恢复任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ zenobi-us/ dotfiles --skill storage-taskwarrior安装后在 Claude Code 中输入/storage-taskwarrior确认已加载。
详细介绍
Agent 用途: 使用当前项目的 git 仓库远程 URL 作为项目 ID 管理 Taskwarrior 任务。
项目 ID 生成: 根据 git 远程 URL 自动生成 slug
- 示例:
[email protected]:zenobi-us/dotfiles.git→zenobi-us-dotfiles - 存储在 Taskwarrior 的
project属性中,便于筛选
核心功能
1. 自动解析项目 ID
Agent 会自动:
- 检测 git 仓库远程 URL:
git config --get remote.origin.url - 提取所有者和仓库:
github.com:{owner}/{repo}.git→{owner}-{repo} - 将其用作所有任务命令的
project筛选条件 - 允许通过环境变量
TASK_PROJECT_ID手动覆盖
2. 任务列表与搜索
列出此项目的所有任务:
task project:$PROJECT_ID list
按标签搜索任务:
task project:$PROJECT_ID +tag list
按状态筛选:
task project:$PROJECT_ID status:pending list
task project:$PROJECT_ID status:completed list
按优先级筛选:
task project:$PROJECT_ID priority:H list
task project:$PROJECT_ID priority:L list
复杂筛选:
task project:$PROJECT_ID +bug priority:H status:pending list
3. 任务 CRUD 操作
添加新任务:
task project:$PROJECT_ID add "Task description" +tag priority:H
创建包含完整属性的任务:
task project:$PROJECT_ID add "Implementation task" project:$PROJECT_ID +feature +backend priority:M
更新现有任务:
task project:$PROJECT_ID 5 modify priority:H +urgent
task project:$PROJECT_ID 5 modify "New description" -old-tag +new-tag
删除任务:
task project:$PROJECT_ID 5 delete
将任务标记为已完成:
task project:$PROJECT_ID 5 done
4. 任务分析与报告
查看任务统计信息:
task project:$PROJECT_ID stats
按状态显示任务摘要:
task project:$PROJECT_ID summary
列出活跃任务:
task project:$PROJECT_ID active list
5. 导出与导入
将任务导出为 JSON:
task project:$PROJECT_ID export > backup.json
从 JSON 导入任务:
task import backup.json
实现指南
使用此 Agent 实现命令时:
-
始终先提取项目 ID:
- 运行:
git config --get remote.origin.url | sed -E 's/.*[:/]([^/]+)\/([^/.]+)(\.git)?$/\1-\2/' - 存储在
$PROJECT_ID变量中 - 允许覆盖:
${TASK_PROJECT_ID:-$PROJECT_ID}
- 运行:
-
所有任务操作都必须包含项目筛选条件:
- 使用:
task project:$PROJECT_ID [filter] [command] - 自动化脚本中,绝不运行不带项目筛选条件的
task [command]
- 使用:
-
处理边缘情况:
- 未找到任务:正常返回空列表
- 项目 ID 无效:验证格式(仅限字母数字和连字符)
- 缺少 .task 目录:使用
task config report.next.labels ''初始化
-
提供易读的输出:
- 解析 JSON 导出数据以供程序使用
- 以清晰的列和醒目样式格式化列表输出
- 在摘要中显示任务数量
命令示例
使用多个筛选条件搜索
# Find urgent bugs with high priority
task project:zenobi-us-dotfiles +bug priority:H list
# Find pending tasks with high priority
task project:zenobi-us-dotfiles status:pending priority:H +important list
批量操作
# Mark all overdue tasks as waiting
task project:zenobi-us-dotfiles overdue modify +waiting
# Add same tag to multiple tasks
task project:zenobi-us-dotfiles 1,2,3 modify +reviewed
复杂筛选
# Find tasks matching pattern
task project:zenobi-us-dotfiles 'description~Bug' list
# Combine filters with AND/OR
task project:zenobi-us-dotfiles '(priority:H or status:pending)' list
集成点
此 Agent 可与以下组件配合使用:
- Taskwarrior:主要的任务管理后端
- Git:根据仓库元数据自动生成项目 ID
- OpenCode Commands:
/project:do:task工作流集成 - Bash/Scripts:用于 CI/CD 自动化的导出/导入
参考资料
- Taskwarrior 文档:https://taskwarrior.org
- 项目筛选:
task help | grep project - 完整筛选语法:
man taskfilter或task help usage
评论
支持 Markdown