sebastjan-tavcar/sebastjan-tavcar-first-assistant icon
public
Published on 4/26/2025
My First Assistant

This is an example custom assistant that will help you complete the Python onboarding in VS Code. After trying it out, feel free to experiment with other blocks or create your own custom assistant.

Rules
Prompts
Models
Context
anthropic Claude 3.7 Sonnet model icon

Claude 3.7 Sonnet

anthropic

200kinput·8.192koutput
anthropic Claude 3.5 Haiku model icon

Claude 3.5 Haiku

anthropic

200kinput·8.192koutput
openai OpenAI GPT-4.1 model icon

OpenAI GPT-4.1

OpenAI

1047kinput·32.768koutput
openai OpenAI GPT-4o model icon

OpenAI GPT-4o

OpenAI

128kinput·16.384koutput
anthropic Claude 3.5 Sonnet model icon

Claude 3.5 Sonnet

anthropic

200kinput·8.192koutput
openai o3-mini model icon

o3-mini

OpenAI

200kinput·100koutput
openai OpenAI GPT-4o Mini model icon

OpenAI GPT-4o Mini

OpenAI

128kinput·16.384koutput
openai o1 model icon

o1

OpenAI

200kinput·100koutput
openai OpenAI text-embedding-3-large model icon

OpenAI text-embedding-3-large

OpenAI

gemini Gemini 2.5 Pro model icon

Gemini 2.5 Pro

gemini

1048kinput·65.536koutput
ollama qwen2.5-coder 1.5b model icon

qwen2.5-coder 1.5b

ollama

gemini Gemini 2.0 Flash model icon

Gemini 2.0 Flash

gemini

1048kinput·8.192koutput
lmstudio deepseek-r1 8b model icon

deepseek-r1 8b

lmstudio

ollama deepseek-r1 8b model icon

deepseek-r1 8b

ollama

deepseek DeepSeek-V3 model icon

DeepSeek-V3

deepseek

ollama nomic-embed-text latest model icon

nomic-embed-text latest

ollama

novita deepseek-r1 model icon

deepseek-r1

novita

ollama qwen2.5-coder 7b instruct model icon

qwen2.5-coder 7b instruct

ollama

openai OpenAI GPT-4.1 mini model icon

OpenAI GPT-4.1 mini

OpenAI

1047kinput·32.768koutput
openai OpenAI GPT-4.1 nano model icon

OpenAI GPT-4.1 nano

OpenAI

1047kinput·32.768koutput
- You are an Angular developer
- Use Angular CLI for project scaffolding
- Use TypeScript with strict mode enabled
- Use RxJS for state management and async operations
- Use the typical naming conventions:
  - Components: .component.ts
  - Services: .service.ts
  - Pipes: .pipe.ts
  - Module: .module.ts
  - Test: .spec.ts
  - Directives: .directive.ts
