@smicolon/ai-kit 0.3.2 → 0.4.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/README.md +73 -40
- package/dist/index.js +260 -126
- package/package.json +5 -5
- package/.claude-plugin/marketplace.json +0 -369
- package/packs/architect/CHANGELOG.md +0 -17
- package/packs/architect/README.md +0 -58
- package/packs/architect/agents/system-architect.md +0 -768
- package/packs/architect/commands/diagram-create.md +0 -300
- package/packs/better-auth/.mcp.json +0 -14
- package/packs/better-auth/CHANGELOG.md +0 -26
- package/packs/better-auth/README.md +0 -125
- package/packs/better-auth/agents/auth-architect.md +0 -278
- package/packs/better-auth/commands/auth-provider-add.md +0 -265
- package/packs/better-auth/commands/auth-setup.md +0 -298
- package/packs/better-auth/skills/auth-security/SKILL.md +0 -425
- package/packs/better-auth/skills/better-auth-patterns/SKILL.md +0 -455
- package/packs/dev-loop/CHANGELOG.md +0 -69
- package/packs/dev-loop/README.md +0 -155
- package/packs/dev-loop/commands/cancel-dev.md +0 -21
- package/packs/dev-loop/commands/dev-loop.md +0 -72
- package/packs/dev-loop/commands/dev-plan.md +0 -351
- package/packs/dev-loop/hooks/hooks.json +0 -15
- package/packs/dev-loop/hooks/stop-hook.sh +0 -178
- package/packs/dev-loop/scripts/setup-dev-loop.sh +0 -194
- package/packs/dev-loop/skills/tdd-planner/SKILL.md +0 -249
- package/packs/dev-loop/skills/tdd-planner/references/framework-patterns.md +0 -874
- package/packs/dev-loop/skills/tdd-planner/references/good-example.md +0 -260
- package/packs/dev-loop/skills/tdd-planner/references/plan-template.md +0 -275
- package/packs/django/CHANGELOG.md +0 -39
- package/packs/django/README.md +0 -92
- package/packs/django/agents/django-architect.md +0 -182
- package/packs/django/agents/django-builder.md +0 -250
- package/packs/django/agents/django-feature-based.md +0 -420
- package/packs/django/agents/django-reviewer.md +0 -253
- package/packs/django/agents/django-tester.md +0 -230
- package/packs/django/commands/api-endpoint.md +0 -285
- package/packs/django/commands/model-create.md +0 -178
- package/packs/django/commands/test-generate.md +0 -325
- package/packs/django/rules/migrations.md +0 -138
- package/packs/django/rules/models.md +0 -167
- package/packs/django/rules/serializers.md +0 -126
- package/packs/django/rules/services.md +0 -131
- package/packs/django/rules/tests.md +0 -140
- package/packs/django/rules/views.md +0 -102
- package/packs/django/skills/import-convention-enforcer/SKILL.md +0 -226
- package/packs/django/skills/import-convention-enforcer/patterns/django-imports.md +0 -343
- package/packs/django/skills/migration-safety-checker/SKILL.md +0 -375
- package/packs/django/skills/model-entity-validator/SKILL.md +0 -298
- package/packs/django/skills/performance-optimizer/SKILL.md +0 -447
- package/packs/django/skills/red-phase-verifier/SKILL.md +0 -180
- package/packs/django/skills/security-first-validator/SKILL.md +0 -435
- package/packs/django/skills/test-coverage-advisor/SKILL.md +0 -394
- package/packs/django/skills/test-validity-checker/SKILL.md +0 -194
- package/packs/failure-log/CHANGELOG.md +0 -20
- package/packs/failure-log/README.md +0 -168
- package/packs/failure-log/commands/failure-add.md +0 -106
- package/packs/failure-log/commands/failure-list.md +0 -89
- package/packs/failure-log/hooks/hooks.json +0 -16
- package/packs/failure-log/hooks/scripts/inject-failures.sh +0 -64
- package/packs/failure-log/skills/failure-log-manager/SKILL.md +0 -164
- package/packs/flutter/CHANGELOG.md +0 -19
- package/packs/flutter/README.md +0 -170
- package/packs/flutter/agents/flutter-architect.md +0 -166
- package/packs/flutter/agents/flutter-builder.md +0 -303
- package/packs/flutter/agents/release-manager.md +0 -355
- package/packs/flutter/commands/fastlane-setup.md +0 -188
- package/packs/flutter/commands/flutter-build.md +0 -90
- package/packs/flutter/commands/flutter-deploy.md +0 -133
- package/packs/flutter/commands/flutter-test.md +0 -117
- package/packs/flutter/commands/signing-setup.md +0 -209
- package/packs/flutter/hooks/hooks.json +0 -17
- package/packs/flutter/skills/fastlane-knowledge/SKILL.md +0 -193
- package/packs/flutter/skills/flutter-architecture/SKILL.md +0 -127
- package/packs/flutter/skills/store-publishing/SKILL.md +0 -163
- package/packs/hono/CHANGELOG.md +0 -19
- package/packs/hono/README.md +0 -143
- package/packs/hono/agents/hono-architect.md +0 -240
- package/packs/hono/agents/hono-builder.md +0 -285
- package/packs/hono/agents/hono-reviewer.md +0 -279
- package/packs/hono/agents/hono-tester.md +0 -346
- package/packs/hono/commands/middleware-create.md +0 -223
- package/packs/hono/commands/project-init.md +0 -306
- package/packs/hono/commands/route-create.md +0 -153
- package/packs/hono/commands/rpc-client.md +0 -263
- package/packs/hono/skills/cloudflare-bindings/SKILL.md +0 -408
- package/packs/hono/skills/hono-patterns/SKILL.md +0 -309
- package/packs/hono/skills/rpc-typesafe/SKILL.md +0 -388
- package/packs/hono/skills/zod-validation/SKILL.md +0 -332
- package/packs/nestjs/CHANGELOG.md +0 -29
- package/packs/nestjs/README.md +0 -75
- package/packs/nestjs/agents/nestjs-architect.md +0 -402
- package/packs/nestjs/agents/nestjs-builder.md +0 -301
- package/packs/nestjs/agents/nestjs-tester.md +0 -437
- package/packs/nestjs/commands/module-create.md +0 -369
- package/packs/nestjs/rules/controllers.md +0 -92
- package/packs/nestjs/rules/dto.md +0 -124
- package/packs/nestjs/rules/entities.md +0 -102
- package/packs/nestjs/rules/services.md +0 -106
- package/packs/nestjs/skills/barrel-export-manager/SKILL.md +0 -389
- package/packs/nestjs/skills/import-convention-enforcer/SKILL.md +0 -365
- package/packs/nextjs/CHANGELOG.md +0 -36
- package/packs/nextjs/README.md +0 -76
- package/packs/nextjs/agents/frontend-tester.md +0 -680
- package/packs/nextjs/agents/frontend-visual.md +0 -820
- package/packs/nextjs/agents/nextjs-architect.md +0 -331
- package/packs/nextjs/agents/nextjs-modular.md +0 -433
- package/packs/nextjs/commands/component-create.md +0 -398
- package/packs/nextjs/rules/api-routes.md +0 -129
- package/packs/nextjs/rules/components.md +0 -106
- package/packs/nextjs/rules/hooks.md +0 -132
- package/packs/nextjs/skills/accessibility-validator/SKILL.md +0 -445
- package/packs/nextjs/skills/import-convention-enforcer/SKILL.md +0 -399
- package/packs/nextjs/skills/react-form-validator/SKILL.md +0 -569
- package/packs/nuxtjs/CHANGELOG.md +0 -30
- package/packs/nuxtjs/README.md +0 -56
- package/packs/nuxtjs/agents/frontend-tester.md +0 -680
- package/packs/nuxtjs/agents/frontend-visual.md +0 -820
- package/packs/nuxtjs/agents/nuxtjs-architect.md +0 -537
- package/packs/nuxtjs/commands/component-create.md +0 -223
- package/packs/nuxtjs/rules/components.md +0 -101
- package/packs/nuxtjs/rules/composables.md +0 -118
- package/packs/nuxtjs/rules/server-routes.md +0 -127
- package/packs/nuxtjs/skills/accessibility-validator/SKILL.md +0 -183
- package/packs/nuxtjs/skills/import-convention-enforcer/SKILL.md +0 -196
- package/packs/nuxtjs/skills/veevalidate-form-validator/SKILL.md +0 -190
- package/packs/onboard/CHANGELOG.md +0 -22
- package/packs/onboard/README.md +0 -103
- package/packs/onboard/agents/onboard-guide.md +0 -118
- package/packs/onboard/commands/onboard.md +0 -313
- package/packs/onboard/skills/onboard-context-provider/SKILL.md +0 -98
- package/packs/tanstack-router/CHANGELOG.md +0 -30
- package/packs/tanstack-router/README.md +0 -113
- package/packs/tanstack-router/agents/tanstack-architect.md +0 -173
- package/packs/tanstack-router/agents/tanstack-builder.md +0 -360
- package/packs/tanstack-router/agents/tanstack-tester.md +0 -454
- package/packs/tanstack-router/commands/form-create.md +0 -313
- package/packs/tanstack-router/commands/query-create.md +0 -263
- package/packs/tanstack-router/commands/route-create.md +0 -190
- package/packs/tanstack-router/commands/table-create.md +0 -413
- package/packs/tanstack-router/skills/ai-patterns/SKILL.md +0 -370
- package/packs/tanstack-router/skills/db-patterns/SKILL.md +0 -346
- package/packs/tanstack-router/skills/devtools-patterns/SKILL.md +0 -415
- package/packs/tanstack-router/skills/form-patterns/SKILL.md +0 -425
- package/packs/tanstack-router/skills/pacer-patterns/SKILL.md +0 -341
- package/packs/tanstack-router/skills/query-patterns/SKILL.md +0 -359
- package/packs/tanstack-router/skills/router-patterns/SKILL.md +0 -285
- package/packs/tanstack-router/skills/store-patterns/SKILL.md +0 -351
- package/packs/tanstack-router/skills/table-patterns/SKILL.md +0 -531
- package/packs/tanstack-router/skills/tanstack-conventions/SKILL.md +0 -428
- package/packs/tanstack-router/skills/virtual-patterns/SKILL.md +0 -490
- package/packs/worktree/CHANGELOG.md +0 -45
- package/packs/worktree/README.md +0 -219
- package/packs/worktree/commands/wt.md +0 -93
- package/packs/worktree/scripts/wt.sh +0 -957
- package/packs/worktree/skills/worktree-manager/SKILL.md +0 -113
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
# Good Plan Example: Flutter Riverpod Migration
|
|
2
|
-
|
|
3
|
-
This is a reference example of a well-structured dev-loop plan. Use this as a quality benchmark when generating plans.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## What Makes This Plan Good
|
|
8
|
-
|
|
9
|
-
1. **Specific Context** - Lists exact providers to migrate, not just "migrate to Riverpod"
|
|
10
|
-
2. **Measurable Criteria** - "81+ tests", "No Provider imports remain"
|
|
11
|
-
3. **File Paths** - Every task mentions exact file paths
|
|
12
|
-
4. **Code Snippets** - Shows actual implementation structure
|
|
13
|
-
5. **Expected Behavior** - "should FAIL (providers don't exist yet)"
|
|
14
|
-
6. **Tables** - Files to Modify + New Files to Create
|
|
15
|
-
7. **Framework-Specific** - Uses Flutter/Dart patterns correctly
|
|
16
|
-
8. **Stuck Handling** - Specific to Riverpod, not generic
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## The Plan
|
|
21
|
-
|
|
22
|
-
```markdown
|
|
23
|
-
# Dev Loop Plan: Migrate to Riverpod State Management
|
|
24
|
-
|
|
25
|
-
## Context
|
|
26
|
-
- **Framework**: Flutter
|
|
27
|
-
- **Current State Management**: Provider with ChangeNotifierProvider
|
|
28
|
-
- **Test Command**: `flutter test`
|
|
29
|
-
- **Lint Command**: `flutter analyze`
|
|
30
|
-
- **Providers to Migrate**:
|
|
31
|
-
- `AppStateProvider` (settings, prayer reminders)
|
|
32
|
-
- `NetworkService` (connectivity status)
|
|
33
|
-
- `SyncService` (cloud sync status)
|
|
34
|
-
|
|
35
|
-
## Success Criteria
|
|
36
|
-
- [ ] All existing tests pass (81+ tests)
|
|
37
|
-
- [ ] `flutter analyze` shows no issues
|
|
38
|
-
- [ ] App starts correctly with ProviderScope
|
|
39
|
-
- [ ] Settings load and persist correctly
|
|
40
|
-
- [ ] Network status updates reactively
|
|
41
|
-
- [ ] Sync status updates reactively
|
|
42
|
-
- [ ] No Provider imports remain (clean migration)
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Phase 1: Red - Setup and Infrastructure Tests
|
|
47
|
-
|
|
48
|
-
**Goal:** Add Riverpod dependency and write failing tests for core providers
|
|
49
|
-
|
|
50
|
-
**Tasks:**
|
|
51
|
-
- [ ] Add `flutter_riverpod` to pubspec.yaml
|
|
52
|
-
- [ ] Run `flutter pub get`
|
|
53
|
-
- [ ] Create `test/providers/app_state_provider_test.dart` with failing tests
|
|
54
|
-
- [ ] Create `test/providers/network_provider_test.dart` with failing tests
|
|
55
|
-
|
|
56
|
-
**Verification:** `flutter test test/providers/` should FAIL (providers don't exist yet)
|
|
57
|
-
|
|
58
|
-
**Expected Output:** Test failures because Riverpod providers not implemented
|
|
59
|
-
|
|
60
|
-
**Self-correction:** If tests pass, they are not testing the right thing - add assertions
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Phase 2: Green - Implement Core Providers
|
|
65
|
-
|
|
66
|
-
**Goal:** Create Riverpod providers that pass the tests
|
|
67
|
-
|
|
68
|
-
**Tasks:**
|
|
69
|
-
- [ ] Create `lib/providers/app_state_provider.dart` with StateNotifierProvider
|
|
70
|
-
- [ ] Create `lib/providers/network_provider.dart` with StateNotifierProvider
|
|
71
|
-
- [ ] Create `lib/providers/sync_provider.dart` with StateNotifierProvider
|
|
72
|
-
- [ ] Create `lib/providers/providers.dart` barrel file
|
|
73
|
-
|
|
74
|
-
**Provider Structure:**
|
|
75
|
-
```dart
|
|
76
|
-
// App State
|
|
77
|
-
final appStateProvider = StateNotifierProvider<AppStateNotifier, AppState>((ref) {
|
|
78
|
-
return AppStateNotifier();
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// Network
|
|
82
|
-
final networkProvider = StateNotifierProvider<NetworkNotifier, NetworkState>((ref) {
|
|
83
|
-
return NetworkNotifier();
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
// Sync (depends on network)
|
|
87
|
-
final syncProvider = StateNotifierProvider<SyncNotifier, SyncState>((ref) {
|
|
88
|
-
final network = ref.watch(networkProvider);
|
|
89
|
-
return SyncNotifier(isOnline: network.isOnline);
|
|
90
|
-
});
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Verification:** `flutter test test/providers/` should PASS
|
|
94
|
-
|
|
95
|
-
**Self-correction:** If tests still fail, check state classes match expected structure
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Phase 3: Red - Widget Migration Tests
|
|
100
|
-
|
|
101
|
-
**Goal:** Write failing tests for widget provider consumption
|
|
102
|
-
|
|
103
|
-
**Tasks:**
|
|
104
|
-
- [ ] Update `test/widget_test.dart` to use ProviderScope
|
|
105
|
-
- [ ] Add test for PrayerTimesScreen with Riverpod
|
|
106
|
-
- [ ] Add test for OfflineIndicator with network provider
|
|
107
|
-
|
|
108
|
-
**Verification:** `flutter test test/widget_test.dart` should FAIL
|
|
109
|
-
|
|
110
|
-
**Self-correction:** Ensure test wraps widgets in ProviderScope
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Phase 4: Green - Migrate main.dart and Widgets
|
|
115
|
-
|
|
116
|
-
**Goal:** Replace MultiProvider with ProviderScope and migrate widgets
|
|
117
|
-
|
|
118
|
-
**Tasks:**
|
|
119
|
-
- [ ] Update `lib/main.dart`:
|
|
120
|
-
- Replace `MultiProvider` with `ProviderScope`
|
|
121
|
-
- Remove old Provider imports
|
|
122
|
-
- Add Riverpod imports
|
|
123
|
-
- [ ] Migrate `lib/screens/prayer_times_screen.dart`:
|
|
124
|
-
- Change to ConsumerStatefulWidget
|
|
125
|
-
- Replace `context.watch<>` with `ref.watch()`
|
|
126
|
-
- Replace `context.read<>` with `ref.read()`
|
|
127
|
-
- [ ] Migrate `lib/widgets/offline_indicator.dart`:
|
|
128
|
-
- Replace Provider consumption with Riverpod
|
|
129
|
-
- [ ] Migrate `lib/screens/notification_settings_screen.dart`:
|
|
130
|
-
- Replace Provider consumption with Riverpod
|
|
131
|
-
|
|
132
|
-
**Verification:** `flutter test` should PASS
|
|
133
|
-
|
|
134
|
-
**Self-correction:** If widget tests fail, verify ConsumerWidget/ConsumerStatefulWidget usage
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Phase 5: Refactor - Clean Up Old Provider Code
|
|
139
|
-
|
|
140
|
-
**Goal:** Remove old Provider code and ensure clean architecture
|
|
141
|
-
|
|
142
|
-
**Tasks:**
|
|
143
|
-
- [ ] Delete or rename old `lib/services/app_state_provider.dart`
|
|
144
|
-
- [ ] Remove `provider` package from pubspec.yaml (if no longer needed)
|
|
145
|
-
- [ ] Update all remaining imports
|
|
146
|
-
- [ ] Run `flutter analyze` to catch any issues
|
|
147
|
-
- [ ] Update CLAUDE.md documentation
|
|
148
|
-
|
|
149
|
-
**Verification:**
|
|
150
|
-
```bash
|
|
151
|
-
flutter analyze && flutter test
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**Self-correction:** If analyze shows errors, fix import paths
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## Phase 6: Integration Testing
|
|
159
|
-
|
|
160
|
-
**Goal:** Verify full app works end-to-end
|
|
161
|
-
|
|
162
|
-
**Tasks:**
|
|
163
|
-
- [ ] Run app on simulator/device
|
|
164
|
-
- [ ] Verify settings load correctly
|
|
165
|
-
- [ ] Verify offline indicator works
|
|
166
|
-
- [ ] Verify sync status updates
|
|
167
|
-
- [ ] Verify prayer times screen works
|
|
168
|
-
- [ ] Test hot reload works
|
|
169
|
-
|
|
170
|
-
**Verification:** Manual testing + all automated tests pass
|
|
171
|
-
|
|
172
|
-
**Self-correction:** If app crashes, check initialization order in main.dart
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Final Verification
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
flutter analyze && flutter test
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**Expected Results:**
|
|
183
|
-
- `flutter analyze`: No issues found!
|
|
184
|
-
- `flutter test`: All tests passed!
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Completion
|
|
189
|
-
|
|
190
|
-
When all criteria met: <promise>DONE</promise>
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Stuck Handling
|
|
195
|
-
|
|
196
|
-
### If same test keeps failing:
|
|
197
|
-
1. Read the exact error message
|
|
198
|
-
2. Check if state class matches test expectations
|
|
199
|
-
3. Verify ref.watch vs ref.read usage
|
|
200
|
-
4. Check ProviderScope is at root
|
|
201
|
-
|
|
202
|
-
### If app won't start:
|
|
203
|
-
1. Check ProviderScope wraps entire app
|
|
204
|
-
2. Verify no circular dependencies in providers
|
|
205
|
-
3. Check async initialization is handled
|
|
206
|
-
|
|
207
|
-
### If hot reload breaks:
|
|
208
|
-
1. ConsumerStatefulWidget may need widget rebuild
|
|
209
|
-
2. Check provider isn't being disposed incorrectly
|
|
210
|
-
|
|
211
|
-
### Alternative approaches if blocked:
|
|
212
|
-
1. Keep hybrid approach (both Provider and Riverpod) temporarily
|
|
213
|
-
2. Migrate one screen at a time
|
|
214
|
-
3. Use ChangeNotifierProvider adapter in Riverpod for gradual migration
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
## Files to Modify
|
|
219
|
-
|
|
220
|
-
| File | Action |
|
|
221
|
-
|------|--------|
|
|
222
|
-
| `pubspec.yaml` | Add flutter_riverpod |
|
|
223
|
-
| `lib/main.dart` | Replace MultiProvider with ProviderScope |
|
|
224
|
-
| `lib/services/app_state_provider.dart` | Migrate to Riverpod or delete |
|
|
225
|
-
| `lib/services/network_service.dart` | Keep service, add Riverpod wrapper |
|
|
226
|
-
| `lib/services/sync_service.dart` | Keep service, add Riverpod wrapper |
|
|
227
|
-
| `lib/screens/prayer_times_screen.dart` | Use ConsumerStatefulWidget |
|
|
228
|
-
| `lib/widgets/offline_indicator.dart` | Use Consumer/ConsumerWidget |
|
|
229
|
-
| `lib/screens/notification_settings_screen.dart` | Use Consumer/ConsumerWidget |
|
|
230
|
-
| `test/widget_test.dart` | Wrap in ProviderScope |
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## New Files to Create
|
|
235
|
-
|
|
236
|
-
| File | Purpose |
|
|
237
|
-
|------|---------|
|
|
238
|
-
| `lib/providers/providers.dart` | Barrel file for all providers |
|
|
239
|
-
| `lib/providers/app_state_provider.dart` | Riverpod app state |
|
|
240
|
-
| `lib/providers/network_provider.dart` | Riverpod network state |
|
|
241
|
-
| `lib/providers/sync_provider.dart` | Riverpod sync state |
|
|
242
|
-
| `test/providers/app_state_provider_test.dart` | Provider tests |
|
|
243
|
-
| `test/providers/network_provider_test.dart` | Provider tests |
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
---
|
|
247
|
-
|
|
248
|
-
## Checklist for Quality Plans
|
|
249
|
-
|
|
250
|
-
Use this checklist when reviewing generated plans:
|
|
251
|
-
|
|
252
|
-
- [ ] **Context** lists specific items to work on (not just "the feature")
|
|
253
|
-
- [ ] **Success Criteria** are measurable (numbers, specific behaviors)
|
|
254
|
-
- [ ] **Every task** has a file path
|
|
255
|
-
- [ ] **Code snippets** show implementation structure
|
|
256
|
-
- [ ] **Verification** has expected output (PASS/FAIL + why)
|
|
257
|
-
- [ ] **Self-correction** is phase-specific, not generic
|
|
258
|
-
- [ ] **Files to Modify** table exists
|
|
259
|
-
- [ ] **New Files to Create** table exists
|
|
260
|
-
- [ ] **Stuck Handling** is framework/task-specific
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
# Dev Loop Plan Template
|
|
2
|
-
|
|
3
|
-
Use this template when generating dev-loop plans. Every section is **required** unless marked optional.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Quality Checklist
|
|
8
|
-
|
|
9
|
-
Before saving a plan, verify:
|
|
10
|
-
|
|
11
|
-
- [ ] Context lists **specific items** to work on (not just "the feature")
|
|
12
|
-
- [ ] Success criteria are **measurable** (numbers, specific behaviors)
|
|
13
|
-
- [ ] **Every task** has a file path
|
|
14
|
-
- [ ] **Code snippets** show implementation structure
|
|
15
|
-
- [ ] Verification has **expected output** (PASS/FAIL + why)
|
|
16
|
-
- [ ] Self-correction is **phase-specific**, not generic
|
|
17
|
-
- [ ] **Files to Modify** table exists
|
|
18
|
-
- [ ] **New Files to Create** table exists
|
|
19
|
-
- [ ] Stuck handling is **framework/task-specific**
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Template
|
|
24
|
-
|
|
25
|
-
```markdown
|
|
26
|
-
# Dev Loop Plan: {{GOAL}}
|
|
27
|
-
|
|
28
|
-
Generated: {{TIMESTAMP}}
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Context
|
|
33
|
-
|
|
34
|
-
- **Framework**: {{FRAMEWORK}}
|
|
35
|
-
- **Current State**: {{CURRENT_STATE}} (e.g., "Provider with ChangeNotifierProvider")
|
|
36
|
-
- **Test Command**: `{{TEST_COMMAND}}`
|
|
37
|
-
- **Lint Command**: `{{LINT_COMMAND}}`
|
|
38
|
-
- **Coverage Command**: `{{COVERAGE_COMMAND}}` (optional)
|
|
39
|
-
- **Items to Work On**:
|
|
40
|
-
{{#WORK_ITEMS}}
|
|
41
|
-
- `{{ITEM_NAME}}` ({{ITEM_DESCRIPTION}})
|
|
42
|
-
{{/WORK_ITEMS}}
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Success Criteria
|
|
47
|
-
|
|
48
|
-
All of the following must be true:
|
|
49
|
-
|
|
50
|
-
{{#SUCCESS_CRITERIA}}
|
|
51
|
-
- [ ] {{CRITERION}}
|
|
52
|
-
{{/SUCCESS_CRITERIA}}
|
|
53
|
-
- [ ] All tests pass (`{{TEST_COMMAND}}`)
|
|
54
|
-
- [ ] Linter clean (`{{LINT_COMMAND}}`)
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Acceptance Criteria (Optional but Recommended)
|
|
59
|
-
|
|
60
|
-
User-facing behaviors to verify:
|
|
61
|
-
|
|
62
|
-
{{#ACCEPTANCE_CRITERIA}}
|
|
63
|
-
### {{AC_NUMBER}}. {{AC_TITLE}}
|
|
64
|
-
- **Given**: {{GIVEN}}
|
|
65
|
-
- **When**: {{WHEN}}
|
|
66
|
-
- **Then**: {{THEN}}
|
|
67
|
-
{{/ACCEPTANCE_CRITERIA}}
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## Files to Modify
|
|
72
|
-
|
|
73
|
-
| File | Action |
|
|
74
|
-
|------|--------|
|
|
75
|
-
{{#FILES_TO_MODIFY}}
|
|
76
|
-
| `{{FILE_PATH}}` | {{ACTION}} |
|
|
77
|
-
{{/FILES_TO_MODIFY}}
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## New Files to Create
|
|
82
|
-
|
|
83
|
-
| File | Purpose |
|
|
84
|
-
|------|---------|
|
|
85
|
-
{{#NEW_FILES}}
|
|
86
|
-
| `{{FILE_PATH}}` | {{PURPOSE}} |
|
|
87
|
-
{{/NEW_FILES}}
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Progress Tracking
|
|
92
|
-
|
|
93
|
-
**IMPORTANT:** After completing each task, update this file by checking the box:
|
|
94
|
-
- Change `- [ ]` to `- [x]` for completed tasks
|
|
95
|
-
- This tracks progress across iterations and prevents redoing work
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Phases
|
|
100
|
-
|
|
101
|
-
{{#PHASES}}
|
|
102
|
-
|
|
103
|
-
### Phase {{PHASE_NUMBER}}: {{PHASE_TYPE}} - {{COMPONENT}}
|
|
104
|
-
|
|
105
|
-
**Goal:** {{PHASE_GOAL}}
|
|
106
|
-
|
|
107
|
-
**Tasks:**
|
|
108
|
-
{{#TASKS}}
|
|
109
|
-
- [ ] {{TASK_DESCRIPTION}}
|
|
110
|
-
{{#TASK_DETAILS}}
|
|
111
|
-
- {{DETAIL}}
|
|
112
|
-
{{/TASK_DETAILS}}
|
|
113
|
-
{{/TASKS}}
|
|
114
|
-
|
|
115
|
-
**Implementation Structure:** (include code snippet for Green phases)
|
|
116
|
-
```{{LANGUAGE}}
|
|
117
|
-
{{CODE_SNIPPET}}
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
**Verification:**
|
|
121
|
-
```bash
|
|
122
|
-
{{VERIFICATION_COMMAND}}
|
|
123
|
-
```
|
|
124
|
-
**Expected:** {{EXPECTED_RESULT}}
|
|
125
|
-
|
|
126
|
-
**Self-correction:**
|
|
127
|
-
- {{PHASE_SPECIFIC_CORRECTION}}
|
|
128
|
-
|
|
129
|
-
{{/PHASES}}
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Final Verification
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
{{FINAL_VERIFICATION}}
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**Expected Results:**
|
|
140
|
-
{{#FINAL_EXPECTATIONS}}
|
|
141
|
-
- `{{COMMAND}}`: {{EXPECTATION}}
|
|
142
|
-
{{/FINAL_EXPECTATIONS}}
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Completion
|
|
147
|
-
|
|
148
|
-
When ALL criteria met: <promise>DONE</promise>
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Stuck Handling
|
|
153
|
-
|
|
154
|
-
### If same test keeps failing:
|
|
155
|
-
{{#STUCK_TEST_TIPS}}
|
|
156
|
-
1. {{TIP}}
|
|
157
|
-
{{/STUCK_TEST_TIPS}}
|
|
158
|
-
|
|
159
|
-
### If app/server won't start:
|
|
160
|
-
{{#STUCK_START_TIPS}}
|
|
161
|
-
1. {{TIP}}
|
|
162
|
-
{{/STUCK_START_TIPS}}
|
|
163
|
-
|
|
164
|
-
### Alternative approaches if blocked:
|
|
165
|
-
{{#ALTERNATIVE_APPROACHES}}
|
|
166
|
-
1. {{APPROACH}}
|
|
167
|
-
{{/ALTERNATIVE_APPROACHES}}
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
## Rollback Strategy (Optional)
|
|
172
|
-
|
|
173
|
-
If migration/feature fails completely:
|
|
174
|
-
1. {{ROLLBACK_STEP_1}}
|
|
175
|
-
2. {{ROLLBACK_STEP_2}}
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Dependencies & Prerequisites
|
|
180
|
-
|
|
181
|
-
{{#DEPENDENCIES}}
|
|
182
|
-
- {{DEPENDENCY}}: {{VERSION_OR_NOTES}}
|
|
183
|
-
{{/DEPENDENCIES}}
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## Notes
|
|
188
|
-
|
|
189
|
-
{{ADDITIONAL_NOTES}}
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Example: Populated Template
|
|
195
|
-
|
|
196
|
-
See `references/good-example.md` for a complete, high-quality example.
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Variable Reference
|
|
201
|
-
|
|
202
|
-
### Required Variables
|
|
203
|
-
|
|
204
|
-
| Variable | Description | Example |
|
|
205
|
-
|----------|-------------|---------|
|
|
206
|
-
| `{{GOAL}}` | High-level objective | "Migrate to Riverpod State Management" |
|
|
207
|
-
| `{{FRAMEWORK}}` | Detected framework | "Flutter", "Django 5.0", "Next.js 14" |
|
|
208
|
-
| `{{CURRENT_STATE}}` | What exists now | "Provider with ChangeNotifierProvider" |
|
|
209
|
-
| `{{TEST_COMMAND}}` | Test runner command | "flutter test", "pytest" |
|
|
210
|
-
| `{{LINT_COMMAND}}` | Linter command | "flutter analyze", "ruff check ." |
|
|
211
|
-
| `{{WORK_ITEMS}}` | Specific items to work on | List of components, providers, endpoints |
|
|
212
|
-
| `{{FILES_TO_MODIFY}}` | Existing files to change | Table with file paths and actions |
|
|
213
|
-
| `{{NEW_FILES}}` | Files to create | Table with file paths and purposes |
|
|
214
|
-
|
|
215
|
-
### Phase Variables
|
|
216
|
-
|
|
217
|
-
| Variable | Description | Example |
|
|
218
|
-
|----------|-------------|---------|
|
|
219
|
-
| `{{PHASE_TYPE}}` | Red, Green, or Refactor | "Red", "Green", "Refactor" |
|
|
220
|
-
| `{{COMPONENT}}` | What's being built | "Core Providers", "Widget Migration" |
|
|
221
|
-
| `{{CODE_SNIPPET}}` | Implementation structure | Actual code showing pattern |
|
|
222
|
-
| `{{EXPECTED_RESULT}}` | What success looks like | "should FAIL (providers don't exist yet)" |
|
|
223
|
-
| `{{PHASE_SPECIFIC_CORRECTION}}` | Phase-specific stuck handling | "If tests pass, they're not testing the right thing" |
|
|
224
|
-
|
|
225
|
-
### Task Detail Pattern
|
|
226
|
-
|
|
227
|
-
Tasks should include file paths and specifics:
|
|
228
|
-
|
|
229
|
-
**Bad:**
|
|
230
|
-
```markdown
|
|
231
|
-
- [ ] Create login view
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
**Good:**
|
|
235
|
-
```markdown
|
|
236
|
-
- [ ] Create `lib/screens/login_screen.dart`:
|
|
237
|
-
- ConsumerStatefulWidget
|
|
238
|
-
- Form with email/password fields
|
|
239
|
-
- Calls `ref.read(authProvider.notifier).login()`
|
|
240
|
-
- Navigates to home on success
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## Framework-Specific Patterns
|
|
246
|
-
|
|
247
|
-
### Flutter
|
|
248
|
-
- Use `ConsumerWidget` / `ConsumerStatefulWidget`
|
|
249
|
-
- Wrap app in `ProviderScope`
|
|
250
|
-
- Test with `ProviderScope` in tests
|
|
251
|
-
|
|
252
|
-
### Django
|
|
253
|
-
- Use absolute imports (`import users.models as _models`)
|
|
254
|
-
- UUID primary keys on all models
|
|
255
|
-
- Service layer for business logic
|
|
256
|
-
|
|
257
|
-
### Next.js
|
|
258
|
-
- Use `"use client"` directive for client components
|
|
259
|
-
- TanStack Query for data fetching
|
|
260
|
-
- Zod schemas for validation
|
|
261
|
-
|
|
262
|
-
### NestJS
|
|
263
|
-
- Barrel exports (`index.ts` in each folder)
|
|
264
|
-
- Absolute imports from `src/`
|
|
265
|
-
- DTOs with class-validator
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## Anti-Patterns to Avoid
|
|
270
|
-
|
|
271
|
-
1. **Vague tasks**: "Implement the feature" (no file paths)
|
|
272
|
-
2. **Generic self-correction**: "If it fails, try again" (not specific)
|
|
273
|
-
3. **Missing code snippets**: No structure shown for implementation
|
|
274
|
-
4. **No file tables**: Unclear what files are affected
|
|
275
|
-
5. **Unmeasurable criteria**: "App works well" (how do you verify?)
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to the smi-django plugin will be documented in this file.
|
|
4
|
-
|
|
5
|
-
## [Unreleased]
|
|
6
|
-
|
|
7
|
-
### Changed
|
|
8
|
-
- Renamed from `smi-django` to `django` as part of ai-kit migration
|
|
9
|
-
- Moved from `plugins/smi-django/` to `packs/django/`
|
|
10
|
-
|
|
11
|
-
## [2.1.0] - 2025-01-02
|
|
12
|
-
|
|
13
|
-
### Added
|
|
14
|
-
- 8 auto-enforcing skills for convention compliance
|
|
15
|
-
- `import-convention-enforcer` - Absolute modular imports
|
|
16
|
-
- `model-entity-validator` - UUID, timestamps, soft delete
|
|
17
|
-
- `security-first-validator` - Permissions, authentication
|
|
18
|
-
- `test-coverage-advisor` - 90%+ coverage guidance
|
|
19
|
-
- `performance-optimizer` - N+1 detection
|
|
20
|
-
- `migration-safety-checker` - Safe migrations
|
|
21
|
-
- `test-validity-checker` - Test quality
|
|
22
|
-
- `red-phase-verifier` - TDD red phase
|
|
23
|
-
|
|
24
|
-
## [2.0.0] - 2024-12-01
|
|
25
|
-
|
|
26
|
-
### Changed
|
|
27
|
-
- BREAKING: Renamed `@django-dev` to `@django-builder`
|
|
28
|
-
- Updated import conventions to use module aliases
|
|
29
|
-
|
|
30
|
-
### Added
|
|
31
|
-
- `@django-feature-based` agent for large-scale architecture
|
|
32
|
-
- `/api-endpoint` command
|
|
33
|
-
|
|
34
|
-
## [1.0.0] - 2024-10-01
|
|
35
|
-
|
|
36
|
-
### Added
|
|
37
|
-
- Initial stable release
|
|
38
|
-
- 5 agents: architect, builder, feature-based, tester, reviewer
|
|
39
|
-
- 3 commands: model-create, api-endpoint, test-generate
|
package/packs/django/README.md
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# Django Development Standards Plugin
|
|
2
|
-
|
|
3
|
-
Smicolon company standards for Django projects.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Add Smicolon marketplace
|
|
9
|
-
/plugin marketplace add https://github.com/smicolon/ai-kit
|
|
10
|
-
|
|
11
|
-
# Install Django plugin
|
|
12
|
-
/plugin install django
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## What's Included
|
|
16
|
-
|
|
17
|
-
### 5 Specialized Agents
|
|
18
|
-
|
|
19
|
-
- `@django-architect` - System architecture design and planning
|
|
20
|
-
- `@django-builder` - Feature implementation with best practices
|
|
21
|
-
- `@django-feature-based` - Large-scale feature-based architecture
|
|
22
|
-
- `@django-tester` - Test writing (90%+ coverage target)
|
|
23
|
-
- `@django-reviewer` - Security and code review
|
|
24
|
-
|
|
25
|
-
### 8 Auto-Enforcing Skills
|
|
26
|
-
|
|
27
|
-
Skills automatically activate based on context - no manual invocation needed:
|
|
28
|
-
|
|
29
|
-
**Core Validators:**
|
|
30
|
-
- `import-convention-enforcer` - Auto-fixes import patterns to use absolute modular imports
|
|
31
|
-
- `model-entity-validator` - Auto-enforces BaseModel inheritance (UUID, timestamps, soft delete)
|
|
32
|
-
- `security-first-validator` - Auto-checks API endpoints for security requirements (permissions, validation)
|
|
33
|
-
|
|
34
|
-
**Quality Enforcers:**
|
|
35
|
-
- `test-coverage-advisor` - Auto-suggests missing tests to achieve 90%+ coverage
|
|
36
|
-
- `performance-optimizer` - Auto-detects N+1 queries and suggests optimizations
|
|
37
|
-
- `migration-safety-checker` - Auto-validates migrations are production-safe (no data loss)
|
|
38
|
-
|
|
39
|
-
**TDD Helpers:**
|
|
40
|
-
- `test-validity-checker` - Validates tests are meaningful and not trivial
|
|
41
|
-
- `red-phase-verifier` - Ensures tests fail before implementation (TDD red phase)
|
|
42
|
-
|
|
43
|
-
**How Skills Work:**
|
|
44
|
-
- Auto-invoke based on what you're doing (writing models, creating APIs, etc.)
|
|
45
|
-
- Proactively fix violations without being asked
|
|
46
|
-
- Explain WHY conventions exist
|
|
47
|
-
- Block unsafe operations (insecure endpoints, data-loss migrations)
|
|
48
|
-
|
|
49
|
-
### Automatic Convention Enforcement
|
|
50
|
-
|
|
51
|
-
Skills automatically enforce:
|
|
52
|
-
|
|
53
|
-
**Import Pattern:**
|
|
54
|
-
```python
|
|
55
|
-
# CORRECT - Absolute modular imports with aliases
|
|
56
|
-
import users.models as _users_models
|
|
57
|
-
import users.services as _users_services
|
|
58
|
-
|
|
59
|
-
user = _users_models.User.objects.get(id=user_id)
|
|
60
|
-
|
|
61
|
-
# WRONG - Never use
|
|
62
|
-
from .models import User
|
|
63
|
-
from users.models import User
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**Model Standards:**
|
|
67
|
-
- UUID primary keys
|
|
68
|
-
- Timestamps (created_at, updated_at)
|
|
69
|
-
- Soft deletes (is_deleted)
|
|
70
|
-
- Service layer for business logic
|
|
71
|
-
- Type hints required
|
|
72
|
-
- Permission classes on all views
|
|
73
|
-
|
|
74
|
-
## Usage
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
# Start with architecture
|
|
78
|
-
@django-architect "Design a payment processing system"
|
|
79
|
-
|
|
80
|
-
# Implement features
|
|
81
|
-
@django-builder "Implement payment processing"
|
|
82
|
-
|
|
83
|
-
# Write tests
|
|
84
|
-
@django-tester "Write tests for payment system"
|
|
85
|
-
|
|
86
|
-
# Review for security
|
|
87
|
-
@django-reviewer "Review payment code for security issues"
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## Documentation
|
|
91
|
-
|
|
92
|
-
See the main [Smicolon Claude Infra repository](https://github.com/smicolon/ai-kit) for complete documentation.
|