npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@winton979/task-cli

v1.11.0

Published

AI-assisted development workflow CLI for single and multi-repository projects

Readme

task-cli

English

一个轻量的 AI 辅助开发工作流。它将需求探索与实现分开,使智能体在开始编码前先判断额外复杂度是否合理。

探索决定复杂度是否合理;实现交付满足要求的最简方案。

安装

需要 Node.js 18 或更高版本。

# npm
npm install -g @winton979/task-cli

# volta
volta install @winton979/task-cli

task init

task init 只创建 .ai/ 工作区。工作流技能按机器全局安装:task skill install <agents|claude|codex> 可选安装到 ~/.agents/skills/~/.claude/skills/~/.codex/skills/,之后用 task skill update 保持更新。

.ai/
├── tasks/active 和 tasks/archive
├── bugs/active 和 bugs/archive
├── efforts/active 和 efforts/archive
├── specs
└── decisions/decisions.md

工作流

在 Claude Code 中用 /skill-name 调用技能;在 Codex CLI 中用 $skill-name

| 需求 | 流程 | | --- | --- | | 理解项目 | project-explore | | 小且无歧义的改动 | task-fast | | 大型或不确定的请求 | effort-explore | | 将 ready Effort 转为经审查的任务 | effort-spec -> task-implement | | 非简单的新增或修改行为 | task-explore -> task-implement -> 可选 task-audit | | 非简单的缺陷修复 | bug-explore -> bug-fix -> 可选 bug-audit | | 放弃尝试 | task-cancelbug-cancel |

每个任务和缺陷入口都会先做基于证据的直接完成检查:当目标明确、改动是真正窄小的补丁、项目惯例足以决定实现方式,且可进行聚焦验证时,技能会在当前调用内完成并验证,不创建 task、bug 或 decision 记录。Direct Completion 是 proof obligation,不是 agent 的 confidence score:无法由请求、仓库证据和适用 decision 排除的歧义,必须进入探索。若检查不通过,task-fast 会在同一次调用内自动进入完整的 task 或 bug 探索,而不依赖用户对任务是否简单的判断。

task-explorebug-explore 采用 grilling(Grill Me)协议作为以决策驱动探索的方法论基础,该原语内置自 Matt Pocock 的 skills collection,但不作为运行时依赖。非直接完成的探索会将决策组织为树,并按轮次提出当前所有互不依赖的问题,同时给出每题建议。

effort-explore 用自然语言管理大型或不确定的请求。它将未决决策和当前 frontier 记录在一个可恢复的 Effort 中,同时将已观察事实、推断理由和证据冲突与用户确认的决策分开保存。当没有未决项能实质改变 Spec contract 时,Effort 才 ready;剩余不确定性必须与 contract 无关,或作为无需在实现前决策的 non-blocking Risk 记录。可以要求继续、查询状态、关闭或显式重新打开。关闭总是需要确认,并会保留归档记录。

CONTEXT.md 是工作流状态根目录下可选的单一词汇表。task init 不会创建它。当重要的项目术语含义模糊、与词汇表或代码冲突,或成为跨任务稳定概念时,effort-explore 会提出精简的词汇表修改,并等待明确确认。它绝不将词汇表当作 Spec、决策日志或会话记录。

effort-spec 将 ready 且 open 的 Effort 转为可恢复的 Spec Proposal。用户显式确认 Spec 后,它会在 .ai/specs/ 写入受版本控制的 Spec Record,并在内部展示作为 contract execution projection 的任务图;第二次确认才会一次性创建全部生成型 Task Brief。任务图反馈可以调整分组、归属或真实依赖,但不能改变已确认的 Spec;contract 变更必须回到 Spec Proposal。每个验收条件都会指定最高实用的 Verification Boundary,Task 通常交付可独立观察的端到端行为;广泛机械式重构则使用显式的 expand-migrate-contract 序列。生成型 Task 保留来源条件追溯、真实依赖门禁和完成证据;既有 Task 与 Bug 流程保持不变。

对于不符合直接完成条件的 Bug,bug-explore 会先建立能捕捉到原问题的、已脱敏的诊断循环,然后才能确认根因或产出 BUG_READYbug-fix 复用该循环作为回归证据,并在归档前移除临时诊断插桩。

决策沉淀

任务和缺陷归档保存工作历史;代码、测试、工具、配置和项目文档保存工程知识。decisions.md 刻意保持精简:只记录会改变某个具体未来选择、且无法从这些工程制品中无歧义得出的长期约束。

对于已确认的约束,使用 decision-logdecision-sweep-weekly 是按需触发的策展与清理,不是每周例行事务,也不要求产出新的 Decision;没有新增记录同样是成功结果。

命令

task init        # 创建 .ai 工作区(仅项目本地)
task add-repo    # 添加 Git 仓库并启用工作区模式
task use-context # 将工作流状态存入已注册的 Git 仓库
task bind-repo   # 覆盖当前机器上的仓库路径
task repos       # 列出工作区中配置的仓库
task refresh     # 维护 .ai 状态并清理旧版本项目本地技能
task skill install <agents|claude|codex> # 全局安装工作流技能
task skill update [<target> ...]         # 更新已全局安装的技能
task skill remove [<target> ...]         # 删除已全局安装的技能
task doctor      # 检查工作区状态、全局技能版本和 gitignore 规则
task --help

workscope

workscope 是同一包内的独立工作区清单工具。它只管理 workspace.yamlworkspace.local.yaml,不安装技能、不创建 .ai/ 状态目录,也不要求先运行 task init

workscope add-repo <path> [--id <id>] [--description <text>]
workscope use-context <id>
workscope bind-repo <id> <path>
workscope enable-repo <id> [--local]
workscope disable-repo <id> [--local]
workscope focus <id> [<id>...] [--local]   # 启用列出的仓库,禁用其余全部
workscope repos
workscope --help

workscope focus 适用于只关注部分仓库的场景:一条命令启用列出的 ID,禁用其他全部。若已配置 context_repository,必须将其包含在 focus 列表中。

--local 标志将覆盖写入被忽略的 workspace.local.yaml,而非共享的 workspace.yaml。workscope 在首次本地写入时自动将 workspace.local.yaml 加入 .gitignore

在某目录首次执行写命令时,workscope 还会生成 WORKSPACE.md 声明文件,描述工作区布局。可手动编辑其中的项目名或描述。只读命令(repos--help)不会触发生成。

多仓库工作区

在用作共享工作流根目录的位置初始化 task-cli。

task init
task add-repo ../frontend --id frontend --description "Web application"
task bind-repo frontend D:/work/acme/web-client
task disable-repo frontend
task enable-repo frontend --local
task repos

第一次 task add-repo 会创建 workspace.yaml。使用 task bind-repo 写入每开发者路径覆盖(位于被忽略的 workspace.local.yaml)。当启动根与业务仓库不同时,使用 task use-context 将工作流状态存入已注册的 Git 仓库。

升级

npm install -g @winton979/task-cli@latest   # 或: volta install @winton979/task-cli
task skill install <agents|claude|codex>    # 本机首次安装技能
task skill update                           # 之后的升级
task doctor
task refresh                                # 清理旧版本项目本地技能

task refresh 会保留 .ai/tasks.ai/bugs.ai/efforts.ai/specs.ai/decisionsworkspace.yamlworkspace.local.yaml 和无关的自定义技能。

许可证

MIT