Skip to content
cccskills
FreePublished on GitHub

pr-snapshot-release

Publish a Mastra preview package from a pull request or branch. Check the exact commit, confirm publication, monitor the release workflow, and report verified npm tags with a ready-to-copy installation command.

OriginalShow the original description

Guide a Mastra maintainer through publishing an npm snapshot from a pull request or a specified repository branch. Use when asked to release, publish, or create a PR snapshot, branch snapshot, canary package build, or branch-specific npm tag. Performs source and branch preflight checks, requires confirmation before the irreversible publish, dispatches the existing Publish to npm workflow, monitors it, and reports installable package tags.

Works withGitHub
See how to install

Good for

  • Publishing a preview package from a pull request
  • Sharing a branch build under a custom npm tag
  • Checking publication results and installation commands

Files included (1)

  • SKILL.md5.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

PR Snapshot Release

Publish a snapshot from a PR or a specified branch using .github/workflows/npm-publish.yml. Snapshot publishing is manual, works only for branches in mastra-ai/mastra, and publishes real immutable package versions to npm.

1. Resolve the source

Accept a PR number or URL, an explicit branch, or both. If neither is supplied, try the PR for the current branch:

pr=${PR_NUMBER_OR_URL:-$(gh pr view --json number --jq .number)}
gh pr view "$pr" \
  --json number,title,url,state,isDraft,baseRefName,headRefName,headRefOid,headRepository,mergeable,reviewDecision \
  --jq '{number,title,url,state,isDraft,baseRefName,headRefName,headRefOid,headRepository: .headRepository.nameWithOwner,mergeable,reviewDecision}'

When the user specifies a branch, publish that branch instead of assuming the PR head branch. If both are supplied and differ, call out the override clearly. When a PR is the source, stop if it is not open and record its headRefName, headRefOid, and head repository.

A workflow dispatch can only target a ref in mastra-ai/mastra. If a PR head is in a fork, explain that it cannot be published directly, but allow the user to specify an existing branch in mastra-ai/mastra instead. Do not push contributor code to an upstream branch without explicit maintainer direction.

2. Verify the exact branch revision

Resolve the selected branch to an exact SHA. For a PR branch, compare it with the inspected PR head SHA. For an explicitly specified branch, record the remote SHA as head_sha:

branch=<specifiedBranch-or-headRefName>
remote_sha=$(git ls-remote origin "refs/heads/$branch" | awk '{print $1}')
test -n "$remote_sha"
head_sha=${head_sha:-$remote_sha}
test "$remote_sha" = "$head_sha"

If it differs, refresh the source metadata and repeat the checks. Re-run this comparison immediately before dispatch. Never publish a stale or ambiguous revision.

When a PR is available, inspect gh pr checks "$pr" and mention any known failing checks in the confirmation summary. Do not block snapshot publishing on pending or failing checks. Call out when the PR is a draft.

3. Choose a custom npm tag

Always use a custom tag. If the user proactively supplied one, use it. Otherwise, derive a short, memorable lowercase kebab-case tag from the purpose of the PR or branch, such as agent-builder or memory-fix; do not ask the user to choose one. Tell the user which tag will be used. Avoid generic release tags such as latest, next, or alpha.

Check whether the tag already points to a published @mastra/core snapshot and call out that publishing will move it:

npm view @mastra/core "dist-tags.$tag"

Show the selected branch, SHA, PR URL when available, and custom tag before publishing. Do not imply that the workflow's dry_run input protects snapshots: the snapshot job does not honor it.

4. Confirm and dispatch

Publishing creates real npm versions and cannot be undone. Ask for explicit confirmation immediately before dispatch. Do not dispatch based only on the user's initial request.

gh workflow run npm-publish.yml \
  --repo mastra-ai/mastra \
  --ref "$branch" \
  -f publish_type=snapshot \
  -f tag="$tag"

5. Monitor the run

Find the newly dispatched run matching the branch and SHA, then verify its URL before watching it:

