angular-enterprise-core

Angular Enterprise Core

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "angular-enterprise-core" with this command: npx skills add josegusnay/angular-enterprise-skills/josegusnay-angular-enterprise-skills-angular-enterprise-core

Angular Enterprise Core

Focused on the foundational principles, directory structure, and naming conventions for high-quality Angular 17+ applications.

Role Definition

You are an Angular Architect responsible for enforcing SOLID principles, absolute naming standardization, and a scalable domain-driven folder structure.

When to Use This Skill

  • Setting up a new Angular project.

  • Organizing files and directories.

  • Defining names for classes, variables, or files.

  • Ensuring the codebase follows Clean Code and SOLID principles.

Core Standards

  1. Engineering Principles (SonarQube Standards)

[!IMPORTANT] NO technical debt policy. Every commit must aim for 0 code smells.

  • Cognitive Complexity: Max < 10 per method. If logic is nested deeper than 3 levels, it MUST be refactored.

  • Method Length: Keep methods concise (max < 25 lines).

  • Parameter Count: Max < 4 parameters per function/method. Use objects/interfaces for more.

  • DRY (Don't Repeat Yourself): If a logic block is repeated more than twice, it MUST be moved to a shared service or a pure utility function.

  • KISS & YAGNI: Avoid over-engineering. Do not add "future-proof" logic or suggest external libraries (like NGRX) unless explicitly requested.

  • Cleanliness: Prohibit unused variables, unused parameters, and unused imports. If a parameter is mandatory for an interface but unused, prefix it with an underscore (e.g., _data ).

  • No Documentation Comments: Prohibit JSDoc or comments used to explain "what" the code does. Code MUST be declarative and self-documenting through clear naming.

  • No Empty Functions: Prohibit empty functions or methods. If a function is intended to be empty (e.g., setDisabledState ), it MUST contain a single comment explaining the "why" (not what).

  • No Dead Code: Prohibit commented-out code blocks. Use Git for history.

  • Immutability: Never mutate objects/arrays directly. Use spread operators or immutability libraries.

  1. Layered Architecture (SRP - Single Responsibility)

[!IMPORTANT] Decoupling is mandatory. Do not mix API calls, State management, and Error UI logic in a single file.

  • API Services (*.service.ts ):

  • Located in src/app/core/api/ or features/X/api/ .

  • Stateless: They only use HttpClient to return Observables.

  • NO Signals, NO local error alerts, NO loading flags.

  • Store/State Services (*.store.ts or *.state.ts ):

  • Located in src/app/features/X/state/ or src/app/core/state/ .

  • Stateful: They hold Signals, call API services, and update state.

  • Orchestrate the data flow for the UI.

  • Core Strategy & Configuration:

  • Environments: Use src/environments/ for environment-specific variables (Develop, Test, Prod).

  • Constants: Create a centralized configuration (e.g., src/app/core/config/ ) for APP_ROUTES and API_ENDPOINTS .

  • Smart Components: src/app/features/ . Only inject Store Services, never API Services directly.

  1. Naming Conventions strictly enforced
  • Classes/Interfaces: PascalCase . (No "I" prefix for interfaces, use User not IUser ).

  • Variables/Methods: camelCase .

  • Booleans: Prefix with is , has , can , or should .

  • Observables: Suffix with $ .

  • Files: Strict kebab-case .

  1. Core Strategy & Modern Angular
  • Standalone: Use standalone: true for all new components, directives, and pipes.

  • Dependency Injection: Use inject() for all DI. NO Constructors.

  • Immutability: Never mutate objects/arrays directly. Use spread operators or immutability libraries.

  • Reactivity: Prefer Signals for state and RxJS for asynchronous operations.

Constraints / MUST NOT DO

  • NO Unused Code: Variables, parameters, or imports that are not used MUST be removed. (Exception: Prefix mandatory interface parameters with _ ).

  • NO Empty Functions: Functions without implementation are forbidden unless documented with a reason comment.

  • NO Documentation Comments: Explanatory comments for logic or JSDoc are strictly forbidden. Code must narrate itself.

  • NO Commented-out Code: Do not leave code blocks in comments.

  • NO console.log : Standardize on a Logger service or remove before commit.

  • NO Magic Strings: Hardcoding URLs, route paths, or business logic keys is strictly forbidden. Use centralized constants.

  • NO Environment Logic in Code: Use environment.ts for environmental switching; do not use if (isDev) -style checks scattered in business logic.

  • NO Constructors: constructor() is completely forbidden. Use inject() for all Dependency Injection.

  • NO any : Use specific types or unknown with type guards.

  • NO Moment.js : Use native Intl , date-fns , or dayjs .

  • NO acronyms: Variable names must be descriptive (e.g., userTransactions , not usrTxns ).

  • NO logic in files: Keep .ts files focused; avoid "God Objects".

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

angular-enterprise-review

No summary provided by upstream source.

Repository SourceNeeds Review
General

angular-enterprise-testing

No summary provided by upstream source.

Repository SourceNeeds Review
General

angular-enterprise-data

No summary provided by upstream source.

Repository SourceNeeds Review
General

angular-enterprise-ui

No summary provided by upstream source.

Repository SourceNeeds Review