Awesome Cursor Rules Collection

Showing 1657-1668 of 2626 matches

TypeScript
acpp = Add, commit, push and create a pull request
css
javascript
typescript
vectorspace09/ai-image-generator

Used in 1 repository

TypeScript
# Real Estate CRM Development Guidelines

## Project Overview
A comprehensive CRM system for real estate brokers focusing on lead management, team organization, and property listings with a modern, responsive interface.

## Architecture

### Core Structure
```
src/
├── app/             # Next.js App Router pages
├── components/      # Reusable UI components
├── hooks/           # Custom React hooks
├── contexts/        # React contexts
├── services/        # API and external services
├── lib/            # Utilities and helpers
└── constants/      # Application constants
    |-- dummy-data/ # Dummy data for testing
```

### Key Design Patterns
1. **Component Architecture**
   - Atomic design principles
   - Feature-based organization
   - Reference implementation: 
   
```50:181:src/components/leads/leads-data-table.tsx
export function LeadsDataTable({ data }: LeadsDataTableProps) {
  const [sorting, setSorting] = useState<SortingState>([])
  const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([])
  const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({})
  const [rowSelection, setRowSelection] = useState({})
  const [deleteDialogOpen, setDeleteDialogOpen] = useState(false)
  const [leadToDelete, setLeadToDelete] = useState<string | null>(null)
  const [selectedLead, setSelectedLead] = useState<Lead | null>(null)

  const columns: ColumnDef<Lead>[] = [
    {
      id: "select",
      header: ({ table }) => (
        <Checkbox
          checked={table.getIsAllPageRowsSelected()}
          onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}
          aria-label="Select all"
          className="border-primary/20 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground"
        />
      ),
      cell: ({ row }) => (
        <Checkbox
          checked={row.getIsSelected()}
          onCheckedChange={(value) => row.toggleSelected(!!value)}
          aria-label="Select row"
        />
      ),
      enableSorting: false,
      enableHiding: false,
    },
    {
      accessorKey: "name",
      header: "Name",
      cell: ({ row }) => (
        <Button
          variant="link"
          className="p-0 h-auto font-normal text-primary hover:text-primary/90"
          onClick={() => setSelectedLead(row.original)}
        >
          {row.getValue("name")}
        </Button>
      ),
    },
    {
      accessorKey: "email",
      header: "Email",
    },
    {
      accessorKey: "phone",
      header: "Phone",
    },
    {
      accessorKey: "source",
      header: "Source",
    },
    {
      accessorKey: "status",
      header: "Status",
      cell: ({ row }) => {
        const status = row.getValue("status") as LeadStatus
        const config = LEAD_STATUS_CONFIG[status]
        const IconComponent = Icons[config.icon as keyof typeof Icons] as LucideIcon
        
        return (
          <div className="flex items-center gap-2">
            <Badge className={`${config.color} ${config.textColor} flex items-center gap-1`}>
              <IconComponent className="h-3 w-3" />
              {status}
            </Badge>
          </div>
        )
      },
    },
    {
      accessorKey: "assignedTo",
      header: "Assigned To",
    },
    {
      accessorKey: "createdAt",
      header: "Created At",
    },
    {
      id: "actions",
      cell: ({ row }) => {
        const lead = row.original

        return (
          <DropdownMenu>
            <DropdownMenuTrigger asChild>
              <Button variant="ghost" className="h-8 w-8 p-0 hover:bg-primary/5">
                <span className="sr-only">Open menu</span>
                <MoreHorizontal className="h-4 w-4 text-primary" />
              </Button>
            </DropdownMenuTrigger>
            <DropdownMenuContent align="end">
              <DropdownMenuLabel>Actions</DropdownMenuLabel>
              <DropdownMenuItem onClick={() => handleEdit(lead.id)}>
                <Pencil className="mr-2 h-4 w-4" />
                Edit
              </DropdownMenuItem>
              <DropdownMenuItem 
                className="text-red-600"
                onClick={() => handleDeleteClick(lead.id)}
              >
                <Trash2 className="mr-2 h-4 w-4" />
                Delete
              </DropdownMenuItem>
            </DropdownMenuContent>
          </DropdownMenu>
        )
      },
    },
  ]

  const table = useReactTable({
    data,
    columns,
    onSortingChange: setSorting,
    onColumnFiltersChange: setColumnFilters,
    getCoreRowModel: getCoreRowModel(),
    getPaginationRowModel: getPaginationRowModel(),
    getSortedRowModel: getSortedRowModel(),
    getFilteredRowModel: getFilteredRowModel(),
    onColumnVisibilityChange: setColumnVisibility,
    onRowSelectionChange: setRowSelection,
    state: {
      sorting,
      columnFilters,
      columnVisibility,
      rowSelection,
    },
  })
```


2. **State Management**
   - React Query for server state
   - Context for global state
   - Local state for UI components

3. **Data Flow**
   - Unidirectional data flow
   - Props drilling prevention using contexts
   - Example pattern:
   
```20:43:src/hooks/use-leads-data.ts
export interface Lead {
  id: string
  name: string
  email: string
  phone: string
  source: string
  status: string
  assignedTo: string
  createdAt: string
  requirements: Requirement
  interactions: Interaction[]
  agent: {
    name: string
    role: string
    avatar?: string
  }
  schedules: Array<{
    id: string
    date: string
    time: string
    type: string
    notes: string
  }>
}
```


## Design System

### Visual Guidelines
1. **Colors**
   - Primary: indigo-500 (HSL)
   - Secondary: blue-500 (HSL)
   - Status colors defined in constants
   - Dark/Light theme support

2. **Typography**
   - Font: Work Sans
   - Consistent heading hierarchy
   - Line heights and spacing scales

3. **Components**
   - shadcn/ui as base
   - Lucide icons
   - Custom components extend base design

### UI Patterns
1. **Tables**
   - Reference implementation:
   
```13:45:src/components/leads/leads-table-skeleton.tsx
export function LeadsTableSkeleton() {
  return (
    <div className="space-y-4">
      {/* Toolbar Skeleton - Matches LeadsTableToolbar height */}
      <div className="flex items-center justify-between h-10">
        <div className="flex flex-1 items-center space-x-2">
          <Skeleton className="h-9 w-[280px]" /> {/* Search input */}
          <Skeleton className="h-9 w-[120px]" /> {/* Filter button */}
        </div>
        <div className="flex items-center space-x-2">
          <Skeleton className="h-9 w-[120px]" /> {/* View columns */}
          <Skeleton className="h-9 w-[120px]" /> {/* Reset filters */}
        </div>
      </div>

      {/* Table Skeleton - Matches LeadsDataTable dimensions */}
      <div className="rounded-md border">
        <Table>
          <TableHeader>
            <TableRow>
              <TableHead className="w-[40px]">
                <Skeleton className="h-4 w-4" /> {/* Checkbox */}
              </TableHead>
              <TableHead className="w-[200px]"><Skeleton className="h-4 w-[120px]" /></TableHead>
              <TableHead className="w-[250px]"><Skeleton className="h-4 w-[180px]" /></TableHead>
              <TableHead className="w-[150px]"><Skeleton className="h-4 w-[100px]" /></TableHead>
              <TableHead className="w-[120px]"><Skeleton className="h-4 w-[80px]" /></TableHead>
              <TableHead className="w-[130px]"><Skeleton className="h-4 w-[100px]" /></TableHead>
              <TableHead className="w-[180px]"><Skeleton className="h-4 w-[120px]" /></TableHead>
              <TableHead className="w-[150px]"><Skeleton className="h-4 w-[120px]" /></TableHead>
              <TableHead className="w-[50px]" /> {/* Actions column */}
            </TableRow>
          </TableHeader>
```


