agent skills · featured

Angular Developer

Official Angular skill from angular/skills — generates Angular code and architectural guidance for components, signals (signal, linkedSignal, resource, httpResource), forms (signal / template / reactive), routing, DI, SSR, ARIA, animations, styling (component styles, Tailwind CSS), testing, naming conventions, and CLI tooling. Reads project Angular version first; loads the matching reference per t
by Google LLC (Angular team) updated Sep 10, 2026 MIT
install via your agent of choice
❯ `npx skills add https://github.com/angular/skills` (interactive wizard picks `angular-developer`). Manual: `git clone https://github.com/angular/skills` and copy `angular-developer/` (with its `references/` folder) into the host's skills path — `~/.claude/skills/angular-developer` for Claude Code, `.claude/skills/angular-developer` for a project-scoped install, `.cursor/skills/` for Cursor. The skill expects the host to load `./references/*.md` on demand.

## what it does

tl;dr: this is the Angular team’s house-style procedure, not a generic “write me some Angular” prompt. The SKILL.md (10,735 bytes, 17 reference files) tells the agent to read the project’s Angular version first, then point at the right ./references/*.md per task (components, signals, forms, routing, DI, ARIA, animations, styling, testing, CLI). Tailwind and the bundled Angular MCP server (ng mcp) are first-class citizens; ng build is the gate before “done.”

What it actually does

The SKILL.md fetched on 2026-09-10 from angular/skills/main/angular-developer/SKILL.md runs the agent through a topic-routing pattern, not a single algorithm. The flow:

Global rules (apply to every turn)

  1. Analyze the project’s Angular version before providing guidance — best practices and available features vary significantly between versions. When creating a new project, do not pin a version unless the user asks.
  2. Follow Angular’s style guide. Use the Angular CLI to scaffold components, services, directives, pipes, routes — do not hand-roll.
  3. After generating code, run ng build. Fix errors before reporting “done.” The skill explicitly bans skipping this step.

Topic routing (read the matching references/*.md)

The skill is a directory of pointers. Each topic has a reference file the agent loads on demand:

TopicReferenceWhen to read
Components (anatomy, @if / @for / @switch, self-closing tags)references/components.mdAny component task
Signal-based input() / output() / model()references/inputs.md, references/outputs.mdNew component bindings
Host bindings, attribute injectionreferences/host-elements.mdCustom host behavior
v20+ “Intent over Role” namingreferences/naming-conventions.mdFile / class / selector names
signal, computed, untrackedreferences/signals-overview.mdReactivity basics
linkedSignal (writable state linked to source)references/linked-signal.mdDerived writable state
resource / async data → signalreferences/resource.mdAsync data without RxJS
effect, afterRenderEffect, when not to use effectsreferences/effects.mdSide effects in signal contexts
provideHttpClient, interceptors, httpResourcereferences/http-client.mdBackend communication
Signal Forms (v22+ stable)references/signal-forms.mdNew forms in v22+ projects
Template-driven forms (simple)references/template-driven-forms.mdLegacy / simple forms
Reactive forms (complex)references/reactive-forms.mdLegacy / complex forms
DI fundamentals, inject(), servicesreferences/di-fundamentals.md, references/creating-services.mdWiring services
InjectionToken, useClass / useValue / useFactory, scopesreferences/defining-providers.mdCustom providers
runInInjectionContext, assertInInjectionContextreferences/injection-context.mdDI outside constructors
EnvironmentInjector vs ElementInjector, modifiersreferences/hierarchical-injectors.mdMulti-injector trees
Built-in / custom pipes, template vs TS reusereferences/pipes.mdFormatting
Angular Aria headless components (Accordion, Listbox, Combobox, Menu, Tabs, Toolbar, Tree, Grid)references/angular-aria.mdAccessible custom UI
Routing: define / load / outlet / navigate / guards / resolvers / lifecycle / rendering / animationsreferences/define-routes.md, references/loading-strategies.md, references/show-routes-with-outlets.md, references/navigate-to-routes.md, references/route-guards.md, references/data-resolvers.md, references/router-lifecycle.md, references/rendering-strategies.md, references/route-animations.mdAny routing task
Tailwind CSS integrationreferences/tailwind-css.mdTailwind setup
Native CSS animations (recommended) vs legacy DSLreferences/angular-animations.mdAnimations
Component styles + encapsulationreferences/component-styling.mdStyling
Vitest / TestBed, Component Harnesses, RouterTestingHarness, E2Ereferences/testing-fundamentals.md, references/component-harnesses.md, references/router-testing.md, references/e2e-testing.mdTests
Angular CLI / migrations / MCP / environment configreferences/cli.md, references/migrations.md, references/mcp.md, references/environment-configuration.mdTooling

Forms decision rule (verbatim from SKILL.md)

In most cases for new apps, prefer signal forms. When making a forms decision, analyze the project and consider the following guidelines: if the application is using v22 or newer and this is a new form, prefer Signal Forms. For older applications or when working with existing forms, use the appropriate form type that matches the applications current form strategy.

Angular MCP server (first-class)

The skill calls out ng mcp and the get_best_practices tool as the source of truth for Angular best practices when available. The README of the Angular skills repo reinforces: “best practices available for building outstanding Angular applications via the MCP server that is bundled with the Angular CLI.”

Install

From the angular/skills README fetched 2026-09-10:

# Interactive wizard — picks angular-developer from the angular/skills repo
npx skills add https://github.com/angular/skills

Manual (per-repo clone, single skill copy):

git clone https://github.com/angular/skills
# Claude Code — global
cp -r angular-developer ~/.claude/skills/angular-developer
# Claude Code — project-scoped
mkdir -p .claude/skills && cp -r angular-developer .claude/skills/angular-developer
# Cursor
mkdir -p .cursor/skills && cp -r angular-developer .cursor/skills/angular-developer

The angular-developer/ folder ships with its own references/ subdirectory of 17 topic files; copy the whole folder, not just SKILL.md. Without the references the skill collapses to a one-page checklist with no lookup path.

The README explicitly notes that contributions go upstream: “If you would like to contribute to the skills, please make the updates directly in angular/angular repository.”

Gotchas

  • Tailwind setup lives in the repo, not the skill body. references/tailwind-css.md is a separate file. If the host can’t reach ./references/, the Tailwind guidance is gone.
  • httpResource ≠ HttpClient with .subscribe. The skill treats resource / httpResource as the modern path and points at references/resource.md + references/http-client.md. Agents that fall back to RxJS in a v22+ signal project are usually missing the skill, not ignoring it.
  • Forms choice is version-sensitive. Signal Forms are stable in v22+. The skill is explicit: don’t pick Signal Forms for an existing app on v20 just because the model is newer.
  • Effects are overused. references/effects.md includes a “when NOT to use effects” section. If the agent reaches for effect() to bridge two signals, it’s probably a computed() or linkedSignal() instead.
  • Naming v20+ is “Intent over Role”. UserProfileComponent not UserProfile. The skill points at references/naming-conventions.md; an agent that produces UserCardComponent in a v20+ project has not loaded it.
  • Angular Aria is opinionated about the eight patterns. Accordion, Listbox, Combobox, Menu, Tabs, Toolbar, Tree, Grid. For anything else, the skill sends the agent to https://angular.dev/guide/components.
  • Skill-vs-ng new overlap. The companion angular-new-app skill handles project creation; angular-developer is for ongoing development on an existing project. Loading both for a fresh scaffold is fine but redundant.
  • sandbox_test untested — we read the SKILL.md and the references index, we did not run an Angular code-generation task in the sandbox. The static scan is review, not block: only angular.dev/guide/* URLs are flagged as non-docs (the skill itself points the agent at them).

Related: Frontend Design (general UI skills — pair when the Angular code you ship needs design polish), Microsoft Frontend Design Review (review-pattern skill from a different framework — useful contrast for Angular reviews), Vercel React Best Practices (framework-specific house-style skill — React flavor of what this one does for Angular).

## compatibility

claude-code ✓
cursor ✓
cline ~
aider ?

## embed this badge

cache ✓ in cache.directory
![cached](https://cache.directory/badge/angular-developer.svg)