en un clic
ship-feature
// Ship a feature end-to-end — update tests, docs, docs-site, then release to PyPI. Use when user says "ship", "ship feature", "release", or asks to publish a new version.
// Ship a feature end-to-end — update tests, docs, docs-site, then release to PyPI. Use when user says "ship", "ship feature", "release", or asks to publish a new version.
Ship a feature end-to-end — update tests, docs, docs-site, then release to PyPI. Use when user says "ship", "ship feature", "release", or asks to publish a new version.
Create git commits with good messages. Use when user says "commit", "create commit", or asks to commit changes.
Review GitHub pull requests. Use when user says "review PR", "review pull request", or "/review-pr".
| name | ship-feature |
| description | Ship a feature end-to-end — update tests, docs, docs-site, then release to PyPI. Use when user says "ship", "ship feature", "release", or asks to publish a new version. |
| tools | ["read_file","glob","write_file","edit_file","Bash(git *)","Bash(python *)","Bash(pytest *)","Bash(pip *)","Bash(twine *)","Bash(npm *)","Bash(cat *)","Bash(grep *)"] |
Ship a feature completely: tests → docs → docs-site → release.
Read the user's message to identify which feature/module was changed.
Run in parallel:
git diff --stat — what files changedgit diff — full diff of changesgit log --oneline -5 — recent commit contextFind the relevant test file:
glob("tests/**/*.py") — find all test filesconnectonion/agent.py → tests/unit/test_agent.py)Update the test file:
python -m pytest tests/unit/test_<module>.py -vFind relevant doc file:
glob("docs/**/*.md") — find all doc filesUpdate the doc:
The docs-site is a separate Next.js repo at docs-site/. It mirrors the docs/ content but with richer formatting.
# Check what docs-site pages cover the changed area
glob("docs-site/**/*.{tsx,mdx,md}")
Update the corresponding page:
docs/CommandBlock, CodeBlock, etc.)Commit the docs-site change separately:
cd docs-site && git add . && git commit -m "Update docs for <feature>" && git push && cd ..
Read current version:
grep "__version__" connectonion/__init__.py
Apply versioning rules (from VERSIONING.md):
Update these files with the new version:
connectonion/__init__.py — __version__ = "X.Y.Z"setup.py — version="X.Y.Z"git add connectonion/__init__.py setup.py tests/ docs/
git commit -m "Release vX.Y.Z: <feature description>"
git tag vX.Y.Z
git push
git push origin vX.Y.Z
python setup.py sdist bdist_wheel
twine upload dist/*
Confirm upload succeeded by checking the output for "View at: https://pypi.org/project/connectonion/X.Y.Z/"
docs/ updateddocs-site/ updated and pushed__init__.py and setup.pydocs-site/ directory doesn't exist or has no relevant page