@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.
- 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 +95 -144
- package/skills/dev-review/SKILL.md +63 -238
- package/skills/dev-scout/SKILL.md +82 -55
- package/skills/dev-specs/SKILL.md +81 -37
- package/skills/dev-test/SKILL.md +79 -157
package/skills/dev-arch/SKILL.md
CHANGED
|
@@ -73,447 +73,164 @@ plans/features/{feature}/
|
|
|
73
73
|
└── specs/ # From /dev-specs (uses architecture.md)
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
##
|
|
76
|
+
## Expected Outcome
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
Architecture decisions for what's **NEW**. Follow existing for what's **KNOWN**.
|
|
79
79
|
|
|
80
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
104
|
+
## Context Sources
|
|
184
105
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
|
|
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
|
-
**
|
|
197
|
-
```
|
|
116
|
+
**When:** Scout shows established patterns
|
|
198
117
|
|
|
199
|
-
**
|
|
118
|
+
**Approach:** Extract and apply automatically
|
|
200
119
|
|
|
201
|
-
|
|
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
|
-
**
|
|
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
|
-
**
|
|
133
|
+
**Output:** Minimal architecture.md noting patterns applied
|
|
206
134
|
|
|
207
|
-
|
|
208
|
-
- New project (no code yet)
|
|
209
|
-
- Existing project, but new architecture area
|
|
210
|
-
- Complete rebuild
|
|
135
|
+
## Extend Mode
|
|
211
136
|
|
|
212
|
-
**
|
|
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
|
-
**
|
|
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
|
-
**
|
|
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
|
-
|
|
227
|
-
|
|
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
|
-
|
|
152
|
+
**Everything else:** Follow existing patterns
|
|
230
153
|
|
|
231
|
-
|
|
154
|
+
## Design Mode
|
|
232
155
|
|
|
233
|
-
|
|
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
|
-
|
|
158
|
+
**Approach:** Ask constraint questions, present options
|
|
241
159
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
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
|
-
**
|
|
249
|
-
-
|
|
250
|
-
-
|
|
251
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
174
|
+
**Compare:**
|
|
175
|
+
- Requirements (what feature needs)
|
|
176
|
+
- Current capabilities (what exists)
|
|
177
|
+
- Gaps (what's missing)
|
|
178
|
+
- Actions (decisions needed)
|
|
278
179
|
|
|
279
|
-
|
|
180
|
+
**Output:**
|
|
181
|
+
- Requirements vs Capabilities table
|
|
182
|
+
- Gaps requiring decisions
|
|
280
183
|
|
|
281
|
-
|
|
282
|
-
## Decision: {Topic}
|
|
184
|
+
## Decision Making
|
|
283
185
|
|
|
284
|
-
|
|
285
|
-
{Why this decision is needed}
|
|
186
|
+
**Only create ADRs for NEW decisions**, not for following existing patterns.
|
|
286
187
|
|
|
287
|
-
|
|
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
|
-
**
|
|
290
|
-
-
|
|
291
|
-
-
|
|
292
|
-
-
|
|
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
|
-
|
|
326
|
-
|
|
327
|
-
-
|
|
328
|
-
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
-
|
|
332
|
-
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
-
|
|
338
|
-
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
-
|
|
342
|
-
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
-
|
|
350
|
-
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
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
|
|