Agent Native

self-update

This skill updates a junior-prod application to the latest published Junior release by bumping @sentry/junior and @sentry/junior-* dependencies, verifying…

by SentryOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (getsentry)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode, claude.ai and API
License
Apache-2.0 (permissive)
Pin
1745a29pinned Oct 9, 2026
Context cost
about 1,900 tokenswhen the skill loads
GitHub stars
367on getsentry/junior
Scripts
None found

What it does

“Update this junior-prod app to the latest published Junior release. Use when asked to self-update Junior, bump @sentry/junior and @sentry/junior-* dependencies, run safety checks, and open a draft PR.”
The author's description, from SKILL.md

Generated summary from the skill's own text

This skill updates a junior-prod application to the latest published Junior release by bumping @sentry/junior and @sentry/junior-* dependencies, verifying availability on npm, comparing configuration against the upstream example app, running build and type checks, and opening a draft PR with release notes and findings.

When to use it

  • App needs to stay current with Junior runtime and plugin package updates
  • Automating Junior release updates on a schedule or webhook trigger
  • Updating multiple dependency sections while preserving their organization
  • Verifying configuration drift against upstream example after dependency changes

When not to

  • Updating non-Junior dependencies or other packages in the project
  • When git working directory has unrelated uncommitted changes to package files
  • Deploying to production without manual review of breaking changes in Junior releases

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add getsentry/junior --skill self-update

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install getsentry/junior self-update@1745a298365f0f001db0b3eec6de8a8347e0f6d9

Installs the commit we checked (1745a29).

Copy by hand

Download the folder at 1745a29 and put it in .claude/skills/self-update for Claude Code and in .agents/skills/self-update for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at 1745a29

Claude Code plugin

/plugin install sentry@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Claude Code plugin

/plugin install sentry-cli@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "self-update" by Sentry.

Source, pinned to commit 1745a298365f0f001db0b3eec6de8a8347e0f6d9:
https://github.com/getsentry/junior/tree/1745a298365f0f001db0b3eec6de8a8347e0f6d9/packages/junior-maintenance/skills/self-update

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/self-update/ for Claude Code and .agents/skills/self-update/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/sentry/self-update

SKILL.md at the pin

---
name: self-update
description: Update this junior-prod app to the latest published Junior release. Use when asked to self-update Junior, bump @sentry/junior and @sentry/junior-* dependencies, run safety checks, and open a draft PR.
---

## Workflow

### 1. Preflight

```bash
git status --short
git branch --show-current
```

Stop if `package.json`, `pnpm-lock.yaml`, or `pnpm-workspace.yaml` has unrelated uncommitted changes.

### 2. Inventory and target

Inventory direct Junior deps from `package.json`: `@sentry/junior` and `@sentry/junior-*`. Record package, current exact version, and dependency section. Keep all Junior deps on one version and do not move packages between sections.

Resolve the target:

```bash
pnpm view @sentry/junior dist-tags.latest
```

If user requests a specific version, use that. If already on latest, stop.

Verify the target exists for every inventoried package before mutating files:

```bash
pnpm view <package>@<target> version
```

Allow for npm security scanning and propagation delays after publication:

- If a version or tarball is missing, retry affected packages after 30, 60, and 120 seconds. Keep the same target; do not retry auth failures as publication delays.
- Confirm missing versions with cache-busted npm metadata and the direct version endpoint. Continue only when every package's exact target version and tarball are available.
- If still unavailable, leave app files unchanged and do not open an update PR. Report "not yet available on npm" with the target, affected packages, and checks. Missing packages alone do not prove a failed publish or a scanning delay; do not republish or cut another release.

### 3. Build release context

Summarize changes between `old_version` and `target_version` (exclusive of old, inclusive of target) from GitHub release notes. Do not read `CHANGELOG.md` or scrape PRs — release bodies carry the authoritative release context.

Tags match package versions with no `v` prefix (for example `0.107.1`):

Ask npm to resolve the semver range to the exact tags, then fetch only those releases:

```bash
pnpm view '@sentry/junior@><old_version> <=<target_version>' version --json
gh release view <version> --repo getsentry/junior --json tagName,name,body,publishedAt,url
```

