Skip to content

Instantly share code, notes, and snippets.

@kyle-n
Created June 19, 2026 13:58
Show Gist options
  • Select an option

  • Save kyle-n/c3616de709f6f8a86265e47dea70caf8 to your computer and use it in GitHub Desktop.

Select an option

Save kyle-n/c3616de709f6f8a86265e47dea70caf8 to your computer and use it in GitHub Desktop.
Skill: Angular v19 + NestJS v11 Upgrade

Skill: Angular v19 + NestJS v11 Upgrade

Goal: 0 Draft PR: 1 of 5 Commit prefix: [agent:angular-v19-nest-v11] Branch: agent/<repo>/angular-v19-nest-v11

Overview

This skill upgrades a repository from its current Angular version (v17+) to Angular v19 and from its current NestJS version (v9+) to NestJS v11. This is the foundational upgrade — all subsequent goals depend on it completing successfully.

Prerequisites

  • Repository is on Angular v17+ and NestJS v9+
  • Repository builds and tests pass on the default branch before starting

Execution Steps

Step 1: Analyze Current State

  1. Read package.json to identify current Angular and NestJS versions
  2. Read angular.json or workspace.json to understand the workspace configuration
  3. Identify all Angular-related packages (@angular/*, @angular-devkit/*, zone.js, rxjs, typescript)
  4. Identify all NestJS-related packages (@nestjs/*)
  5. Check for any version-pinned dependencies that might conflict
  6. Log the current state for traceability

Step 2: Angular Upgrade

  1. Run ng update @angular/core@19 @angular/cli@19 to perform the Angular upgrade
  2. If ng update is not available or fails, manually update all @angular/* packages to v19
  3. Update typescript to the version required by Angular v19 (check Angular's peer dependencies)
  4. Update zone.js to the version compatible with Angular v19
  5. Update rxjs if required by Angular v19's peer dependencies
  6. Run npm install to resolve the dependency tree

Step 3: NestJS Upgrade

  1. Update all @nestjs/* packages to v11
  2. Update NestJS peer dependencies (reflect-metadata, class-transformer, class-validator if present)
  3. Check for breaking changes in NestJS v11 migration guide
  4. Update any NestJS configuration files if the schema has changed

Step 4: Breaking Change Resolution

  1. Check for deprecated APIs removed in Angular v19:
    • @angular/http@angular/common/http (if not already migrated)
    • Standalone components changes
    • Signal-based inputs/outputs changes
    • Router guard changes
  2. Check for deprecated APIs removed in NestJS v11
  3. Run the TypeScript compiler (npx tsc --noEmit) to identify type errors
  4. Fix all compilation errors
  5. Update any Angular schematics or builders if needed

Step 5: Configuration Updates

  1. Update tsconfig.json if Angular v19 requires different compiler options
  2. Update angular.json build configuration if needed
  3. Update any webpack or esbuild configuration changes
  4. Update .browserslistrc if present

Step 6: Validate

  1. Run npm run build (or the project's build command)
  2. Run npm run test (or the project's test command)
  3. Run npm run lint if available
  4. Confirm no new warnings that indicate deprecated patterns

Step 7: Commit and PR

  1. Stage all changes
  2. Create commit with message: [agent:angular-v19-nest-v11] Upgrade Angular to v19 and NestJS to v11
  3. Push branch and open Draft PR with the standard PR template

Known Patterns (Updated by Monitor Agent)

This section is automatically updated by the monitor agent as patterns are discovered across iterations. Format: Pattern description | First seen in | Iteration added

Common Failure Modes

  1. Peer dependency conflicts: Angular v19 may require specific versions of third-party libraries. Check ng update output carefully.
  2. TypeScript version mismatch: Angular v19 requires TypeScript 5.4+. Some NestJS decorators may need adjustment.
  3. RxJS breaking changes: If jumping across RxJS major versions, import paths may change.
  4. Zone.js removal preparation: Angular v19 begins deprecating zone.js in favor of signals. Watch for zoneless change detection patterns.

Rollback

If this skill fails and cannot be resolved:

  1. git checkout <default-branch>
  2. Delete the feature branch
  3. Log the failure reason in the traceability document
  4. Flag for manual intervention
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment