mcpField
S
storage-taskwarrior

storage-taskwarrior

github.com/zenobi-us生产力6854 次安装今天更新
代码仓库

关于 storage-taskwarrior

用于按当前 Git 仓库管理 Taskwarrior 任务的 skill。它从远程 URL 推导项目 ID,也支持环境变量覆盖,并涵盖任务操作与报告。

主要功能

  1. 01从 Git 远程地址推导项目 ID
  2. 02通过 TASK_PROJECT_ID 覆盖 ID
  3. 03列出并筛选项目任务
  4. 04添加、更新、删除及完成任务
  5. 05查看统计数据与摘要
  6. 06导入和导出 JSON

适用场景

  1. 01按仓库隔离任务
  2. 02按状态、标签或优先级查找任务
  3. 03查看项目任务统计
  4. 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 会自动:

  1. 检测 git 仓库远程 URL:git config --get remote.origin.url
  2. 提取所有者和仓库:github.com:{owner}/{repo}.git → {owner}-{repo}
  3. 将其用作所有任务命令的 project 筛选条件
  4. 允许通过环境变量 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 实现命令时:

  1. 始终先提取项目 ID:

    • 运行:git config --get remote.origin.url | sed -E 's/.*[:/]([^/]+)\/([^/.]+)(\.git)?$/\1-\2/'
    • 存储在 $PROJECT_ID 变量中
    • 允许覆盖:${TASK_PROJECT_ID:-$PROJECT_ID}
  2. 所有任务操作都必须包含项目筛选条件:

    • 使用:task project:$PROJECT_ID [filter] [command]
    • 自动化脚本中,绝不运行不带项目筛选条件的 task [command]
  3. 处理边缘情况:

    • 未找到任务:正常返回空列表
    • 项目 ID 无效:验证格式(仅限字母数字和连字符)
    • 缺少 .task 目录:使用 task config report.next.labels '' 初始化
  4. 提供易读的输出:

    • 解析 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