Collect the corresponding release bodies. Stop if any expected GitHub release is missing; do not substitute another source. Save the target release's `publishedAt` as `target_published_at` for step 7. Save total change count, breaking changes (`Breaking Changes`, `!`, or `BREAKING CHANGE`), and config-relevant items (`config`, `plugins`, `nitro`, `createApp`, `runtime`, `credentials`, `egress`, `example`). If any breaking change exists, keep the PR draft and call out manual review, but continue the update.

### 4. Create or reuse branch

`build/update-junior-<target>`. All file mutations happen on this branch.

### 5. Sync `minimumReleaseAgeExclude`

If `pnpm-workspace.yaml` has a `minimumReleaseAgeExclude` list, ensure every Junior package from step 2 is covered by an exact entry or an existing package pattern. Add missing entries before `pnpm add`, but do not add exact entries already covered by `@sentry/*`. Append at end and preserve existing order.

### 6. Update deps (section-preserving)

Group `pnpm add` by dependency section:

```bash
pnpm add -E <deps-packages>@<target> ...
pnpm add -D -E <devDeps-packages>@<target> ...
pnpm add -O -E <optDeps-packages>@<target> ...
```

Do not manually edit versions in `package.json`. Do not use local `../junior` linking scripts.

### 7. Sync local config

If a new standalone `@sentry/junior-*` plugin package was added, add it to the app `plugins.ts` set passed to `defineJuniorPlugins(...)` and keep `juniorNitro({ plugins: "./plugins" })` pointed at that module. Exclude the base/runtime utility packages: `@sentry/junior`, `@sentry/junior-plugin-api`, `@sentry/junior-testing`.

```bash
node scripts/check-plugin-packages.mjs
```

Compare the consumer config with `apps/example` at `target_ref` to catch shape drift. Choose `target_ref` from the version bump commit, then the publish timestamp, then `origin/main` as approximate:

```bash
git clone --filter=blob:none --depth=200 https://github.com/getsentry/junior.git /tmp/junior-upstream
git -C /tmp/junior-upstream log --oneline -S'"version": "<target_version>"' -- packages/junior/package.json
git -C /tmp/junior-upstream rev-list -n 1 --before="<target_published_at>" origin/main
git -C /tmp/junior-upstream checkout <target_ref>
git diff --no-index -- /tmp/junior-upstream/apps/example/nitro.config.ts nitro.config.ts
git diff --no-index -- /tmp/junior-upstream/apps/example/plugins.ts plugins.ts
git diff --no-index -- /tmp/junior-upstream/apps/example/server.ts server.ts
```

Ignore app-local values. Apply only obvious low-risk fixes; put ambiguous drift in the PR body. For `package.json`, compare only build tooling (`nitro`, `jiti`, `typescript`), not plugin dependency lists or pins.

For `vercel.json`, do not normalize the whole file against the example. Use upstream diff-backed changes when possible:

```bash
git -C /tmp/junior-upstream diff <old_ref>..<target_ref> -- apps/example/vercel.json
```

Only act on Junior-owned deployment requirements proven by that diff or by release notes/docs. If `old_ref` is unavailable, target-only example entries are context, not proof; mark the review approximate and leave a manual review item when needed.

### 8. Verify

```bash
git diff --name-only
pnpm install --frozen-lockfile
pnpm check
pnpm typecheck
pnpm build
```

Expected changed files: `package.json`, `pnpm-lock.yaml`, optional `pnpm-workspace.yaml`, optional `nitro.config.ts`, optional `vercel.json`. Confirm every Junior dep is exactly `<target>`. If the frozen install fails, repair with `pnpm install --lockfile-only` and rerun. Fix update-related check failures; disclose pre-existing or environment failures.

### 9. Commit

```text
build(deps): Update Junior packages to <target>

Update the Junior runtime and plugin packages to <target> and refresh the pnpm lockfile.
```

Mention `minimumReleaseAgeExclude` sync if `pnpm-workspace.yaml` changed.

### 10. Push and open/update draft PR

Open a draft PR. Include version change, release summary with links to the GitHub releases, config comparison findings, optional workspace/plugin/vercel changes, and unexpected diffs. Do not put `Checks`, `Verification`, `Test plan`, or similar validation sections in the PR body; put local check results in the final user report only. Add **Manual review required** when breaking changes, unresolved config drift, approximate Vercel review, or failed checks exist.