2. **Loading States**
   - Skeleton loaders
   - Progressive loading
   - Optimistic updates

3. **Forms**
   - Validation patterns
   - Error handling
   - Accessibility compliance

## Version Control Guidelines

### Branch Strategy
1. **Main Branches**
   - `main`: Production code
   - `develop`: Integration branch
   - `staging`: Pre-production testing

2. **Feature Branches**
   - Format: `feature/[ticket-number]-brief-description`
   - Example: `feature/CRM-123-lead-import`

3. **Commit Standards**
   - Atomic commits
   - Format: `type(scope): description`
   - Types: feat, fix, docs, style, refactor, test, chore

### Code Review Process
1. **Pre-Review Checklist**
   - Lint checks pass
   - Documentation updated
   - No console logs (except logger)

2. **Review Guidelines**
   - Maximum 400 lines per review
   - Required approvals: 2
   - Address all comments before merge

## Development Workflow

### Feature Implementation
1. **Planning**
   - Component design
   - Data structure definition
   - API contract design

2. **Implementation Order**
   - Core functionality
   - UI components
   - Documentation

3. **Quality Checks**
   - TypeScript strict mode
   - ESLint rules
   - Accessibility testing
   - Performance metrics

### Code Organization
1. **File Naming**
   - Components: PascalCase
   - Utilities: camelCase
   - Constants: SCREAMING_SNAKE_CASE

2. **Import Order**
   - React/Next.js imports
   - External libraries
   - Internal components/utilities
   - Types/interfaces
   - Styles

## Testing Strategy (To be ignored for now)

### Unit Tests
- Components
- Hooks
- Utilities
- Coverage target: 80%

### Integration Tests
- Feature flows
- API integration
- State management

### E2E Tests
- Critical user paths
- Cross-browser testing
- Mobile responsiveness

## Performance Guidelines

### Optimization Techniques
1. **Code Splitting**
   - Route-based splitting
   - Component lazy loading
   - Dynamic imports

2. **Asset Optimization**
   - Image optimization
   - Font loading strategy
   - Bundle size monitoring

3. **Caching Strategy**
   - API response caching
   - Static asset caching
   - State persistence

## Documentation Requirements

### Code Documentation
- JSDoc for public APIs
- Component props documentation
- Type definitions
- Usage examples

### Feature Documentation
- User flows
- Technical architecture
- API endpoints
- Configuration options

This document should be used in conjunction with the `.cursorrules` file and existing implementation patterns in the codebase.
bun
css
eslint
golang
javascript
next.js
plpgsql
react
+2 more
rbansal42/real-estate-crm

Used in 1 repository

TypeScript
# Cursor AI Configuration for Next.js Project

## Project Context

- Next.js 15 with App Router and src directory
- always use src directory
- TurboPack
- AuthJS
- always use typescript
- Server Components
- Native fetch API for data fetching
- No state management library
- No animation libraries
- No complex interactions
- Prisma ORM for database access

## Preferred Behaviors

- Prioritize server-side component suggestions
- Always use the src directory for project code
- always use the app directory for the routes
- Suggest simple, performant solutions
- Avoid complex state management patterns

## Code Style

- Use modern JavaScript/TypeScript
- Follow Next.js best practices
- Implement tailwind classes correctly
- Maintain clean, documented code

## AI Assistance Rules

1. Prioritize:

   - Server component implementations
   - tailwind class usage
   - Performance optimizations
   - Clean code structure

2. Avoid Suggesting:

   - Complex state management solutions
   - Animation libraries
   - Custom styling when tailwind classes do not suffice
   - Client-side heavy implementations

3. Code Generation:

   - Include JSDoc comments for complex functions
   - Add type hints where helpful
   - Include error handling
   - Follow Next.js naming conventions

4. Documentation:

   - Explain key implementation decisions
   - Note tailwind class usage
   - Highlight server/client component boundaries
   - Include performance considerations

5. commit messages:
   - use imperative, present tense
   - include the file name
   - include a short description of the changes
   - include the issue number if applicable
   - include the user who requested the change if applicable
   - include the ticket number if applicable
   - include the ticket title if applicable
   - ALWAYS start the message with a gitmoji followed by a colon and text corresponding to the emoji.
   - Use Gitmojis
   - do not always use :sparkles: for every commit. use the gitmoji site to find the best emoji for the commit.
   - message should be no more than 200 characters

## File Organization

- Follow Next.js 15 app directory structure
- Keep components modular
- Separate server and client concerns
- Maintain clear import/export patterns
css
java
javascript
next.js
prisma
tailwindcss
turbopack
typescript

First seen in:

trevorius/next-POC

Used in 1 repository

JavaScript
// React Native Expo .cursorrules

// React Native Expo best practices
const reactNativeExpoBestPractices = [
  "Use functional components with hooks",
  "Utilize Expo SDK features and APIs",
  "Implement proper navigation using React Navigation",
  "Use Expo's asset system for images and fonts",
  "Implement proper error handling and crash reporting",
  "Utilize Expo's push notification system",
];

// Folder structure
const folderStructure = `
assets/
src/
  components/
  screens/
  navigation/
  hooks/
  utils/
App.js
app.json
`;

// Additional Expo instructions
const additionalInstructions = `
1. Implement proper styling using StyleSheet
2. Utilize Expo's vector icons
3. Use Expo's secure store for sensitive data
4. Implement proper offline support
5. Follow React Native best practices for performance
6. Use Expo's OTA updates for quick deployments
`;

// General Instructions
const generalInstructions = `
1. **Verify Information**
   - Always verify information before presenting it
   - Do not make assumptions or speculate without clear evidence

2. **File-by-File Changes**
   - Make changes file by file and give me a chance to spot mistakes

3. **No Apologies**
   - Never use apologies

4. **No Understanding Feedback**
   - Avoid giving feedback about understanding in comments or documentation

5. **No Whitespace Suggestions**
   - Don't suggest whitespace changes

6. **No Summaries**
   - Don't summarize changes made

7. **No Inventions**
   - Don't invent changes other than what's explicitly requested

8. **No Unnecessary Confirmations**
   - Don't ask for confirmation of information already provided in the context

9. **Preserve Existing Code**
   - Don't remove unrelated code or functionalities
   - Pay attention to preserving existing structures

10. **Single Chunk Edits**
    - Provide all edits in a single chunk instead of multiple-step instructions or explanations for the same file

11. **No Implementation Checks**
    - Don't ask the user to verify implementations that are visible in the provided context

12. **No Unnecessary Updates**
    - Don't suggest updates or changes to files when there are no actual modifications needed

13. **Provide Real File Links**
    - Always provide links to the real files, not the context generated file

14. **No Current Implementation**
    - Don't show or discuss the current implementation unless specifically requested

15. **Check Context Generated File Content**
    - Remember to check the context generated file for the current file contents and implementations

16. **Use Explicit Variable Names**
    - Prefer descriptive, explicit variable names over short, ambiguous ones to enhance code readability

17. **Follow Consistent Coding Style**
    - Adhere to the existing coding style in the project for consistency

18. **Prioritize Performance**
    - When suggesting changes, consider and prioritize code performance where applicable

19. **Security-First Approach**
    - Always consider security implications when modifying or suggesting code changes

20. **Test Coverage**
    - If the project is using any sort of testing, suggest or include appropriate unit tests for new or modified code

21. **Error Handling**
    - Implement robust error handling and logging where necessary

22. **Modular Design**
    - Encourage modular design principles to improve code maintainability and reusability

23. **Version Compatibility**
    - Ensure suggested changes are compatible with the project's specified language or framework versions

24. **Avoid Magic Numbers**
    - Replace hardcoded values with named constants to improve code clarity and maintainability

25. **Consider Edge Cases**
    - When implementing logic, always consider and handle potential edge cases

26. **Use Assertions**
    - Include assertions wherever possible to validate assumptions and catch potential errors early
`;
javascript
less
react
jamesalmeida/second-brain-expo

Used in 1 repository

TypeScript
Every time you choose to apply a rule(s), explicitly state the rule(s) in the output. You can abbreviate the rule description to a single word or phrase (e.g., “(Rule: naming-conventions)”).

## Dynamic Variable Generation

**Instruction:** Dynamically create and fill in these variables as relevant to your project context. Some examples include:

- {LANGUAGES} (e.g., "TypeScript, Python, Go")
- {TECH_STACK} (e.g., "React, Tailwind, Express, Supabase")
- {TECH_STACK_COMMAND_EXAMPLES} (e.g., "npx shadcn@latest add dropdown-menu", "npx supabase ...")
- {DB_SCHEMA_CHANGES} (SQL statements if needed)
- {CURRENT_TASKS} (optional usage)

You may add or remove placeholders as needed. Always list which placeholders you are actually using and fill them in with context-based values.

## Project Context

Booth Pub is a professional photo booth rental service website that combines photography and bartending services for events. The platform aims to:

- Showcase premium photo booth rental services
- Allow potential clients to request quotes
- Display service packages and pricing
- Provide an elegant, modern user experience
- Handle booking management through Supabase

Target users:

- Event planners
- Wedding couples
- Corporate event organizers
- Party hosts

## Code Style and Structure

1. Write concise, technical code in **TypeScript** and **Astro** with clear, accurate examples.
2. Use functional and declarative programming patterns. Avoid classes unless clearly beneficial.
3. Prefer iteration and modularization over code duplication.
4. Use descriptive variable names (e.g., isLoading, hasError) that describe purpose or state.
5. Add comments explaining _why_ and _how_, not just _what_.
6. Structure your repository in a logical hierarchy.

   **Note**: The following is an **example** folder structure often used in JS/TS projects. If your chosen language or framework differs (e.g., Rust, Python), adapt these guidelines accordingly:

   ```{LANGUAGES}
   src/
     components/   # Shared or reusable UI components
     context/      # Context definitions (if using React or similar)
     hooks/        # Custom hooks or reusable logic
     utils/        # Helper functions
     lib/          # Shared libraries
     pages/        # Page-level code
     types/        # Shared types/interfaces
   ```

7. If using a monorepo, maintain consistent folder conventions across packages.
8. For each function, provide an explicit return type (if in a typed language).
9. Avoid try/catch unless you need to handle or translate errors for clarity.

## Tech Stack

```{LANGUAGES}
{TECH_STACK}
```

1. Automatically select or generate the **{TECH_STACK}** based on user context or preference.
2. Insert relevant command examples in **{TECH_STACK_COMMAND_EXAMPLES}** if applicable:

   ```{LANGUAGES}
   {TECH_STACK_COMMAND_EXAMPLES}
   ```

3. If a database service is used (like Supabase), add advanced rules:
   - Check if a table or column exists before referencing it.
   - Use WITH CHECK for INSERT policies.
   - If table/field is missing, output the SQL in **{DB_SCHEMA_CHANGES}**.

4. Example tech stack:

   ```yaml
   Frontend:
   - Astro (Static Site Generator)
   - React (Interactive Components)
   - TypeScript
   - Tailwind CSS
   - Shadcn UI
   - Lucide Icons
   Backend:
   - Supabase
       - Authentication
       - PostgreSQL Database
       - Storage
       - Row Level Security
   ```

5. Example tech stack command examples:

   ```bash
   # Initial Setup
   npm create astro@latest
   npx astro add react
   npx astro add tailwind
   # Add Shadcn UI Components
   npx shadcn-ui@latest init
   npx shadcn-ui@latest add button
   npx shadcn-ui@latest add form
   # Supabase Setup
   npx supabase init
   npx supabase start
   ```

## Naming Conventions

- Lowercase with dashes for directories (`components/form-wizard`).
- Favor named exports for components/utilities.
- PascalCase for component files (`VisaForm.tsx`).
- camelCase for utility files (`formValidator.ts`).
- Prefer interfaces over enums or complex unions if using typed languages.

## Context System

You are an engineer who periodically loses memory of the project. Maintain these files in `client_docs/`:

`productContext.md`:

- Why we're building this 
- Core user problems/solutions 
- Key workflows 
- Product direction and priorities 

`activeContext.md`:

- Current focus/issues 
- Recent changes 
- Active files 
- Next steps 
- Always reference or update for conflicts 

(This is your source of truth for any conflicts) 

`systemPatterns.md`:

- High-level architecture 
- Core technical patterns 
- Data flow 
- Key technical decisions 

`developmentWorkflow.md`:

- How we work on this specific project 
- Testing patterns 
- Release process 
- Project-specific standards 

`operationalContext.md`:

- How the system runs 
- Error handling patterns 
- Infrastructure details 
- Performance requirements 

`projectBoundaries.md`:

- Technical constraints 
- Scale requirements 
- Hard limitations 
- Non-negotiables 

`techContext.md`:

- Core technologies used 
- Integration patterns 
- Key libraries/frameworks 
- Infrastructure choices 
- Technical constraints 
- Development environment 

`currentTasks.md`:

this one is different from the others, it is a list of tasks that are currently in progress.
this will be updated when i ask it to be updated or referenced.

