Skip to content
Agentmart
Submit a tool

angular-library-builder

Use when asked to create an Angular library, build an Angular client SDK, wrap a REST API or OpenAPI/Swagger spec in a typed Angular service, or generate a…

Skill by CreativeCodersTeam

IndexedApache-2.0
Write a review

Chalk Labs

Need help deploying angular-library-builder?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/creativecodersteam-angular-library-builder

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when asked to create an Angular library, build an Angular client SDK, wrap a REST API or OpenAPI/Swagger spec in a typed Angular service, or generate a publishable ng-packagr library — anything that needs a provideXxx() entry point, typed HttpClient services, typed configuration, or typed errors.

Use cases: frontend, backend

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/angular-library-builder

What's inside

Skill name
angular-library-builder
Description
Use when asked to create an Angular library, build an Angular client SDK, wrap a REST API or OpenAPI/Swagger spec in a typed Angular service, or generate a publishable ng-packagr library — anything that needs a provideXxx() entry point, typed HttpClient services, typed configuration, or typed errors.
License
Apache-2.0
Instructions
129 lines in SKILL.md · view on GitHub

Files (4)

  • SKILL.md
  • di-patterns.md · references/
  • http-client-patterns.md · references/
  • project-setup.md · references/

SKILL.md (first lines)

# Angular Library / Client SDK Builder

Generate complete, production-ready Angular libraries from existing TypeScript services or API documentation. The output follows Angular library conventions (ng-packagr, secondary entry points, `provideXxx()` APIs) with full DI support, testability via injectable services, and idiomatic Angular patterns.

## When to Use

- Building a new Angular library or client SDK from existing TypeScript code, OpenAPI/Swagger specs, or REST API docs
- Wrapping a REST API in a typed Angular service with a DI entry point (`provideXxx(...)`)
- Generating typed `HttpClient` services with typed configuration and typed errors
- Producing libraries that follow Angular packaging conventions (buildable library, correct peer dependencies)

## Workflow Overview

Follow these steps in order. See the reference files for detailed guidance on each phase.

### Step 1: Analyze Input

Determine what the input is:

- **Existing TypeScript code**: Read and understand the public API surface, method signatures, and responsibilities.
- **Documentation** (OpenAPI, Swagger JSON/YAML, Markdown): Parse endpoints, request/response models, authentication, and error responses.

### Step 2: Determine Angular & Workspace Version

1. Read the workspace `package.json` and `angular.json`.
2. Note the Angular major version (drives standalone/`provideXxx` APIs, signals, control flow).
3. Confirm `strict` mode in `tsconfig.json`; if off, enable strict null checks for the library's own `tsconfig`.
4. Confirm the workspace is set up for libraries (an Angular CLI workspace with `projects`). If not, **ask the user before creating one** (`ng new <ws> --create-application=false`) — state the workspace name and where it will be created.

### Step 3: Determine Target Library Project

1. If the user specified a library project → use it.
2. If none specified → scan `angular.json` for existing `projectType: "library"` projects.
3. If a candidate is found → **ask the user** before adding files to it.
4. If no suitable library exists → create one with `ng generate library <name>`. See [project-setup.md](references/project-setup.md) for conventions.

### Step 4: Derive Names

Derive the service/client name from the input:

| Input | Derived Name Example |
|---|---|
| `GitHubService` class | `GitHub` → `GitHubClient`, `provideGitHub(...)`, `GITHUB_CONFIG` |
| `PaymentsApi` class | `Payments` → `PaymentsClient`, `providePayments(...)`, `PAYMENTS_CONFIG` |
| OpenAPI `title: Stripe API` | `Stripe` → `StripeClient`, `provideStripe(...)`, `STRIPE_CONFIG` |

If the name cannot be derived with confidence → ask the user. Provide an `abstract class XxxClient` token when the implementation should be substitutable (testing/mocking); otherwise the concrete class is the token.

### Step 5: Ask About Resilience

Before generating HTTP code, ask:

> "Should resilience (retry with backoff, timeout) be added — via RxJS (`retry`, `timeout`) in the service, or as a provided HTTP interceptor consumers can opt into?"

If yes → add a retry/timeout pipeline. See [http-client-patterns.md](references/http-client-patterns.md#resilience).

### Step 6: Ask About Existing Types Used as Arguments or Return Values

When wrapping existing TypeScript code, identify all types used directly as method parameters or return values.

For each such type, ask the user **once** (grouped into a single question):

> "The following types from the source are used directly as parameters or return values:
> - `OrderRequest` (argument of `placeOrder`)
> - `ProductDto` (return value of `getProduct`)
> - ...
>
> Should these be re-exported as-is (reused from the source), or should new equivalents be generated in the library?"

**Options and consequences:**

| Choice | When to recommend | What to generate |
|---|---|---|
| **Re-export** | Source types live in a shared package consumers already depend on | No new model code; re-export source types from the public API |
| **Generate new types** | Source types are app-internal or consumers should not depend on the source project | New model interfaces/types in `models/`; add mapping functions between source and library types |

If generating new types, apply the same conventions as for response DTOs (see [http-client-patterns.md](references/http-client-patterns.md)). Add private mapper functions to convert between the source type and the library type.

### Step 7: Generate Library Code

Generate all components. See [di-patterns.md](references/di-patterns.md) and [http-client-patterns.md](references/http-client-patterns.md) for full patterns.

**Required components:**

| Component | Description |
|---|---|
| `XxxClient` service | Injectable typed `HttpClient` wrapper (the public contract) |
| `provideXxx(config)` | `EnvironmentProviders` entry point (DI registration) |
| `XxxConfig` + `XXX_CONFIG` token | Configuration via the typed-config/InjectionToken pattern |
| `XxxError` (+ subtypes) | Typed errors with status code, message, and response body |
| Model types | Request/response DTO interfaces/types |
| Public API (`public-api.ts`) | Barrel exporting only the intended public surface |

**Peer dependencies (not direct deps):** `@angular/core`, `@angular/common` (for `HttpClient`), and `rxjs`. All peer version ranges (Angular and rxjs) are resolved at generation time via the cascade in [angular-version.md](../angular-fundamentals/references/angular-version.md) (explicit user directive → repo directive → latest stable) — see also [project-setup.md](references/project-setup.md); never hardcode template versions. Declare them by editing the **library's own** `projects/<lib>/package.json` directly — a library's peer dependencies are part of the published artifact and are maintained by hand (npm has no `--save-peer`). Use the `angular-package-manager` skill for packages that must be **installed** in the workspace (root `package.json` + lockfile); never hand-edit that one.

### Step 8: Document the Code

After generating all source files, invoke the `angular-tsdoc` skill to add TSDoc comments to all public types and members.

### Step 9: Write Tests

After documentation is complete, invoke the `angular-tester` skill to generate unit tests for the library (using `provideHttpClient()` + `provideHttpClientTesting()` and `HttpTestingController`).

## Key Design Principles

- **Injectable services**: The public client is an `@Injectable` service; provide an `abstract class` token when substitution is required.
- **Typed config**: Configuration always via the `XXX_CONFIG` `InjectionToken` and `provideXxx()`, never magic strings scattered through the code.
- **`HttpClient` only**: Never use `fetch`/`XMLHttpRequest` directly; use Angular's `HttpClient` so interceptors, testing, and SSR work.
- **Typed errors**: HTTP errors become typed errors with status code, reason, and response body.
- **Strict null safety**: The library compiles under `strict`.
- **No global/static state**: All state via DI; no module-level singletons.
- **Tree-shakable**: Side-effect-free; `provideXxx()` is the only entry point.

## Additional Resources

- **[di-patterns.md](references/di-patterns.md)** — `provideXxx()` entry point, typed-config token, injectable service registration
- **[http-client-patterns.md](references/http-client-patterns.md)** — `HttpClient` typed services, resilience (retry/timeout), typed errors, DTO models
- **[project-setup.md](references/project-setup.md)** — `ng generate library`, folder layout, `public-api.ts`, ng-packagr & peer-dependency conventions

From CreativeCodersTeam/ai-store, Apache-2.0.

More from CreativeCodersTeam/ai-store

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Aug 5, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from CreativeCodersTeam

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get angular-library-builder running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying angular-library-builder?

CallGet help
Cite this page

angular-library-builder skill. Agent Mart. https://agentmart.dev/skills/creativecodersteam-angular-library-builder (last updated 2026-10-24)