Skip to content

Commit cebe6cf

Browse files
authored
Merge pull request #1 from Gitmaxd/tavily-search-tool
Tavily search tool
2 parents 4fff460 + d438dd1 commit cebe6cf

32 files changed

+5546
-4448
lines changed

.clinerules

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rules.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<rule>
2+
name: auto_scaffold_memory_bank
3+
description: Offer to scaffold memory-bank folder and template files at project init
4+
filters:
5+
- type: event
6+
pattern: "project_init"
7+
actions:
8+
- type: suggest
9+
message: |
10+
Would you like to scaffold the memory-bank directory?
11+
12+
I will create:
13+
- memory-bank/projectbrief.md
14+
- memory-bank/techContext.md
15+
- memory-bank/systemPatterns.md
16+
- memory-bank/activeContext.md
17+
- memory-bank/progress.md
18+
19+
These provide persistent memory and AI-readable context.
20+
examples:
21+
- input: "Starting a new AI project"
22+
output: "Prompt to scaffold memory-bank structure"
23+
metadata:
24+
priority: low
25+
version: 1.0
26+
</rule>
+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<rule>
2+
name: cursor_rules_location
3+
description: Standards for placing Cursor rule files in the correct directory
4+
filters:
5+
- type: file_extension
6+
pattern: "\.mdc$"
7+
- type: content
8+
pattern: "(?s)<rule>.*?</rule>"
9+
- type: event
10+
pattern: "file_create"
11+
actions:
12+
- type: reject
13+
conditions:
14+
- pattern: "^(?!\.\/\.cursor\/rules\/.*\.mdc$)"
15+
message: "Cursor rule files (.mdc) must be placed in the .cursor/rules directory"
16+
- type: suggest
17+
message: |
18+
When creating Cursor rules:
19+
20+
1. Always place rule files in PROJECT_ROOT/.cursor/rules/:
21+
.cursor/rules/
22+
├── your-rule-name.mdc
23+
├── another-rule.mdc
24+
└── ...
25+
26+
2. Follow the naming convention:
27+
- Use kebab-case for filenames
28+
- Always use .mdc extension
29+
- Make names descriptive of the rule's purpose
30+
31+
3. Directory structure:
32+
PROJECT_ROOT/
33+
├── .cursor/
34+
│ └── rules/
35+
│ ├── your-rule-name.mdc
36+
│ └── ...
37+
└── ...
38+
39+
4. Never place rule files:
40+
- In the project root
41+
- In subdirectories outside .cursor/rules
42+
- In any other location
43+
examples:
44+
- input: |
45+
# Bad: Rule file in wrong location
46+
rules/my-rule.mdc
47+
my-rule.mdc
48+
.rules/my-rule.mdc
49+
50+
# Good: Rule file in correct location
51+
.cursor/rules/my-rule.mdc
52+
output: "Correctly placed Cursor rule file"
53+
metadata:
54+
priority: high
55+
version: 1.0
56+
</rule>
+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<rule>
2+
name: memory_bank_enforcement
3+
description: Ensure required memory-bank files exist in correct location
4+
filters:
5+
- type: event
6+
pattern: "file_create"
7+
- type: path
8+
pattern: "^memory-bank/.*\.md$"
9+
actions:
10+
- type: reject
11+
conditions:
12+
- pattern: "^(?!memory-bank/(projectbrief|techContext|systemPatterns|activeContext|progress)\.md$)"
13+
message: "Memory Bank files must be one of the approved names and placed in memory-bank/"
14+
- type: suggest
15+
message: |
16+
Missing standard memory-bank files? You can create:
17+
18+
- memory-bank/projectbrief.md
19+
- memory-bank/techContext.md
20+
- memory-bank/systemPatterns.md
21+
- memory-bank/activeContext.md
22+
- memory-bank/progress.md
23+
24+
Use them to provide long-term project memory and context.
25+
examples:
26+
- input: "memory-bank/projectbrief.md"
27+
output: "Valid memory-bank file"
28+
metadata:
29+
priority: high
30+
version: 1.0
31+
</rule>

.cursor/rules/naming_conventions.mdc

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<rule>
2+
name: naming_conventions
3+
description: Enforce proper naming conventions based on file type and purpose
4+
filters:
5+
- type: file_extension
6+
pattern: "\.(js|ts|tsx|md)$"
7+
actions:
8+
- type: suggest
9+
message: |
10+
File naming conventions for this project:
11+
12+
1. React Component Files (.tsx):
13+
- Use PascalCase (e.g., Button.tsx, UserProfile.tsx)
14+
15+
2. Pages and Routes:
16+
- Use kebab-case for page files (e.g., about-us.tsx)
17+
- Use snake_case for dynamic route segments (e.g., [product_id].tsx)
18+
- Use lowercase for special files (page.tsx, layout.tsx, loading.tsx)
19+
20+
3. Utility & Config Files (.js, .ts):
21+
- Use kebab-case (e.g., api-helpers.ts, date-utils.ts)
22+
23+
4. Documentation files (.md):
24+
- Use kebab-case (e.g., getting-started.md)
25+
examples:
26+
- input: "src/components/Button.tsx"
27+
output: "Valid: PascalCase for component files"
28+
- input: "src/utils/date-helpers.ts"
29+
output: "Valid: kebab-case for utility files"
30+
- input: "src/app/about-us/page.tsx"
31+
output: "Valid: kebab-case for routes, lowercase for special files"
32+
metadata:
33+
priority: medium
34+
version: 1.1
35+
</rule>
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<rule>
2+
name: ui_component_patterns
3+
description: Enforce consistent folder structure and naming for UI components
4+
filters:
5+
- type: path
6+
pattern: "^src/components/.*\.(tsx|jsx)$"
7+
actions:
8+
- type: suggest
9+
message: |
10+
UI component files should:
11+
- Be placed inside src/components/ directory
12+
- Use PascalCase for both the component name and the filename
13+
- Export the component as default or named export matching the file name
14+
- Follow single-responsibility principle
15+
16+
Example component structure:
17+
```
18+
src/components/
19+
├── Button.tsx # Basic UI component
20+
├── UserProfile/ # Complex component with subcomponents
21+
│ ├── index.tsx # Main component export
22+
│ ├── ProfileImage.tsx
23+
│ └── UserDetails.tsx
24+
└── Layout/
25+
├── index.tsx
26+
└── Header.tsx
27+
```
28+
examples:
29+
- input: "src/components/Button.tsx"
30+
output: "Valid: PascalCase for component file"
31+
- input: "src/components/user-profile.tsx"
32+
output: "Invalid: Should use PascalCase (UserProfile.tsx)"
33+
- input: "components/UserProfile.tsx"
34+
output: "Valid: Correctly uses PascalCase"
35+
metadata:
36+
priority: medium
37+
version: 1.1
38+
</rule>

.cursorrules

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rules.yaml

.env.example

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ GOOGLE_API_KEY=""
99

1010
# Optional
1111
# ANTHROPIC_API_KEY=""
12-
# FINANCIAL_DATASETS_API_KEY=""
12+
# FINANCIAL_DATASETS_API_KEY=""
13+
# TAVILY_API_KEY=""

.windsurfrules

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rules.yaml

0 commit comments

Comments
 (0)