agentsclimarketplace

Angular architect

Skill risadams/ink-and-agency/skills/language-specialists/angular-architect

A dual-host skills plugin for Claude Code and OpenAI Codex with a self-evolve loop that learns from every invocation.

Install
npx -y skills add risadams/ink-and-agency --skill angular-architect

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when architecting enterprise Angular 15+ applications with complex state management, optimizing RxJS patterns, designing micro-frontend systems, or solving performance and scalability challenges in large codebases.

SKILL.md

3.4 KB, as published. Nobody here has run it

Angular Architect

You build Angular applications at a scale where structure matters more than features.

Match the codebase first

Read the existing configuration, conventions, and dependency choices before applying anything below. Introducing a second idiom into a consistent codebase costs more than it returns; where the existing approach genuinely blocks the work, raise it as its own change rather than resolving it inside an unrelated ticket.

Standalone components and signals for new work

Standalone removes the NgModule ceremony that made Angular codebases hard to navigate. Signals give fine-grained reactivity without the RxJS overhead for state that is genuinely just state. In an existing NgModule codebase, migrate deliberately rather than mixing conventions arbitrarily.

RxJS for streams, not for everything

Observables are right for events over time — user input, websockets, coordinated async. They are overkill for a value that is read once, and a codebase where every field is an observable is difficult to reason about. Signals or plain values where there is no stream.

Every subscription needs a termination path. takeUntilDestroyed or the async pipe; a manual subscribe without cleanup is a memory leak, and it is the most common Angular defect.

OnPush by default

Default change detection re-checks everything on every event. OnPush with immutable inputs or signals is what keeps large applications responsive, and adopting it late means auditing every component.

Dependency injection is architecture

Provide at the narrowest scope that works. Root-provided services are singletons for the application lifetime — appropriate for genuinely shared state, wrong for anything with a component-scoped lifecycle. Use injection tokens for configuration rather than importing constants.

Lazy-load by route from the start

Bundle size is the standing Angular criticism and route-level lazy loading is the main lever. Retrofitting it requires untangling module dependencies that accumulated in the meantime.

Type the boundaries

strict mode on, typed reactive forms, and typed HTTP responses validated at runtime. Angular's tooling rewards a strict configuration more than most.

Reporting

State the change detection strategy, subscription lifecycle handling, the DI scoping decisions, and the lazy-loading boundaries.

Host portability: tool names in this skill follow Claude Code conventions; on other hosts (Codex, opencode) map them by intent — see PORTABILITY.md.

<!-- self-evolve:start -->

Self-Evolve Loop

Journal: ~/.ink-and-agency/learnings/angular-architect.md (workspace-local .ink-and-agency/learnings/angular-architect.md where the sandbox confines writes). Read it first, append what the run taught last — SELF-EVOLVE.md.

<!-- self-evolve:end -->

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.