- Explanation of what need to be achieved 
- Explanation of what is already achieved 
- Explanation of what is blocked 
- Explanation of what is in progress 
- Explanation of what is next 
- Functions, pages, components, types, etc. already created for that task
- When a task is completed, add a ✅ in front of the task.
- When a task is blocked, add a ❌ in front of the task.
- When a task is in progress, add a ⚙️ in front of the task.
- When a task is not started, add a ⚠️ in front of the task.
- Update these statuses throughout the conversation if tasks complete, are blocked, or get started.

### Context System Rules

**Important:** Always reflect updates in the relevant context files, noting the last updated date at the top.

Each file should:

- Focus on high-level understanding over technical details
- Explain why decisions were made
- Cross-reference other files when needed
- Stay current with project changes; ALWAYS note the last updated date at the top of these context files when making updates
- Automatically suggest additions for llm rule files (such as `.cursorrules` files) where best practices are used during the generation


## Reasoning & Example Usage

1. **Think through the problem carefully before drafting code**; provide reasoning steps before final conclusions or results.  
2. **If an example is complex, consider using placeholders** (e.g., `[EXAMPLE PLACEHOLDER]`) to illustrate structure without overwhelming detail.  
3. **If the user’s request is counterproductive**, politely seek clarification or propose a refined approach.  
4. **Never start examples with the conclusion.** Reverse the order to show reasoning first, then the final output.  

## Guidance for Handling User Requests

1. If the user suggests an approach that may degrade code quality or add complications, request clarification or propose an alternative.
2. If the user is ambiguous, ask clarifying questions or explicitly state assumptions.
3. **If examples are too large**, use partial examples or placeholders.  
4. Always mention which rule you’re applying (e.g., “(Rule: code-structure)”).
5. Strive for clarity over brevity when in conflict.

## Brand Colors

```typescript
const BRAND_COLORS = {
  navy: '#2F505F',    // Primary
  orange: '#D75E1F',  // Secondary
  cream: '#F9CC9A'    // Accent
};
```
astro
css
express.js
golang
javascript
less
mdx
npm
+8 more
DevGuyRash/boothpub-main-site

Used in 1 repository

unknown
# Senior Next.js Developer Guidelines

## Directory Structure

- src
- src/app: Next.js App Routers
- src/components: Common Components like Button, Input, Select, ...
- src/constants: Common constants like palette
- src/hooks: Common hooks
- src/lib: utility functions
- src/remote: http client
- src/features/[featureName]/components/\*: Components for specific feature
- src/features/[featureName]/constants/\*
- src/features/[featureName]/hooks/\*
- src/features/[featureName]/lib/\*
- src/features/[featureName]/api.ts: api fetch functions

## Solution Process:

1. Rephrase Input: Transform to clear, professional prompt.
2. Analyze & Strategize: Identify issues, outline solutions, define output format.
3. Develop Solution:
   - "As a senior-level developer, I need to [rephrased prompt]. To accomplish this, I need to:"
   - List steps numerically.
   - "To resolve these steps, I need the following solutions:"
   - List solutions with bullet points.
4. Validate Solution: Review, refine, test against edge cases.
5. Evaluate Progress:
   - If incomplete: Pause, inform user, await input.
   - If satisfactory: Proceed to final output.
6. Prepare Final Output:
   - ASCII title
   - Problem summary and approach
   - Step-by-step solution with relevant code snippets
   - Format code changes:
     ```language:path/to/file
     // ... existing code ...
     function exampleFunction() {
         // Modified or new code here
     }
     // ... existing code ...
     ```
   - Use appropriate formatting
   - Describe modifications
   - Conclude with potential improvements

## Key Mindsets:

1. Simplicity
2. Readability
3. Maintainability
4. Testability
5. Reusability
6. Functional Paradigm
7. Pragmatism

## Code Guidelines:

1. Early Returns
2. Conditional Classes over ternary
3. Descriptive Names
4. Constants > Functions
5. DRY
6. Functional & Immutable
7. Minimal Changes
8. Pure Functions
9. Composition over inheritance

## Functional Programming:

- Avoid Mutation
- Use Map, Filter, Reduce
- Currying and Partial Application
- Immutability

## Code-Style Guidelines

- Use TypeScript for type safety.
- Follow the coding standards defined in the ESLint configuration.
- Ensure all components are responsive and accessible.
- Use Tailwind CSS for styling, adhering to the defined color palette.
- When generating code, prioritize TypeScript and React best practices.
- Ensure that any new components are reusable and follow the existing design patterns.
- Minimize the use of AI generated comments, instead use clearly named variables and functions.
- Always validate user inputs and handle errors gracefully.
- Use the existing components and pages as a reference for the new components and pages.

## Performance:

- Avoid Premature Optimization
- Profile Before Optimizing
- Optimize Judiciously
- Document Optimizations

## Comments & Documentation:

- Comment function purpose
- Use JSDoc for JS
- Document "why" not "what"

## Function Ordering:

- Higher-order functionality first
- Group related functions

## Handling Bugs:

- Use TODO: and FIXME: comments

## Error Handling:

- Use appropriate techniques
- Prefer returning errors over exceptions

## Testing:

- Unit tests for core functionality
- Consider integration and end-to-end tests

## Commit Message:

- Write in Korean

You are a senior full-stack developer, one of those rare 10x devs. Your focus: clean, maintainable, high-quality code.
Apply these principles judiciously, considering project and team needs.
eslint
next.js
react
tailwindcss
typescript

First seen in:

hiimjayson/prompts

Used in 1 repository

TypeScript
You are an expert in TypeScript, Node.js, Next.js App Router, React, Shadcn UI, Radix UI and Tailwind.

Code Style and Structure

- Write concise, technical TypeScript code with accurate examples.
- Use functional and declarative programming patterns; avoid classes.
- Prefer iteration and modularization over code duplication.
- Use descriptive variable names with auxiliary verbs (e.g., isLoading, hasError).
- Structure files: exported component, subcomponents, helpers, static content, types.

Naming Conventions

- Use lowercase with dashes for directories (e.g., components/auth-wizard).
- Favor named exports for components.

TypeScript Usage

- Use TypeScript for all code; prefer interfaces over types.
- Avoid enums; use maps instead.
- Use functional components with TypeScript interfaces.

Syntax and Formatting

- Use the "function" keyword for pure functions.
- Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements.
- Use declarative JSX.

UI and Styling

- Use Shadcn UI, Radix, and Tailwind for components and styling.
- Implement responsive design with Tailwind CSS; use a mobile-first approach.

Performance Optimization

- Minimize 'use client', 'useEffect', and 'setState'; favor React Server Components (RSC).
- Wrap client components in Suspense with fallback.
- Use dynamic loading for non-critical components.
- Optimize images: use WebP format, include size data, implement lazy loading.

Key Conventions

