用途
该技能用于管理限定在当前项目范围内的 Taskwarrior 任务。它以当前 Git 仓库的 remote URL 作为项目标识符(project ID),从而将任务按仓库进行隔离和过滤,避免不同项目之间的任务混杂。
项目 ID 生成
项目 ID 由 Git remote URL 自动 slugify 生成。例如:
git@github.com:zenobi-us/dotfiles.git → zenobi-us-dotfiles
该 ID 会被存入 Taskwarrior 的 project 属性中,便于过滤。也支持通过环境变量手动覆盖:TASK_PROJECT_ID。
主要能力
1. 自动项目 ID 解析
自动检测 Git 仓库的 remote URL:git config --get remote.origin.url;从中提取 owner 与 repo(如 github.com:{owner}/{repo}.git → {owner}-{repo});并将其作为所有任务命令的项目过滤条件;允许通过环境变量 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 priority:H 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 5 modify priority:H +urgent)、删除任务(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)。
使用方式
实现使用该技能的命令时,需先提取项目 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 导出用于程序化处理,并以清晰的列与高亮格式化列表输出,在摘要中显示任务数量。
适用场景
- 多仓库开发中按项目隔离与管理任务
- 在命令行中快速检索、标记与更新任务
- 通过 JSON 导出导入配合 CI/CD 自动化
- 与 OpenCode Commands 的 /project:do:task 工作流集成
集成点
该技能可与 Taskwarrior(主要任务管理后端)、Git(自动获取项目 ID)、OpenCode Commands(/project:do:task 工作流集成)、Bash/脚本(导出导入用于 CI/CD 自动化)配合使用。
限制
资料未提供该技能的收费、价格、平台支持范围、运行环境依赖或性能与效果等信息。使用前需自行确保环境已安装并配置好 Taskwarrior 与 Git;命令示例中的具体行为以 Taskwarrior 官方文档为准。
参考:Taskwarrior 文档 https://taskwarrior.org ;项目过滤:task help | grep project ;完整过滤语法:man taskfilter 或 task help usage。