Agent skill

Angular Clean Architecture

by fmflurry in fmflurry/settings-opencode

Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…

MITAuto-check passedDevelopment

Install Angular Clean Architecture

skills CLI
$ npx skills add fmflurry/settings-opencode --skill angular-clean-architecture -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install fmflurry/settings-opencode angular-clean-architecture --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/angular-clean-architecture .claude/skills/angular-clean-architecture && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
angular-clean-architecture
GitHub stars
171
Token cost
~3.6k tokens
SKILL.md length
1,253 words
Files
8
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…

  • Works in 12 steps: Create module folder… → Define core models in core/models/ → Define core ports in core/ports/ —… → …
  • Creating a new Angular module
  • SKILL.md covers When To Activate, Relationship to Other Skills, Architecture Anchors (Verify… and Architecture Overview, plus 12 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Angular Clean Architecture is an agent skill from fmflurry/settings-opencode. Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module providers function, route-level lazy loading, cross-navigation state caching, the facade pattern, and ports/adapters dependency inversion. Use when creating a new Angular module, adding use cases/facades/stores/ports/adapters, wiring lazy routes + cached state, replacing session proxies, refactoring legacy NgModule/NgRx…

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files (for example `cross-domain.md`, `layer-templates.md` and `migration-guide.md`).

It sits in Development, covering Design patterns, Domain-driven design and Caching. It works with Angular. The repository describes itself as: Custom OpenCode settings. The licence is MIT.

When your agent uses it

  • Creating a new Angular module
  • Adding use cases/facades/stores/ports/adapters
  • Wiring lazy routes + cached state
  • Replacing session proxies

Example prompts

  • “Use the angular-clean-architecture skill to scaffold and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean…”
  • “/angular-clean-architecture”

Workflow steps

12 steps, taken from the first numbered list in SKILL.md.

  1. Create module folder src/app/modules/{moduleName}/
  2. Define core models in core/models/
  3. Define core ports in core/ports/ — abstract class, Observable returns
  4. Add business rules in core/rules/ (if needed)
  5. Create API endpoint in infrastructure/api/endpoints/
  6. Implement adapter in infrastructure/adapters/ — implements port, maps DTOs
  7. Register infrastructure providers — bind ports to adapters
  8. Define store in application/store/ — Store.for().build()
  9. Create use case in application/use-cases/
  10. Create facade in application/facades/ — wire store + use cases + @SkipIfCached/@Loading/syncToStore
  11. Create service providers — aggregate all DI bindings + contextProvidersFor()
  12. Create routes with lazy-loaded components and route-level providers

What it can do on your machine

Read from SKILL.md and the folder at commit 0e6c33c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Angular Clean Architecture loads about 3.6k tokens when it runs. Until then it costs about 170 tokens; SKILL.md has 1,253 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~170
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from fmflurry/settings-opencode at commit 0e6c33c, republished under its MIT licence (© fmflurry). 1,253 words, ~3,615 tokens.

Download SKILL.mdSave it as .claude/skills/angular-clean-architecture/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
angular-clean-architecture
description
Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module providers function, route-level lazy loading, cross-navigation state caching, the facade pattern, and ports/adapters dependency inversion. Use when creating a new Angular module, adding use cases/facades/stores/ports/adapters, wiring lazy routes + cached state, replacing session proxies, refactoring legacy NgModule/NgRx code, or cross-module communication via the context registry. Domain-modeling rules: see angular-ddd. State/replay mechanics: see flurryx.

Angular Clean Architecture — Module System

When To Activate

  • Creating a module under src/app/modules/
  • Adding a use case, facade, store, port, or adapter to an existing module
  • Wiring lazy routes + cached state
  • Replacing session proxies with self-contained module adapters
  • Creating standalone components that consume store state via facades
  • Refactoring a legacy/mixed module (NgModule/NgRx) toward Clean Architecture
  • Moving business logic out of components into facades/use-cases
  • Adding or updating cross-module communication via the context registry

Relationship to Other Skills

ConcernOwner
Domain modeling (entity, VO, aggregate, invariants)[[angular-ddd]]
State/replay mechanics (Store API, channels, history)[[flurryx]]
Pre-merge enforcement / review checklist[[angular-cop]]
Module layout, DI, ports/adapters, lazy loading, caching wiring, facade, context registry, session-proxy replacement, namingthis skill

Architecture Anchors (Verify Before Coding)

AnchorWhat to look for
Reference moduleAt least one module under src/app/modules/ with full layer structure
flurryx storeStore.for<Config>().build() in application/store/
syncToStore usagesyncToStore(this.store, KEY) or syncToKeyedStore(...) in adapters/facades
Context registrycontextProvidersFor() mapping cross-module providers

If anchors are missing: do NOT invent imports. Continue best-effort, report mismatch.

Architecture Overview

text
src/app/modules/{moduleName}/
├── presentation/            # list/ details/ create/ edit/ container pages, forms/, components/
├── application/
│   ├── facades/{moduleName}.facade.ts
│   ├── use-cases/{verb-noun}.use-case.ts
│   └── store/{moduleName}.store.ts      # flurryx Store.for<Config>().build()
├── core/                    # domain hexagon — ZERO infra/framework imports
│   ├── models/  ports/  rules/  mappers/  events/
├── infrastructure/
│   ├── adapters/{verb-noun}.adapter.ts
│   └── api/{endpoints/, request/, response/}
├── routes.ts                # lazy loadComponent + route-level providers
├── routes.constants.ts
├── {moduleName}-service.providers.ts    # SELF-REGISTRATION entrypoint
├── public-api.ts            # SYNC contract — composition root imports only, never module→module
└── integration-api.ts       # REACTIVE contract — composition root imports only, never module→module

Full layout with worked example: module-template.md.

Dependency Rules (CRITICAL)

Component --> Facade --> UseCase --> [Port] <-- Adapter --> Endpoint --> HttpClient
    |            |           |          ^           |
Presentation  Application  Application   Core     Infrastructure
  • Core has ZERO infrastructure or framework dependencies — no Angular, no HttpClient, no flurryx. Only models (types), ports (abstract classes), rules (pure functions), mappers.
  • Application depends on Core only — facades orchestrate use cases + store; use cases call ports.
  • Infrastructure depends on Core only — adapters implement ports using HTTP clients.
  • Components NEVER inject use cases or stores directly — always inject facades.
  • Modules NEVER import modules — a file under src/app/modules/<A>/** never imports from src/app/modules/<B>/**, not even public-api.ts/integration-api.ts. Capabilities go through context-registry ports in core/; types are local ACL copies. Only the composition root (core/**, app.config.ts, app.routes.ts, layout shell) imports module contracts. See cross-domain.md.
Root Store vs Route Providers (Caching Mechanism)
  • Store is providedIn: 'root' (flurryx default) → survives navigation = the cache.
  • Facades, use cases, adapters are route-scoped → disposed on leave.
  • @SkipIfCached prevents re-fetch when returning to a cached route.
  • Optional sessionStorage/localStorage channels for reload/tab survival.
  • clearAllStores() on logout/tenant switch.

Store System

flurryx provides event-sourced, replayable signal state. This skill does NOT restate its API.

  • API reference (Store builder, syncToStore, decorators, channels, history): [[flurryx]]
  • Wiring cheat-sheet (how stores plug into modules): store-system.md
  • Conceptual ES/CQRS → Angular mapping: [[angular-ddd]] event-sourcing-mapping

Session-Proxy Replacement

Legacy *Proxy classes + shared god-stores are replaced by self-contained module adapters with @SkipIfCached(CACHE_NO_TIMEOUT) + optional session-storage channel, consumed by PORT via context registry.

Full before/after migration: session-proxy-migration.md.

Hard Rules

  • Never use any — use unknown if the type is truly unknown
  • Never inject UseCase classes directly into components — always go through a Facade
  • Never inject stores directly into components — facades expose store signals
  • Never import flurryx, Angular, or HttpClient in core/
  • Never deep-climb relative imports (../../...) — use the @/ path alias (see Import Conventions)
  • Never import from another module — a file under src/app/modules/<A>/** never imports from src/app/modules/<B>/**, not even public-api.ts/integration-api.ts. Capabilities via context-registry ports, types via local ACL copies (see cross-domain.md)
  • Never re-fetch reference data without @SkipIfCached
  • Never inject a concrete adapter/proxy across modules — inject the port
  • Components must depend on facades for ALL domain interactions
  • Use inject() for all dependencies, never constructor params
  • Domain modeling patterns (entity, VO, aggregate) → [[angular-ddd]], not here

Layer Implementation Templates

For full templates with code: See layer-templates.md.

LayerKey Conventions
Core Modeltype or interface, optional ?: props, group by entity
Core Portabstract class, Observable<T> returns, Port suffix, one per operation (ISP)
Core RulesPure functions, as const constants, zero framework deps
Core MappersPure mapXToY functions, Partial<T> returns, null-safe
Use Case@Injectable() (no providedIn), inject ports via inject(), single responsibility
Facade@Injectable() (no providedIn), inject store + use cases, @SkipIfCached + @Loading + syncToStore
StoreStore.for<Config>().build() — providedIn: 'root' by default
Adapterimplements port, inject endpoint, DTO↔domain mapping (ACL)
EndpointHttpClient + UrlBuilder + PaginatedRequestBuilder
Infra ProvidersFunction returning Provider[], bind ports to adapters
Service ProvidersAggregates facades + use cases + infra + contextProvidersFor()
RoutesloadComponent lazy loading, route-level providers
Public APISYNC contract (models, ports, providers fn) — composition root imports only
Integration APIREACTIVE contract (store export) — composition root imports only
ComponentStandalone, OnPush, inject() only, facade-only, signals

Cross-Module Communication

Modules never import modules — not even another module's public-api.ts/integration-api.ts. Capabilities: port contract in core/ + provider adapter + context-registry binding. Types: local ACL copies, never shared. For full patterns: See cross-domain.md.

Testing Patterns

For full testing patterns by layer: See testing-patterns.md.

Test TargetMockVerify
FacadeStore + use casesOrchestration logic
ComponentFacade onlyRendering + event delegation
Use casePortsDelegation + business logic
AdapterEndpointsDTO-to-model mapping

Target 80%+ coverage.

Show full SKILL.md (527 more words)Show less

Naming Conventions

ArtifactPatternExample
Store<Module>Store (const from Store.for)CompaniesStore
Store config<Module>StoreConfigCompaniesStoreConfig
Facade<Module>FacadeCompaniesFacade
Use case<VerbNoun>UseCaseGetCompaniesUseCase
Port (abstract)<VerbNoun>PortGetCompaniesPort
Adapter<VerbNoun>AdapterGetCompaniesAdapter
Endpoint<Module>EndpointCompaniesEndpoint
Component<prefix>-<module>-<name>app-companies-list
Service providers fn<module>ServicesProviders()companiesServicesProviders()
Infra providers fn<module>InfrastructureProviders()companiesInfrastructureProviders()
Context providers<MODULE>_CONTEXT_PROVIDERSCOMPANIES_CONTEXT_PROVIDERS
Public APIpublic-api.tsN/A
Integration APIintegration-api.tsN/A
Model types<Entity> (PascalCase)Company, CompanyFilters
Business rules<module>-<concern>.rule.tscompany-fields.rule.ts
Mappers<source>-mapper.tsenterprise-mapper.ts

Legacy folder mapping: domain/ → core/; adapter/ → adapters/; src/app/<area>/ → src/app/modules/{name}/.

Implementation Playbook (Add a New Module)

Follow these steps in order. Full templates in layer-templates.md and module-template.md.

  1. Create module folder src/app/modules/{moduleName}/
  2. Define core models in core/models/
  3. Define core ports in core/ports/ — abstract class, Observable<T> returns
  4. Add business rules in core/rules/ (if needed)
  5. Create API endpoint in infrastructure/api/endpoints/
  6. Implement adapter in infrastructure/adapters/ — implements port, maps DTOs
  7. Register infrastructure providers — bind ports to adapters
  8. Define store in application/store/ — Store.for<Config>().build()
  9. Create use case in application/use-cases/
  10. Create facade in application/facades/ — wire store + use cases + @SkipIfCached/@Loading/syncToStore
  11. Create service providers — aggregate all DI bindings + contextProvidersFor()
  12. Create routes with lazy-loaded components and route-level providers
  13. Create standalone components — facade-only injection, signals, OnPush
  14. Create public-api.ts (sync contract) and integration-api.ts (reactive contract)
  15. Register in app.routes.ts via loadChildren
  16. Write tests (see testing-patterns.md)
  17. Register context if cross-module access needed (see cross-domain.md)

Legacy Patterns (What NOT to Replicate)

Legacy PatternNew Pattern
NgRx actions/effects/reducersflurryx Store.for().build() + syncToStore
extends BaseStoreStore.for<Config>().build()
handleStoreLoading(store, key)syncToStore(store, key)
handleKeyedStoreLoading(store, key, id)syncToKeyedStore(store, key, id)
@AppCache(key, fn)@SkipIfCached(key, fn)
@AutoStartLoading(key, fn)@Loading(key, fn)
GetXProxy classModule adapter + @SkipIfCached(CACHE_NO_TIMEOUT)
Shared ReferenceSessionStorePer-module store + optional session-storage channel
src/app/<area>/ top-level featuresrc/app/modules/{name}/
StoreModule.forFeature()Store.for<Config>().build() (root-provided)
Direct Store.dispatch() in componentsFacade methods
Direct Store.select() in componentsFacade getter returning store signal
Services with BehaviorSubject stateflurryx store with ResourceState<T>
Constructor injectioninject() function
NgModulesStandalone components + route providers
@Input() / @Output() decoratorsinput() / output() signal functions

Checklist: Adding a New Module

  • Module folder created under src/app/modules/{name}/
  • Core models defined (type or interface, no any)
  • Ports defined as abstract class with Observable returns in core/ports/
  • Core has ZERO imports from Angular, HttpClient, or flurryx
  • Adapters implement ports, inject endpoints, map DTOs
  • Infrastructure providers bind ports to adapters
  • Store defined via Store.for<Config>().build() in application/store/
  • Use cases inject ports, single responsibility
  • Facade injects store + use cases, exposes signals
  • Facade uses @SkipIfCached + @Loading + syncToStore
  • Service providers aggregate all DI bindings
  • Routes lazy-load components with route-level providers
  • Components inject facades only, use signals + OnPush
  • public-api.ts exports models, ports, providers fn
  • integration-api.ts exports store (composition root imports only)
  • Registered in app.routes.ts via loadChildren
  • Tests written (80%+ coverage)
  • No any type used anywhere
  • No constructor injection — inject() only
  • Context registry updated if cross-module access needed

Review Checklist (Before Finalizing)

  • Components use facade only — no use case or store references in presentation
  • No any introduced anywhere
  • Core layer has zero framework/infra imports
  • Imports use the @/ path alias — no deep relative climbing (../../...)
  • Store is root-provided (not in route providers)
  • @SkipIfCached outermost, @Loading beneath
  • Zero module→module imports — not even public-api.ts/integration-api.ts (capabilities via context-registry ports, types via local ACL copies)
  • All event handlers are thin — logic delegated to facade
  • Immutable updates throughout — no object mutation

© fmflurry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files in skills/angular-clean-architecture of fmflurry/settings-opencode.

  • SKILL.md
  • cross-domain.md
  • layer-templates.md
  • migration-guide.md
  • module-template.md
  • session-proxy-migration.md
  • store-system.md
  • testing-patterns.md

Open the folder on GitHubat commit 0e6c33c

Compare with similar skills

Angular Clean Architecture next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Angular Clean Architecture compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Angular Clean Architecture this skillfmflurry/settings-opencode171—~3.6kAutomated safety check: PassMIT
Scaffoldcodewithmukesh/dotnet-claude-kit751—~1.7kAutomated safety check: PassMIT
Brooks Reviewhyhmrright/brooks-lint1.5k1 repos~430Automated safety check: PassMIT
Angularkid-sid/claude-spellbook189—~5kAutomated safety check: PassMIT
Architecture Patternssecondsky/claude-skills22711 repos~2.4kAutomated safety check: PassMIT
Angular Best Practicesaiskillstore/marketplace4305 repos~3.4kAutomated safety check: PassNone

Similar skills

  • Scaffold

    codewithmukesh/dotnet-claude-kit

    Architecture-aware feature scaffolding for .NET 10 projects.

    751 GitHub stars~1.7k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Brooks Review

    hyhmrright/brooks-lint

    PR code review that surfaces decay risks, design smells, and maintainability issues with concrete Symptom → Source → Consequence → Remedy findings, drawing on twelve classic engineering books.

    1.5k GitHub starsUsed in 1 repo~430 tokens
    DevelopmentAuto-check passed
  • Angular

    kid-sid/claude-spellbook

    A skill your agent uses when building or refactoring Angular applications — choosing between signals, RxJS, and NgRx for state, configuring routing with guards and lazy loading, optimizing change…

    189 GitHub stars~5k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Architecture Patterns

    secondsky/claude-skills

    Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design.

    227 GitHub starsUsed in 11 repos~2.4k tokens
    DevelopmentAuto-check passed
  • Angular Best Practices

    aiskillstore/marketplace

    Angular performance optimization and best practices guide. An agent skill from aiskillstore/marketplace.

    430 GitHub starsUsed in 5 repos~3.4k tokens
    DevelopmentAuto-check passed
  • Flutter App Architecture

    evanca/flutter-ai-rules

    A skill your agent uses when scaffolding a project, refactoring into layers, creating view models/repositories, configuring dependency injection, or implementing unidirectional data flow (MVVM).

    649 GitHub stars~1.7k tokensUpdated 23 days ago
    DevelopmentAuto-check passed

More from fmflurry/settings-opencode

All 20 skills in this repo
  • Show Your Work

    fmflurry/settings-opencode

    Keep a reviewable decision trail for long-running or unattended work: a TSV log with one row per decision (what, why, evidence, result).

    171 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Playwright E2E Authoring

    fmflurry/settings-opencode

    Scaffold and extend Playwright E2E tests for the gc.platform suite (tests/playwright), wiring every artifact to the real frontend (localhost:4200) + real .NET backend — never mocks.

    171 GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Why

    fmflurry/settings-opencode

    A skill your agent uses for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds.

    171 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Angular Accessibility

    fmflurry/settings-opencode

    Audit and fix common accessibility issues in Angular templates and Angular Material components.

    171 GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Angular Cop

    fmflurry/settings-opencode

    Pre-merge code review for Angular + TypeScript pull requests.

    171 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • API Spec Openapi

    fmflurry/settings-opencode

    Generate OpenAPI 3.1 specs that follow the Zalando RESTful API Guidelines (kebab-case naming, cursor pagination, RFC 9457 problem+json errors, URL versioning, idempotency), one YAML file per bounded…

    171 GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Angular Clean Architecture

What does Angular Clean Architecture do?

Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…. Angular Clean Architecture is an agent skill from fmflurry/settings-opencode. Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module providers function, route-level lazy loading, cross-navigation state caching, the facade pattern, and ports/adapters dependency inversion.

When should I use Angular Clean Architecture?

Angular Clean Architecture fits situations like: creating a new Angular module; adding use cases/facades/stores/ports/adapters; wiring lazy routes + cached state; replacing session proxies.

How do I install Angular Clean Architecture in Claude Code?

Run `npx skills add fmflurry/settings-opencode --skill angular-clean-architecture -a claude-code`. Or copy the skill folder (skills/angular-clean-architecture in fmflurry/settings-opencode) into .claude/skills/angular-clean-architecture in your project. Claude Code loads it when a task matches its description.

How do I install Angular Clean Architecture in Codex?

Run `npx skills add fmflurry/settings-opencode --skill angular-clean-architecture -a codex`. Or copy the skill folder (skills/angular-clean-architecture in fmflurry/settings-opencode) into .agents/skills/angular-clean-architecture in your project. Codex loads it when a task matches its description.

Can I use Angular Clean Architecture in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fmflurry/settings-opencode --skill angular-clean-architecture -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/angular-clean-architecture, .gemini/skills/angular-clean-architecture, .github/skills/angular-clean-architecture and .opencode/skills/angular-clean-architecture in your project.

What does Angular Clean Architecture need to run?

SKILL.md names no scripts, command-line tools or credentials: Angular Clean Architecture is instructions for the agent only.

Does Angular Clean Architecture access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Angular Clean Architecture safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Angular Clean Architecture use?

Angular Clean Architecture is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Angular Clean Architecture use?

About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Angular Clean Architecture?

Skills that share tags, products or a category with Angular Clean Architecture: Scaffold (codewithmukesh/dotnet-claude-kit, 751 stars), Brooks Review (hyhmrright/brooks-lint, 1.5k stars), Angular (kid-sid/claude-spellbook, 189 stars) and Architecture Patterns (secondsky/claude-skills, 227 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Angular Clean Architecture?

fmflurry (a GitHub user) maintains it in fmflurry/settings-opencode, which has 171 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.

Source: fmflurry/settings-opencode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.