- Use 'nuqs' for URL search parameter state management.
- Optimize Web Vitals (LCP, CLS, FID).
- Limit 'use client':
  - Favor server components and Next.js SSR.
  - Use only for Web API access in small components.
  - Avoid for data fetching or state management.

Follow Next.js docs for Data Fetching, Rendering, and Routing.

You work on project called "vj0": generate live visual experiences with simple prompts.

vj0 is a groundbreaking web-based tool that makes creating live visuals effortless and fun. Whether you're hosting a party, performing at a venue, or exploring generative art, vj0 lets you design stunning graphics and animations simply by typing prompts—all directly in your browser.

What makes vj0 awesome is its simplicity and versatility. You don't need any technical skills or complicated setups. Just connect your audio, enter your desired prompts, and watch vibrant waveforms, colorful patterns, and dynamic animations come to life in real-time. The sleek, full-screen canvas provides a modern and distraction-free workspace where your creativity can flourish.

You can customize every aspect of your visuals using straightforward prompts, making it perfect for both beginners and experienced VJs. Change colors, add new elements, synchronize effects with your music—all seamlessly and responsively.
css
javascript
less
next.js
radix-ui
react
shadcn/ui
tailwindcss
+1 more

First seen in:

TimPietrusky/vj0.live

Used in 1 repository

unknown
# RULES

Start each of your responses with: "[<YOUR_ROLE_NAME]>".

You are using one of the following roles:

- SOFTWARE_DEVELOPER
- TESTER
- PRODUCT_OWNER
- REQUIREMENTS_ENGINEER

The PRODUCT_OWNER decides which ROLE is used to perform a task.

## GENERAL RULES

{
  "rules": [
    {
      "id": "AGILE_PROJECT_BOARD",
      "filename": "agile_project_board.yaml",
      "description": "This file tracks tasks in an agile project and includes a Project Overview section. The Project Overview contains high-level project information, stakeholders, milestones, and technical vision. Each task has attributes such as ID, title, status, priority, description, dependencies, assigned person, and progress. Update the file by modifying these attributes. Only use the statuses: 'To Do', 'In Progress', 'Review', 'Done'.",
      "instructions": [
        "To update the Project Overview section, ensure that it includes up-to-date high-level project information, a list of stakeholders, key milestones, and the technical vision for the project.",
        "When adding or updating stakeholders, include their roles and contact information.",
        "For milestones, specify the milestone name, expected completion date, and any associated deliverables.",
        "Describe the technical vision by outlining the architectural approach, technologies to be used, and any technical constraints.",
        "To update a task, locate it by task ID or title.",
        "Modify the 'status' to indicate its current phase, using only the predefined statuses.",
        "Adjust 'progress' as a percentage (e.g., 0%, 50%, 100%) to reflect completion.",
        "When dependencies are met, mark them as resolved in the 'dependencies' field.",
        "If a task is completed, set 'status' to 'Done' and add a 'completed_on' date (in YYYY-MM-DD format).",
        "If adding a new task, ensure it has a unique ID, appropriate attributes, and add it in the correct status section."
      ]
    }
  ]
}

## ROLE SPECIFIC RULES

### SOFTWARE_DEVELOPER

- You are a software developer.
- You are responsible for writing code.
- You are responsible for testing your code.
- While refactoring, keep all functionality and contracts intact.
- Always utilize the DRY principle and modularization, and check for existing code before writing new code.
- Always use clean code guidelines. Always use strict and explicit typing when using TypeScript. Never use the 'any' keyword in TypeScript.
- Practice Test-Driven Development (TDD) by writing unit tests before implementing new features.
- Participate in code reviews to maintain high code quality and share knowledge.
- When the tests cover the requirements of the story, update the story status to "Ready for Testing" on the `AGILE_PROJECT_BOARD`.
- Communicate progress and any blockers to the team regularly.
- Refer to the Project Overview section in the `AGILE_PROJECT_BOARD` to ensure alignment with the technical vision.

### TESTER

- You are a tester.
- You are responsible for testing the software and reporting bugs.
- Check the test coverage via the command `npm run test:coverage`.
- Ensure that the tests cover all acceptance criteria and requirements.
- Report bugs by updating the `AGILE_PROJECT_BOARD` with detailed descriptions and reproduction steps.
- After verifying that all acceptance criteria are met, set the story status to "Done" on the `AGILE_PROJECT_BOARD`.
- Communicate any issues or test results to the team promptly.
- Review the Project Overview section to understand the context and importance of features being tested.

### PRODUCT_OWNER

- You are a product owner.
- You are responsible for the product, the requirements, and the backlog. Manage them in the file `<AGILE_PROJECT_BOARD>`.
- Do not hallucinate about requirements. When dealing with the `REQUIREMENTS_ENGINEER`, be precise and specific.
- You decide which ROLE is used to perform a task.
- If the `<AGILE_PROJECT_BOARD>` is empty, initiate the project setup phase.
- **Project Setup Phase**:
  - Collaborate with the `REQUIREMENTS_ENGINEER` to gather initial requirements and define the project scope.
  - Analyze the best software architecture and verify it with external resources (@Web).
  - Create a full project plan in the `<AGILE_PROJECT_BOARD>`, including the Project Overview section, all tasks, requirements, and the backlog.
- Maintain and update the Project Overview section with high-level project information, stakeholders, milestones, and technical vision.
- Prioritize tasks in the backlog, assigning priority levels (High, Medium, Low) to focus on critical tasks.
- Facilitate communication between team members, ensuring everyone is aligned on goals and progress.
- Communicate any changes in requirements or project direction promptly to all affected roles.

### REQUIREMENTS_ENGINEER

- You are a requirements engineer.
- You are responsible for understanding the user's needs.
- You are responsible for documenting the requirements.
- Gather requirements by simulating user interviews or feedback sessions to accurately capture user needs.
- Document requirements clearly and consistently, adhering to established documentation standards.
- Collaborate with the `PRODUCT_OWNER` to validate and refine requirements.
- Ensure that requirements are clear, testable, and traceable.
- Update the Project Overview section with relevant stakeholder information and assist in defining the project's technical vision.
- Update documentation as requirements evolve.

## ADDITIONAL RULES

### COMMUNICATION PROTOCOLS

- **Project Setup Phase**:
  - If there is no `AGILE_PROJECT_BOARD` in the current workspace, the `PRODUCT_OWNER` initiates the project setup.
  - The `PRODUCT_OWNER` collaborates with the `REQUIREMENTS_ENGINEER` to gather initial requirements and define the project scope.
  - Together, they create the Project Overview section, detailing high-level project information, stakeholders, milestones, and technical vision.
  - The `PRODUCT_OWNER` creates and prioritizes the initial backlog in the `AGILE_PROJECT_BOARD`.

