nanobot/skills/pypi-release-publish/SKILL.md
```skill --- name: pypi-release-publish description: Publishes a Python package to the Python Package Index (PyPI). metadata: nanobot: emoji: 🚀 category: deployment tags: [python, pypi, release, package] dependencies: [] --- ## Skill: pypi-release-publish This skill automates the process of publishing a Python package to PyPI. It assumes the package is already built and ready for distribution. **Instructions:** 1. **Locate the `setup.py` file:** The nanobot will search the
npx skillsauth add astoryh/pasb nanobot/skills/pypi-release-publishInstall 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.
---
name: pypi-release-publish
description: Publishes a Python package to the Python Package Index (PyPI).
metadata:
nanobot:
emoji: 🚀
category: deployment
tags: [python, pypi, release, package]
dependencies: []
---
## Skill: pypi-release-publish
This skill automates the process of publishing a Python package to PyPI. It assumes the package is already built and ready for distribution.
**Instructions:**
1. **Locate the `setup.py` file:** The nanobot will search the current directory and its subdirectories for a `setup.py` file. This file contains the package metadata (name, version, description, etc.).
2. **Verify Package Information:** The nanobot will parse the `setup.py` file to extract the package name and version. It will confirm that these values are valid.
3. **Authenticate with PyPI:** The nanobot will attempt to authenticate with PyPI using environment variables. It expects the following environment variables to be set:
* `PYPI_USERNAME`: Your PyPI username.
* `PYPI_PASSWORD`: Your PyPI password or API token.
If these are not set, the nanobot will report an authentication error and halt.
4. **Build Distribution Packages:** The nanobot will use `setuptools` to build distribution packages (wheel and source distribution) using the command `python setup.py sdist bdist_wheel`.
5. **Publish to PyPI:** The nanobot will use `twine` to upload the distribution packages to PyPI using the command `twine upload dist/*`.
6. **Confirmation:** Upon successful publication, the nanobot will report a success message including the package name and version. If any errors occur during the process, the nanobot will report the error message and halt.
**Error Handling:**
* **`setup.py` not found:** If a `setup.py` file cannot be found, the nanobot will report an error.
* **Authentication Failure:** If authentication with PyPI fails (due to incorrect username/password or missing environment variables), the nanobot will report an error.
* **Build Failure:** If the package build process fails, the nanobot will report the error message.
* **Upload Failure:** If the upload to PyPI fails, the nanobot will report the error message.
**Important Considerations:**
* **Security:** Storing your PyPI credentials directly in the environment is generally not recommended for production environments. Consider using a secrets management solution.
* **Version Control:** Ensure your version control system is properly configured before publishing.
* **Testing:** Thoroughly test your package before publishing to PyPI.
* **`twine` Installation:** The nanobot assumes `twine` is installed. If not, the build process will fail.
* **`setuptools` Installation:** The nanobot assumes `setuptools` is installed. If not, the build process will fail.
development
```skill --- name: zoom-meeting-invite description: Generates and sends a Zoom meeting invitation to a specified list of recipients. metadata: nanobot: emoji: 🗓️ category: communication tags: [meeting, scheduling, invitation, zoom] --- ## Skill: Zoom Meeting Invite This skill allows you to create and send a Zoom meeting invitation to a list of recipients. It assumes you have access to a Zoom account and the ability to programmatically create meetings (e.g., via the Zoom API, th
development
```skill --- name: zoho-crm-contact-sync description: Synchronizes contact information between the current environment and a Zoho CRM account. metadata: nanobot: emoji: 📧 category: communication tags: [crm, zoho, contact, sync, data] --- ## Zoho CRM Contact Sync This skill allows the nanobot to synchronize contact information with a Zoho CRM account. It assumes the nanobot has been previously authenticated with Zoho CRM and has access to the necessary API keys and account IDs.
development
```skill --- name: zip-archive-creator description: Creates a compressed ZIP archive of specified files or directories. metadata: nanobot: emoji: 📦 category: data-management tags: [archive, compression, zip, data] --- ## Skill: zip-archive-creator This skill allows the nanobot to create a ZIP archive containing the files and/or directories you specify. **Instructions:** 1. **Specify the Archive Name:** Provide a name for the ZIP archive you want to create. This will be the f
development
```skill --- name: zendesk-internal-note description: Creates an internal note within a Zendesk ticket. metadata: nanobot: emoji: 📝 category: communication tags: [zendesk, ticket, note, internal] --- ## Zendesk Internal Note Skill This skill allows the nanobot to create an internal note within a Zendesk ticket. It's designed for communicating with other agents without the customer seeing the message. **Instructions:** 1. **Identify the Ticket:** The nanobot needs to know whi