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
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.
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.
About
Use cases: frontend, backend
Reviews
Write a reviewNo 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
- 0.570score
code-design
CreativeCodersTeam
Use only when explicitly requested by name — "code-design", "code design", "/code-design", "/cc-ai-dev:code-design" — or when another skill or a…
SkillAFreshness: AClaude Code +9 - 0.544score
dep-pr-cleanup
CreativeCodersTeam
Use when the user wants to clean up or consolidate the open pull requests of dependency bots such as Dependabot or Mend Renovate — finding bot PRs made…
SkillAFreshness: AClaude Code +9 - 0.529score
angular-reviewer
CreativeCodersTeam
Use only when a structured Angular code review is explicitly requested by name — "angular-reviewer", "angular code review", or "angular review" — on an…
SkillBFreshness: BClaude Code +9 - 0.529score
implement-dev-plan
CreativeCodersTeam
Use only when explicitly requested by name — "implement-dev-plan", "implement dev plan", "/implement-dev-plan", "/cc-ai-dev:implement-dev-plan", "run…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-dev
CreativeCodersTeam
Use only when the user themselves explicitly requests it by name — "angular-dev", "angular dev", "/angular-dev", "/cc-ai-angular:angular-dev" — for the gated…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-state
CreativeCodersTeam
Use when designing a store or state service in an Angular app, choosing between signals, RxJS, and NgRx, modeling state shape, writing selectors/derived…
SkillBFreshness: BClaude Code +9 - 0.529score
claude-md-downstream
CreativeCodersTeam
Use only when explicitly requested by name — "claude-md-downstream", "/claude-md-downstream", "/cc-ai-dev:claude-md-downstream", "run claude-md-downstream" —…
SkillBFreshness: BClaude Code +9 - 0.529score
create-dev-plan
CreativeCodersTeam
Use only when explicitly requested by name — "create-dev-plan", "create dev plan", "/create-dev-plan", "/cc-ai-dev:create-dev-plan", "start create-dev-plan" —…
SkillBFreshness: BClaude Code +9 - 0.529score
diagnose-bug
CreativeCodersTeam
Use only when explicitly requested by name — "diagnose-bug", "diagnose bug", "/diagnose-bug", "/cc-ai-dev:diagnose-bug", "run diagnose-bug" — or when another…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-components
CreativeCodersTeam
Use when creating Angular components, templates, or feature folders, configuring the router or lazy-loaded routes, building reactive or template-driven forms…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-tsdoc
CreativeCodersTeam
Use when writing or reviewing TSDoc/JSDoc comments on Angular/TypeScript code — public APIs, exported library symbols, component inputs/outputs — or when doc…
SkillBFreshness: BClaude Code +9 - 0.529score
auto-loop
CreativeCodersTeam
Use only when explicitly requested by name — "auto-loop", "auto loop", "/auto-loop", "/cc-ai-dev:auto-loop", "run auto-loop" — to run one goal as an…
SkillBFreshness: BClaude Code +9
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
- Repository
- github.com/CreativeCodersTeam/ai-store
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from CreativeCodersTeam
- 0.570score
code-design
CreativeCodersTeam
Use only when explicitly requested by name — "code-design", "code design", "/code-design", "/cc-ai-dev:code-design" — or when another skill or a…
SkillAFreshness: AClaude Code +9 - 0.544score
dep-pr-cleanup
CreativeCodersTeam
Use when the user wants to clean up or consolidate the open pull requests of dependency bots such as Dependabot or Mend Renovate — finding bot PRs made…
SkillAFreshness: AClaude Code +9 - 0.529score
auto-loop
CreativeCodersTeam
Use only when explicitly requested by name — "auto-loop", "auto loop", "/auto-loop", "/cc-ai-dev:auto-loop", "run auto-loop" — to run one goal as an…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-dev
CreativeCodersTeam
Use only when the user themselves explicitly requests it by name — "angular-dev", "angular dev", "/angular-dev", "/cc-ai-angular:angular-dev" — for the gated…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-components
CreativeCodersTeam
Use when creating Angular components, templates, or feature folders, configuring the router or lazy-loaded routes, building reactive or template-driven forms…
SkillBFreshness: BClaude Code +9 - 0.529score
angular-reviewer
CreativeCodersTeam
Use only when a structured Angular code review is explicitly requested by name — "angular-reviewer", "angular code review", or "angular review" — on an…
SkillBFreshness: BClaude Code +9
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.
Cite this page
angular-library-builder skill. Agent Mart. https://agentmart.dev/skills/creativecodersteam-angular-library-builder (last updated 2026-10-24)