skills/python-package-starter/SKILL.md
Use `chattool pypi init` or `chatpypi` to scaffold Python packages, including ChatArch templates, then validate with pytest/build/check/probe.
npx skillsauth add cubenlp/chattool python-package-starterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when creating a Python package with ChatTool's PyPI helpers.
For a generic package, use the default template. For a ChatArch / chatxxx CLI package, use the chatarch template or switch to $chatarch-package-dev for integration guidance.
chattool pypi currently provides:
chattool pypi init
chattool pypi build
chattool pypi check
chattool pypi probe
chattool pypi upload
chatpypi is a convenience wrapper. When its first argument is not a known pypi subcommand, it dispatches to chattool pypi init:
chatpypi mychat --description "My chat package"
chattool pypi init mychat --description "My chat package"
cd mychat
python -m pytest -q
chattool pypi build --project-dir .
chattool pypi check --project-dir .
Equivalent wrapper form:
chatpypi mychat --description "My chat package"
The default template creates a minimal setuptools + src/ layout with Python >=3.9.
Use chatarch for a standalone ChatArch CLI package:
chattool pypi init chatfoo -t chatarch --project-dir ./chatfoo
Equivalent wrapper form:
chatpypi chatfoo -t chatarch --project-dir ./chatfoo
The chatarch template defaults to Python >=3.10, includes chatstyle and chatenv, and can generate docs and GitHub workflows.
Optional files can be skipped:
chattool pypi init chatfoo -t chatarch --project-dir ./chatfoo --without-mkdocs --without-workflows
mychat/
├── .gitignore
├── LICENSE
├── README.md
├── pyproject.toml
├── src/
│ └── mychat/
│ └── __init__.py
└── tests/
├── conftest.py
└── test_version.py
Run the smallest relevant checks before handing off:
python -m pytest -q
chattool pypi build --project-dir .
chattool pypi check --project-dir .
chattool pypi probe mychat
Use probe only when checking package-name availability against PyPI is relevant.
src/<module>/__init__.py.--author and --email when author metadata should be explicit.-i forces prompting and -I disables prompting.$chatarch-package-dev; for ongoing development after scaffold, use $chatarch-post-init-dev.tools
Continue development after `chatpypi` or `chattool pypi init -t chatarch` creates a project, keeping chatenv schemas, chatstyle interactive CLI behavior, docs, tests, and changelog aligned.
tools
Create or maintain ChatArch/chatxxx Python CLI packages with `chattool pypi init -t chatarch`, integrating external `chatstyle` and `chatenv` correctly.
tools
Create staged previews of Zulip topics using read-only CLI queries, including full-thread originals, a small zh-en translation slice, and a Chinese overview in an external work directory such as ~/tmp/chattool-zulip/<channel>/<topic>. Use when asked to preview, summarize, or translate Zulip thread content.
tools
Aggregate and summarize Zulip community updates via ChatTool CLI. Use for latest Zulip news, stream/topic listing, and periodic summaries from configured streams/topics.