nest-server-updating
Provides migration guides, release notes, and error solutions for updating @lenne.tech/nest-server to a newer version. Covers version-specific breaking changes, stepwise upgrade strategies, and starter project comparisons. Activates for nest-server version updates, upgrades, migrations, breaking changes between versions, "pnpm run update", TypeScript errors after upgrading, or stepwise migration planning. Delegates execution to the lt-dev:nest-server-updater agent. NOT for writing NestJS code or building features (use generating-nest-servers). NOT for general npm package updates (use maintaining-npm-packages).
What this skill does
# @lenne.tech/nest-server Update Knowledge Base This skill provides **knowledge and resources** for updating @lenne.tech/nest-server. For automated execution, use the `lt-dev:nest-server-updater` agent via `/lt-dev:backend:update-nest-server`. **Important:** After updating nest-server, also check if `@lenne.tech/nuxt-extensions` in `projects/app/` needs a compatible update, as nuxt-extensions is aligned with nest-server. ## Gotchas - **Crossing the jest→vitest boundary** — At some point on the upstream `nest-server-starter` timeline the test runner migrated from jest+ts-jest to vitest+unplugin-swc (check the starter's `package.json` for the current truth — if `vitest-e2e.config.ts` exists, the boundary is behind you). Updating an existing project across that boundary needs more than a `pnpm install`: every `@Prop` whose property is a TypeScript union (`'a' | 'b'`, `null | string`, an alias for either) must add `type: String` (or `type: Object` for record-likes), every `import * as supertest` must become a default import, every `jest.*` call must become `vi.*`, and `jest-e2e.json` + `babel.config.js` must be removed. Without these, vitest fails with "Cannot determine a type for the X field" from Mongoose, or "is not a function" from supertest. The full recipe lives in the `modernizing-toolchain` skill — apply Phases 2 and 3 before running `pnpm test`. - **`useDefineForClassFields` mismatch** — When migrating to vitest, both the `tsconfig.json` `compilerOptions.useDefineForClassFields` AND the swc plugin in `vitest-e2e.config.ts` MUST be set to `true`. Mixing them (e.g. swc=false, ts=true) silently breaks NestJS DI: `securityCheck` gets the wrong `currentUser`, so user `signUp` returns `createdBy: null` even though the override service set it. There is no error, only test failures that look like business logic regressions. - **Minor version bumps are treated as MAJOR** — `@lenne.tech/nest-server` follows a "stepwise update" policy even on minor versions. Jumping from `7.5.x` directly to `7.9.x` in one step is likely to miss breaking changes that were introduced sub-minor. Always run the update step-by-step via `pnpm run update`, even if the version gap looks small. - **`pnpm run update` requires the target version in `package.json` FIRST** — The update script reads the current/target from `package.json`. Running it before bumping the version does nothing or produces confusing errors. Order: (1) bump `package.json` → (2) `pnpm install` → (3) `pnpm run update`. - **`nuxt-extensions` alignment breaks silently** — `@lenne.tech/nuxt-extensions` is version-aligned with `@lenne.tech/nest-server`. Updating nest-server to `7.19.0` without also updating nuxt-extensions to `7.19.x` leaves the frontend consuming an outdated API contract. Types generated via `generate-types` may still pass locally but break at runtime on production. - **Migration guides are cumulative — read ALL between old and new version** — If you jump from `7.12` to `7.19`, migration guides for `7.13`, `7.14`, `7.15`, `7.16`, `7.17`, `7.18`, `7.19` ALL apply. Don't skip reading them — each introduces non-trivial behavior changes. - **Starter project is the ground truth for constellations** — When a migration is ambiguous (e.g., which package.json override to add, which config value to change), check `nest-server-starter`'s current `package.json` via GitHub raw. It reflects the canonical working constellation for the target version. ## Scope: npm mode vs vendored mode This skill covers the **npm-mode** update flow (bumping `@lenne.tech/nest-server` in `package.json`, applying migration guides from the upstream repo, re-running tests). Its companion for **vendored projects** (those where `<api-root>/src/core/VENDOR.md` exists) is the `nest-server-core-vendoring` skill + the `nest-server-core-updater` agent via `/lt-dev:backend:update-nest-server-core`. **The two flows share one migration-guide corpus** (the upstream `migration-guides/` directory applies to code regardless of consumption mode — it describes API deltas in the framework, not in the distribution channel). Everything in this skill about per-version breaking changes, error patterns, and error messages is equally valid in vendored mode. What differs is: | Aspect | npm mode | vendored mode | |--------|----------|---------------| | Detection | no `src/core/VENDOR.md` | `src/core/VENDOR.md` exists | | Bump command | `pnpm update @lenne.tech/nest-server` | `/lt-dev:backend:update-nest-server-core --target <v>` | | Framework source location | `node_modules/@lenne.tech/nest-server/src/core/...` | `<api-root>/src/core/...` | | Baseline version lookup | `pnpm list @lenne.tech/nest-server --depth=0` | `grep Baseline-Version <api-root>/src/core/VENDOR.md` | | Source of truth for framework code | npm package `dist/` + shipped `src/` | local `src/core/` (committed, may carry patches) | | Local patches | not persisted (lost on `pnpm install`) | expected; logged in `VENDOR.md` | | Import statements in consumer code | `from '@lenne.tech/nest-server'` | relative: `from '../../src/core'` etc. | The `nest-server-updater` agent auto-detects the project mode (Phase 0 in its workflow) and delegates to `nest-server-core-updater` when `VENDOR.md` is present, so users only ever need to invoke `/lt-dev:backend:update-nest-server` — the right flow kicks in automatically. ## When This Skill Activates - Discussing nest-server updates or upgrades - Asking about breaking changes between versions - Troubleshooting update-related errors - Planning migration strategies - Comparing versions or checking compatibility ## Skill Boundaries | User Intent | Correct Skill | |------------|---------------| | "Update nest-server to v14" | **THIS SKILL** | | "Migrate to latest nest-server" | **THIS SKILL** | | "Breaking changes in nest-server" | **THIS SKILL** | | "Create a NestJS module" | generating-nest-servers | | "Update all npm packages" | maintaining-npm-packages | | "npm audit fix" | maintaining-npm-packages | ## Related Skills | Element | Purpose | |---------|---------| | **Agent**: `lt-dev:nest-server-updater` | Automated execution of updates | | **Command**: `/lt-dev:backend:update-nest-server` | User invocation | | **Skill**: `generating-nest-servers` | Code modifications after update | | **Skill**: `maintaining-npm-packages` | Package optimization | --- ## Core Resources ### GitHub Repositories | Resource | URL | Purpose | |----------|-----|---------| | **nest-server** | https://github.com/lenneTech/nest-server | Main package repository | | **Releases** | https://github.com/lenneTech/nest-server/releases | Release notes, changelogs | | **Migration Guides** | https://github.com/lenneTech/nest-server/tree/main/migration-guides | Version-specific migration instructions | | **Reference Project** | https://github.com/lenneTech/nest-server-starter | Current compatible code & package versions | ### npm Package ```bash # Package info pnpm view @lenne.tech/nest-server # Current installed version pnpm list @lenne.tech/nest-server --depth=0 # All available versions pnpm view @lenne.tech/nest-server versions --json ``` --- ## Migration Guide System **Complete guide selection logic, fallback strategy, and fetch commands: [reference/migration-guides.md](reference/migration-guides.md)** --- ## Version Update Strategies **IMPORTANT:** In @lenne.tech/nest-server, **Major versions are reserved for NestJS Major versions**. Therefore, **Minor versions are treated like Major versions** and may contain breaking changes. ### Patch Updates (X.Y.Z → X.Y.W) - Usually safe, no breaking changes - Use the standard update workflow (see Quick Reference → Update Workflow) - Run tests to verify - **Example:** `11.6.0 → 11.6.5` - direct update OK ### Minor Updates (X.Y.Z → X.W.0) ⚠️ Treat as Major! - **May contain breaking changes** (Minor = Major in this package) - **Always stepwise**: Update through each minor version - Each minor step requires full validation cyc
Related in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts — single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score ≥ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.