Skip to content

Commit 7be3144

Browse files
committed
chore: add environment configuration and update .gitignore
- Created .env.example file to outline required API keys for various providers. - Updated .gitignore to include additional files and directories related to development and environment variables. - Added .taskmasterconfig file for project configuration settings. - Introduced new Cursor rules for maintaining consistency in development workflows and self-improvement guidelines. - Added new UI components including Calendar, Checkbox, Dialog, Popover, Slider, and Tabs with respective functionalities. - Implemented data table filter components and utilities for enhanced filtering capabilities. - Updated package dependencies to ensure compatibility and performance improvements.
1 parent 2dc3e5b commit 7be3144

45 files changed

Lines changed: 5994 additions & 179 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cursor/rules/cursor_rules.mdc

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
description: Guidelines for creating and maintaining Cursor rules to ensure consistency and effectiveness.
3+
globs: .cursor/rules/*.mdc
4+
alwaysApply: true
5+
---
6+
7+
- **Required Rule Structure:**
8+
```markdown
9+
---
10+
description: Clear, one-line description of what the rule enforces
11+
globs: path/to/files/*.ext, other/path/**/*
12+
alwaysApply: boolean
13+
---
14+
15+
- **Main Points in Bold**
16+
- Sub-points with details
17+
- Examples and explanations
18+
```
19+
20+
- **File References:**
21+
- Use `[filename](mdc:path/to/file)` ([filename](mdc:filename)) to reference files
22+
- Example: [prisma.mdc](mdc:.cursor/rules/prisma.mdc) for rule references
23+
- Example: [schema.prisma](mdc:prisma/schema.prisma) for code references
24+
25+
- **Code Examples:**
26+
- Use language-specific code blocks
27+
```typescript
28+
// ✅ DO: Show good examples
29+
const goodExample = true;
30+
31+
// ❌ DON'T: Show anti-patterns
32+
const badExample = false;
33+
```
34+
35+
- **Rule Content Guidelines:**
36+
- Start with high-level overview
37+
- Include specific, actionable requirements
38+
- Show examples of correct implementation
39+
- Reference existing code when possible
40+
- Keep rules DRY by referencing other rules
41+
42+
- **Rule Maintenance:**
43+
- Update rules when new patterns emerge
44+
- Add examples from actual codebase
45+
- Remove outdated patterns
46+
- Cross-reference related rules
47+
48+
- **Best Practices:**
49+
- Use bullet points for clarity
50+
- Keep descriptions concise
51+
- Include both DO and DON'T examples
52+
- Reference actual code over theoretical examples
53+
- Use consistent formatting across rules

.cursor/rules/dev_workflow.mdc

Lines changed: 219 additions & 0 deletions
Large diffs are not rendered by default.

.cursor/rules/self_improve.mdc

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
---
2+
description: Guidelines for continuously improving Cursor rules based on emerging code patterns and best practices.
3+
globs: **/*
4+
alwaysApply: true
5+
---
6+
7+
- **Rule Improvement Triggers:**
8+
- New code patterns not covered by existing rules
9+
- Repeated similar implementations across files
10+
- Common error patterns that could be prevented
11+
- New libraries or tools being used consistently
12+
- Emerging best practices in the codebase
13+
14+
- **Analysis Process:**
15+
- Compare new code with existing rules
16+
- Identify patterns that should be standardized
17+
- Look for references to external documentation
18+
- Check for consistent error handling patterns
19+
- Monitor test patterns and coverage
20+
21+
- **Rule Updates:**
22+
- **Add New Rules When:**
23+
- A new technology/pattern is used in 3+ files
24+
- Common bugs could be prevented by a rule
25+
- Code reviews repeatedly mention the same feedback
26+
- New security or performance patterns emerge
27+
28+
- **Modify Existing Rules When:**
29+
- Better examples exist in the codebase
30+
- Additional edge cases are discovered
31+
- Related rules have been updated
32+
- Implementation details have changed
33+
34+
- **Example Pattern Recognition:**
35+
```typescript
36+
// If you see repeated patterns like:
37+
const data = await prisma.user.findMany({
38+
select: { id: true, email: true },
39+
where: { status: 'ACTIVE' }
40+
});
41+
42+
// Consider adding to [prisma.mdc](mdc:.cursor/rules/prisma.mdc):
43+
// - Standard select fields
44+
// - Common where conditions
45+
// - Performance optimization patterns
46+
```
47+
48+
- **Rule Quality Checks:**
49+
- Rules should be actionable and specific
50+
- Examples should come from actual code
51+
- References should be up to date
52+
- Patterns should be consistently enforced
53+
54+
- **Continuous Improvement:**
55+
- Monitor code review comments
56+
- Track common development questions
57+
- Update rules after major refactors
58+
- Add links to relevant documentation
59+
- Cross-reference related rules
60+
61+
- **Rule Deprecation:**
62+
- Mark outdated patterns as deprecated
63+
- Remove rules that no longer apply
64+
- Update references to deprecated rules
65+
- Document migration paths for old patterns
66+
67+
- **Documentation Updates:**
68+
- Keep examples synchronized with code
69+
- Update references to external docs
70+
- Maintain links between related rules
71+
- Document breaking changes
72+
Follow [cursor_rules.mdc](mdc:.cursor/rules/cursor_rules.mdc) for proper rule formatting and structure.

.cursor/rules/taskmaster.mdc

Lines changed: 382 additions & 0 deletions
Large diffs are not rendered by default.

.env.example

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# API Keys (Required to enable respective provider)
2+
ANTHROPIC_API_KEY=your_anthropic_api_key_here # Required: Format: sk-ant-api03-...
3+
PERPLEXITY_API_KEY=your_perplexity_api_key_here # Optional: Format: pplx-...
4+
OPENAI_API_KEY=your_openai_api_key_here # Optional, for OpenAI/OpenRouter models. Format: sk-proj-...
5+
GOOGLE_API_KEY=your_google_api_key_here # Optional, for Google Gemini models.
6+
MISTRAL_API_KEY=your_mistral_key_here # Optional, for Mistral AI models.
7+
XAI_API_KEY=YOUR_XAI_KEY_HERE # Optional, for xAI AI models.
8+
AZURE_OPENAI_API_KEY=your_azure_key_here # Optional, for Azure OpenAI models (requires endpoint in .taskmasterconfig).

.gitignore

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,4 +182,21 @@ dist
182182
storybook-static
183183

184184
# React Router v7
185-
.react-router/
185+
.react-router/
186+
187+
# Added by Claude Task Master
188+
*.log
189+
npm-debug.log*
190+
dev-debug.log
191+
# Environment variables
192+
# Editor directories and files
193+
.vscode
194+
*.suo
195+
*.ntvs*
196+
*.njsproj
197+
*.sln
198+
*.sw?
199+
# OS specific
200+
# Task files
201+
tasks.json
202+
tasks/

.taskmasterconfig

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"models": {
3+
"main": {
4+
"provider": "anthropic",
5+
"modelId": "claude-3-7-sonnet-20250219",
6+
"maxTokens": 120000,
7+
"temperature": 0.2
8+
},
9+
"research": {
10+
"provider": "perplexity",
11+
"modelId": "sonar-pro",
12+
"maxTokens": 8700,
13+
"temperature": 0.1
14+
},
15+
"fallback": {
16+
"provider": "anthropic",
17+
"modelId": "claude-3.5-sonnet-20240620",
18+
"maxTokens": 120000,
19+
"temperature": 0.1
20+
}
21+
},
22+
"global": {
23+
"logLevel": "info",
24+
"debug": false,
25+
"defaultSubtasks": 5,
26+
"defaultPriority": "medium",
27+
"projectName": "Taskmaster",
28+
"ollamaBaseUrl": "http://localhost:11434/api",
29+
"azureOpenaiBaseUrl": "https://your-endpoint.openai.azure.com/"
30+
}
31+
}

apps/docs/src/lib/storybook/react-router-stub.tsx

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
import { Command } from '@lambdacurry/forms/ui';
12
import type { Decorator } from '@storybook/react';
3+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
4+
import { NuqsAdapter } from 'nuqs/adapters/react-router/v7';
25
import type { ComponentType } from 'react';
6+
import { DayPickerProvider } from 'react-day-picker';
37
import {
48
type ActionFunction,
59
type IndexRouteObject,
@@ -40,6 +44,9 @@ interface RemixStubOptions {
4044
initialPath?: string;
4145
}
4246

47+
// Create a single QueryClient instance outside the decorator
48+
const queryClient = new QueryClient();
49+
4350
export const withReactRouterStubDecorator = (options: RemixStubOptions): Decorator => {
4451
const { routes, initialPath = '/' } = options;
4552
// This outer function runs once when Storybook loads the story meta
@@ -53,13 +60,11 @@ export const withReactRouterStubDecorator = (options: RemixStubOptions): Decorat
5360

5461
// Get the base path (without existing query params from options)
5562
const basePath = initialPath.split('?')[0];
56-
63+
5764
// Get the current search string from the actual browser window, if available
5865
// If not available, use a default search string with parameters needed for the data table
59-
const currentWindowSearch = typeof window !== 'undefined'
60-
? window.location.search
61-
: '?page=0&pageSize=10';
62-
66+
const currentWindowSearch = typeof window !== 'undefined' ? window.location.search : '?page=0&pageSize=10';
67+
6368
// Combine them for the initial entry
6469
const actualInitialPath = `${basePath}${currentWindowSearch}`;
6570

@@ -69,7 +74,18 @@ export const withReactRouterStubDecorator = (options: RemixStubOptions): Decorat
6974
initialEntries: [actualInitialPath], // Use the path combined with window.location.search
7075
});
7176

72-
return <RouterProvider router={router} />;
77+
// Wrap existing providers with QueryClientProvider and DayPickerProvider
78+
return (
79+
<QueryClientProvider client={queryClient}>
80+
<DayPickerProvider initialProps={{}}>
81+
<NuqsAdapter>
82+
<Command>
83+
<RouterProvider router={router} />
84+
</Command>
85+
</NuqsAdapter>
86+
</DayPickerProvider>
87+
</QueryClientProvider>
88+
);
7389
};
7490
};
7591

0 commit comments

Comments
 (0)