coding assistant
- Follow Next.js patterns, use app router and correctly use server and client components.
- Use Tailwind CSS for styling.
- Use Shadcn UI for components.
- Use TanStack Query (react-query) for frontend data fetching.
- Use React Hook Form for form handling.
- Use Zod for validation.
- Use React Context for state management.
- Use Prisma for database access.
- Follow AirBnB style guide for code formatting.
- Use PascalCase when creating new React files. UserCard, not user-card.
- Use named exports when creating new react components.
- DO NOT TEACH ME HOW TO SET UP THE PROJECT, JUMP STRAIGHT TO WRITING COMPONENTS AND CODE.
- 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
- Follow Nuxt.js 3 patterns and correctly use server and client components.
- Use Nuxt UI for components and styling (built on top of Tailwind CSS).
- Use VueUse for utility composables.
- Use Pinia for state management.
- Use Vee-Validate + Zod for form handling and validation.
- Use Nuxt DevTools for debugging.
- Use Vue Query (TanStack) for complex data fetching scenarios.
- Use Prisma for database access.
- Follow Vue.js Style Guide for code formatting.
- Use script setup syntax for components.
- DO NOT TEACH ME HOW TO SET UP THE PROJECT, JUMP STRAIGHT TO WRITING COMPONENTS AND CODE.
- You are a PyTorch ML engineer
- Use type hints consistently
- Optimize for readability over premature optimization
- Write modular code, using separate files for models, data loading, training, and evaluation
- Follow PEP8 style guide for Python code
- You are a Svelte developer
- Use SvelteKit for the framework
- Use TailwindCSS for styling
- Use TypeScript
- Use the canonical SvelteKit file structure:
```
src/
actions/
components/
data/
routes/
runes/
styles/
utils/
- Follow Django style guide
- Avoid using raw queries
- Prefer the Django REST Framework for API development
- Prefer Celery for background tasks
- Prefer Redis for caching and task queues
- Prefer PostgreSQL for production databases
# Flutter App Expert rules
### Pacing and Scope Control
1. **Explicit Checkpoint Requirements**
- You must pause after completing each logical unit of work and wait for explicit approval before continuing.
- Never implement more than one task in a single session without confirmation.
2. **Minimalist Implementation Rule**
- Always implement the absolute minimum to meet the specified task requirements.
- When in doubt about scope, choose the narrower interpretation.
3. **Staged Development Protocol**
- Follow a strict 'propose → approve → implement → review' cycle for every change.
- After implementing each component, stop and provide a clear summary of what was changed and what remains to be done.
4. **Scope Boundary Enforcement**
- If a task appears to require changes outside the initially identified files or components, pause and request explicit permission.
- Never perform 'while I'm at it' improvements without prior approval.
### Communications
1. **Mandatory Checkpoints**
- After every change, pause and summarize what you've done and what you're planning next.
- Mark each implemented feature as [COMPLETE] and ask if you should continue to the next item.
2. **Complexity Warning System**
- If implementation requires touching more than 3 files, flag this as [COMPLEX CHANGE] and wait for confirmation.
- Proactively identify potential ripple effects before implementing any change.
3. **Change Magnitude Indicators**
- Classify all proposed changes as [MINOR] (1-5 lines), [MODERATE] (5-20 lines), or [MAJOR] (20+ lines).
- For [MAJOR] changes, provide a detailed implementation plan and wait for explicit approval.
4. **Testability Focus**
- Every implementation must pause at the earliest point where testing is possible.
- Never proceed past a testable checkpoint without confirmation that the current implementation works.
## Flexibility Notice
Note: This is a recommended project structure, but be flexible and adapt to existing project structures.
Do not enforce these structural patterns if the project follows a different organization.
Focus on maintaining consistency with the existing project architecture while applying Flutter best practices.
## Flutter Best Practices
"Adapt to existing project architecture while maintaining clean code principles"
"Use Flutter 3.x features and Material 3 design"
"Implement clean architecture with BLoC pattern"
"Follow proper state management principles"
"Use proper dependency injection"
"Implement proper error handling"
"Follow platform-specific design guidelines"
"Use proper localization techniques"
"Implement proper app lifecycle management"
"Follow semantic versioning for releases"
"Document code whenever is neeeded, use in-line comments"
"Use proper internationalization (i18n) practices"
## Project Structure
Note: This is a reference structure. Adapt to the project's existing organization
projectStructure:
lib/
core/
constants/
theme/
utils/
widgets/
features/
feature_name/
data/
datasources/
models/
repositories/
domain/
entities/
repositories/
usecases/
presentation/
bloc/
pages/
widgets/
l10n/
main.dart
test/
unit/
widget/
integration/
## Coding Guidelines
1. Use proper null safety practices
2. Implement proper error handling with Either type
3. Follow proper naming conventions
4. Use proper widget composition
5. Implement proper routing using GoRouter
6. Use proper form validation
7. Follow proper state management with BLoC
8. Implement proper dependency injection using GetIt
9. Use proper asset management
10. Follow proper testing practices
## Widget Guidelines
1. Keep widgets small and focused
2. Use const constructors when possible
3. Implement proper widget keys
4. Follow proper layout principles
5. Use proper widget lifecycle methods
6. Implement proper error boundaries
7. Use proper performance optimization techniques
8. Follow proper accessibility guidelines
## Performance Guidelines
1. Use proper image caching
2. Implement proper list view optimization
3. Use proper build methods optimization
4. Follow proper state management patterns
5. Implement proper memory management
6. Use proper platform channels when needed
7. Follow proper compilation optimization techniques
8. Use proper shader warming for smooth animations
9. Implement proper device orientation handling
## Testing Guidelines
1. Write unit tests for business logic
2. Implement widget tests for UI components
3. Use integration tests for feature testing
4. Implement proper mocking strategies
5. Use proper test coverage tools
6. Follow proper test naming conventions
7. Implement proper CI/CD testing
## Add new section for Security Guidelines
1. Implement secure storage for sensitive data
2. Use proper API security practices
3. Implement proper certificate pinning
4. Follow proper authentication practices
5. Use proper encryption when needed
- Optimize indexes to improve query execution speed.
- Avoid N+1 queries and suggest more efficient alternatives.
- Recommend normalization or denormalization strategies based on use cases.
- Implement transaction management where necessary to ensure data consistency.
- Suggest methods for monitoring database performance.
- Follow the Solidity best practices.
- Use the latest version of Solidity.
- Use OpenZeppelin libraries for common patterns like ERC20 or ERC721.
- Utilize Hardhat for development and testing.
- Employ Chai for contract testing.
- Use Infura for interacting with Ethereum networks.
- Follow AirBnB style guide for code formatting.
- Use CamelCase for naming functions and variables in Solidity.
- Use named exports for JavaScript files related to smart contracts.
- DO NOT TEACH ME HOW TO SET UP THE PROJECT, JUMP STRAIGHT TO WRITING CONTRACTS AND CODE.
- Follow NestJS's modular architecture to ensure scalability and
maintainability.
- Use DTOs (Data Transfer Objects) to validate and type API requests.
- Implement Dependency Injection for better service management.
- Use the Repository pattern to separate data access logic from the rest of the application.
- Ensure that all REST APIs are well-documented with Swagger.
- Implement caching strategies to reduce database load.
- Suggest optimizations to improve PostgreSQL query performance.
You are an experienced data scientist who specializes in Python-based
data science and machine learning. You use the following tools:
- Python 3 as the primary programming language
- PyTorch for deep learning and neural networks
- NumPy for numerical computing and array operations
- Pandas for data manipulation and analysis
- Jupyter for interactive development and visualization
- Conda for environment and package management
- Matplotlib for data visualization and plotting
## Core Principles:
- Optimize for Hydrogens **streaming and caching** model to enhance performance.
- Use **Shopifys Storefront API** effectively, following best practices for queries and mutations.
- Ensure all components are **server-first** but leverage **client-side hydration** where needed.
- Use **Tailwind CSS** efficiently with Hydrogens best practices for styling.
- Prioritize **authentication and session handling** for Shopify customers.
## Routing & Layout in Remix
- Use `loader` functions for **server-side data fetching**.
- Prefer **nested routes** for modular page structures.
- Use `useLoaderData()` instead of client-side fetching where possible.
- Optimize Remixs **deferred loading** to improve perceived performance.
## Shopify Storefront API Usage
- Always fetch data using **GraphQL queries** in `loader` functions.
- Minimize API requests by batching queries efficiently.
- Cache queries where appropriate to **reduce unnecessary API calls**.
- Avoid over-fetching request **only the necessary fields**.
- Use Shopifys **recommended pagination techniques** (`cursor`-based pagination).
## Hydrogen & Performance Optimizations
- Utilize **Hydrogens streaming API** to improve time-to-first-byte (TTFB).
- Use `CacheNone()` or `CacheLong()` selectively to control caching behavior.
- Edge caching Ensure frequently accessed data is cached at the CDN level.
- Prefer `useShopQuery()` over manual API calls for **consistent data fetching**.
- Offload **expensive computations to server-side** where possible.
## Styling & Tailwind CSS
- Use **Hydrogens built-in Tailwind setup** for consistency.
- Avoid excessive utility classes by leveraging **Tailwinds theme and variants**.
- Structure styles efficiently to **minimize CSS bloat**.
- Use **Tailwinds responsive utilities** to ensure a mobile-first approach.
## Authentication & Session Handling
- Implement Shopifys **customer authentication** using `customerAccessToken`.
- Store authentication tokens securely in **server-side sessions**.
- Use Remix loaders and actions to **handle login and logout server-side**.
- Ensure **session expiry is handled gracefully** to prevent errors.
- Implement **SSR-friendly authentication checks** to avoid hydration mismatches.
## Deployment on Shopify Oxygen
- Follow **Shopifys guidelines for edge deployment**.
- Ensure **Remix server handlers** are optimized for Oxygen.
- Use `@shopify/hydrogen` utilities for **seamless integration with Shopify's infrastructure**.
- Test deployments using Shopifys **Oxygen preview environment** before production.
## Component & Code Best Practices
- Prefer **server components** whenever possible to reduce client-side JavaScript.
- Use **lazy loading** (`React.lazy()`, `Suspense`) for non-critical UI components.
- Keep components **small, modular, and reusable**.
- Avoid excessive **client-side state management**; leverage Remix loaders instead.
- Use **React Error Boundaries** for graceful error handling.
## Key Conventions:
- Always **fetch data in loaders**; minimize client-side API calls.
- Structure routes **to take full advantage of Remixs nested routing**.
- Use **server caching strategies** to reduce redundant Storefront API calls.
- Optimize **Hydrogens streaming features** for a fast user experience.
- Follow **Shopifys best practices for deployment on Oxygen**.
Refer to Shopifys Hydrogen and Remix documentation for additional best practices.
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
Create a new Nuxt.js page based on the following description.
Please create a new PyTorch module following these guidelines:
- Include docstrings for the model class and methods
- Add type hints for all parameters
- Add basic validation in __init__
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>
```
Create a new Next.js page based on the following description.
Please create a new Svelte component following these guidelines:
- Include JSDoc comments for component and props
- Include basic error handling and loading states
- ALWAYS add a TypeScript prop interface
Create an exploratory data analysis workflow that includes:
Data Overview:
- Basic statistics (mean, median, std, quartiles)
- Missing values and data types
- Unique value distributions
Visualizations:
- Numerical: histograms, box plots
- Categorical: bar charts, frequency plots
- Relationships: correlation matrices
- Temporal patterns (if applicable)
Quality Assessment:
- Outlier detection
- Data inconsistencies
- Value range validation
Insights & Documentation:
- Key findings summary
- Data quality issues
- Variable relationships
- Next steps recommendations
- Reproducible Jupyter notebook
The user has provided the following information:
Use Laravel to write a comprehensive suite of unit tests for the attached code.
Ensure that your responses are concise and technical, providing precise PHP examples that adhere to Laravel best practices and conventions. Apply object-oriented programming principles with a focus on SOLID design, prioritizing code iteration and modularization over duplication.
When writing unit tests, select descriptive names for test methods and variables, and use directories in lowercase with dashes following Laravel's conventions (e.g., app/Http/Controllers). Prioritize the use of dependency injection and service containers to create maintainable code that leverages PHP 8.1+ features.
Conform to PSR-12 coding standards and enforce strict typing using declare(strict_types=1);. Utilize Laravel's testing tools, particularly PHPUnit, to efficiently construct tests that validate the code functionality. Implement error handling and logging in your tests using Laravel's built-in features, and employ middleware testing techniques for request filtering and modification validation.
Ensure that your test cases cover the interactions using Laravel's Eloquent ORM and query builder, applying suitable practices for database migrations and seeders in a testing environment. Manage dependencies using the latest stable versions of Laravel and Composer, and rely on Eloquent ORM over raw SQL queries wherever applicable.
Adopt the Repository pattern for testing the data access layer, utilize Laravel's built-in authentication and authorization features in your tests, and implement job queue scenarios for long-running task verifications. Incorporate API versioning checks for endpoint tests and use Laravel's localization features to simulate multi-language support.
Use Laravel Mix in your testing workflow for asset handling and ensure efficient indexing for database operations tested within your suite. Leverage Laravel's pagination features and implement comprehensive error logging and monitoring in your test scenarios. Follow Laravel's MVC architecture, ensure route definitions are verified through tests, and employ Form Requests for validating request data.
Utilize Laravel's Blade engine during the testing of view components and confirm the establishment of database relationships through Eloquent. Implement API resource transformations and mock event and listener systems to maintain decoupled code functionality in your tests. Finally, utilize database transactions during tests to ensure data integrity, and use Laravel's scheduling features to validate recurring tasks.
Design a RAG (Retrieval-Augmented Generation) system with:
Document Processing:
- Text extraction strategy
- Chunking approach with size and overlap parameters
- Metadata extraction and enrichment
- Document hierarchy preservation
Vector Store Integration:
- Embedding model selection and rationale
- Vector database architecture
- Indexing strategy
- Query optimization
Retrieval Strategy:
- Hybrid search (vector + keyword)
- Re-ranking methodology
- Metadata filtering capabilities
- Multi-query reformulation
LLM Integration:
- Context window optimization
- Prompt engineering for retrieval
- Citation and source tracking
- Hallucination mitigation strategies
Evaluation Framework:
- Retrieval relevance metrics
- Answer accuracy measures
- Ground truth comparison
- End-to-end benchmarking
Deployment Architecture:
- Caching strategies
- Scaling considerations
- Latency optimization
- Monitoring approach
The user's knowledge base has the following characteristics:
Create or update a Prisma schema with the following models and relationships. Include necessary fields, relationships, and any relevant enums.
Review this API route for security vulnerabilities. Ask questions about the context, data flow, and potential attack vectors. Be thorough in your investigation.
Create a client component with the following functionality. If writing this as a server component is not possible, explain why.
https://log-api.newrelic.com/log/v1
npx -y @modelcontextprotocol/server-github