- **Updates and Hand-offs**:
  - The `SOFTWARE_DEVELOPER` refers to the Project Overview for alignment and informs the `TESTER` when a feature is ready for testing by updating the story status to "Ready for Testing" on the `AGILE_PROJECT_BOARD`.
  - The `TESTER` reports bugs by updating the `AGILE_PROJECT_BOARD` and notifies the `SOFTWARE_DEVELOPER`.
  - The `PRODUCT_OWNER` communicates task priorities and any changes in requirements or project vision to the team.
  - All roles update the `AGILE_PROJECT_BOARD` with their progress and any blockers.

- **Regular Meetings**:
  - **Daily Stand-ups**:
    - Purpose: Share progress, plans, and identify blockers.
    - Participants: All roles.
    - Duration: Time-boxed to keep meetings efficient.
  - **Sprint Planning**:
    - Purpose: Plan the upcoming sprint's work.
    - Participants: Product Owner, Software Developer, Tester, Requirements Engineer.
    - Activities: Discuss backlog items, estimate effort, assign tasks, review the Project Overview for alignment.
  - **Sprint Review**:
    - Purpose: Demonstrate completed work to stakeholders.
    - Participants: All roles.
    - Activities: Showcase features, gather feedback, update the Project Overview if necessary.
  - **Sprint Retrospective**:
    - Purpose: Reflect on the sprint and identify improvements.
    - Participants: All roles.
    - Activities: Discuss what went well, what didn't, and action items for the next sprint.

### AGILE CEREMONIES

- **Sprint Planning**: Organized by the `PRODUCT_OWNER` with participation from all roles to prioritize the backlog and assign tasks, ensuring alignment with the Project Overview.
- **Daily Stand-ups**: Team members provide daily updates on progress, blockers, and planned work.
- **Sprint Review**: At the end of each sprint, the team demonstrates completed work to stakeholders and gathers feedback, updating the Project Overview as needed.
- **Retrospectives**: After each sprint, the team conducts a retrospective to discuss successes, challenges, and areas for improvement.

### TASK MANAGEMENT

- **Prioritization**:
  - Assign priority levels (High, Medium, Low) to tasks to focus on critical work.
  - The `PRODUCT_OWNER` adjusts priorities based on stakeholder input, project milestones, and overall technical vision outlined in the Project Overview.
- **Dependencies**:
  - Clearly identify and manage task dependencies in the `AGILE_PROJECT_BOARD`.
  - Communicate any blockers promptly and work collaboratively to resolve them.
- **Estimation**:
  - Estimate the effort required for tasks during sprint planning sessions.
  - Use a consistent method for estimation (e.g., story points).

### QUALITY ASSURANCE

- **Code Quality Tools**:
  - Use linters and formatters to maintain code consistency.
  - Perform static code analysis to detect potential issues early.
- **Testing Frameworks**:
  - Utilize standard testing frameworks (e.g., Jest for JavaScript/TypeScript).
  - Implement unit, integration, and end-to-end tests as appropriate.
- **Documentation**:
  - The `SOFTWARE_DEVELOPER` documents code and APIs.
  - The `TESTER` documents test cases and results.
  - Maintain a shared knowledge base accessible to all team members.
  - Update documentation regularly to reflect changes.

### ETHICAL AND COMPLIANCE CONSIDERATIONS

- **Data Privacy**:
  - Handle sensitive data in compliance with relevant data protection regulations (e.g., GDPR).
  - Anonymize or obfuscate sensitive data in development and testing environments.
- **Security Practices**:
  - Implement security best practices, such as input validation and encryption where necessary.
  - Conduct security reviews and address vulnerabilities promptly.
  - Follow the principle of least privilege for access control.

### PERFORMANCE METRICS

- **Key Performance Indicators (KPIs)**:
  - Track metrics such as velocity, code coverage percentage, defect rates, and cycle time.
- **Monitoring**:
  - Implement monitoring tools for deployed applications to track uptime, performance, and resource usage.
  - Set up alerts for critical issues to ensure timely response.
- **Reporting**:
  - Regularly review performance metrics during retrospectives.
  - Use insights from metrics to inform process improvements.

### GENERAL BEST PRACTICES

- **Continuous Improvement**:
  - Embrace a culture of continuous learning and improvement.
  - Encourage team members to suggest enhancements to processes and practices.
- **Collaboration Tools**:
  - Use collaborative tools for communication (e.g., Slack, Microsoft Teams).
  - Maintain version control using systems like Git.
- **Conflict Resolution**:
  - Address conflicts openly and constructively.
  - Seek consensus and involve the `PRODUCT_OWNER` when necessary.

### EXTERNAL RESOURCES

- **@Web**:
  - Consult external resources to verify best practices, architectural decisions, and stay updated with industry standards.
  - Validate information from external sources before implementation.
golang
java
javascript
jest
npm
typescript

First seen in:

lx-0/cursorrules

Used in 1 repository

Vue
// Screen Studio .cursorrules

// Genel İlkeler
- Uygulamanın masaüstü sürümü için Electron framework'ünü kullanın.
- Web sürümü için Nuxt.js framework'ünü kullanın.
- Kodlama standartları olarak ES6+ özelliklerini tercih edin.
- Modüler ve yeniden kullanılabilir bileşenler oluşturun.
- Asenkron işlemler için async/await yapısını kullanın.
- Hata yönetimi için try/catch bloklarını kullanın.
- Kodunuzu anlamlı ve açıklayıcı yorumlarla belgeleyin.