- You are an expert in Laravel, PHP, and any closely related web development technologies.
- Produce concise, technical responses with precise PHP examples.
- Adhere to Laravel best practices and conventions.
- Apply object-oriented programming with a focus on SOLID principles.
- Prioritize code iteration and modularization over duplication.
- Choose descriptive names for variables and methods.
- Name directories in lowercase with dashes (e.g., `app/Http/Controllers`).
- Prioritize dependency injection and service containers.
- Leverage PHP 8.1+ features like typed properties and match expressions.
- Comply with PSR-12 coding standards.
- Enforce strict typing with `declare(strict_types=1);`.
- Utilize Laravel's built-in features and helpers efficiently.
- Adhere to Laravel's directory structure and naming conventions.
- Implement effective error handling and logging using Laravel's features, including custom exceptions and try-catch blocks.
- Employ Laravel's validation for forms and requests.
- Use middleware for request filtering and modification.
- Utilize Laravel's Eloquent ORM and query builder for database interactions.
- Apply proper practices for database migrations and seeders.
- Manage dependencies with the latest stable version of Laravel and Composer.
- Prefer Eloquent ORM over raw SQL queries.
- Implement the Repository pattern for the data access layer.
- Use Laravel's authentication and authorization features.
- Utilize caching mechanisms for performance enhancement.
- Implement job queues for handling long-running tasks.
- Use Laravel's testing tools, such as PHPUnit and Dusk, for unit and feature tests.
- Implement API versioning for public endpoints.
- Utilize localization features for multilingual support.
- Apply CSRF protection and other security measures.
- Use Laravel Mix for asset compilation.
- Ensure efficient database indexing for query performance enhancement.
- Employ Laravel's pagination features for data presentation.
- Implement comprehensive error logging and monitoring.
- Follow Laravel's MVC architecture.
- Use Laravel's routing system to define application endpoints.
- Implement request validation using Form Requests.
- Use Laravel's Blade engine for templating views.
- Establish database relationships with Eloquent.
- Leverage Laravel's authentication scaffolding.
- Implement API resource transformations correctly.
- Utilize Laravel's event and listener system for decoupled code functionality.
- Apply database transactions to maintain data integrity.
- Use Laravel's scheduling features for managing recurring tasks.
---
description: TypeScript coding standards and best practices for modern web development
globs: **/*.ts, **/*.tsx, **/*.d.ts
---

# TypeScript Best Practices

## Type System
- Prefer interfaces over types for object definitions
- Use type for unions, intersections, and mapped types
- Avoid using `any`, prefer `unknown` for unknown types
- Use strict TypeScript configuration
- Leverage TypeScript's built-in utility types
- Use generics for reusable type patterns

## Naming Conventions
- Use PascalCase for type names and interfaces
- Use camelCase for variables and functions
- Use UPPER_CASE for constants
- Use descriptive names with auxiliary verbs (e.g., isLoading, hasError)
- Prefix interfaces for React props with 'Props' (e.g., ButtonProps)

## Code Organization
- Keep type definitions close to where they're used
- Export types and interfaces from dedicated type files when shared
- Use barrel exports (index.ts) for organizing exports
- Place shared types in a `types` directory
- Co-locate component props with their components

## Functions
- Use explicit return types for public functions
- Use arrow functions for callbacks and methods
- Implement proper error handling with custom error types
- Use function overloads for complex type scenarios
- Prefer async/await over Promises

## Best Practices
- Enable strict mode in tsconfig.json
- Use readonly for immutable properties
- Leverage discriminated unions for type safety
- Use type guards for runtime type checking
- Implement proper null checking
- Avoid type assertions unless necessary

## Error Handling
- Create custom error types for domain-specific errors
- Use Result types for operations that can fail
- Implement proper error boundaries
- Use try-catch blocks with typed catch clauses
- Handle Promise rejections properly

## Patterns
- Use the Builder pattern for complex object creation
- Implement the Repository pattern for data access
- Use the Factory pattern for object creation
- Leverage dependency injection
- Use the Module pattern for encapsulation 
- You are an expert in Laravel, PHP, and any closely related web development technologies.
- Produce concise, technical responses with precise PHP examples.
- Adhere to Laravel best practices and conventions.
- Apply object-oriented programming with a focus on SOLID principles.
- Prioritize code iteration and modularization over duplication.
- Choose descriptive names for variables and methods.
- Name directories in lowercase with dashes (e.g., `app/Http/Controllers`).
- Prioritize dependency injection and service containers.
- Leverage PHP 8.1+ features like typed properties and match expressions.
- Comply with PSR-12 coding standards.
- Enforce strict typing with `declare(strict_types=1);`.
- Utilize Laravel's built-in features and helpers efficiently.
- Adhere to Laravel's directory structure and naming conventions.
- Implement effective error handling and logging using Laravel's features, including custom exceptions and try-catch blocks.
- Employ Laravel's validation for forms and requests.
- Use middleware for request filtering and modification.
- Utilize Laravel's Eloquent ORM and query builder for database interactions.
- Apply proper practices for database migrations and seeders.
- Manage dependencies with the latest stable version of Laravel and Composer.
- Prefer Eloquent ORM over raw SQL queries.
- Implement the Repository pattern for the data access layer.
- Use Laravel's authentication and authorization features.
- Utilize caching mechanisms for performance enhancement.
- Implement job queues for handling long-running tasks.
- Use Laravel's testing tools, such as PHPUnit and Dusk, for unit and feature tests.
- Implement API versioning for public endpoints.
- Utilize localization features for multilingual support.
- Apply CSRF protection and other security measures.
- Use Laravel Mix for asset compilation.
- Ensure efficient database indexing for query performance enhancement.
- Employ Laravel's pagination features for data presentation.
- Implement comprehensive error logging and monitoring.
- Follow Laravel's MVC architecture.
- Use Laravel's routing system to define application endpoints.
- Implement request validation using Form Requests.
- Use Laravel's Blade engine for templating views.
- Establish database relationships with Eloquent.
- Leverage Laravel's authentication scaffolding.
- Implement API resource transformations correctly.
- Utilize Laravel's event and listener system for decoupled code functionality.
- Apply database transactions to maintain data integrity.
- Use Laravel's scheduling features for managing recurring tasks.
- Use attribute-based routing when applicable.
- Implement typed enums for status/value casting in models.
- Use readonly properties for immutable service dependencies.
- Prefer PestPHP for new test files, while retaining PHPUnit for complex feature tests.
- Use `ValidationRule` interface for custom rules.
- Migrate helper calls to class-based alternatives (`Str`, `to_route`, etc.).
- Refactor `Handler` using `reportUsing()` and `renderUsing()` for cleaner error reporting.
- Apply route middleware using Laravel 12’s updated group syntax.
- Explicitly declare visibility (`public`, `protected`, `private`) for all class constants.
- Use `#[\Override]` attribute for all overridden methods to ensure override correctness.
- Utilize `json_validate()` to safely check JSON strings before decoding.
- Declare class constants with types (e.g., `public const string STATUS = 'active';`) for stricter contracts.
- Avoid dynamic class constant access with untrusted input (e.g., `$class::{$constant}`).
- Prefer first-class callable syntax (e.g., `array_map([ClassName::class, 'method'], $items)`).
- Allow `readonly` properties to be mutable only within constructors when using `readonly` classes.
- Prefer `[ClassName::method]($arg)` syntax for first-class callables once supported.
- Avoid overusing magic property hooks (e.g., `__getProperty()`, `__setProperty()`) if implemented; prefer explicit accessors.
- Adopt `readonly` classes for immutable DTOs and service response models.
RxJS Docshttps://rxjs.dev/guide/overview
Angular Materialhttps://material.angular.io/
Angular CLIhttps://angular.io/cli
Angular Docshttps://angular.io/docs
Langchain Docshttps://python.langchain.com/docs/introduction/
Tailwind CSS Docshttps://tailwindcss.com/docs/
Mermaid.js Documentationhttps://mermaid.js.org/
Prettier Documentationhttps://prettier.io/
Vite Documentationhttps://vite.dev/
Node Documentationhttps://nodejs.org/en
ESLint Documentationhttps://eslint.org/

Prompts

Learn more
Write Cargo test
Write unit test with Cargo
Use Cargo to write a comprehensive suite of unit tests for this function
New Component
Create a new Angular component
Please create a new Angular component following these guidelines:
- Include JSDoc comments for component and inputs/outputs
- Implement proper lifecycle hooks
- Include TypeScript interfaces for models
- Follow container/presentational component pattern where appropriate
- Include unit tests with Jasmine/Karma in a separate test file
- Make sure to create separate files for any services, pipes, modules, and directives
Review
Review changes
Please review the current code changes looking for:

- Memory leaks (unsubscribed observables)
- Proper change detection strategy
- Proper use of async pipe
- Proper error handling

Format the review as:
```
## <FILENAME>
- <ISSUE>
...
- <ISSUE>
```
New Component
Create a new Angular component
Please create a new Angular component following these guidelines:
- Include JSDoc comments for component and inputs/outputs
- Implement proper lifecycle hooks
- Include TypeScript interfaces for models
- Follow container/presentational component pattern where appropriate
- Include unit tests with Jasmine/Karma in a separate test file
- Make sure to create separate files for any services, pipes, modules, and directives

Context

Learn more
@code
Reference specific functions or classes from throughout your project
@docs
Reference the contents from any documentation site
@diff
Reference all of the changes you've made to your current branch
@terminal
Reference the last command you ran in your IDE's terminal and its output
@problems
Get Problems from the current file
@folder
Uses the same retrieval mechanism as @Codebase, but only on a single folder
@codebase
Reference the most relevant snippets from your codebase
@url
Reference the markdown converted contents of a given URL
@file
Reference any file in your current workspace
@currentFile
Reference the currently open file
@open
Reference the contents of all of your open files
@jira
Reference the conversation in a Jira issue
@os
Reference the architecture and platform of your current operating system
@commit
@clipboard
Reference recent clipboard items

No Data configured

MCP Servers

Learn more

Memory

npx -y @modelcontextprotocol/server-memory

Postgres

npx -y @modelcontextprotocol/server-postgres ${{ secrets.sebastjan-tavcar/sebastjan-tavcar-first-assistant/anthropic/postgres-mcp/CONNECTION_STRING }}

Filesystem

npx -y @modelcontextprotocol/server-filesystem ${{ secrets.sebastjan-tavcar/sebastjan-tavcar-first-assistant/anthropic/filesystem-mcp/PATH }}

Docker MCP Gitlab

docker run -e GITLAB_PERSONAL_ACCESS_TOKEN -e GITLAB_API_URL mcp/gitlab

Brave Search

npx -y @modelcontextprotocol/server-brave-search

Docker MCP Postgres

docker run -i --rm mcp/postgres ${{ secrets.sebastjan-tavcar/sebastjan-tavcar-first-assistant/docker/mcp-postgres/POSTGRES_CONNECTION_STRING }}

Docker MCP Git

docker run --rm -i --mount type=bind,src=${{ secrets.sebastjan-tavcar/sebastjan-tavcar-first-assistant/docker/mcp-git/GIT_DIR }},dst=${{ secrets.sebastjan-tavcar/sebastjan-tavcar-first-assistant/docker/mcp-git/GIT_DIR }} mcp/git

GitHub

npx -y @modelcontextprotocol/server-github

Docker MCP Github

docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN mcp/github

Browser MCP

npx -y @browsermcp/mcp@latest

Playwright

npx -y @executeautomation/playwright-mcp-server

Docker MCP Sequential Thinking

docker run --rm -i mcp/sequentialthinking