ngguide
00Ultimate Angular Skills

What your agent
reads before it
writes Angular.

An agent trained on a decade of Angular releases writes a decade of Angular: an API from a version you are not on, a pattern retired two majors ago, a workaround for a bug that was fixed. Each skill here is pinned to one major version, so the agent works from the API surface your project actually has.

angular-22 ready · not on sale here yet

01Why the version is the product

A general Angular rule set has to hedge. It cannot tell an agent that @defer exists without also covering the projects where it does not, so it says both — and the agent picks whichever it saw more of during training.

A version-pinned skill does not hedge. It states one API surface: what is new in this major, what graduated to stable, what is still experimental and will change without a deprecation cycle, and what was removed. A symbol from the wrong major fails at compile time, which you notice. An experimental one compiles fine and breaks on the next upgrade, which you do not — and that is the failure this reference exists to prevent.

Angular 22 makes the point on its own: components are OnPush unless told otherwise and new applications are zoneless. Advice written for earlier versions is not merely dated there, it is wrong.

02What is in the set

One SKILL.md that routes the agent to the right topic, and 42 reference files behind it — about 35,000 words the agent loads on demand rather than carrying in every prompt:

01Components

Anatomy and metadata, template control flow, signal inputs and model inputs, signal outputs, host bindings and attribute injection.

02Reactivity

signal and computed, reactive contexts and untracked, linkedSignal for state derived from state you still write to, resource for async data, and the section on when an effect is the wrong tool.

03RxJS interop

toSignal / toObservable, tearing subscriptions down with takeUntilDestroyed and DestroyRef, when .subscribe() inside a component is actually justified, and the traps in shareReplay.

04Change detection and performance

The defaults v22 flipped — components are OnPush unless told otherwise, new applications are zoneless — plus @defer, track, NgOptimizedImage, bundle budgets, and what zoneless makes pointless.

05HTTP

provideHttpClient, interceptors as functions, and httpResource for a request that lives as signal state.

06Forms

All three APIs — signal, reactive, template-driven — and the rule for choosing between them, so the agent does not introduce a fourth style into a codebase that already picked one.

07Dependency injection

inject() and injection context, providedIn and manual providers, InjectionToken, useClass / useValue / useFactory, and the environment-versus-element injector hierarchy.

08Routing and rendering

Route definitions, loading strategies, outlets, guards, resolvers, the navigation lifecycle, CSR / SSG / SSR with hydration, and View Transitions between routes.

09Accessibility

Angular Aria: building headless accordion, listbox, combobox, menu, tabs, toolbar, tree and grid, and styling off the ARIA attributes rather than a class you set alongside them.

10Styling and animations

Component styles and encapsulation, and animate.enter / animate.leave — native CSS animations, not the retired animations package.

11Security

What Angular sanitizes on its own, why bypassSecurityTrust* is almost always the wrong answer, CSP and nonces, XSRF in HttpClient, and where the client-side boundary actually ends.

12Testing

Vitest and TestBed, async patterns, and RouterTestingHarness for navigation tests that do not flake.

13Library authoring

ng-packagr and ng-package.json, secondary entry points, peerDependencies ranges, the public API surface, what breaks a consumer on strictTemplates, and how to deprecate without breaking them.

14Tooling

The CLI for scaffolding and building, the migration schematics for modernising existing code, and build-time versus runtime environment configuration.

03The two a general skill cannot have

angular-22-api.md is the version boundary written down: the symbols new in v22, what graduated to stable, what is still @experimental or @developerPreview, and what was removed or deprecated. The agent consults it before writing a symbol it is not certain about, and whenever a build error suggests one does not exist.

researching-angular.md covers what the skill does not: instead of answering from memory, the agent goes to angular/angular and angular/angular-cli — public API snapshots, deprecations with their replacements, breaking changes between majors, migration schematics — and quotes what it finds. The commands work with and without a GitHub token.

04Where it comes from

Google publishes official Angular skills under the MIT licence, and they are good. Thirty-five of the forty-two references start from that material: pinned to v22, cross-checked against the v22 API, and cut where a topic had no business being taught at all. That material stays MIT, each file carries a marker in its header, and the NOTICE ships with the product.

Seven references exist only here, and they are the ones an agent gets wrong most reliably: the v22 API boundary, change detection, performance, RxJS interop, security, library authoring, and the research protocol above. Authoring a library is the one nobody else covers — the rules change the moment your code is compiled by someone else’s Angular version and bundler.

05How it installs

Run it in the root of the project the skills apply to. Files, not a service: nothing calls home, and no agent needs a plugin.

terminalin the project root
npx skills add git@github.com:ngguide/ultimate-angular-skills.git -s angular-22 -a '*'
Node 22.20+ · installed over your GitHub SSH key

The installer is vercel-labs/skills. -a '*' installs for every agent it knows about — Claude Code, Codex, Cursor, Copilot, Zed, Cline and the rest; name one instead (-a claude-code) to keep it to the agent you use. The skill lands in that agent’s skills directory — .claude/skills/angular-22 for Claude Code, the equivalent path elsewhere. Add -g to install at user level rather than into the project.

Later, npx skills update angular-22 pulls the current version. Installing for several agents writes one copy and symlinks the rest; --copy turns that off, which is what you want when the project is moved around by Docker build contexts, some CI checkouts, or Windows without symlink permission.

Versions are the -s flag, not a branch. Each Angular major is a separate directory in the same repository, and today that directory list is one entry long: angular-22.

06The licence, in short

The skills are licensed, not sold. An individual licence covers the one person who bought it; a team licence covers up to ten people inside a single organization, with seats reassignable as people come and go.

Using them in private repositories and in paid client work is expressly allowed, as is adapting them for your own projects. What is not: publishing the files anywhere public, bundling them into an open-source project, a template or a starter kit, passing them to anyone outside your licence, or stripping the attribution. The full terms ship with the product, and the MIT material described above is exempt from all of it.

07How to get it

There is no checkout on this page yet. Access is a grant on a private GitHub repository, and it is being handed out by hand while the next versions are written — which also means the price is a conversation rather than a number on a button.

There is no waiting-list form either, because a form that collects an address for a product with no ship date is a way of looking busy. Email hello@ng.guide with your GitHub username and the Angular version you are on, and it will be a person who answers.

08What skills do not do

A skill tells an agent how to write code it already knows how to write. It does not teach you anything — and if you cannot tell a good Angular decision from a bad one, a reference file only makes the bad ones arrive faster and better formatted.

The course is the other half of that problem. It runs through the same agent, on your machine, and builds a Material 3 component library one component at a time — so the judgement ends up in you rather than in a file the agent reads.

See the course →