// Electron Uygulaması
- Electron'un en son kararlı sürümünü kullanın.
- Electron'un `BrowserWindow` özelliklerini kullanarak ana pencereyi oluşturun.
- Electron'un `ipcRenderer` ve `ipcMain` modüllerini kullanarak ana süreç ve renderer süreçleri arasında iletişimi sağlayın.
- Electron'un `app` ve `BrowserWindow` nesnelerini doğru şekilde yöneterek uygulamanın yaşam döngüsünü yönetin.
- Electron'un `Menu` ve `MenuItem` modüllerini kullanarak uygulama menüsünü oluşturun.
- Electron'un `dialog` modülünü kullanarak dosya açma ve kaydetme diyaloglarını yönetin.
- Electron'un `nativeImage` modülünü kullanarak uygulama simgesini ayarlayın.
- Electron'un `autoUpdater` modülünü kullanarak uygulama güncellemelerini yönetin.
- Electron'un `session` ve `webContents` özelliklerini kullanarak güvenlik önlemlerini alın.
- Electron'un `powerMonitor` ve `powerSaveBlocker` modüllerini kullanarak enerji yönetimini optimize edin.
- Electron'un `globalShortcut` modülünü kullanarak klavye kısayollarını tanımlayın.
- Electron'un `protocol` modülünü kullanarak özel protokoller oluşturun.
- Electron'un `screen` modülünü kullanarak ekran bilgilerini alın.
- Electron'un `clipboard` modülünü kullanarak panoya veri kopyalayın ve yapıştırın.
- Electron'un `shell` modülünü kullanarak sistem komutlarını çalıştırın.
- Electron'un `app` ve `BrowserWindow` nesnelerini doğru şekilde yöneterek uygulamanın yaşam döngüsünü yönetin.
- Electron'un `Menu` ve `MenuItem` modüllerini kullanarak uygulama menüsünü oluşturun.
- Electron'un `dialog` modülünü kullanarak dosya açma ve kaydetme diyaloglarını yönetin.
- Electron'un `nativeImage` modülünü kullanarak uygulama simgesini ayarlayın.
- Electron'un `autoUpdater` modülünü kullanarak uygulama güncellemelerini yönetin.
- Electron'un `session` ve `webContents` özelliklerini kullanarak güvenlik önlemlerini alın.
- Electron'un `powerMonitor` ve `powerSaveBlocker` modüllerini kullanarak enerji yönetimini optimize edin.
- Electron'un `globalShortcut` modülünü kullanarak klavye kısayollarını tanımlayın.
- Electron'un `protocol` modülünü kullanarak özel protokoller oluşturun.
- Electron'un `screen` modülünü kullanarak ekran bilgilerini alın.
- Electron'un `clipboard` modülünü kullanarak panoya veri kopyalayın ve yapıştırın.
- Electron'un `shell` modülünü kullanarak sistem komutlarını çalıştırın.
- Electron'un `app` ve `BrowserWindow` nesnelerini doğru şekilde yöneterek uygulamanın yaşam döngüsünü yönetin.
- Electron'un `Menu` ve `MenuItem` modüllerini kullanarak uygulama menüsünü oluşturun.
- Electron'un `dialog` modülünü kullanarak dosya açma ve kaydetme diyaloglarını yönetin.
- Electron'un `nativeImage` modülünü kullanarak uygulama simgesini ayarlayın.
- Electron'un `autoUpdater` modülünü kullanarak uygulama güncellemelerini yönetin.
- Electron'un `session` ve `webContents` özelliklerini kullanarak güvenlik önlemlerini alın.
- Electron'un `powerMonitor` ve `powerSaveBlocker` modüllerini kullanarak enerji yönetimini optimize edin.
- Electron'un `globalShortcut` modülünü kullanarak klavye kısayollarını tanımlayın.
- Electron'un `protocol` modülünü kullanarak özel protokoller oluşturun.
- Electron'un `screen` modülünü kullanarak ekran bilgilerini alın.
- Electron'un `clipboard` modülünü kullanarak panoya veri kopyalayın ve yapıştırın.
- Electron'un `shell` modülünü kullanarak sistem komutlarını çalıştırın.
- Electron'un `app` ve `BrowserWindow` nesnelerini doğru şekilde yöneterek uygulamanın yaşam döngüsünü yönetin.
- Electron'un `Menu` ve `MenuItem` modüllerini kullanarak uygulama menüsünü oluşturun.
- Electron'un `dialog` modülünü kullanarak dosya açma ve kaydetme diyaloglarını yönetin.
- Electron'un `nativeImage` modülünü kullanarak uygulama simgesini ayarlayın.
- Electron'un `autoUpdater` modülünü kullanarak uygulama güncellemelerini yönetin.
- Electron'un `session` ve `webContents` özelliklerini kullanarak güvenlik önlemlerini alın.
- Electron'un `powerMonitor` ve `powerSaveBlocker` modüllerini kullanarak enerji yönetimini optimize edin.
- Electron'un `globalShortcut` modülünü kullanarak klavye kısayollarını tanımlayın.
- Electron'un `protocol` modülünü kullanarak özel protokoller oluşturun.
- Electron'un `screen` modülünü kullanarak ekran bilgilerini alın.
- Electron'un `clipboard` modülünü kullanarak panoya veri kopyalayın ve yapıştırın.
- Electron'un `shell` modülünü kullanarak sistem komutlarını çalıştırın.
- Electron'un `app` ve `BrowserWindow` nesnelerini doğru şekilde yöneterek uygulamanın yaşam döngüsünü yönetin.
- Electron'un `Menu` ve `MenuItem` modüllerini kullanarak uygulama menüsünü oluşturun.

 
javascript
nuxt.js
vue

First seen in:

aslanon/sleers

Used in 1 repository

TypeScript
あなたはNext.jsアプリケーションの開発支援エージェントです。以下のYAMLファイルによって要件・履歴・テスト仕様が管理されています。**あなたは、これらのファイルを正確に参照・更新し、一貫性を保ちながら自立的に開発フローを進めてください。**

---

### YAMLファイルの目的およびルール

1. **`structure.yaml`**  
   - アプリ全体のアーキテクチャ、ディレクトリ構造、設計原則を明記する最上位の要件定義ファイル。  
   - 新たな機能追加や大規模なリファクタリング時は、まずここを更新し、上位方針を明確にしてから他ファイルを修正する。

2. **`app.yaml`**  
   - アプリケーションのルーティング階層、主要ページコンポーネント構成、依存関係を詳細に記述する。  
   - 例:`layout.tsx`、`page.tsx`、`todos/page.tsx`などの各ページや関連ファイルの役割・依存を明確化。  
   - 認証状態に基づくルーティング、ページ固有の依存パッケージをここに記載。  
   - 作業発生時(ファイル追加・削除・役割変更)は、ここへ最新状態を必ず反映する。

3. **`components.yaml`**  
   - 再利用可能なコンポーネント群の要件、Props構造、使用先ページとの対応関係を記述。  
   - 新規コンポーネント作成・既存コンポーネントの責務変更時には、更新を必ず行う。

4. **`lib.yaml`**  
   - 共通関数、Hooks、ユーティリティロジック、APIクライアントなどの共通機能部品の要件を定義。  
   - ライブラリ関数の追加・変更時に更新し、その責務や依存を明記する。

5. **`db.yaml`**  
   - データベーススキーマ、APIエンドポイント、永続化層に関わる要件を記述。  
   - 新規モデル追加やスキーマ変更時にここを更新する。

6. **`work_history.yaml`**  
   - 完了した作業、達成タスク、修正履歴を記録する読み取り専用ログファイル。  
   - 作業完了後には、ここにタスク完了を明記する。

7. **`test.yaml`**  
   - テストケース、テスト環境、テスト要件を定義するファイル。  
   - テストケースはここに基づいて生成・実行し、失敗時にはここへ失敗内容を反映して要件調整後に再テストする。

---

### 行動指針・プロセス

- **コード・要件の変更プロセス**  
  1. 要件変更が必要な場合、該当するYAMLファイル(`app.yaml`、`components.yaml`、`lib.yaml`、`db.yaml`など)を参照し、変更点を明確に反映する。  
  2. 要件が最新化されたら、その要件に従ってコード(Next.jsコンポーネント、APIルート、DBアクセスロジック)を修正・生成する。  
  3. 作業完了後は、`work_history.yaml`に変更内容を記録する。

- **一貫性確保**  
  - `structure.yaml`は最上位要件を明記し、その他のYAMLファイルはこれに従う。  
  - `app.yaml`のページ定義・依存関係が変更されたら、`components.yaml`、`lib.yaml`、`db.yaml`へ影響を確認・反映すること。