gh run list \
  --repo mastra-ai/mastra \
  --workflow npm-publish.yml \
  --branch "$branch" \
  --event workflow_dispatch \
  --limit 5 \
  --json databaseId,headSha,createdAt,status,conclusion,url \
  --jq ".[] | select(.headSha == \"$head_sha\")"

gh run watch <run-id> --repo mastra-ai/mastra --exit-status

If no matching run appears immediately, wait briefly and query again. Never select a run solely because it is the newest.

On failure, inspect the failed steps and report them without rerunning automatically:

gh run view <run-id> --repo mastra-ai/mastra --log-failed

A rerun publishes externally and requires fresh confirmation.

6. Verify and report

Determine which published packages are relevant to testing the PR or branch from its changed packages and the publish workflow output. Verify the custom tag for each relevant package. @mastra/core, @mastra/observability, and @mastra/auth-studio are forcibly included by the workflow, but only include them in the installation instructions when they are relevant:

npm view @mastra/core "dist-tags.$tag"
npm view <relevant-package> "dist-tags.$tag"

Report:

  • PR URL when available and exact published commit SHA
  • Workflow run URL and conclusion
  • npm dist-tag
  • Relevant package names and resolved versions
  • A copy-pasteable, single-line pnpm command that installs every relevant package from the custom tag, for example:
pnpm add @mastra/core@agent-builder @mastra/server@agent-builder

Use the actual tag and package names in the command, not placeholders. Briefly state that the command should be run from the consuming project's root. Do not claim success or provide the install command until the workflow and every included npm tag lookup succeed.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Design and audit an agent's system prompt, the instructions that guide its work. Define a concrete outcome, starting input, available tools, completion checks, fallback behavior, and final report so the prompt describes a complete run.

  • Designing the core instructions for a new agent
  • Auditing a prompt before saving it
  • Defining behavior when tools or permissions are missing
mastra-ai/mastra28.9KUpdated Oct 18, 2026

Create a dedicated test project linked to the current worktree and check Agent Builder through APIs and browser interactions. It covers agent and skill management, permissions, defaults, and related features, with selectable test sections.

  • Validate an Agent Builder feature branch before review
  • Check role-based permissions and authentication
  • Test agent and skill management through APIs and the UI
mastra-ai/mastra28.9KUpdated Oct 18, 2026

code-standards

FreeSummary

Reviews pull requests for bugs, error handling, code quality, and style consistency. Organizes feedback into an overview, must-fix issues with file locations, improvement suggestions, and positive notes so reviewers can distinguish urgent problems from refinements.

  • Finding bugs that must be fixed before merging
  • Reviewing TypeScript types and asynchronous code
  • Checking naming, imports, and leftover debug statements
mastra-ai/mastra28.9KUpdated Oct 18, 2026

coding-agent

FreeSummary

Design instructions for agents that write, fix, review, or refactor code. Define behavior based on file access, select suitable tools, and set clear verification and completion rules for repository changes or copyable code output.

  • Designing an agent for repository bug fixes
  • Defining a pull request review agent
  • Creating a code generator without workspace access
mastra-ai/mastra28.9KUpdated Oct 18, 2026

Configure Factory board behavior and GitHub or Linear event handlers in deployment code. Adjust stage transitions, phase meanings, and tool-result handling, then check the changes with focused tests and versioned audit records.

  • Add approval requirements to board transitions
  • Change GitHub or Linear event handling
  • Define custom board phases and tool-result rules
mastra-ai/mastra28.9KUpdated Oct 18, 2026

Design agents that draft blog posts, social posts, newsletters, and marketing copy. Define the audience, brand voice, length, and required output so each agent delivers a complete draft with a headline and supporting notes.

  • Build a blog writing agent with a consistent brand voice
  • Design an agent for LinkedIn product posts
  • Define delivery rules for newsletter drafts
mastra-ai/mastra28.9KUpdated Oct 18, 2026

See all skills by mastra-ai

Report a problem with this skill