
release-core-test
Invoke when dev-testing a Cyrus change that spans CYPACK (edgeworker + CLI) and CYHOST (Vercel-hosted GUI) and the hosted GUI needs to point at an unreleased cyrus-core from this repo. Publishes cyrus-core (and claude-runner if needed) as a -test.N prerelease under the npm test dist-tag so CYHOST can install it via cyrus-core@test without affecting the latest dist-tag or shipping a real release.
- Installs
- 714
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/cyrusagents/cyrus --skill release-core-test- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads release-core-test automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Release Core (Test)
Publish ONLY the cyrus-core package (and claude-runner if needed) as a dev/test prerelease to npm under the test dist-tag. This is a developer convenience for iterating on cyrus-core without going through the full release flow.
What this skill does NOT do
This skill is intentionally minimal. It does NOT:
- Update
CHANGELOG.mdorCHANGELOG.internal.md - Create a git tag
- Create a GitHub release
- Move any Linear issues
- Open a pull request
- Commit the version bump (the bumped
package.jsonis left as a local working-tree change)
It also does NOT publish any other workspace package (no edge-worker, no cyrus CLI, no linear-event-transport, etc.). The only exception is claude-runner, which is republished if and only if its workspace:* reference would otherwise resolve to an unpublished version (see step 3 below).
Workflow
1. Install dependencies from repo root
pnpm install
2. Build all packages from repo root
pnpm build
Building all packages ensures workspace:* dependencies are resolved before publishing.
3. Determine whether claude-runner needs republishing
cyrus-core depends on claude-runner via workspace:*. When cyrus-core is published, that workspace:* is rewritten to the version currently in packages/claude-runner/package.json. If that version isn't actually on npm yet (because claude-runner has local changes since its last publish), consumers installing cyrus-core@test will fail to resolve the dependency.
Run both of these deterministic checks:
# (a) Is the local claude-runner version already on npm?
LOCAL_CR=$(node -p "require('./packages/claude-runner/package.json').version")
npm view "cyrus-claude-runner@${LOCAL_CR}" version 2>/dev/null
# (b) Does claude-runner have uncommitted/unpushed source changes since its last publish?
git diff --quiet HEAD -- packages/claude-runner/src packages/claude-runner/package.json && echo "clean" || echo "dirty"
Republish claude-runner if either: (a) returns nothing (local version is not on npm), or (b) prints dirty. If both pass cleanly, skip this step. If you're unsure, ask the user.
To republish:
# Determine the next -test.N for claude-runner (same algorithm as cyrus-core below)
# Bump packages/claude-runner/package.json to e.g. 0.0.X-test.N
cd packages/claude-runner
pnpm publish --access public --no-git-checks --tag test
cd ../..
pnpm install # refresh lockfile so cyrus-core picks up the new claude-runner
Otherwise, skip this step entirely.
4. Bump cyrus-core to the next -test.N prerelease version
Algorithm:
- Read the current version from
packages/core/package.json(e.g.0.1.22). - Bump the patch (e.g.
0.1.23). - Append
-test.N, starting atN = 0and incrementing while<bumped>-test.Nalready exists on npm (including aborted/stale prior attempts).
Use this one-liner to find existing -test.N versions for the bumped patch and pick the next N:
BUMPED=0.1.23 # the patch-bumped base, no suffix
npm view cyrus-core versions --json \
| jq -r '.[]' \
| grep -E "^${BUMPED}-test\.[0-9]+$" \
| awk -F'test.' '{print $2}' \
| sort -n | tail -1
# If empty, use N=0. Otherwise use (max + 1).
Write the chosen version (e.g. 0.1.23-test.0) back into packages/core/package.json. Do NOT commit this change — leave it as a local working-tree edit so the developer can decide whether to keep it.
5. Publish cyrus-core with the test dist-tag
cd packages/core
pnpm publish --access public --no-git-checks --tag test
cd ../..
Using --tag test means:
npm install cyrus-core@testwill install this version.- The
latestdist-tag is not moved, so production installs (npm install cyrus-core) are unaffected.
6. Verify the dist-tags landed correctly
npm view cyrus-core dist-tags
Confirm that latest is unchanged from before the publish and test now points to the version you just published. If latest moved, something is wrong — stop and investigate before telling anyone to install it.
7. Print install instructions
After publishing, print both forms so the developer can copy/paste:
Published cyrus-core@<version> under dist-tag `test`.
Install with:
npm install cyrus-core@test
or pinned:
npm install cyrus-core@<version>
If claude-runner was also republished in step 3, include its version too.
Key Notes
- Always use
--no-git-checksso you can publish from a feature branch with a dirty working tree. - Always use
--tag testso thelatestdist-tag is preserved for real releases. - Prerelease versions (anything with a
-suffix like-test.0) are never auto-installed bynpm install cyrus-corewithout an explicit tag or version spec, so this is safe to run repeatedly. - Run
pnpm installafter publishingclaude-runner(if applicable) so the lockfile reflects the new published version beforecyrus-coreis built/published. pnpm install+pnpm buildfrom root takes ~3 minutes combined on a clean tree — plan command timeouts accordingly.
Examples
- "release core test" - Run a dev release of cyrus-core
- "/release-core-test" - Invoke this skill
FAQ
What does the release-core-test skill do?
Invoke when dev-testing a Cyrus change that spans CYPACK (edgeworker + CLI) and CYHOST (Vercel-hosted GUI) and the hosted GUI needs to point at an unreleased cyrus-core from this repo. Publishes cyrus-core (and claude-runner if needed) as a -test.N prerelease under the npm test dist-tag so CYHOST can install it via cyrus-core@test without affecting the latest dist-tag or shipping a real release.
How do I install release-core-test?
Run npx skills add https://github.com/cyrusagents/cyrus --skill release-core-test in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/release-core-test/ (personal) or .claude/skills/release-core-test/ (project).
Which AI agents can use release-core-test?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is release-core-test safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains release-core-test?
It is published by cyrusagents in cyrusagents/cyrus. It has 714 recorded installs.
More from cyrusagents/cyrus
cyrus-setup
cyrusagents/cyrus
Set up Cyrus end-to-end — install prerequisites, configure authentication, create integrations (Linear, GitHub, Slack), add repositories, and launch. Run this once to get Cyrus running as a background agent.
cyrus-setup-linear
cyrusagents/cyrus
Create a Linear OAuth application and configure Cyrus to use it — supports agent-browser automation or guided manual setup.
cyrus-setup-claude-auth
cyrusagents/cyrus
Configure Claude Code authentication for Cyrus — API key, OAuth token, or third-party provider.
cyrus-setup-github
cyrusagents/cyrus
Configure GitHub for Cyrus — gh CLI login and git config for PRs, with optional webhook setup to enable @mention responses in PR comments, automated rebases and merges, and auto-fixing based on CI failures (coming soon).
cyrus-setup-prerequisites
cyrusagents/cyrus
Check and install prerequisites for Cyrus — Node.js, jq, gh CLI, and the cyrus-ai npm package.
cyrus-setup-endpoint
cyrusagents/cyrus
Configure the public webhook endpoint for Cyrus — ngrok, Cloudflare Tunnel, or custom URL.
Popular testing & qa skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
grilling
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
migrate-to-shoehorn
mattpocock/skills
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
run-train
lllllllama/rigorpilot-skills
Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.
test-driven-development
obra/superpowers
Use when implementing any feature or bugfix, before writing implementation code
finishing-a-development-branch
obra/superpowers
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work