ai-sdk-5
FreeVercel AI SDK 5 patterns. Trigger: When building AI chat features - breaking changes from v4.
The English summary is being prepared. Showing the original description.
Angular architecture: Scope Rule, project structure, file naming, style guide. Trigger: When structuring Angular projects or deciding where to place components.
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
"Scope determines structure" - Where a component lives depends on its usage.
| Usage | Placement |
|---|---|
| Used by 1 feature | features/[feature]/components/ |
| Used by 2+ features | features/shared/components/ |
features/
shopping-cart/
shopping-cart.ts # Main component = feature name
components/
cart-item.ts # Used ONLY by shopping-cart
cart-summary.ts # Used ONLY by shopping-cart
checkout/
checkout.ts
components/
payment-form.ts # Used ONLY by checkout
shared/
components/
button.ts # Used by shopping-cart AND checkout
modal.ts # Used by multiple features
src/app/
features/
[feature-name]/
[feature-name].ts # Main component (same name as folder)
components/ # Feature-specific components
services/ # Feature-specific services
models/ # Feature-specific types
shared/ # ONLY for 2+ feature usage
components/
services/
pipes/
core/ # App-wide singletons
services/
interceptors/
guards/
app.ts
app.config.ts
routes.ts
main.ts
No .component, .service, .model suffixes. The folder tells you what it is.
✅ user-profile.ts
❌ user-profile.component.ts
✅ cart.ts
❌ cart.service.ts
✅ user.ts
❌ user.model.ts
inject() over constructor injectionclass and style bindings over ngClass/ngStyleprotected for template-only membersreadonly for inputs, outputs, queriessaveUser) not event (handleClick)@Component({...})
export class UserProfileComponent {
// 1. Injected dependencies
private readonly userService = inject(UserService);
// 2. Inputs/Outputs
readonly userId = input.required<string>();
readonly userSaved = output<User>();
// 3. Internal state
private readonly _loading = signal(false);
readonly loading = this._loading.asReadonly();
// 4. Computed
protected readonly displayName = computed(() => ...);
// 5. Methods
save(): void { ... }
}
| Official Says | We Do | Why |
|---|---|---|
user-profile.component.ts | user-profile.ts | Redundant - folder tells context |
user.service.ts | user.ts | Same |
# New project
ng new my-app --style=scss --ssr=false
# Component in feature
ng g c features/products/components/product-card --flat
# Service in feature
ng g s features/products/services/product --flat
# Guard in core
ng g g core/guards/auth --functional
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Vercel AI SDK 5 patterns. Trigger: When building AI chat features - breaking changes from v4.
The English summary is being prepared. Showing the original description.
Angular core patterns: standalone components, signals, inject, control flow, zoneless. Trigger: When creating Angular components, using signals, or setting up zoneless.
The English summary is being prepared. Showing the original description.
Angular forms: Signal Forms (experimental) and Reactive Forms. Trigger: When working with forms, validation, or form state in Angular.
The English summary is being prepared. Showing the original description.
Angular performance: NgOptimizedImage, @defer, lazy loading, SSR. Trigger: When optimizing Angular app performance, images, or lazy loading.
The English summary is being prepared. Showing the original description.
Django REST Framework patterns. Trigger: When building REST APIs with Django - ViewSets, Serializers, Filters.
The English summary is being prepared. Showing the original description.
Electron patterns for building cross-platform desktop applications. Trigger: When building desktop apps, working with Electron main/renderer processes, IPC communication, or native integrations.
The English summary is being prepared. Showing the original description.