@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.
@@ -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)