- **テスト駆動フロー**  
  - `test.yaml`に定義されたテスト仕様に基づいてテストファイルを生成・実行する。  
  - テスト失敗時は、`test.yaml`にその内容を反映し、関連YAML要件を見直した上で再度コード修正・テストを繰り返す。

- **出力フォーマットとツールチェーン**  
  - Next.js、TypeScript、Jest、React Testing Libraryを利用。  
  - 生成物(コード・テスト・YAML更新)には、変更したファイル、役割、依存関係をコメントや説明文で明示。

- **変更履歴管理**  
  - 作業完了時に`work_history.yaml`へ記録し、履歴を辿ることでいつ・どのような変更が行われたか追跡可能な状態を保つ。

---

### 目標

1. **整合性維持**: すべての変更を該当するYAMLファイルに適切に反映し、コードと要件を同期。  
2. **自立的な修正サイクル**: テスト結果や新規要件をトリガーに、YAML更新→コード修正→テスト→履歴記録という一連のフローを自律的に進める。  
3. **透明性・追跡可能性**: `work_history.yaml`によって全てのタスク履歴を明示し、後から変更履歴を参照可能とする。

---

上記ルール・手順・期待値に従い、常に最新のYAMLファイルを参照のうえ、要件整合性を保ちながらコード生成・テスト・修正を進めてください。
css
javascript
jest
next.js
react
typescript
s-sugamura-zappallas/todoapp

Used in 1 repository

Svelte
name: tools.cXc.world
root: frontend/
description: Web4 NFT tools for WAX blockchain using SvelteKit and Wharfkit

You are using Sveltekit, and always use the Sveltekit components and patterns.

You always look at the conde in @nft/setup/+page.svelte to understand the correct way to code. 

# Core blockchain interaction patterns
blockchain_patterns:
  - name: WAX Session Management
    files: src/lib/store.ts
    context:
      - "@wharfkit/session"
      - "@wharfkit/contract"
    related_patterns:
      - "session.subscribe"
      - "transact\\("
      - "permissionLevel"

  - name: Atomic Assets Integration
    files: "**/*.svelte"
    context:
      - "atomicassets"
      - "ExplorerApi"
      - "RpcApi"
    related_files:
      - src/lib/store.ts

# Standard file patterns
patterns:
  - name: NFT Setup Pages
    files: src/routes/nft/**/*.svelte
    context:
      - src/lib/store.ts
      - "@wharfkit/session"
      - "atomicassets"
    blockchain_actions:
      - "createschema"
      - "getCollections"

  - name: UI Components
    files: src/lib/components/ui/**/*
    context:
      - src/app.pcss
      - tailwind.config.js

# Blockchain specific directories
directories:
  src/lib/blockchain:
    description: Blockchain interaction utilities
    related_files:
      - package.json
    dependencies:
      - "@wharfkit/session"
      - "@wharfkit/contract"
      - "atomicassets"

  src/routes/nft:
    description: NFT management pages
    related_files:
      - src/lib/store.ts
    blockchain_context:
      - "ExplorerApi"
      - "createschema"

# Key blockchain configuration
key_files:
  "src/lib/store.ts":
    description: Wharfkit session and blockchain state management
    context:
      - package.json
      - src/routes/nft/setup/+page.svelte

# Transaction patterns to recognize
transaction_patterns:
  - name: Schema Creation
    pattern: |
      {
        account: "atomicassets",
        name: "createschema",
        authorization: [$session.permissionLevel],
        data: schemaData
      }

  - name: Collection Fetching
    pattern: |
      const explorerApi = new ExplorerApi("https://atomic-wax.tacocrypto.io", "atomicassets", { fetch });
      const collections = await explorerApi.getCollections({ author: $session.actor });

# Define blockchain dependencies that should be considered together
dependency_groups:
  wharfkit:
    - "@wharfkit/session"
    - "@wharfkit/contract"
    - "@wharfkit/transact-plugin-autocorrect"
    - "@wharfkit/wallet-plugin-anchor"
    - "@wharfkit/wallet-plugin-cloudwallet"
    - "@wharfkit/wallet-plugin-wombat"
    - "@wharfkit/web-renderer"

  atomic_assets:
    - "atomicassets"

# Define search patterns for blockchain features
features:
  schema_creation:
    search_patterns:
      - "createschema"
      - "atomicassets"
      - "schema_format"
    transaction_context:
      - "authorization"
      - "permissionLevel"
      - "transact"
    related_files:
      - src/routes/nft/setup/+page.svelte
      - src/lib/store.ts

# UI Framework patterns
ui_patterns:
  - name: SvelteKit Pages
    files: src/routes/**/*.svelte
    context:
      - src/app.pcss
      - src/lib/components/ui/**/*

  - name: shadcn-svelte Components
    files: src/lib/components/ui/**/*
    context:
      - tailwind.config.js
      - components.json

# Style configuration
style_config:
  tailwind:
    config_file: tailwind.config.js
    css_file: src/app.pcss
    related_files:
      - components.json
      - .prettierrc

# Development tooling
dev_tools:
  prettier:
    config_file: .prettierrc
    plugins:
      - prettier-plugin-svelte
      - prettier-plugin-tailwindcss

  typescript:
    config_file: tsconfig.json
    compiler_options:
      - strict
      - moduleResolution
      - experimentalDecorators





      Initial Structure (Additional files may exist)


      /
├── LICENSE
├── README.md
├── .gitignore
├── contract/
│   ├── package.json
│   ├── tsconfig.json
│   ├── .prettierrc
│   ├── contract/
│   │   ├── include/
│   │   │   └── gift_star.hpp
│   │   └── src/
│   │       └── gift_star.cpp
│   └── tests/
│       ├── announce.spec.ts
│       ├── claim.spec.ts
│       ├── cancel.spec.ts
│       ├── init.spec.ts
│       ├── transfer.spec.ts
│       └── util.ts
├── frontend/
│   ├── README.md
│   ├── .gitignore
│   ├── .prettierrc
│   ├── .prettierignore
│   ├── .npmrc
│   ├── package.json
│   ├── tsconfig.json
│   ├── svelte.config.js
│   ├── vite.config.ts
│   ├── postcss.config.cjs
│   ├── tailwind.config.js
│   ├── components.json
│   └── src/
│       ├── app.html
│       ├── app.pcss
│       ├── app.d.ts
│       ├── lib/
│       │   ├── components/ui/
│       │   │   ├── alert-dialog/
│       │   │   ├── command/
│       │   │   ├── dialog/
│       │   │   ├── label/
│       │   │   ├── popover/
│       │   │   └── skeleton/
│       │   └── contract.ts
│       └── routes/
│           ├── +layout.svelte
│           ├── +layout.ts
│           ├── +page.svelte
│           └── nft/setup/+page.svelte
c++
css
html
javascript
npm
prettier
shadcn/ui
svelte
+3 more
currentxchange/tools.cXc.world

Used in 1 repository