Skip to main content

AI Agents-driven project task CLI for initializing .agents task structure and skills.

Project description

zsc

zsc is a CLI for multi-IDE/AI Coding tools that initializes a unified AI Agents task structure in your project.

Language / 语言: English | 中文


Installation

You can install zsc with pip or uv tool:

# pip (when uv is not installed or you prefer pip)
pip install -U zsc

# uv tool (recommended when uv is available)
uv tool install zsc
uv tool install zsc --upgrade

For local development from this repo, you can use an editable install:

uv pip install -e .[test]

The commands above are examples; adjust to your environment and uv version.


Features

  • Initialize .agents task layout: Creates .agents/ and .agents/tasks/ as the single entry point for project-level task lifecycle and TODOs.
  • Install zsc-* skills for multiple AI Coding tools: Each subcommand maps to a skill (for example, zsc-create-taskzsc task new). zsc init installs these skills under .cursor/skills/, .codex/skills/, and .claudecode/skills/ so each tool can understand and maintain the task system.
  • Idempotent behavior: Re-running commands does not destroy existing structure or overwrite user-customized skill files.

Usage

From your project root, run:

zsc init .

zsc init . will:

  • Create .agents/ and .agents/tasks/ directories if they do not exist.
  • Create the following AI tool skill directories if they do not exist:
    • .cursor/skills/
    • .codex/skills/
    • .claudecode/skills/
  • Copy the zsc-* skills bundled in zsc into those directories, e.g.:
    • .cursor/skills/zsc-help/SKILL.md (usage overview; can be triggered as /zsc-help in an AI environment)
    • .cursor/skills/zsc-create-task/SKILL.md (corresponds to zsc task new)
    • .cursor/skills/zsc-task-list/SKILL.md (corresponds to zsc task list)
    • .cursor/skills/zsc-task-status/SKILL.md (corresponds to zsc task status)
    • And similarly-named paths under .codex/skills/ and .claudecode/skills/.
    • SKILL.md files are overwritten on each run so that re-running zsc init . (e.g. after changing --lang or .agents/zsc-lang) keeps all skills in the chosen language.

Running zsc init . again is safe: existing directories are kept; skill files are re-written from the current language template.

To see the installed zsc version:

zsc -V
# or
zsc --version

Upgrading with zsc -U

In any terminal, you can upgrade zsc with:

zsc -U

