MCPInstall

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
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads release-core-test automatically when relevant.

  3. 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.md or CHANGELOG.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.json is 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:

  1. Read the current version from packages/core/package.json (e.g. 0.1.22).
  2. Bump the patch (e.g. 0.1.23).
  3. Append -test.N, starting at N = 0 and incrementing while <bumped>-test.N already 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@test will install this version.
  • The latest dist-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-checks so you can publish from a feature branch with a dirty working tree.
  • Always use --tag test so the latest dist-tag is preserved for real releases.
  • Prerelease versions (anything with a - suffix like -test.0) are never auto-installed by npm install cyrus-core without an explicit tag or version spec, so this is safe to run repeatedly.
  • Run pnpm install after publishing claude-runner (if applicable) so the lockfile reflects the new published version before cyrus-core is built/published.
  • pnpm install + pnpm build from 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

View all →

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.

Backend & APIs1.1K installs

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.

Backend & APIs1K installs

cyrus-setup-endpoint

cyrusagents/cyrus

Configure the public webhook endpoint for Cyrus — ngrok, Cloudflare Tunnel, or custom URL.

Backend & APIs1K installs

Popular testing & qa skills

View category →

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.

Testing & QA1.2M installs

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.

Testing & QA996.2K installs

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.

Testing & QA484.1K installs

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.

Testing & QA337.8K installs

test-driven-development

obra/superpowers

Use when implementing any feature or bugfix, before writing implementation code

Testing & QA261.8K installs

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work

Testing & QA216.8K installs