# Castorini Release

> Use when publishing nuggetizer, ragnarok, rank_llm, or umbrela to PyPI or TestPyPI and you need the release sequence for version bumps, build checks, twine validation, TestPyPI dry-runs, or final production publishing.

- **Type:** Skill
- **Install:** `agentstack add skill-castorini-castorini-skills-castorini-release`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [castorini](https://agentstack.voostack.com/s/castorini)
- **Installs:** 0
- **Category:** [Developer Tools](https://agentstack.voostack.com/c/developer-tools)
- **Latest version:** 0.1.0
- **License:** Apache-2.0
- **Upstream author:** [castorini](https://github.com/castorini)
- **Source:** https://github.com/castorini/castorini-skills/tree/main/skills/castorini-release

## Install

```sh
agentstack add skill-castorini-castorini-skills-castorini-release
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Castorini Release

PyPI/TestPyPI publish workflow for nuggetizer, ragnarok, rank_llm, and umbrela.

Start with the reference checklist and use the bundled preflight script before uploading anything.

## Reference Files

- `references/pypi-checklist.md` — Step-by-step checklist with commands
- `references/release-sequence.md` — Supported repos and the high-level release sequence

## Preflight Script

Run the preflight checks before publishing:

```bash
bash skills/castorini-release/scripts/preflight.sh 
```

This verifies:
- Package builds successfully
- twine check passes (metadata, description rendering)
- No uncommitted changes
- Version is bumped from the last release

## Gotchas

- All four repos use `bumpver`; confirm the version change landed in the tracked files before you build.
- `uv build` should be run from the package root, not from the monorepo root or a skill directory.
- A TestPyPI upload only proves packaging and upload credentials; it does not guarantee PyPI will accept the same distribution later.
- TestPyPI installs often need `--extra-index-url https://pypi.org/simple/` because transitive dependencies may not exist on TestPyPI.
- Tagging rules and release-note locations are not fully standardized across the repos, so verify the target repo before creating the final tag.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [castorini](https://github.com/castorini)
- **Source:** [castorini/castorini-skills](https://github.com/castorini/castorini-skills)
- **License:** Apache-2.0

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-castorini-castorini-skills-castorini-release
- Seller: https://agentstack.voostack.com/s/castorini
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