When PR creation returns a subscribable resource hint, watch the PR for suggested review and CI events. After merge, if deployment follow-up is needed, use `github_getDeployment` for the merged commit and watch the suggested deployment events.

## Automatic updates from GitHub releases

When asked to keep an app current whenever Junior publishes a release, resolve `getsentry/junior` with `github_getRelease` (no tag) and create a durable event automation on `release.published`. The task instruction should load this skill and run the update against the published tag from the event's untrusted text / release payload. Prefer an event automation for ongoing automation; use a temporary watch only when following one manually initiated update.

## Stop conditions

- Any Junior package still lacks the target version or tarball after the bounded availability checks in step 2.
- Any npm version in `(old_version, target_version]` lacks a matching GitHub release.
- `pnpm install --frozen-lockfile` fails after repair.
- Checks fail for non-pre-existing, non-environment reasons and no safe config fix is available from step 7.
- `package.json` changed but `pnpm-lock.yaml` did not.
- Example app comparison reveals a breaking plugin signature change whose required values cannot be inferred from the existing consumer config.

From getsentry/junior at 1745a29, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at 1745a29

Files

1 file, 8.0 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at 1745a29
All 50 skills from Sentry

More from Sentry

  • claude-settings-audit

    This skill analyzes a repository to detect its tech stack, build tools, and service integrations, then generates recommended Claude Code settings.json…

    Claude Code · about 2.9K tokens · pinned 6 days ago

  • commit

    This skill enables the agent to create conventional commit messages following Sentry's style guide.

    Claude Code, Codex, Cursor +4 · about 430 tokens · pinned 6 days ago

  • django-access-review

    This skill guides agents through investigating Django and Django REST Framework code for IDOR and access control vulnerabilities.

    Claude Code, Codex, Cursor +4 · about 2.5K tokens · pinned 6 days ago

  • django-perf-review

    This skill audits Django codebases for performance problems by validating issues through code tracing before reporting.

    Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago

  • iterate-pr

    This skill automates PR iteration by fetching CI check statuses and review feedback, then fixing actionable failures and high/medium priority comments until…

    Contains scripts

    Claude Code · about 1.2K tokens · pinned 6 days ago

  • pr-writer

    This skill helps agents write clear, reviewer-focused PR titles and descriptions by inspecting the branch, diff, and existing PR state, then crafting concise…

    Claude Code, Codex, Cursor +4 · about 1.3K tokens · pinned 6 days ago

All Coding workflow skills
  • github-code

    This skill enables agents to interact with GitHub repositories using git and gh commands for implementation, code investigation, branching, pull request…

    by SentryOfficial publisher

    Claude Code, Codex, Cursor +4 · about 580 tokens · pinned 6 days ago

  • maintainer-review

    This skill helps maintainers assess GitHub issues and PRs by evaluating whether claimed problems are real, whether existing features already solve them, and…

    by OpenAIOfficial publisher

    Claude Code, Codex, Cursor +4 · about 8.9K tokens · pinned 6 days ago

  • maintainer-review

    Evaluates GitHub issues and PRs through a systematic desk review to assess demonstrated need, existing workarounds, design correctness, and maintainer impact.

    by OpenAIOfficial publisher

    Claude Code, Codex, Cursor +4 · about 8.3K tokens · pinned 6 days ago

  • dd-file-issue

    This skill helps file GitHub issues to the DataDog/pup repository for bugs, feature requests, and documentation problems related to the pup CLI, agents, and…

    by DatadogOfficial publisher

    Claude Code, Codex, Cursor +3 · about 2.2K tokens · pinned 6 days ago

  • create-pr

    This skill creates a GitHub pull request with a Linear-ticket-prefixed title and a decision-led narrative description for the prisma-next repository.

    by PrismaOfficial publisher

    Claude Code, Codex, Cursor +4 · about 4.3K tokens · pinned 6 days ago

  • github-review-iteration

    Orchestrates an iterative GitHub PR review loop by delegating triage and implementation to sub-agents, then repeating until all actionable review items are…

    by PrismaOfficial publisher

    Contains scripts

    Claude Code · about 1.9K tokens · pinned 6 days ago

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use