nocobase-app-upgrade

Merges a newer NocoBase template release into an existing application while preserving user changes.

9|3|Updated Aug 14, 2026
One-click install
npx skills add https://github.com/nocobase/nocobase3 --skill nocobase-app-upgrade-nocobase
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: nocobase-app-upgrade
Source: https://github.com/nocobase/nocobase3/tree/main/packages/templates/app-template-hub/skills/nocobase-app-upgrade
Command: npx skills add https://github.com/nocobase/nocobase3 --skill nocobase-app-upgrade-nocobase

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Applications generated with pnpm create @nocobase/app have no link back to their template, so template improvements never arrive automatically. This Skill performs a three-way merge between the baseline template release, the target release, and the user's application, deciding file by file how template changes land without destroying user customizations. ## Core Features & Use Cases - Three-way template diffing: Compares BASE and TARGET template releases, then checks which of those files the user also modified, producing a per-file merge plan. - Edge-case handling: Covers package.json key-by-key merging, plugin composition roots, removed plugin usage reviews, migrations, and generated directories via the references guide. - Safe upgrade workflow: Enforces a Git branch with a clean tree, forbids destructive commands, and finishes with install, dedupe, typecheck, test, lint, and build verification. - Use Case: A team wants to move their NocoBase hub application from template version 1.2.0 to 1.5.0 without losing their custom pages, plugins, and configuration. The Skill diffs the two template releases, identifies contested files, agrees a plan with the user, and merges the changes safely. ## Quick Start Upgrade this application to the latest template release, preserving all of my customizations and verifying the result with typecheck and tests.

Frequently Asked Questions about nocobase-app-upgrade

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I upgrade a NocoBase application to a newer template version?▼

Compare the baseline template release recorded in nocobase.defaultTemplateVersion against the target release, then merge those changes file by file into your application. The Skill fetches both published tarballs, diffs them, checks which files you also modified, and verifies the result with typecheck, test, and build.

How do I find my application's template baseline version?▼

Read the nocobase.templatePackage and nocobase.defaultTemplateVersion fields in package.json. If defaultTemplateVersion is missing or was bumped without a merge, reconstruct the baseline from Git history with the user rather than guessing.

Can I upgrade a NocoBase app that is not under Git version control?▼

No, the Skill refuses to proceed without a way back. It offers to run git init with a commit, or to perform the upgrade in a scratch copy of the project and verify it before moving changes back.

What happens to my custom plugins when the template removes one?▼

The Skill reviews your code and configuration for usage of the removed plugin before touching anything. If no usage is found, it asks for confirmation before removing the dependency and registrations; otherwise it retains the plugin and checks compatibility with the target release.

Why does typecheck fail with duplicate package types after a template upgrade?▼

An existing lockfile can retain an older dependency resolution that still satisfies its declared range, causing incompatible types from two copies of the same package. Run pnpm dedupe, then use pnpm why to find the retaining dependency and update only that package within its declared range.

When should I not use the template upgrade process?▼

Do not use it for ordinary feature development or for upgrading a single dependency. It is designed only for reconciling an application with a newer release of the template it was generated from.