@codihaus/claude-skills 1.6.7 → 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.
@@ -73,447 +73,164 @@ plans/features/{feature}/
73
73
  └── specs/ # From /dev-specs (uses architecture.md)
74
74
  ```
75
75
 
76
- ## Workflow
76
+ ## Expected Outcome
77
77
 
78
- ### Phase 0: Mode Detection
78
+ Architecture decisions for what's **NEW**. Follow existing for what's **KNOWN**.
79
79
 
80
- Determine approach based on existing architecture:
80
+ **Outputs:**
81
+ - `architecture.md` - If architecture decisions made
82
+ - `adrs/ADR-*.md` - For new decisions only (not for following existing patterns)
83
+ - Patterns to follow (API, data, component, auth)
84
+ - Quality assessment against `_quality-attributes.md`
81
85
 
82
- ```
83
- 1. Check: plans/scout/README.md exists?
84
- Check: plans/features/{feature}/scout.md exists?
85
-
86
- 2. If scout exists → Read existing patterns
87
- - API style (REST, GraphQL)
88
- - Database (PostgreSQL + Prisma, etc.)
89
- - Frontend (React + Zustand, Vue + Pinia, etc.)
90
- - Auth (JWT, session, etc.)
91
- - Folder structure
92
-
93
- 3. Determine mode:
94
- ```
95
-
96
- | Condition | Mode | Approach |
97
- |-----------|------|----------|
98
- | Scout has established patterns | **Follow Mode** | Use existing patterns, no questions |
99
- | Scout exists but feature needs NEW tech | **Extend Mode** | Ask only about the new parts |
100
- | No scout / greenfield | **Design Mode** | Ask constraint questions |
101
- | `--new` flag provided | **Design Mode** | Force full architecture design |
102
-
103
- ### Phase 1: Load Context
104
-
105
- ```
106
- 1. Read quality attributes
107
- → skills/_quality-attributes.md (Architecture Level)
108
-
109
- 2. Read feature requirements
110
- → plans/features/{feature}/README.md
111
- → plans/brd/use-cases/{feature}/*.md
112
-
113
- 3. Read existing architecture
114
- → plans/scout/README.md (project-level)
115
- → plans/features/{feature}/scout.md (feature-level)
116
-
117
- 4. Read docs-graph
118
- → plans/docs-graph.json
119
- ```
120
-
121
- ### Phase 2A: Follow Mode (Existing Patterns)
122
-
123
- **When**: Scout detected established patterns.
124
-
125
- **Approach**: Use what exists, don't ask.
126
-
127
- ```
128
- 1. Extract patterns from scout:
129
- - "Project uses Next.js App Router"
130
- - "API is REST with /api/{resource} convention"
131
- - "Database is PostgreSQL with Prisma"
132
- - "Auth is JWT in httpOnly cookies"
133
- - "State management: Zustand"
134
-
135
- 2. Apply to new feature automatically:
136
- → New endpoints follow existing REST pattern
137
- → New models use Prisma conventions
138
- → New components follow existing structure
139
-
140
- 3. Only flag if requirements CANNOT fit existing patterns
141
- ```
142
-
143
- **Output (minimal):**
144
-
145
- ```markdown
146
- ## Architecture: {Feature}
147
-
148
- ### Approach: Follow Existing Patterns
149
-
150
- Using established project patterns from scout:
151
-
152
- | Aspect | Existing Pattern | Apply To Feature |
153
- |--------|------------------|------------------|
154
- | API | REST `/api/{resource}` | `/api/billing`, `/api/invoices` |
155
- | Database | Prisma + PostgreSQL | New Invoice, Payment models |
156
- | Auth | JWT + RBAC | Require `billing:read`, `billing:write` |
157
- | Frontend | React + Zustand | BillingStore, InvoiceList component |
158
-
159
- ### New Elements (within existing patterns)
160
- - Invoice model with relations
161
- - Stripe webhook endpoint
162
- - BillingContext for subscription state
163
-
164
- ### No Architecture Changes Needed
165
- Existing patterns fully support this feature.
166
- ```
167
-
168
- ### Phase 2B: Extend Mode (New Parts Only)
86
+ ## Success Criteria
169
87
 
170
- **When**: Existing patterns, but feature needs something new.
88
+ - Existing patterns followed automatically (no questions asked)
89
+ - Only ask about gaps (missing tech, new requirements)
90
+ - Quality attributes checked (scalability, security, performance, etc.)
91
+ - Team stays in their comfort zone
92
+ - Minimal output for Follow mode, detailed for Design mode
171
93
 
172
- **Approach**: Ask ONLY about the new part.
94
+ ## Modes
173
95
 
174
- ```
175
- 1. Identify what's new:
176
- - "Feature needs real-time updates" (no WebSocket in project)
177
- - "Feature needs payment processing" (no payment provider yet)
178
- - "Feature needs file uploads" (no storage configured)
96
+ Auto-detect based on scout:
179
97
 
180
- 2. Ask ONLY about the gap:
181
- ```
98
+ | Condition | Mode | Behavior |
99
+ |-----------|------|----------|
100
+ | Scout has established patterns | **Follow** | Use existing patterns, no questions, minimal output |
101
+ | Scout exists but feature needs NEW tech | **Extend** | Ask ONLY about the gap |
102
+ | No scout / greenfield OR `--new` flag | **Design** | Ask constraint questions, present options |
182
103
 
183
- **Example - Need payment provider:**
104
+ ## Context Sources
184
105
 
185
- ```markdown
186
- **New Requirement**: This feature needs payment processing.
187
- Your project doesn't have a payment provider configured.
106
+ Read to understand current state:
107
+ - `plans/scout/README.md` - Project-level patterns
108
+ - `plans/features/{feature}/scout.md` - Feature-level patterns
109
+ - `plans/features/{feature}/README.md` - Feature requirements
110
+ - `plans/brd/use-cases/{feature}/*.md` - Use cases
111
+ - `_quality-attributes.md` - Architecture Level checklists
112
+ - `plans/docs-graph.json` - Dependencies
188
113
 
189
- **Options:**
190
- | Option | Pros | Cons |
191
- |--------|------|------|
192
- | A: Stripe (Recommended) | Most popular, good docs | 2.9% + 30¢ fees |
193
- | B: Paddle | Handles taxes/VAT | Higher fees, less flexible |
194
- | C: LemonSqueezy | Simple, handles taxes | Newer, less features |
114
+ ## Follow Mode
195
115
 
196
- **Which payment provider?**
197
- ```
116
+ **When:** Scout shows established patterns
198
117
 
199
- **Only ask what's truly new. Everything else follows existing patterns.**
118
+ **Approach:** Extract and apply automatically
200
119
 
201
- ### Phase 2C: Design Mode (Greenfield)
120
+ **Extract from scout:**
121
+ - API style (REST, GraphQL, tRPC)
122
+ - Database (PostgreSQL + Prisma, MySQL, etc.)
123
+ - Frontend (React + Zustand, Vue + Pinia, etc.)
124
+ - Auth (JWT, session, OAuth)
125
+ - Folder structure
202
126
 
203
- **When**: No existing patterns OR `--new` flag.
127
+ **Apply to new feature:**
128
+ - New endpoints follow existing API pattern
129
+ - New models use existing ORM conventions
130
+ - New components follow existing structure
131
+ - Only flag if requirements CANNOT fit
204
132
 
205
- **Approach**: Ask constraint questions, present options.
133
+ **Output:** Minimal architecture.md noting patterns applied
206
134
 
207
- **Q1: Project Context**
208
- - New project (no code yet)
209
- - Existing project, but new architecture area
210
- - Complete rebuild
135
+ ## Extend Mode
211
136
 
212
- **Q2: Team & Deployment**
213
- - Solo / Small VPS → Recommend simple stack
214
- - Small team / Managed cloud → Recommend proven patterns
215
- - Larger team / Full cloud → More options available
137
+ **When:** Existing patterns but feature needs something new
216
138
 
217
- **Q3: Key Constraints** (multi-select)
218
- - Must use specific tech (specify)
219
- - Limited budget/resources
220
- - Tight timeline
221
- - Compliance requirements
222
- - None
139
+ **Approach:** Ask ONLY about the gap
223
140
 
224
- **Then present options based on constraints:**
141
+ **Identify gaps:**
142
+ - Feature needs real-time (no WebSocket configured)
143
+ - Feature needs payments (no payment provider)
144
+ - Feature needs file uploads (no storage)
145
+ - Feature needs queue (no background jobs)
225
146
 
226
- ```markdown
227
- ## Architecture Options
147
+ **Present options for gap only:**
148
+ - Recommend based on constraints
149
+ - Pros/cons of each option
150
+ - Ask user to choose
228
151
 
229
- Based on: Small team, Vercel deployment, tight timeline
152
+ **Everything else:** Follow existing patterns
230
153
 
231
- ### Recommended Stack
154
+ ## Design Mode
232
155
 
233
- | Layer | Choice | Why |
234
- |-------|--------|-----|
235
- | Framework | Next.js | You're on Vercel, natural fit |
236
- | Database | PostgreSQL + Prisma | Reliable, good DX |
237
- | Auth | NextAuth.js | Integrates well, handles OAuth |
238
- | State | Zustand | Simple, minimal boilerplate |
156
+ **When:** No existing patterns OR `--new` flag
239
157
 
240
- ### Alternatives Considered
158
+ **Approach:** Ask constraint questions, present options
241
159
 
242
- | Alternative | Why Not |
243
- |-------------|---------|
244
- | GraphQL | Adds complexity, REST sufficient for your UCs |
245
- | MongoDB | Team knows SQL, PostgreSQL better fit |
246
- | Redux | Overkill for this project size |
160
+ **Ask about:**
161
+ - Project context (new/existing/rebuild)
162
+ - Team & deployment (solo/small/large, VPS/cloud)
163
+ - Key constraints (tech, budget, timeline, compliance)
247
164
 
248
- **Proceed with recommended stack?**
249
- - Yes, use recommended
250
- - Modify (specify what to change)
251
- - Show me other options
252
- ```
165
+ **Present recommendations based on constraints:**
166
+ - Recommended stack with rationale
167
+ - Alternatives considered (why not)
168
+ - Ask user to approve or modify
253
169
 
254
- ### Phase 3: Gap Analysis
255
-
256
- For any mode, identify gaps between requirements and architecture:
257
-
258
- ```markdown
259
170
  ## Gap Analysis
260
171
 
261
- ### Requirements vs Capabilities
262
-
263
- | Requirement | Current Support | Gap | Action |
264
- |-------------|-----------------|-----|--------|
265
- | User login | ✓ JWT exists | None | Use existing |
266
- | Payments | ✗ None | Need provider | Asked user → Stripe |
267
- | Real-time | ✗ None | Need WebSocket | Add Pusher/Ably |
268
- | File upload | ✓ S3 configured | None | Use existing |
269
-
270
- ### Gaps Requiring Decisions
271
- 1. Payment provider → User chose Stripe
272
- 2. Real-time → Recommend Pusher (simple, managed)
273
- ```
274
-
275
- ### Phase 4: Make Decisions (Only for Gaps)
172
+ For any mode, identify gaps:
276
173
 
277
- Only create ADRs for NEW decisions, not for following existing patterns.
174
+ **Compare:**
175
+ - Requirements (what feature needs)
176
+ - Current capabilities (what exists)
177
+ - Gaps (what's missing)
178
+ - Actions (decisions needed)
278
179
 
279
- For each NEW architecture decision:
180
+ **Output:**
181
+ - Requirements vs Capabilities table
182
+ - Gaps requiring decisions
280
183
 
281
- ```markdown
282
- ## Decision: {Topic}
184
+ ## Decision Making
283
185
 
284
- ### Context
285
- {Why this decision is needed}
186
+ **Only create ADRs for NEW decisions**, not for following existing patterns.
286
187
 
287
- ### Options Considered
188
+ **Decision categories:**
189
+ - API (REST vs GraphQL, versioning, conventions)
190
+ - Data (database, ORM, schema design)
191
+ - Auth (JWT/session/OAuth, permissions)
192
+ - Frontend (state management, component structure)
193
+ - Integration (service connections, event-driven)
194
+ - Infrastructure (caching, queues, storage, email)
288
195
 
289
- **Option A: {Name}**
290
- - Pros: {benefits}
291
- - Cons: {drawbacks}
292
- - Effort: {Low/Medium/High}
196
+ **Each decision includes:**
197
+ - Context (why needed)
198
+ - Options considered (pros/cons/effort)
199
+ - Decision (chosen option + rationale)
200
+ - Consequences (trade-offs accepted)
293
201
 
294
- **Option B: {Name}**
295
- - Pros: {benefits}
296
- - Cons: {drawbacks}
297
- - Effort: {Low/Medium/High}
298
-
299
- ### Decision
300
- {Chosen option and rationale}
301
-
302
- ### Consequences
303
- - {What this means for implementation}
304
- - {Trade-offs accepted}
305
- ```
306
-
307
- **Key decisions to make:**
308
-
309
- | Category | Decisions |
310
- |----------|-----------|
311
- | API | REST vs GraphQL, versioning, conventions |
312
- | Data | Database choice, ORM, schema design |
313
- | Auth | Strategy (JWT/session/OAuth), permission model |
314
- | Frontend | State management, component structure |
315
- | Integration | How services connect, event-driven? |
316
- | Infrastructure | Caching, queues, external services |
317
-
318
- ### Phase 4: Apply Quality Attributes
319
-
320
- Run through `_quality-attributes.md` Architecture Level checklists:
321
-
322
- ```markdown
323
202
  ## Quality Assessment
324
203
 
325
- ### Scalability
326
- - [x] Stateless API design
327
- - [x] Database can handle 10x load
328
- - [ ] Caching strategy defined Need to decide
329
-
330
- ### Maintainability
331
- - [x] Clear module boundaries
332
- - [x] Consistent folder structure
333
- - [x] Dependencies abstracted
334
-
335
- ### Security
336
- - [x] Auth strategy chosen (JWT)
337
- - [x] Permission model (RBAC)
338
- - [ ] Data encryption → Need for PII
339
-
340
- ### Reliability
341
- - [ ] Single points of failure → Database needs replica
342
- - [x] Graceful degradation planned
343
-
344
- ### Performance
345
- - [x] Latency targets defined (P95 < 200ms)
346
- - [ ] CDN for static assets → TODO
347
-
348
- ### Testability
349
- - [x] Dependencies injectable
350
- - [x] Test strategy defined
351
- ```
352
-
353
- ### Phase 5: Generate Architecture Document
354
-
355
- Create `plans/features/{feature}/architecture.md`:
356
-
357
- ```markdown
358
- # {Feature} Architecture
359
-
360
- > **Feature**: [[feature-{name}]]
361
- > **Created**: {date}
362
- > **Status**: Draft | Approved
363
-
364
- ## Overview
365
-
366
- {High-level architecture description}
367
-
368
- ## Architecture Diagram
369
-
370
- ```mermaid
371
- flowchart TB
372
- subgraph Frontend
373
- UI[React App]
374
- State[Zustand Store]
375
- end
376
-
377
- subgraph Backend
378
- API[Next.js API]
379
- Auth[Auth Middleware]
380
- DB[(PostgreSQL)]
381
- end
382
-
383
- subgraph External
384
- Payment[Stripe]
385
- Email[SendGrid]
386
- end
387
-
388
- UI --> API
389
- API --> Auth
390
- API --> DB
391
- API --> Payment
392
- API --> Email
393
- ```
394
-
395
- ## Key Decisions
396
-
397
- | Decision | Choice | Rationale |
398
- |----------|--------|-----------|
399
- | API Style | REST | Matches existing patterns, simpler |
400
- | Auth | JWT + httpOnly cookies | Secure, stateless |
401
- | State | Zustand | Lightweight, already in project |
402
- | Database | PostgreSQL | Existing, supports needed features |
403
-
404
- ## Patterns to Follow
405
-
406
- ### API Patterns
407
- - RESTful endpoints: `/{resource}` and `/{resource}/:id`
408
- - Response format: `{ data, error, meta }`
409
- - Error format: `{ error: { code, message, details } }`
410
-
411
- ### Data Patterns
412
- - Use Prisma ORM
413
- - Soft deletes with `deletedAt`
414
- - Timestamps on all tables
415
-
416
- ### Component Patterns
417
- - Feature folders: `src/features/{feature}/`
418
- - Shared components: `src/components/ui/`
419
- - API clients: `src/lib/api/{feature}.ts`
420
-
421
- ### Auth Patterns
422
- - Middleware checks on protected routes
423
- - Role-based permissions
424
- - Token refresh on activity
425
-
426
- ## Quality Checklist
427
-
428
- ### Scalability
429
- - [x] Stateless API
430
- - [x] Pagination on lists
431
- - [x] Caching strategy: Redis for sessions
432
- - [x] Background jobs: Queue for emails
433
-
434
- ### Security
435
- - [x] Input validation: Zod schemas
436
- - [x] Auth: JWT in httpOnly cookie
437
- - [x] Permissions: RBAC with roles table
438
-
439
- ### Performance
440
- - [x] Database indexes defined
441
- - [x] N+1 queries prevented with includes
442
- - [x] CDN for static assets
443
-
444
- ## ADRs
445
-
446
- | ID | Title | Status |
447
- |----|-------|--------|
448
- | [ADR-001](./adrs/ADR-001-api-style.md) | REST vs GraphQL | Accepted |
449
- | [ADR-002](./adrs/ADR-002-auth-strategy.md) | Authentication Strategy | Accepted |
450
-
451
- ## Risks & Mitigations
452
-
453
- | Risk | Impact | Mitigation |
454
- |------|--------|------------|
455
- | Stripe rate limits | Medium | Implement queue for batch operations |
456
- | Database growth | Low | Archival strategy after 1 year |
457
-
458
- ## Open Questions
459
-
460
- - [ ] {Any unresolved questions}
461
-
462
- ## Next Steps
463
-
464
- 1. Review with team
465
- 2. Create specs with `/dev-specs`
466
- 3. Implement with `/dev-coding`
467
- ```
468
-
469
- ### Phase 6: Generate ADRs (if significant decisions)
470
-
471
- Create `plans/features/{feature}/adrs/ADR-{NNN}-{slug}.md`:
472
-
473
- ```markdown
474
- # ADR-{NNN}: {Title}
475
-
476
- > **Status**: Proposed | Accepted | Deprecated | Superseded
477
- > **Date**: {date}
478
- > **Decision Makers**: {who}
479
-
480
- ## Context
481
-
482
- {What is the issue that we're seeing that motivates this decision?}
483
-
484
- ## Decision
485
-
486
- {What is the change that we're proposing and/or doing?}
487
-
488
- ## Options Considered
489
-
490
- ### Option 1: {Name}
491
- {Description}
492
- - **Pros**: {list}
493
- - **Cons**: {list}
494
-
495
- ### Option 2: {Name}
496
- {Description}
497
- - **Pros**: {list}
498
- - **Cons**: {list}
499
-
500
- ## Consequences
501
-
502
- ### Positive
503
- - {benefit 1}
504
- - {benefit 2}
505
-
506
- ### Negative
507
- - {drawback 1}
508
- - {drawback 2}
509
-
510
- ### Neutral
511
- - {observation}
512
-
513
- ## Related Decisions
514
-
515
- - {Link to related ADRs}
516
- ```
204
+ Apply `_quality-attributes.md` Architecture Level checklists:
205
+
206
+ - **Scalability:** Stateless design, pagination, caching, background jobs
207
+ - **Maintainability:** Module boundaries, consistent structure, abstracted dependencies
208
+ - **Security:** Auth strategy, permission model, data encryption
209
+ - **Reliability:** No single points of failure, graceful degradation
210
+ - **Performance:** Latency targets, CDN, optimizations
211
+ - **Testability:** Injectable dependencies, test strategy
212
+
213
+ ## Architecture Document
214
+
215
+ Create `plans/features/{feature}/architecture.md` with:
216
+ - Overview (high-level description)
217
+ - Architecture diagram (Mermaid)
218
+ - Key decisions table
219
+ - Patterns to follow (API, data, component, auth)
220
+ - Quality checklist
221
+ - ADRs (if created)
222
+ - Risks & mitigations
223
+ - Next steps
224
+
225
+ ## ADR Format
226
+
227
+ Create `plans/features/{feature}/adrs/ADR-{NNN}-{slug}.md` with:
228
+ - Status (Proposed/Accepted/Deprecated/Superseded)
229
+ - Context (why this decision)
230
+ - Decision (what we're doing)
231
+ - Options considered (with pros/cons)
232
+ - Consequences (positive/negative/neutral)
233
+ - Related decisions
517
234
 
518
235
  ## Decision Categories
519
236