cyrena.angular
Builds Angular v17+ projects with a strictly enforced global/feature-scoped folder structure. All artifacts are standalone components — no NgModules. Services use inject() not constructor injection. State uses signals (signal, computed, effect). Components use OnPush change detection, input() and output() for communication, and built-in control flow (@if, @for, @switch). The agent will never deviate from this structure.
npm install -g @angular/cli).
cyrena.angular) installed and enabled.
The extension enforces a strict global / feature-scoped layout. Cyréna will not deviate from this structure — it is a hard constraint, not a guideline.
| Folder / File | Purpose |
|---|---|
components/ | Global reusable components. |
services/ | Global shared services. |
guards/ | Global route guards. |
pipes/ | Global custom pipes. |
directives/ | Global custom directives. |
models/ | Global shared models. |
interceptors/ | Global HTTP interceptors. |
resolvers/ | Global route resolvers. |
features/ | Feature modules (see below). |
app.component.ts | Root application component. |
app.config.ts | Application configuration. |
app.routes.ts | Root route definitions. |
Each feature module mirrors the global structure:
| Folder | Purpose |
|---|---|
components/ | Feature-scoped components. |
services/ | Feature-scoped services. |
guards/ | Feature-scoped route guards. |
pipes/ | Feature-scoped pipes. |
directives/ | Feature-scoped directives. |
models/ | Feature-scoped models. |
interceptors/ | Feature-scoped HTTP interceptors. |
resolvers/ | Feature-scoped route resolvers. |
src/app/. Feature-specific code belongs under src/app/features/feature-name/. Keeping to this layout guarantees stable and predictable AI behaviour; Cyréna will not restructure the hierarchy.
Use the Angular CLI: ng new my-app
angular.json file to establish the project root.