This attempts to upgrade zsc to the latest version:

  • If uv is available and the project’s .venv is not broken, zsc -U prefers uv tool install zsc --upgrade (equivalent to running that command directly).
  • If the Python interpreter inside .venv is a broken symlink (for example .venv/bin/python3 no longer exists), zsc -U skips the uv-based upgrade and falls back to pip install -U zsc, printing a hint that you may want to recreate the virtualenv (e.g. via uv venv).
  • If uv is available but the upgrade fails (including errors like No virtual environment found; run \uv venv` to create an environment, or pass `--system` to install into a non-virtual environment), zsc -Uwill trypip install -U zsconce as a fallback; if that also fails, it prints copy-pastable manual commands so you can decide betweenpip install -U zscanduv tool install zsc --system`.
  • The actual behavior is independent of your shell type (bash/zsh/fish, etc.), but depends on which zsc binary is on your PATH. If a given shell picks up a different zsc installed inside a virtualenv, then zsc -U in that shell will follow that environment.

Task commands

zsc provides a set of subcommands around .agents/tasks:

  • zsc task list: list tasks under .agents/tasks and their basic status (open/completed).
  • zsc task new <feat_name> [path]: create a new task_{no}_{feat_name} directory and task_{no}_{feat_name}.md template in the given project root (default: current directory).
  • zsc task status: summarize counts of tasks and their states, as a project-level health indicator.

Together with zsc init ., you can first initialize the task system and then use zsc task commands to maintain and browse the lifecycle.

Note: zsc task new creates the directory and same-named .md template. In AI Coding tools, triggering the zsc-create-task skill (e.g. /zsc-create-task in Cursor) can run zsc task new <feat_name> or create the files from a template and then help you refine the “closed-loop description” and TODO_LIST. If you previously used the old skill name zsc-new-task, run zsc init . again to install zsc-create-task.


Skills (AI-side “CLI”)

Besides traditional terminal subcommands (such as zsc init . and zsc task list), zsc also installs a set of skills (named zsc-*) for various AI Coding tools. In an AI environment, these behave like a second command line, where the model executes actions in your local project on your behalf.

  • Traditional CLI: you type commands in a terminal, such as:
    • zsc init .
    • zsc task list
  • Skills (AI-side): you trigger skills from your IDE/AI tool, for example:
    • In Cursor, type /zsc-help, /zsc-create-task, /zsc-run-task, etc., and let the AI perform the corresponding operations.

Core skills (by installed skill name):

Skill Role Trigger example Related CLI
zsc-help Explain what zsc does, how CLI and skills map to each other, and provide quick-start examples. /zsc-help zsc --help, README
zsc-create-task Create and design tasks (closed-loop description and TODO_LIST) under .agents/tasks; does not execute TODOs. /zsc-create-task @task_xx.md zsc task new
zsc-run-task Execute and advance an existing task, modifying code/docs according to TODO_LIST and rewriting TODO_LIST when done. /zsc-run-task @task_02_xxx.md
zsc-run-task-to-complete In a safe environment, try to automatically run as many TODOs as possible in one go, rewriting TODO_LIST with the same completion rules. /zsc-run-task-to-complete @task_06_...md
zsc-task-list List tasks under .agents/tasks and their status from the AI side. /zsc-task-list zsc task list
zsc-task-status Summarize project-level task health (open/completed/unknown counts). /zsc-task-status zsc task status
zsc-update-task Update task design only (closed-loop description, TODO_LIST, etc.); does not run TODOs. /zsc-update-task @task_03_xxx.md

Maintenance: when adding or removing zsc-* skills, keep this section in sync with what is actually installed under .cursor/skills/ and similar directories.


TODO design: actionable and closable

  • Each TODO should be a concrete, executable engineering action that roughly answers “who does what in which context” and can typically be completed within 1–2 hours.
  • Avoid long-running observation/monitoring items or overly abstract goals in TODO_LIST (for example, “keep watching error rate”, “ensure long-term stability”). Those are better expressed as separate tasks (e.g. dedicated monitoring/stability tasks) or recorded in task_records/log/, design docs, or ops docs, rather than left as open TODOs forever.
  • Prefer a bottom-up decomposition style: write the next concrete step first; after completing one concrete step, add a new TODO for the next step. When a TODO is too large or vague, split it into multiple smaller, more specific TODOs that replace the original entry.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zsc-0.2.5.tar.gz (44.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zsc-0.2.5-py3-none-any.whl (48.7 kB view details)

Uploaded Python 3

File details

Details for the file zsc-0.2.5.tar.gz.

File metadata

  • Download URL: zsc-0.2.5.tar.gz
  • Upload date:
  • Size: 44.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for zsc-0.2.5.tar.gz
Algorithm Hash digest
SHA256 a1d93715c5f5463a73b208e443cd03fdf9a8b52311457c515ae6fe41afd49eb9
MD5 1eb99d36befbe291098818d0325c0dd1
BLAKE2b-256 3fa820a546d6cb7c052163132ea7f3b08b83bcfebe34618ac4cebca0830f514c

See more details on using hashes here.

File details

Details for the file zsc-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: zsc-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 48.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for zsc-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b0ad06beb87f5d6c0a064c505e810619fc7d7df876f2ea5603d1e83ae905b788
MD5 93df63f6784c7e3f1b6caa2f4f5b5907
BLAKE2b-256 7732f47a12a03b33be8b2536df23460918de96d7d08af89bb39f9ae37187d9f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page