autoworkflow 3.1.4 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/analyze.md +19 -0
- package/.claude/commands/audit.md +174 -11
- package/.claude/commands/build.md +39 -0
- package/.claude/commands/commit.md +25 -0
- package/.claude/commands/fix.md +23 -0
- package/.claude/commands/plan.md +18 -0
- package/.claude/commands/suggest.md +23 -0
- package/.claude/commands/verify.md +18 -0
- package/.claude/hooks/post-bash-router.sh +20 -0
- package/.claude/hooks/post-commit.sh +140 -0
- package/.claude/hooks/pre-edit.sh +129 -0
- package/.claude/hooks/session-check.sh +79 -0
- package/.claude/settings.json +40 -6
- package/.claude/settings.local.json +3 -1
- package/.claude/skills/actix.md +337 -0
- package/.claude/skills/alembic.md +504 -0
- package/.claude/skills/angular.md +237 -0
- package/.claude/skills/api-design.md +187 -0
- package/.claude/skills/aspnet-core.md +377 -0
- package/.claude/skills/astro.md +245 -0
- package/.claude/skills/auth-clerk.md +327 -0
- package/.claude/skills/auth-firebase.md +367 -0
- package/.claude/skills/auth-nextauth.md +359 -0
- package/.claude/skills/auth-supabase.md +368 -0
- package/.claude/skills/axum.md +386 -0
- package/.claude/skills/blazor.md +456 -0
- package/.claude/skills/chi.md +348 -0
- package/.claude/skills/code-review.md +133 -0
- package/.claude/skills/csharp.md +296 -0
- package/.claude/skills/css-modules.md +325 -0
- package/.claude/skills/cypress.md +343 -0
- package/.claude/skills/debugging.md +133 -0
- package/.claude/skills/diesel.md +392 -0
- package/.claude/skills/django.md +301 -0
- package/.claude/skills/docker.md +319 -0
- package/.claude/skills/doctrine.md +473 -0
- package/.claude/skills/documentation.md +182 -0
- package/.claude/skills/dotnet.md +409 -0
- package/.claude/skills/drizzle.md +293 -0
- package/.claude/skills/echo.md +321 -0
- package/.claude/skills/eloquent.md +256 -0
- package/.claude/skills/emotion.md +426 -0
- package/.claude/skills/entity-framework.md +370 -0
- package/.claude/skills/express.md +316 -0
- package/.claude/skills/fastapi.md +329 -0
- package/.claude/skills/fastify.md +299 -0
- package/.claude/skills/fiber.md +315 -0
- package/.claude/skills/flask.md +322 -0
- package/.claude/skills/gin.md +342 -0
- package/.claude/skills/git.md +116 -0
- package/.claude/skills/github-actions.md +353 -0
- package/.claude/skills/go.md +377 -0
- package/.claude/skills/gorm.md +409 -0
- package/.claude/skills/graphql.md +478 -0
- package/.claude/skills/hibernate.md +379 -0
- package/.claude/skills/hono.md +306 -0
- package/.claude/skills/java.md +400 -0
- package/.claude/skills/jest.md +313 -0
- package/.claude/skills/jpa.md +282 -0
- package/.claude/skills/kotlin.md +347 -0
- package/.claude/skills/kubernetes.md +363 -0
- package/.claude/skills/laravel.md +414 -0
- package/.claude/skills/mcp-browser.md +320 -0
- package/.claude/skills/mcp-database.md +219 -0
- package/.claude/skills/mcp-fetch.md +241 -0
- package/.claude/skills/mcp-filesystem.md +204 -0
- package/.claude/skills/mcp-github.md +217 -0
- package/.claude/skills/mcp-memory.md +240 -0
- package/.claude/skills/mcp-search.md +218 -0
- package/.claude/skills/mcp-slack.md +262 -0
- package/.claude/skills/micronaut.md +388 -0
- package/.claude/skills/mongodb.md +319 -0
- package/.claude/skills/mongoose.md +355 -0
- package/.claude/skills/mysql.md +281 -0
- package/.claude/skills/nestjs.md +335 -0
- package/.claude/skills/nextjs-app-router.md +260 -0
- package/.claude/skills/nextjs-pages.md +172 -0
- package/.claude/skills/nuxt.md +202 -0
- package/.claude/skills/openapi.md +489 -0
- package/.claude/skills/performance.md +199 -0
- package/.claude/skills/php.md +398 -0
- package/.claude/skills/playwright.md +371 -0
- package/.claude/skills/postgresql.md +257 -0
- package/.claude/skills/prisma.md +293 -0
- package/.claude/skills/pydantic.md +304 -0
- package/.claude/skills/pytest.md +313 -0
- package/.claude/skills/python.md +272 -0
- package/.claude/skills/quarkus.md +377 -0
- package/.claude/skills/react.md +230 -0
- package/.claude/skills/redis.md +391 -0
- package/.claude/skills/refactoring.md +143 -0
- package/.claude/skills/remix.md +246 -0
- package/.claude/skills/rest-api.md +490 -0
- package/.claude/skills/rocket.md +366 -0
- package/.claude/skills/rust.md +341 -0
- package/.claude/skills/sass.md +380 -0
- package/.claude/skills/sea-orm.md +382 -0
- package/.claude/skills/security.md +167 -0
- package/.claude/skills/sequelize.md +395 -0
- package/.claude/skills/spring-boot.md +416 -0
- package/.claude/skills/sqlalchemy.md +269 -0
- package/.claude/skills/sqlx-rust.md +408 -0
- package/.claude/skills/state-jotai.md +346 -0
- package/.claude/skills/state-mobx.md +353 -0
- package/.claude/skills/state-pinia.md +431 -0
- package/.claude/skills/state-redux.md +337 -0
- package/.claude/skills/state-tanstack-query.md +434 -0
- package/.claude/skills/state-zustand.md +340 -0
- package/.claude/skills/styled-components.md +403 -0
- package/.claude/skills/svelte.md +238 -0
- package/.claude/skills/sveltekit.md +207 -0
- package/.claude/skills/symfony.md +437 -0
- package/.claude/skills/tailwind.md +279 -0
- package/.claude/skills/terraform.md +394 -0
- package/.claude/skills/testing-library.md +371 -0
- package/.claude/skills/trpc.md +426 -0
- package/.claude/skills/typeorm.md +368 -0
- package/.claude/skills/vitest.md +330 -0
- package/.claude/skills/vue.md +202 -0
- package/.claude/skills/warp.md +365 -0
- package/README.md +135 -52
- package/package.json +1 -1
- package/system/triggers.md +152 -11
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# MCP GitHub Skill
|
|
2
|
+
|
|
3
|
+
## Server Configuration
|
|
4
|
+
\`\`\`json
|
|
5
|
+
// claude_desktop_config.json or .claude/settings.json
|
|
6
|
+
{
|
|
7
|
+
"mcpServers": {
|
|
8
|
+
"github": {
|
|
9
|
+
"command": "npx",
|
|
10
|
+
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
11
|
+
"env": {
|
|
12
|
+
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
\`\`\`
|
|
18
|
+
|
|
19
|
+
## Authentication Setup
|
|
20
|
+
\`\`\`bash
|
|
21
|
+
# Create a GitHub Personal Access Token (PAT)
|
|
22
|
+
# Settings > Developer settings > Personal access tokens > Fine-grained tokens
|
|
23
|
+
|
|
24
|
+
# Required scopes for full functionality:
|
|
25
|
+
# - Repository access: All repositories (or specific repos)
|
|
26
|
+
# - Permissions:
|
|
27
|
+
# - Contents: Read and write
|
|
28
|
+
# - Issues: Read and write
|
|
29
|
+
# - Pull requests: Read and write
|
|
30
|
+
# - Metadata: Read-only
|
|
31
|
+
|
|
32
|
+
# Store token securely
|
|
33
|
+
export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_xxxxxxxxxxxx"
|
|
34
|
+
\`\`\`
|
|
35
|
+
|
|
36
|
+
## Available Tools
|
|
37
|
+
|
|
38
|
+
### Repository Operations
|
|
39
|
+
\`\`\`
|
|
40
|
+
get_file_contents
|
|
41
|
+
- owner: string (repo owner)
|
|
42
|
+
- repo: string (repository name)
|
|
43
|
+
- path: string (file path)
|
|
44
|
+
- branch?: string (optional branch)
|
|
45
|
+
|
|
46
|
+
push_files
|
|
47
|
+
- owner: string
|
|
48
|
+
- repo: string
|
|
49
|
+
- branch: string
|
|
50
|
+
- files: array of { path, content }
|
|
51
|
+
- message: string (commit message)
|
|
52
|
+
|
|
53
|
+
create_repository
|
|
54
|
+
- name: string
|
|
55
|
+
- description?: string
|
|
56
|
+
- private?: boolean
|
|
57
|
+
- auto_init?: boolean
|
|
58
|
+
|
|
59
|
+
fork_repository
|
|
60
|
+
- owner: string
|
|
61
|
+
- repo: string
|
|
62
|
+
|
|
63
|
+
create_branch
|
|
64
|
+
- owner: string
|
|
65
|
+
- repo: string
|
|
66
|
+
- branch: string
|
|
67
|
+
- from_branch?: string
|
|
68
|
+
|
|
69
|
+
search_repositories
|
|
70
|
+
- query: string (GitHub search syntax)
|
|
71
|
+
- page?: number
|
|
72
|
+
- per_page?: number
|
|
73
|
+
|
|
74
|
+
search_code
|
|
75
|
+
- query: string
|
|
76
|
+
- page?: number
|
|
77
|
+
- per_page?: number
|
|
78
|
+
\`\`\`
|
|
79
|
+
|
|
80
|
+
### Issue Operations
|
|
81
|
+
\`\`\`
|
|
82
|
+
create_issue
|
|
83
|
+
- owner: string
|
|
84
|
+
- repo: string
|
|
85
|
+
- title: string
|
|
86
|
+
- body?: string
|
|
87
|
+
- assignees?: string[]
|
|
88
|
+
- labels?: string[]
|
|
89
|
+
- milestone?: number
|
|
90
|
+
|
|
91
|
+
update_issue
|
|
92
|
+
- owner: string
|
|
93
|
+
- repo: string
|
|
94
|
+
- issue_number: number
|
|
95
|
+
- title?: string
|
|
96
|
+
- body?: string
|
|
97
|
+
- state?: 'open' | 'closed'
|
|
98
|
+
- assignees?: string[]
|
|
99
|
+
- labels?: string[]
|
|
100
|
+
|
|
101
|
+
get_issue
|
|
102
|
+
- owner: string
|
|
103
|
+
- repo: string
|
|
104
|
+
- issue_number: number
|
|
105
|
+
|
|
106
|
+
list_issues
|
|
107
|
+
- owner: string
|
|
108
|
+
- repo: string
|
|
109
|
+
- state?: 'open' | 'closed' | 'all'
|
|
110
|
+
- labels?: string
|
|
111
|
+
- sort?: 'created' | 'updated' | 'comments'
|
|
112
|
+
- direction?: 'asc' | 'desc'
|
|
113
|
+
|
|
114
|
+
add_issue_comment
|
|
115
|
+
- owner: string
|
|
116
|
+
- repo: string
|
|
117
|
+
- issue_number: number
|
|
118
|
+
- body: string
|
|
119
|
+
\`\`\`
|
|
120
|
+
|
|
121
|
+
### Pull Request Operations
|
|
122
|
+
\`\`\`
|
|
123
|
+
create_pull_request
|
|
124
|
+
- owner: string
|
|
125
|
+
- repo: string
|
|
126
|
+
- title: string
|
|
127
|
+
- body?: string
|
|
128
|
+
- head: string (source branch)
|
|
129
|
+
- base: string (target branch)
|
|
130
|
+
- draft?: boolean
|
|
131
|
+
|
|
132
|
+
get_pull_request
|
|
133
|
+
- owner: string
|
|
134
|
+
- repo: string
|
|
135
|
+
- pull_number: number
|
|
136
|
+
|
|
137
|
+
list_pull_requests
|
|
138
|
+
- owner: string
|
|
139
|
+
- repo: string
|
|
140
|
+
- state?: 'open' | 'closed' | 'all'
|
|
141
|
+
- head?: string
|
|
142
|
+
- base?: string
|
|
143
|
+
- sort?: 'created' | 'updated' | 'popularity'
|
|
144
|
+
|
|
145
|
+
create_review
|
|
146
|
+
- owner: string
|
|
147
|
+
- repo: string
|
|
148
|
+
- pull_number: number
|
|
149
|
+
- body?: string
|
|
150
|
+
- event: 'APPROVE' | 'REQUEST_CHANGES' | 'COMMENT'
|
|
151
|
+
- comments?: array (inline comments)
|
|
152
|
+
|
|
153
|
+
merge_pull_request
|
|
154
|
+
- owner: string
|
|
155
|
+
- repo: string
|
|
156
|
+
- pull_number: number
|
|
157
|
+
- commit_title?: string
|
|
158
|
+
- merge_method?: 'merge' | 'squash' | 'rebase'
|
|
159
|
+
\`\`\`
|
|
160
|
+
|
|
161
|
+
## Common Workflows
|
|
162
|
+
|
|
163
|
+
### Create Issue from Bug Report
|
|
164
|
+
\`\`\`
|
|
165
|
+
1. Use create_issue with detailed description
|
|
166
|
+
2. Add appropriate labels (bug, priority)
|
|
167
|
+
3. Assign to team member
|
|
168
|
+
4. Link to related issues in body
|
|
169
|
+
\`\`\`
|
|
170
|
+
|
|
171
|
+
### Review and Merge PR
|
|
172
|
+
\`\`\`
|
|
173
|
+
1. Use get_pull_request to fetch PR details
|
|
174
|
+
2. Use get_file_contents to review changed files
|
|
175
|
+
3. Use create_review to approve or request changes
|
|
176
|
+
4. Use merge_pull_request with squash method
|
|
177
|
+
\`\`\`
|
|
178
|
+
|
|
179
|
+
### Search and Analyze Code
|
|
180
|
+
\`\`\`
|
|
181
|
+
1. Use search_code with GitHub search syntax
|
|
182
|
+
- "filename:*.ts extension:ts"
|
|
183
|
+
- "function useAuth language:typescript"
|
|
184
|
+
2. Use get_file_contents to read matching files
|
|
185
|
+
3. Analyze patterns across repositories
|
|
186
|
+
\`\`\`
|
|
187
|
+
|
|
188
|
+
## GitHub Search Syntax
|
|
189
|
+
\`\`\`
|
|
190
|
+
# Repository search
|
|
191
|
+
stars:>1000 language:typescript
|
|
192
|
+
topic:react pushed:>2024-01-01
|
|
193
|
+
|
|
194
|
+
# Code search
|
|
195
|
+
filename:package.json "react"
|
|
196
|
+
extension:ts "interface User"
|
|
197
|
+
repo:owner/name path:src/ "function"
|
|
198
|
+
|
|
199
|
+
# Issue search
|
|
200
|
+
is:issue is:open label:bug
|
|
201
|
+
author:username created:>2024-01-01
|
|
202
|
+
\`\`\`
|
|
203
|
+
|
|
204
|
+
## ❌ DON'T
|
|
205
|
+
- Commit PAT tokens to repositories
|
|
206
|
+
- Use overly broad token permissions
|
|
207
|
+
- Create spam issues or PRs
|
|
208
|
+
- Push directly to protected branches
|
|
209
|
+
- Forget to handle rate limiting
|
|
210
|
+
|
|
211
|
+
## ✅ DO
|
|
212
|
+
- Use fine-grained PATs with minimal scopes
|
|
213
|
+
- Store tokens in environment variables
|
|
214
|
+
- Use meaningful commit messages
|
|
215
|
+
- Follow repository contributing guidelines
|
|
216
|
+
- Handle pagination for large result sets
|
|
217
|
+
- Respect rate limits (5000 requests/hour)
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# MCP Memory Skill
|
|
2
|
+
|
|
3
|
+
## Server Configuration
|
|
4
|
+
\`\`\`json
|
|
5
|
+
// claude_desktop_config.json or .claude/settings.json
|
|
6
|
+
{
|
|
7
|
+
"mcpServers": {
|
|
8
|
+
"memory": {
|
|
9
|
+
"command": "npx",
|
|
10
|
+
"args": ["-y", "@modelcontextprotocol/server-memory"]
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
\`\`\`
|
|
15
|
+
|
|
16
|
+
## Knowledge Graph Architecture
|
|
17
|
+
The memory server uses a knowledge graph model with:
|
|
18
|
+
- **Entities**: Nodes representing concepts, people, projects, etc.
|
|
19
|
+
- **Relations**: Edges connecting entities with named relationships
|
|
20
|
+
- **Observations**: Facts or attributes about entities
|
|
21
|
+
|
|
22
|
+
## Available Tools
|
|
23
|
+
|
|
24
|
+
### Entity Operations
|
|
25
|
+
\`\`\`
|
|
26
|
+
create_entities
|
|
27
|
+
- entities: array of {
|
|
28
|
+
name: string (unique identifier),
|
|
29
|
+
entityType: string (e.g., "person", "project", "concept"),
|
|
30
|
+
observations: string[] (facts about the entity)
|
|
31
|
+
}
|
|
32
|
+
- Returns: created entities
|
|
33
|
+
|
|
34
|
+
delete_entities
|
|
35
|
+
- entityNames: string[]
|
|
36
|
+
- Returns: success status
|
|
37
|
+
|
|
38
|
+
read_graph
|
|
39
|
+
- Returns: full knowledge graph with all entities and relations
|
|
40
|
+
|
|
41
|
+
search_nodes
|
|
42
|
+
- query: string (search term)
|
|
43
|
+
- Returns: matching entities and their relations
|
|
44
|
+
|
|
45
|
+
open_nodes
|
|
46
|
+
- names: string[]
|
|
47
|
+
- Returns: specified entities with all observations and relations
|
|
48
|
+
\`\`\`
|
|
49
|
+
|
|
50
|
+
### Relation Operations
|
|
51
|
+
\`\`\`
|
|
52
|
+
create_relations
|
|
53
|
+
- relations: array of {
|
|
54
|
+
from: string (source entity name),
|
|
55
|
+
to: string (target entity name),
|
|
56
|
+
relationType: string (e.g., "works_on", "knows", "part_of")
|
|
57
|
+
}
|
|
58
|
+
- Returns: created relations
|
|
59
|
+
|
|
60
|
+
delete_relations
|
|
61
|
+
- relations: array of { from, to, relationType }
|
|
62
|
+
- Returns: success status
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
### Observation Operations
|
|
66
|
+
\`\`\`
|
|
67
|
+
add_observations
|
|
68
|
+
- observations: array of {
|
|
69
|
+
entityName: string,
|
|
70
|
+
contents: string[] (new facts to add)
|
|
71
|
+
}
|
|
72
|
+
- Returns: updated entities
|
|
73
|
+
|
|
74
|
+
delete_observations
|
|
75
|
+
- deletions: array of {
|
|
76
|
+
entityName: string,
|
|
77
|
+
observations: string[] (facts to remove)
|
|
78
|
+
}
|
|
79
|
+
- Returns: success status
|
|
80
|
+
\`\`\`
|
|
81
|
+
|
|
82
|
+
## Knowledge Patterns
|
|
83
|
+
|
|
84
|
+
### Person Profile
|
|
85
|
+
\`\`\`
|
|
86
|
+
Entity: "John Smith"
|
|
87
|
+
Type: "person"
|
|
88
|
+
Observations:
|
|
89
|
+
- "Senior software engineer at TechCorp"
|
|
90
|
+
- "Prefers TypeScript over JavaScript"
|
|
91
|
+
- "Works remotely from Seattle"
|
|
92
|
+
- "Expert in React and Node.js"
|
|
93
|
+
|
|
94
|
+
Relations:
|
|
95
|
+
- John Smith --works_on--> "Project Alpha"
|
|
96
|
+
- John Smith --manages--> "Frontend Team"
|
|
97
|
+
- John Smith --knows--> "Jane Doe"
|
|
98
|
+
\`\`\`
|
|
99
|
+
|
|
100
|
+
### Project Knowledge
|
|
101
|
+
\`\`\`
|
|
102
|
+
Entity: "Project Alpha"
|
|
103
|
+
Type: "project"
|
|
104
|
+
Observations:
|
|
105
|
+
- "E-commerce platform rebuild"
|
|
106
|
+
- "Stack: Next.js, PostgreSQL, Redis"
|
|
107
|
+
- "Launch target: Q2 2025"
|
|
108
|
+
- "Budget: $500K"
|
|
109
|
+
|
|
110
|
+
Relations:
|
|
111
|
+
- Project Alpha --uses--> "Next.js"
|
|
112
|
+
- Project Alpha --deployed_on--> "AWS"
|
|
113
|
+
- Project Alpha --owned_by--> "Engineering Team"
|
|
114
|
+
\`\`\`
|
|
115
|
+
|
|
116
|
+
### Technical Preferences
|
|
117
|
+
\`\`\`
|
|
118
|
+
Entity: "User Preferences"
|
|
119
|
+
Type: "preferences"
|
|
120
|
+
Observations:
|
|
121
|
+
- "Prefers functional components over class components"
|
|
122
|
+
- "Uses Prettier with single quotes"
|
|
123
|
+
- "Tab size: 2 spaces"
|
|
124
|
+
- "Testing framework: Vitest"
|
|
125
|
+
- "State management: Zustand"
|
|
126
|
+
\`\`\`
|
|
127
|
+
|
|
128
|
+
### Codebase Context
|
|
129
|
+
\`\`\`
|
|
130
|
+
Entity: "MyApp Codebase"
|
|
131
|
+
Type: "codebase"
|
|
132
|
+
Observations:
|
|
133
|
+
- "Monorepo using pnpm workspaces"
|
|
134
|
+
- "Authentication via Clerk"
|
|
135
|
+
- "API routes in /app/api"
|
|
136
|
+
- "Components in /src/components"
|
|
137
|
+
- "Shared types in /packages/types"
|
|
138
|
+
|
|
139
|
+
Relations:
|
|
140
|
+
- MyApp Codebase --depends_on--> "PostgreSQL DB"
|
|
141
|
+
- MyApp Codebase --deployed_to--> "Vercel"
|
|
142
|
+
\`\`\`
|
|
143
|
+
|
|
144
|
+
## Common Workflows
|
|
145
|
+
|
|
146
|
+
### Initial Setup
|
|
147
|
+
\`\`\`
|
|
148
|
+
1. Create core entities:
|
|
149
|
+
- User profile (preferences, expertise)
|
|
150
|
+
- Project (name, stack, goals)
|
|
151
|
+
- Codebase (structure, patterns)
|
|
152
|
+
|
|
153
|
+
2. Add relations:
|
|
154
|
+
- User --works_on--> Project
|
|
155
|
+
- Project --uses--> Technologies
|
|
156
|
+
|
|
157
|
+
3. Record observations as you learn them
|
|
158
|
+
\`\`\`
|
|
159
|
+
|
|
160
|
+
### During Conversation
|
|
161
|
+
\`\`\`
|
|
162
|
+
1. search_nodes for relevant context
|
|
163
|
+
2. open_nodes to get full details
|
|
164
|
+
3. add_observations for new information
|
|
165
|
+
4. create_relations for new connections
|
|
166
|
+
\`\`\`
|
|
167
|
+
|
|
168
|
+
### Context Retrieval
|
|
169
|
+
\`\`\`
|
|
170
|
+
1. read_graph for overview
|
|
171
|
+
2. search_nodes with specific query
|
|
172
|
+
3. Use context in responses
|
|
173
|
+
\`\`\`
|
|
174
|
+
|
|
175
|
+
## Entity Types Reference
|
|
176
|
+
\`\`\`
|
|
177
|
+
person - Team members, stakeholders
|
|
178
|
+
project - Software projects, initiatives
|
|
179
|
+
codebase - Repository structure, patterns
|
|
180
|
+
technology - Frameworks, libraries, tools
|
|
181
|
+
concept - Technical concepts, patterns
|
|
182
|
+
preferences - User preferences, settings
|
|
183
|
+
decision - Architectural decisions, rationale
|
|
184
|
+
task - Ongoing work, todos
|
|
185
|
+
issue - Known bugs, problems
|
|
186
|
+
\`\`\`
|
|
187
|
+
|
|
188
|
+
## Relation Types Reference
|
|
189
|
+
\`\`\`
|
|
190
|
+
works_on - Person works on project
|
|
191
|
+
manages - Person manages team/project
|
|
192
|
+
knows - Person knows person
|
|
193
|
+
uses - Project/codebase uses technology
|
|
194
|
+
depends_on - Component depends on component
|
|
195
|
+
part_of - Entity is part of larger entity
|
|
196
|
+
created_by - Entity created by person
|
|
197
|
+
deployed_to - Project deployed to platform
|
|
198
|
+
replaces - New tech replaces old tech
|
|
199
|
+
related_to - General relation
|
|
200
|
+
\`\`\`
|
|
201
|
+
|
|
202
|
+
## Best Practices for Memory
|
|
203
|
+
|
|
204
|
+
### Naming Conventions
|
|
205
|
+
\`\`\`
|
|
206
|
+
# Use consistent, descriptive names
|
|
207
|
+
Good: "React Router v6", "Auth Service", "John Smith"
|
|
208
|
+
Bad: "router", "auth", "john"
|
|
209
|
+
|
|
210
|
+
# Include version/context when relevant
|
|
211
|
+
Good: "PostgreSQL 15 Config"
|
|
212
|
+
Bad: "DB Config"
|
|
213
|
+
\`\`\`
|
|
214
|
+
|
|
215
|
+
### Observation Quality
|
|
216
|
+
\`\`\`
|
|
217
|
+
# Be specific and actionable
|
|
218
|
+
Good: "Uses ESLint with Airbnb config"
|
|
219
|
+
Bad: "Has linting"
|
|
220
|
+
|
|
221
|
+
# Include reasoning when relevant
|
|
222
|
+
Good: "Chose Zustand over Redux for simpler API"
|
|
223
|
+
Bad: "Uses Zustand"
|
|
224
|
+
\`\`\`
|
|
225
|
+
|
|
226
|
+
## ❌ DON'T
|
|
227
|
+
- Store sensitive data (passwords, tokens)
|
|
228
|
+
- Create duplicate entities with different names
|
|
229
|
+
- Add vague, unhelpful observations
|
|
230
|
+
- Create circular or conflicting relations
|
|
231
|
+
- Forget to update outdated information
|
|
232
|
+
|
|
233
|
+
## ✅ DO
|
|
234
|
+
- Use consistent entity naming
|
|
235
|
+
- Add context-rich observations
|
|
236
|
+
- Create meaningful relations
|
|
237
|
+
- Update entities as information changes
|
|
238
|
+
- Search before creating new entities
|
|
239
|
+
- Delete outdated observations
|
|
240
|
+
- Use appropriate entity types
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# MCP Search Skill
|
|
2
|
+
|
|
3
|
+
## Server Configuration (Brave Search)
|
|
4
|
+
\`\`\`json
|
|
5
|
+
// claude_desktop_config.json or .claude/settings.json
|
|
6
|
+
{
|
|
7
|
+
"mcpServers": {
|
|
8
|
+
"brave-search": {
|
|
9
|
+
"command": "npx",
|
|
10
|
+
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
|
|
11
|
+
"env": {
|
|
12
|
+
"BRAVE_API_KEY": "BSA..."
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
\`\`\`
|
|
18
|
+
|
|
19
|
+
## Server Configuration (Tavily)
|
|
20
|
+
\`\`\`json
|
|
21
|
+
{
|
|
22
|
+
"mcpServers": {
|
|
23
|
+
"tavily": {
|
|
24
|
+
"command": "npx",
|
|
25
|
+
"args": ["-y", "@tavily/mcp-server"],
|
|
26
|
+
"env": {
|
|
27
|
+
"TAVILY_API_KEY": "tvly-..."
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
## Available Tools
|
|
35
|
+
|
|
36
|
+
### Web Search
|
|
37
|
+
\`\`\`
|
|
38
|
+
brave_web_search
|
|
39
|
+
- query: string (search query)
|
|
40
|
+
- count?: number (results count, default 10, max 20)
|
|
41
|
+
- offset?: number (pagination offset)
|
|
42
|
+
- Returns: array of {
|
|
43
|
+
title: string,
|
|
44
|
+
url: string,
|
|
45
|
+
description: string,
|
|
46
|
+
age?: string (how old the result is)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
tavily_search
|
|
50
|
+
- query: string
|
|
51
|
+
- search_depth?: 'basic' | 'advanced'
|
|
52
|
+
- include_domains?: string[]
|
|
53
|
+
- exclude_domains?: string[]
|
|
54
|
+
- max_results?: number
|
|
55
|
+
- Returns: array of search results with content snippets
|
|
56
|
+
\`\`\`
|
|
57
|
+
|
|
58
|
+
### Local Search (Brave)
|
|
59
|
+
\`\`\`
|
|
60
|
+
brave_local_search
|
|
61
|
+
- query: string (e.g., "coffee shops near Seattle")
|
|
62
|
+
- count?: number
|
|
63
|
+
- Returns: local business results with:
|
|
64
|
+
- name, address, phone
|
|
65
|
+
- rating, reviews
|
|
66
|
+
- hours, distance
|
|
67
|
+
\`\`\`
|
|
68
|
+
|
|
69
|
+
## Search Query Optimization
|
|
70
|
+
|
|
71
|
+
### Effective Queries
|
|
72
|
+
\`\`\`
|
|
73
|
+
# Be specific
|
|
74
|
+
Good: "Next.js 14 app router middleware authentication"
|
|
75
|
+
Bad: "nextjs auth"
|
|
76
|
+
|
|
77
|
+
# Include version when relevant
|
|
78
|
+
Good: "React 18 useEffect cleanup"
|
|
79
|
+
Bad: "react useEffect"
|
|
80
|
+
|
|
81
|
+
# Use quotes for exact phrases
|
|
82
|
+
"error boundary" React 18
|
|
83
|
+
|
|
84
|
+
# Include context
|
|
85
|
+
"TypeScript strict mode" tsconfig.json setup
|
|
86
|
+
\`\`\`
|
|
87
|
+
|
|
88
|
+
### Query Patterns by Use Case
|
|
89
|
+
\`\`\`
|
|
90
|
+
# Technical documentation
|
|
91
|
+
"[library] [version] official documentation [topic]"
|
|
92
|
+
Example: "Prisma 5 official documentation migrations"
|
|
93
|
+
|
|
94
|
+
# Error solutions
|
|
95
|
+
"[exact error message]" [framework] [version]
|
|
96
|
+
Example: "Cannot find module 'next/headers'" Next.js 14
|
|
97
|
+
|
|
98
|
+
# Comparisons
|
|
99
|
+
"[option A] vs [option B]" [year]
|
|
100
|
+
Example: "Zustand vs Jotai 2024"
|
|
101
|
+
|
|
102
|
+
# Best practices
|
|
103
|
+
"[technology] best practices [year]"
|
|
104
|
+
Example: "TypeScript best practices 2024"
|
|
105
|
+
|
|
106
|
+
# Breaking changes
|
|
107
|
+
"[library] [version] breaking changes migration"
|
|
108
|
+
Example: "React Router v6 breaking changes migration"
|
|
109
|
+
\`\`\`
|
|
110
|
+
|
|
111
|
+
## Search Result Handling
|
|
112
|
+
|
|
113
|
+
### Evaluating Results
|
|
114
|
+
\`\`\`
|
|
115
|
+
1. Check result age - prefer recent for fast-moving tech
|
|
116
|
+
2. Prioritize official docs over third-party
|
|
117
|
+
3. Look for multiple sources confirming same info
|
|
118
|
+
4. Consider Stack Overflow answers with high votes
|
|
119
|
+
5. Check GitHub issues for edge cases
|
|
120
|
+
\`\`\`
|
|
121
|
+
|
|
122
|
+
### Result Quality Indicators
|
|
123
|
+
\`\`\`
|
|
124
|
+
High quality:
|
|
125
|
+
- Official documentation sites
|
|
126
|
+
- GitHub repositories/issues
|
|
127
|
+
- Stack Overflow (high votes)
|
|
128
|
+
- Recognized tech blogs
|
|
129
|
+
- Recent publication date
|
|
130
|
+
|
|
131
|
+
Lower quality:
|
|
132
|
+
- Content farms
|
|
133
|
+
- Very old articles for current tech
|
|
134
|
+
- AI-generated content aggregators
|
|
135
|
+
- SEO-optimized tutorials with ads
|
|
136
|
+
\`\`\`
|
|
137
|
+
|
|
138
|
+
## Common Search Workflows
|
|
139
|
+
|
|
140
|
+
### Research New Technology
|
|
141
|
+
\`\`\`
|
|
142
|
+
1. Search: "[tech] official documentation"
|
|
143
|
+
2. Search: "[tech] getting started tutorial"
|
|
144
|
+
3. Search: "[tech] vs [alternatives] comparison"
|
|
145
|
+
4. Search: "[tech] production experience"
|
|
146
|
+
5. Synthesize findings
|
|
147
|
+
\`\`\`
|
|
148
|
+
|
|
149
|
+
### Debug Error
|
|
150
|
+
\`\`\`
|
|
151
|
+
1. Search exact error message in quotes
|
|
152
|
+
2. Add framework/library context
|
|
153
|
+
3. Check GitHub issues if open source
|
|
154
|
+
4. Look for Stack Overflow solutions
|
|
155
|
+
5. Search for related error patterns
|
|
156
|
+
\`\`\`
|
|
157
|
+
|
|
158
|
+
### Find Best Practices
|
|
159
|
+
\`\`\`
|
|
160
|
+
1. Search: "[topic] best practices 2024"
|
|
161
|
+
2. Search: "[topic] common mistakes avoid"
|
|
162
|
+
3. Search: "[topic] production tips"
|
|
163
|
+
4. Cross-reference multiple sources
|
|
164
|
+
\`\`\`
|
|
165
|
+
|
|
166
|
+
### API/Library Usage
|
|
167
|
+
\`\`\`
|
|
168
|
+
1. Search: "[library] [method] example"
|
|
169
|
+
2. Search: "[library] [use case] tutorial"
|
|
170
|
+
3. Search: "[library] TypeScript types"
|
|
171
|
+
4. Check official docs for edge cases
|
|
172
|
+
\`\`\`
|
|
173
|
+
|
|
174
|
+
## Filtering Strategies
|
|
175
|
+
\`\`\`
|
|
176
|
+
# Include specific domains
|
|
177
|
+
include_domains: ["github.com", "stackoverflow.com", "docs.*.com"]
|
|
178
|
+
|
|
179
|
+
# Exclude low-quality sources
|
|
180
|
+
exclude_domains: ["w3schools.com", "geeksforgeeks.org"]
|
|
181
|
+
|
|
182
|
+
# Time-sensitive searches
|
|
183
|
+
Add year to query: "React hooks 2024"
|
|
184
|
+
Filter by age in results
|
|
185
|
+
\`\`\`
|
|
186
|
+
|
|
187
|
+
## Rate Limits & Quotas
|
|
188
|
+
\`\`\`
|
|
189
|
+
Brave Search:
|
|
190
|
+
- Free tier: 2,000 queries/month
|
|
191
|
+
- Check X-RateLimit headers
|
|
192
|
+
|
|
193
|
+
Tavily:
|
|
194
|
+
- Free tier: 1,000 queries/month
|
|
195
|
+
- Rate limit: 100 requests/minute
|
|
196
|
+
|
|
197
|
+
Best practices:
|
|
198
|
+
- Cache frequently searched queries
|
|
199
|
+
- Batch related searches
|
|
200
|
+
- Use specific queries to reduce iterations
|
|
201
|
+
\`\`\`
|
|
202
|
+
|
|
203
|
+
## ❌ DON'T
|
|
204
|
+
- Search for generic terms without context
|
|
205
|
+
- Trust first result blindly
|
|
206
|
+
- Ignore result publication dates
|
|
207
|
+
- Search for sensitive/private information
|
|
208
|
+
- Exceed rate limits with repeated queries
|
|
209
|
+
- Use AI-generated content as primary source
|
|
210
|
+
|
|
211
|
+
## ✅ DO
|
|
212
|
+
- Use specific, contextual queries
|
|
213
|
+
- Include version numbers for tech
|
|
214
|
+
- Verify information across sources
|
|
215
|
+
- Prefer official documentation
|
|
216
|
+
- Check result freshness for tech topics
|
|
217
|
+
- Use domain filtering for quality
|
|
218
|
+
- Respect rate limits
|