@codihaus/claude-skills 1.6.6 → 1.6.8
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/package.json +1 -1
- package/skills/debrief/SKILL.md +139 -421
- package/skills/dev-arch/SKILL.md +120 -403
- package/skills/dev-changelog/SKILL.md +67 -221
- package/skills/dev-coding/SKILL.md +170 -696
- package/skills/dev-coding/references/backend-principles.md +130 -0
- package/skills/dev-coding/references/frontend-principles.md +212 -0
- package/skills/dev-review/SKILL.md +63 -238
- package/skills/dev-scout/SKILL.md +140 -864
- package/skills/dev-scout/references/output-template.md +231 -0
- package/skills/dev-specs/SKILL.md +136 -586
- package/skills/dev-specs/references/spec-template.md +146 -0
- package/skills/dev-test/SKILL.md +79 -157
- package/src/utils/config.js +1 -1
- package/templates/scripts/safe-graph-update.sh +3 -1
- package/skills/dev-coding-backend/SKILL.md +0 -240
- package/skills/dev-coding-backend/references/fundamentals.md +0 -428
- package/skills/dev-coding-frontend/SKILL.md +0 -296
- package/skills/dev-coding-frontend/references/fundamentals.md +0 -577
- package/skills/dev-scout/references/feature-patterns.md +0 -210
- package/skills/dev-scout/references/file-patterns.md +0 -252
- package/skills/dev-scout/references/stack-patterns.md +0 -371
- package/skills/dev-scout/references/tech-detection.md +0 -211
- package/skills/dev-specs/references/checklist.md +0 -176
- package/skills/dev-specs/references/spec-templates.md +0 -460
|
@@ -1,371 +0,0 @@
|
|
|
1
|
-
# Stack Patterns Detection
|
|
2
|
-
|
|
3
|
-
Detect HOW the project works, not just what frameworks are used.
|
|
4
|
-
|
|
5
|
-
## BaaS / Headless CMS
|
|
6
|
-
|
|
7
|
-
Projects using Backend-as-a-Service or Headless CMS have different patterns than custom backends.
|
|
8
|
-
|
|
9
|
-
### Detection
|
|
10
|
-
|
|
11
|
-
| Evidence | Service | SDK |
|
|
12
|
-
|----------|---------|-----|
|
|
13
|
-
| `DIRECTUS_URL` in .env | Directus | `@directus/sdk` |
|
|
14
|
-
| `STRAPI_URL` in .env | Strapi | `@strapi/strapi` |
|
|
15
|
-
| `SANITY_PROJECT_ID` in .env | Sanity | `@sanity/client` |
|
|
16
|
-
| `CONTENTFUL_SPACE_ID` in .env | Contentful | `contentful` |
|
|
17
|
-
| `SUPABASE_URL` in .env | Supabase | `@supabase/supabase-js` |
|
|
18
|
-
| `FIREBASE_*` in .env | Firebase | `firebase` |
|
|
19
|
-
| `APPWRITE_*` in .env | Appwrite | `appwrite` |
|
|
20
|
-
| `POCKETBASE_URL` in .env | PocketBase | `pocketbase` |
|
|
21
|
-
| `PAYLOAD_*` in .env | Payload CMS | `payload` |
|
|
22
|
-
|
|
23
|
-
### Implications
|
|
24
|
-
|
|
25
|
-
When BaaS detected:
|
|
26
|
-
- **Don't suggest**: Custom REST endpoints, direct DB queries
|
|
27
|
-
- **Do suggest**: Use SDK methods, follow BaaS patterns
|
|
28
|
-
- **Data model**: Managed by BaaS (collections, content types)
|
|
29
|
-
- **Auth**: Usually provider-managed
|
|
30
|
-
|
|
31
|
-
## API Layer Type
|
|
32
|
-
|
|
33
|
-
### REST (Custom)
|
|
34
|
-
|
|
35
|
-
**Detection**:
|
|
36
|
-
- `/api/**` routes with HTTP method handlers
|
|
37
|
-
- `express`, `fastify`, `hono` in dependencies
|
|
38
|
-
- `routes/`, `controllers/` folders
|
|
39
|
-
|
|
40
|
-
**Pattern**: Custom endpoints, direct DB access
|
|
41
|
-
|
|
42
|
-
### REST (BaaS)
|
|
43
|
-
|
|
44
|
-
**Detection**:
|
|
45
|
-
- BaaS SDK in dependencies
|
|
46
|
-
- No `/api/` routes (or minimal proxy routes)
|
|
47
|
-
- Env vars for BaaS URL
|
|
48
|
-
|
|
49
|
-
**Pattern**: SDK calls, managed endpoints
|
|
50
|
-
|
|
51
|
-
### GraphQL
|
|
52
|
-
|
|
53
|
-
**Detection**:
|
|
54
|
-
- `graphql`, `@apollo/client`, `urql` in dependencies
|
|
55
|
-
- `.graphql` files, `gql` template literals
|
|
56
|
-
- `/api/graphql` endpoint
|
|
57
|
-
|
|
58
|
-
**Pattern**: Queries, mutations, fragments
|
|
59
|
-
|
|
60
|
-
### tRPC
|
|
61
|
-
|
|
62
|
-
**Detection**:
|
|
63
|
-
- `@trpc/server`, `@trpc/client` in dependencies
|
|
64
|
-
- `trpc/` folder with routers
|
|
65
|
-
- Type-safe procedure calls
|
|
66
|
-
|
|
67
|
-
**Pattern**: Procedures, type inference
|
|
68
|
-
|
|
69
|
-
## Data Access Patterns
|
|
70
|
-
|
|
71
|
-
### Direct Database
|
|
72
|
-
|
|
73
|
-
**Detection**:
|
|
74
|
-
- ORM/Query builder (Prisma, Drizzle, Knex)
|
|
75
|
-
- `prisma/schema.prisma`, `drizzle/` folder
|
|
76
|
-
- Direct SQL files
|
|
77
|
-
|
|
78
|
-
**Implications**:
|
|
79
|
-
- Can modify schema
|
|
80
|
-
- Write migrations
|
|
81
|
-
- Direct queries
|
|
82
|
-
|
|
83
|
-
### Managed by BaaS
|
|
84
|
-
|
|
85
|
-
**Detection**:
|
|
86
|
-
- BaaS SDK, no ORM
|
|
87
|
-
- No `prisma/`, no migrations
|
|
88
|
-
- Content types managed in BaaS admin
|
|
89
|
-
|
|
90
|
-
**Implications**:
|
|
91
|
-
- Don't create tables, use BaaS admin
|
|
92
|
-
- Query via SDK
|
|
93
|
-
- Schema changes via BaaS dashboard
|
|
94
|
-
|
|
95
|
-
### Hybrid
|
|
96
|
-
|
|
97
|
-
**Detection**:
|
|
98
|
-
- BaaS for content + local DB for app data
|
|
99
|
-
- Multiple data sources
|
|
100
|
-
|
|
101
|
-
**Implications**:
|
|
102
|
-
- Identify which data goes where
|
|
103
|
-
- Document boundary
|
|
104
|
-
|
|
105
|
-
## API Client Patterns
|
|
106
|
-
|
|
107
|
-
Where and how the project calls APIs.
|
|
108
|
-
|
|
109
|
-
### React Patterns
|
|
110
|
-
|
|
111
|
-
| Pattern | Location | Example |
|
|
112
|
-
|---------|----------|---------|
|
|
113
|
-
| Custom hooks | `hooks/use*.ts` | `useUsers()`, `useApi()` |
|
|
114
|
-
| React Query | `hooks/` + `@tanstack/react-query` | `useQuery()` wrapper |
|
|
115
|
-
| SWR | `hooks/` + `swr` | `useSWR()` wrapper |
|
|
116
|
-
| Services | `services/*.ts` | `userService.getAll()` |
|
|
117
|
-
| Direct fetch | In components | `fetch('/api/...')` |
|
|
118
|
-
|
|
119
|
-
### Vue Patterns
|
|
120
|
-
|
|
121
|
-
| Pattern | Location | Example |
|
|
122
|
-
|---------|----------|---------|
|
|
123
|
-
| Composables | `composables/use*.ts` | `useDirectus()`, `useApi()` |
|
|
124
|
-
| Pinia stores | `stores/*.ts` | `useUserStore()` |
|
|
125
|
-
| Services | `services/*.ts` | `userService.getAll()` |
|
|
126
|
-
| Vue Query | `composables/` + `@tanstack/vue-query` | `useQuery()` |
|
|
127
|
-
|
|
128
|
-
### Next.js Patterns
|
|
129
|
-
|
|
130
|
-
| Pattern | Location | Example |
|
|
131
|
-
|---------|----------|---------|
|
|
132
|
-
| Server Actions | `actions/*.ts` or inline | `'use server'` functions |
|
|
133
|
-
| API Routes | `app/api/**` | Route handlers |
|
|
134
|
-
| Server Components | `app/**/page.tsx` | Direct DB/API calls |
|
|
135
|
-
| Client hooks | `hooks/` | Client-side fetching |
|
|
136
|
-
|
|
137
|
-
### Nuxt Patterns
|
|
138
|
-
|
|
139
|
-
| Pattern | Location | Example |
|
|
140
|
-
|---------|----------|---------|
|
|
141
|
-
| Composables | `composables/use*.ts` | Auto-imported |
|
|
142
|
-
| useFetch | In components | Built-in `useFetch()` |
|
|
143
|
-
| useAsyncData | In components | SSR data fetching |
|
|
144
|
-
| Server routes | `server/api/**` | Nitro API routes |
|
|
145
|
-
|
|
146
|
-
### Detection Strategy
|
|
147
|
-
|
|
148
|
-
1. Check for hooks/composables folder
|
|
149
|
-
2. Search for `use` prefix functions
|
|
150
|
-
3. Check for services folder
|
|
151
|
-
4. Look at import patterns in components
|
|
152
|
-
5. Identify the PRIMARY pattern (not all)
|
|
153
|
-
|
|
154
|
-
## Validation Libraries
|
|
155
|
-
|
|
156
|
-
| Dependency | Library | Usage |
|
|
157
|
-
|------------|---------|-------|
|
|
158
|
-
| `zod` | Zod | Schema-first, TypeScript inference |
|
|
159
|
-
| `yup` | Yup | Schema builder, common with Formik |
|
|
160
|
-
| `joi` | Joi | Enterprise, detailed validation |
|
|
161
|
-
| `valibot` | Valibot | Lightweight Zod alternative |
|
|
162
|
-
| `@sinclair/typebox` | TypeBox | JSON Schema compatible |
|
|
163
|
-
|
|
164
|
-
**Pattern detection**:
|
|
165
|
-
```
|
|
166
|
-
Search for:
|
|
167
|
-
- schemas/, validators/ folders
|
|
168
|
-
- *.schema.ts, *.validator.ts files
|
|
169
|
-
- z.object, yup.object, Joi.object imports
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
## Form Handling
|
|
173
|
-
|
|
174
|
-
| Dependency | Library | Framework |
|
|
175
|
-
|------------|---------|-----------|
|
|
176
|
-
| `react-hook-form` | React Hook Form | React |
|
|
177
|
-
| `formik` | Formik | React |
|
|
178
|
-
| `vee-validate` | VeeValidate | Vue |
|
|
179
|
-
| `@tanstack/react-form` | TanStack Form | React |
|
|
180
|
-
| `formsnap` | Formsnap | Svelte |
|
|
181
|
-
|
|
182
|
-
**Pattern detection**:
|
|
183
|
-
```
|
|
184
|
-
Search for:
|
|
185
|
-
- useForm, useFormik imports
|
|
186
|
-
- <Form>, <Field> components
|
|
187
|
-
- form/, forms/ folders
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
## External Services
|
|
191
|
-
|
|
192
|
-
### Payment
|
|
193
|
-
|
|
194
|
-
| Env Var | Service | SDK |
|
|
195
|
-
|---------|---------|-----|
|
|
196
|
-
| `STRIPE_*` | Stripe | `stripe`, `@stripe/stripe-js` |
|
|
197
|
-
| `PAYPAL_*` | PayPal | `@paypal/checkout-server-sdk` |
|
|
198
|
-
| `LEMON_SQUEEZY_*` | Lemon Squeezy | `@lemonsqueezy/lemonsqueezy.js` |
|
|
199
|
-
| `PADDLE_*` | Paddle | `@paddle/paddle-js` |
|
|
200
|
-
|
|
201
|
-
### Email
|
|
202
|
-
|
|
203
|
-
| Env Var | Service | SDK |
|
|
204
|
-
|---------|---------|-----|
|
|
205
|
-
| `RESEND_*` | Resend | `resend` |
|
|
206
|
-
| `SENDGRID_*` | SendGrid | `@sendgrid/mail` |
|
|
207
|
-
| `POSTMARK_*` | Postmark | `postmark` |
|
|
208
|
-
| `MAILGUN_*` | Mailgun | `mailgun.js` |
|
|
209
|
-
| `AWS_SES_*` | AWS SES | `@aws-sdk/client-ses` |
|
|
210
|
-
|
|
211
|
-
### Storage
|
|
212
|
-
|
|
213
|
-
| Env Var | Service | SDK |
|
|
214
|
-
|---------|---------|-----|
|
|
215
|
-
| `AWS_S3_*`, `S3_*` | AWS S3 | `@aws-sdk/client-s3` |
|
|
216
|
-
| `CLOUDFLARE_R2_*` | Cloudflare R2 | `@aws-sdk/client-s3` (S3 compatible) |
|
|
217
|
-
| `UPLOADTHING_*` | UploadThing | `uploadthing` |
|
|
218
|
-
| `CLOUDINARY_*` | Cloudinary | `cloudinary` |
|
|
219
|
-
|
|
220
|
-
### Search
|
|
221
|
-
|
|
222
|
-
| Env Var | Service | SDK |
|
|
223
|
-
|---------|---------|-----|
|
|
224
|
-
| `ALGOLIA_*` | Algolia | `algoliasearch` |
|
|
225
|
-
| `MEILISEARCH_*` | Meilisearch | `meilisearch` |
|
|
226
|
-
| `TYPESENSE_*` | Typesense | `typesense` |
|
|
227
|
-
|
|
228
|
-
### Analytics
|
|
229
|
-
|
|
230
|
-
| Env Var | Service |
|
|
231
|
-
|---------|---------|
|
|
232
|
-
| `NEXT_PUBLIC_GA_*`, `GA_*` | Google Analytics |
|
|
233
|
-
| `NEXT_PUBLIC_POSTHOG_*` | PostHog |
|
|
234
|
-
| `MIXPANEL_*` | Mixpanel |
|
|
235
|
-
| `SEGMENT_*` | Segment |
|
|
236
|
-
|
|
237
|
-
### Monitoring
|
|
238
|
-
|
|
239
|
-
| Env Var | Service |
|
|
240
|
-
|---------|---------|
|
|
241
|
-
| `SENTRY_*` | Sentry |
|
|
242
|
-
| `DATADOG_*` | Datadog |
|
|
243
|
-
| `LOGROCKET_*` | LogRocket |
|
|
244
|
-
|
|
245
|
-
## Docker Compose Services
|
|
246
|
-
|
|
247
|
-
Parse `docker-compose.yml` or `compose.yml`:
|
|
248
|
-
|
|
249
|
-
| Service Image | Purpose |
|
|
250
|
-
|---------------|---------|
|
|
251
|
-
| `postgres:*` | PostgreSQL database |
|
|
252
|
-
| `mysql:*` | MySQL database |
|
|
253
|
-
| `mongo:*` | MongoDB |
|
|
254
|
-
| `redis:*` | Redis cache/queue |
|
|
255
|
-
| `minio:*` | S3-compatible storage |
|
|
256
|
-
| `mailhog:*`, `mailpit:*` | Local email testing |
|
|
257
|
-
| `directus:*` | Directus CMS |
|
|
258
|
-
| `strapi:*` | Strapi CMS |
|
|
259
|
-
|
|
260
|
-
## MCP Tools Detection
|
|
261
|
-
|
|
262
|
-
Check `.claude/settings.local.json` or `mcp.json`:
|
|
263
|
-
|
|
264
|
-
```json
|
|
265
|
-
{
|
|
266
|
-
"mcpServers": {
|
|
267
|
-
"context7": { ... },
|
|
268
|
-
"playwright": { ... },
|
|
269
|
-
"shadcn": { ... }
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
**Available MCPs provide capabilities:**
|
|
275
|
-
|
|
276
|
-
| MCP | Capability |
|
|
277
|
-
|-----|------------|
|
|
278
|
-
| `context7` | Library documentation lookup |
|
|
279
|
-
| `playwright` | Browser automation, screenshots |
|
|
280
|
-
| `shadcn` | UI component source code |
|
|
281
|
-
| Custom MCPs | Project-specific tools |
|
|
282
|
-
|
|
283
|
-
## Output: stack.md
|
|
284
|
-
|
|
285
|
-
```markdown
|
|
286
|
-
# Project Stack
|
|
287
|
-
|
|
288
|
-
> Auto-detected by /dev-scout. Verify and update as needed.
|
|
289
|
-
|
|
290
|
-
## API Layer
|
|
291
|
-
|
|
292
|
-
| Aspect | Value |
|
|
293
|
-
|--------|-------|
|
|
294
|
-
| Type | BaaS (Directus) |
|
|
295
|
-
| SDK | @directus/sdk |
|
|
296
|
-
| Pattern | composables/useDirectus.ts |
|
|
297
|
-
|
|
298
|
-
## Data Access
|
|
299
|
-
|
|
300
|
-
| Aspect | Value |
|
|
301
|
-
|--------|-------|
|
|
302
|
-
| Access | Managed by Directus |
|
|
303
|
-
| Collections | users, posts, media |
|
|
304
|
-
| Direct DB | No (use SDK) |
|
|
305
|
-
|
|
306
|
-
## Auth
|
|
307
|
-
|
|
308
|
-
| Aspect | Value |
|
|
309
|
-
|--------|-------|
|
|
310
|
-
| Provider | Directus Auth |
|
|
311
|
-
| Pattern | middleware/auth.ts |
|
|
312
|
-
| Storage | Directus handles sessions |
|
|
313
|
-
|
|
314
|
-
## API Client
|
|
315
|
-
|
|
316
|
-
| Aspect | Value |
|
|
317
|
-
|--------|-------|
|
|
318
|
-
| Pattern | Vue composables |
|
|
319
|
-
| Location | composables/use*.ts |
|
|
320
|
-
| Primary | useDirectus(), useApi() |
|
|
321
|
-
|
|
322
|
-
## Validation & Forms
|
|
323
|
-
|
|
324
|
-
| Aspect | Value |
|
|
325
|
-
|--------|-------|
|
|
326
|
-
| Validation | Zod (shared/schemas/) |
|
|
327
|
-
| Forms | VeeValidate |
|
|
328
|
-
|
|
329
|
-
## External Services
|
|
330
|
-
|
|
331
|
-
| Service | Provider | Env Var |
|
|
332
|
-
|---------|----------|---------|
|
|
333
|
-
| Email | Resend | RESEND_API_KEY |
|
|
334
|
-
| Storage | S3 via Directus | (managed) |
|
|
335
|
-
| Payment | Stripe | STRIPE_SECRET_KEY |
|
|
336
|
-
|
|
337
|
-
## Local Development
|
|
338
|
-
|
|
339
|
-
| Service | Purpose | Port |
|
|
340
|
-
|---------|---------|------|
|
|
341
|
-
| postgres | Database | 5432 |
|
|
342
|
-
| redis | Cache | 6379 |
|
|
343
|
-
| directus | CMS | 8055 |
|
|
344
|
-
|
|
345
|
-
## Available MCPs
|
|
346
|
-
|
|
347
|
-
| MCP | Use For |
|
|
348
|
-
|-----|---------|
|
|
349
|
-
| context7 | Library docs |
|
|
350
|
-
| playwright | UI testing |
|
|
351
|
-
|
|
352
|
-
## Specs Guidelines
|
|
353
|
-
|
|
354
|
-
Based on this stack, specs should:
|
|
355
|
-
|
|
356
|
-
1. **API calls**: Use `useDirectus()` composable, not fetch
|
|
357
|
-
2. **Data**: Use Directus collections, not raw SQL
|
|
358
|
-
3. **Auth**: Use Directus auth middleware
|
|
359
|
-
4. **Validation**: Add Zod schemas to shared/schemas/
|
|
360
|
-
5. **Forms**: Use VeeValidate with Zod resolver
|
|
361
|
-
6. **New features**: Follow composables pattern
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
## Detection Priority
|
|
365
|
-
|
|
366
|
-
1. **Environment variables** - Most reliable for services
|
|
367
|
-
2. **package.json** - SDKs and libraries
|
|
368
|
-
3. **Config files** - Framework/tool configs
|
|
369
|
-
4. **Code patterns** - How things are actually used
|
|
370
|
-
5. **Docker compose** - Local services
|
|
371
|
-
6. **MCP config** - Available tools
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
# Tech Stack Detection
|
|
2
|
-
|
|
3
|
-
Detect frameworks, libraries, and tools from config files.
|
|
4
|
-
|
|
5
|
-
## Frontend Frameworks
|
|
6
|
-
|
|
7
|
-
### React
|
|
8
|
-
|
|
9
|
-
**Detection**:
|
|
10
|
-
- `package.json`: `"react"` in dependencies
|
|
11
|
-
- Files: `*.jsx`, `*.tsx`
|
|
12
|
-
- Imports: `import React from 'react'`
|
|
13
|
-
|
|
14
|
-
**Variants**:
|
|
15
|
-
| Config | Framework |
|
|
16
|
-
|--------|-----------|
|
|
17
|
-
| `next.config.*` | Next.js |
|
|
18
|
-
| `remix.config.*` | Remix |
|
|
19
|
-
| `gatsby-config.*` | Gatsby |
|
|
20
|
-
| `vite.config.*` + react plugin | Vite + React |
|
|
21
|
-
| `craco.config.*` | Create React App |
|
|
22
|
-
|
|
23
|
-
### Vue
|
|
24
|
-
|
|
25
|
-
**Detection**:
|
|
26
|
-
- `package.json`: `"vue"` in dependencies
|
|
27
|
-
- Files: `*.vue`
|
|
28
|
-
- Config: `vue.config.*`
|
|
29
|
-
|
|
30
|
-
**Variants**:
|
|
31
|
-
| Config | Framework |
|
|
32
|
-
|--------|-----------|
|
|
33
|
-
| `nuxt.config.*` | Nuxt.js |
|
|
34
|
-
| `vite.config.*` + vue plugin | Vite + Vue |
|
|
35
|
-
| `quasar.config.*` | Quasar |
|
|
36
|
-
|
|
37
|
-
### Svelte
|
|
38
|
-
|
|
39
|
-
**Detection**:
|
|
40
|
-
- `package.json`: `"svelte"` in dependencies
|
|
41
|
-
- Files: `*.svelte`
|
|
42
|
-
- Config: `svelte.config.*`
|
|
43
|
-
|
|
44
|
-
**Variants**:
|
|
45
|
-
| Config | Framework |
|
|
46
|
-
|--------|-----------|
|
|
47
|
-
| `svelte.config.*` + adapter | SvelteKit |
|
|
48
|
-
|
|
49
|
-
### Angular
|
|
50
|
-
|
|
51
|
-
**Detection**:
|
|
52
|
-
- `package.json`: `"@angular/core"`
|
|
53
|
-
- Files: `*.component.ts`
|
|
54
|
-
- Config: `angular.json`
|
|
55
|
-
|
|
56
|
-
## Backend Frameworks
|
|
57
|
-
|
|
58
|
-
### Node.js
|
|
59
|
-
|
|
60
|
-
| Dependency | Framework |
|
|
61
|
-
|------------|-----------|
|
|
62
|
-
| `express` | Express.js |
|
|
63
|
-
| `fastify` | Fastify |
|
|
64
|
-
| `koa` | Koa |
|
|
65
|
-
| `hapi` | Hapi |
|
|
66
|
-
| `@nestjs/core` | NestJS |
|
|
67
|
-
| `hono` | Hono |
|
|
68
|
-
|
|
69
|
-
### Python
|
|
70
|
-
|
|
71
|
-
| File/Dependency | Framework |
|
|
72
|
-
|-----------------|-----------|
|
|
73
|
-
| `requirements.txt` + `django` | Django |
|
|
74
|
-
| `requirements.txt` + `flask` | Flask |
|
|
75
|
-
| `requirements.txt` + `fastapi` | FastAPI |
|
|
76
|
-
| `pyproject.toml` | Modern Python |
|
|
77
|
-
|
|
78
|
-
### Other
|
|
79
|
-
|
|
80
|
-
| File | Language/Framework |
|
|
81
|
-
|------|-------------------|
|
|
82
|
-
| `go.mod` | Go |
|
|
83
|
-
| `Cargo.toml` | Rust |
|
|
84
|
-
| `Gemfile` | Ruby (Rails if rails gem) |
|
|
85
|
-
| `composer.json` | PHP (Laravel if laravel/*) |
|
|
86
|
-
|
|
87
|
-
## Databases
|
|
88
|
-
|
|
89
|
-
### ORMs & Query Builders
|
|
90
|
-
|
|
91
|
-
| Evidence | Technology |
|
|
92
|
-
|----------|------------|
|
|
93
|
-
| `prisma/schema.prisma` | Prisma |
|
|
94
|
-
| `drizzle.config.*` | Drizzle |
|
|
95
|
-
| `ormconfig.*`, `@Entity` | TypeORM |
|
|
96
|
-
| `knexfile.*` | Knex.js |
|
|
97
|
-
| `sequelize` in package.json | Sequelize |
|
|
98
|
-
| `mongoose` in package.json | Mongoose (MongoDB) |
|
|
99
|
-
|
|
100
|
-
### Database Type Detection
|
|
101
|
-
|
|
102
|
-
| Dependency/Config | Database |
|
|
103
|
-
|-------------------|----------|
|
|
104
|
-
| `pg`, `postgres` | PostgreSQL |
|
|
105
|
-
| `mysql`, `mysql2` | MySQL |
|
|
106
|
-
| `better-sqlite3`, `sqlite3` | SQLite |
|
|
107
|
-
| `mongodb`, `mongoose` | MongoDB |
|
|
108
|
-
| `redis`, `ioredis` | Redis |
|
|
109
|
-
| `@supabase/supabase-js` | Supabase (PostgreSQL) |
|
|
110
|
-
| `@planetscale/database` | PlanetScale (MySQL) |
|
|
111
|
-
|
|
112
|
-
## Authentication
|
|
113
|
-
|
|
114
|
-
| Dependency | Provider |
|
|
115
|
-
|------------|----------|
|
|
116
|
-
| `next-auth` | NextAuth.js |
|
|
117
|
-
| `@clerk/nextjs` | Clerk |
|
|
118
|
-
| `@auth0/nextjs-auth0` | Auth0 |
|
|
119
|
-
| `@supabase/auth-helpers-*` | Supabase Auth |
|
|
120
|
-
| `firebase` + `firebase/auth` | Firebase Auth |
|
|
121
|
-
| `passport` | Passport.js |
|
|
122
|
-
| `lucia` | Lucia Auth |
|
|
123
|
-
|
|
124
|
-
## Styling
|
|
125
|
-
|
|
126
|
-
| Dependency/Config | Technology |
|
|
127
|
-
|-------------------|------------|
|
|
128
|
-
| `tailwindcss` | Tailwind CSS |
|
|
129
|
-
| `styled-components` | Styled Components |
|
|
130
|
-
| `@emotion/react` | Emotion |
|
|
131
|
-
| `sass` | Sass/SCSS |
|
|
132
|
-
| `@mui/material` | Material UI |
|
|
133
|
-
| `@chakra-ui/react` | Chakra UI |
|
|
134
|
-
| `@radix-ui/*` | Radix UI |
|
|
135
|
-
| `shadcn` in components | shadcn/ui |
|
|
136
|
-
|
|
137
|
-
## State Management
|
|
138
|
-
|
|
139
|
-
| Dependency | Library |
|
|
140
|
-
|------------|---------|
|
|
141
|
-
| `redux`, `@reduxjs/toolkit` | Redux |
|
|
142
|
-
| `zustand` | Zustand |
|
|
143
|
-
| `jotai` | Jotai |
|
|
144
|
-
| `recoil` | Recoil |
|
|
145
|
-
| `mobx` | MobX |
|
|
146
|
-
| `pinia` | Pinia (Vue) |
|
|
147
|
-
| `vuex` | Vuex (Vue) |
|
|
148
|
-
|
|
149
|
-
## API Patterns
|
|
150
|
-
|
|
151
|
-
| Evidence | Pattern |
|
|
152
|
-
|----------|---------|
|
|
153
|
-
| `@trpc/*` | tRPC |
|
|
154
|
-
| `graphql`, `@apollo/client` | GraphQL |
|
|
155
|
-
| `/api/**` routes | REST API |
|
|
156
|
-
| `openapi.*`, `swagger.*` | OpenAPI/Swagger |
|
|
157
|
-
|
|
158
|
-
## Testing
|
|
159
|
-
|
|
160
|
-
| Dependency | Framework |
|
|
161
|
-
|------------|-----------|
|
|
162
|
-
| `jest` | Jest |
|
|
163
|
-
| `vitest` | Vitest |
|
|
164
|
-
| `@testing-library/*` | Testing Library |
|
|
165
|
-
| `cypress` | Cypress |
|
|
166
|
-
| `playwright` | Playwright |
|
|
167
|
-
| `mocha` | Mocha |
|
|
168
|
-
|
|
169
|
-
## Deployment & Infrastructure
|
|
170
|
-
|
|
171
|
-
| File/Config | Platform |
|
|
172
|
-
|-------------|----------|
|
|
173
|
-
| `vercel.json` | Vercel |
|
|
174
|
-
| `netlify.toml` | Netlify |
|
|
175
|
-
| `fly.toml` | Fly.io |
|
|
176
|
-
| `railway.json` | Railway |
|
|
177
|
-
| `Dockerfile` | Docker |
|
|
178
|
-
| `.github/workflows/` | GitHub Actions |
|
|
179
|
-
| `cloudflare.*` | Cloudflare |
|
|
180
|
-
|
|
181
|
-
## Output Format
|
|
182
|
-
|
|
183
|
-
```markdown
|
|
184
|
-
## Tech Stack
|
|
185
|
-
|
|
186
|
-
### Frontend
|
|
187
|
-
- **Framework**: Next.js 14 (App Router)
|
|
188
|
-
- **Language**: TypeScript
|
|
189
|
-
- **Styling**: Tailwind CSS + shadcn/ui
|
|
190
|
-
- **State**: Zustand
|
|
191
|
-
|
|
192
|
-
### Backend
|
|
193
|
-
- **Runtime**: Node.js
|
|
194
|
-
- **API**: Next.js API Routes (REST)
|
|
195
|
-
- **Auth**: NextAuth.js
|
|
196
|
-
|
|
197
|
-
### Database
|
|
198
|
-
- **ORM**: Prisma
|
|
199
|
-
- **Database**: PostgreSQL (Supabase)
|
|
200
|
-
|
|
201
|
-
### Infrastructure
|
|
202
|
-
- **Hosting**: Vercel
|
|
203
|
-
- **CI/CD**: GitHub Actions
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
## Detection Priority
|
|
207
|
-
|
|
208
|
-
1. **Config files** (most reliable)
|
|
209
|
-
2. **package.json dependencies**
|
|
210
|
-
3. **File extensions & patterns**
|
|
211
|
-
4. **Import statements** (when reading code)
|