@intentsolutionsio/fullstack-starter-pack 1.0.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.
@@ -0,0 +1,461 @@
1
+ ---
2
+ name: sql-query-builder
3
+ description: >
4
+ Generate optimized SQL queries from natural language descriptions
5
+ shortcut: sqb
6
+ category: database
7
+ difficulty: beginner
8
+ estimated_time: 2-3 minutes
9
+ ---
10
+ # SQL Query Builder
11
+
12
+ Generates optimized SQL queries from natural language descriptions, supporting SELECT, INSERT, UPDATE, DELETE with JOINs, indexes, and best practices.
13
+
14
+ ## What This Command Does
15
+
16
+ **Generated Queries:**
17
+ - SELECT queries with JOINs
18
+ - INSERT, UPDATE, DELETE operations
19
+ - Aggregations and GROUP BY
20
+ - Subqueries and CTEs
21
+ - Indexes and optimization tips
22
+ - PostgreSQL, MySQL, SQLite syntax
23
+
24
+ **Output:** Production-ready SQL queries
25
+
26
+ **Time:** 2-3 minutes
27
+
28
+ ---
29
+
30
+ ## Usage
31
+
32
+ ```bash
33
+ # Generate query from description
34
+ /sql-query-builder "Get all users with their posts"
35
+
36
+ # Shortcut
37
+ /sqb "Find top 10 products by sales"
38
+
39
+ # Complex query
40
+ /sqb "Get users who have made purchases in last 30 days, grouped by country"
41
+
42
+ # Specific database
43
+ /sqb "List orders with customer info" --database postgresql
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Example Output
49
+
50
+ **Input:**
51
+ ```
52
+ /sqb "Get all blog posts with author info and comment count, ordered by recent"
53
+ ```
54
+
55
+ **Generated SQL:**
56
+
57
+ ```sql
58
+ -- Query: Get all blog posts with author info and comment count
59
+ -- Database: PostgreSQL
60
+ -- Optimized for performance with proper indexes
61
+
62
+ -- Main query
63
+ SELECT
64
+ p.id,
65
+ p.title,
66
+ p.slug,
67
+ p.content,
68
+ p.published,
69
+ p.created_at,
70
+ p.updated_at,
71
+ -- Author information
72
+ u.id AS author_id,
73
+ u.name AS author_name,
74
+ u.email AS author_email,
75
+ -- Comment count (calculated)
76
+ COUNT(c.id) AS comment_count
77
+ FROM posts p
78
+ INNER JOIN users u ON p.author_id = u.id
79
+ LEFT JOIN comments c ON p.id = c.post_id
80
+ WHERE p.published = true
81
+ GROUP BY
82
+ p.id,
83
+ p.title,
84
+ p.slug,
85
+ p.content,
86
+ p.published,
87
+ p.created_at,
88
+ p.updated_at,
89
+ u.id,
90
+ u.name,
91
+ u.email
92
+ ORDER BY p.created_at DESC
93
+ LIMIT 20 OFFSET 0;
94
+
95
+ -- Recommended indexes for optimal performance
96
+ CREATE INDEX IF NOT EXISTS idx_posts_published_created ON posts(published, created_at DESC);
97
+ CREATE INDEX IF NOT EXISTS idx_posts_author_id ON posts(author_id);
98
+ CREATE INDEX IF NOT EXISTS idx_comments_post_id ON comments(post_id);
99
+
100
+ -- Explain plan (run to verify performance)
101
+ EXPLAIN ANALYZE
102
+ SELECT /* ... query above ... */;
103
+ ```
104
+
105
+ ---
106
+
107
+ ## Query Examples
108
+
109
+ ### **1. Simple SELECT**
110
+
111
+ **Request:** "Get all active users"
112
+
113
+ ```sql
114
+ SELECT
115
+ id,
116
+ email,
117
+ name,
118
+ created_at
119
+ FROM users
120
+ WHERE active = true
121
+ ORDER BY created_at DESC;
122
+
123
+ -- Index recommendation
124
+ CREATE INDEX idx_users_active ON users(active, created_at DESC);
125
+ ```
126
+
127
+ ### **2. JOIN Queries**
128
+
129
+ **Request:** "Get orders with customer and product information"
130
+
131
+ ```sql
132
+ SELECT
133
+ o.id AS order_id,
134
+ o.order_date,
135
+ o.total,
136
+ o.status,
137
+ -- Customer info
138
+ c.id AS customer_id,
139
+ c.name AS customer_name,
140
+ c.email AS customer_email,
141
+ -- Order items
142
+ oi.quantity,
143
+ oi.price AS unit_price,
144
+ -- Product info
145
+ p.id AS product_id,
146
+ p.name AS product_name
147
+ FROM orders o
148
+ INNER JOIN customers c ON o.customer_id = c.id
149
+ INNER JOIN order_items oi ON o.id = oi.order_id
150
+ INNER JOIN products p ON oi.product_id = p.id
151
+ WHERE o.created_at >= CURRENT_DATE - INTERVAL '30 days'
152
+ ORDER BY o.created_at DESC;
153
+
154
+ -- Indexes
155
+ CREATE INDEX idx_orders_customer_id ON orders(customer_id);
156
+ CREATE INDEX idx_orders_created_at ON orders(created_at DESC);
157
+ CREATE INDEX idx_order_items_order_id ON order_items(order_id);
158
+ CREATE INDEX idx_order_items_product_id ON order_items(product_id);
159
+ ```
160
+
161
+ ### **3. Aggregations**
162
+
163
+ **Request:** "Get total sales by product category"
164
+
165
+ ```sql
166
+ SELECT
167
+ c.name AS category,
168
+ COUNT(DISTINCT o.id) AS order_count,
169
+ SUM(oi.quantity) AS units_sold,
170
+ SUM(oi.quantity * oi.price) AS total_revenue,
171
+ AVG(oi.price) AS avg_price
172
+ FROM categories c
173
+ INNER JOIN products p ON c.id = p.category_id
174
+ INNER JOIN order_items oi ON p.id = oi.product_id
175
+ INNER JOIN orders o ON oi.order_id = o.id
176
+ WHERE o.status = 'completed'
177
+ AND o.created_at >= CURRENT_DATE - INTERVAL '1 year'
178
+ GROUP BY c.id, c.name
179
+ HAVING SUM(oi.quantity * oi.price) > 1000
180
+ ORDER BY total_revenue DESC;
181
+ ```
182
+
183
+ ### **4. Subqueries**
184
+
185
+ **Request:** "Get users who have never made a purchase"
186
+
187
+ ```sql
188
+ SELECT
189
+ u.id,
190
+ u.email,
191
+ u.name,
192
+ u.created_at
193
+ FROM users u
194
+ WHERE NOT EXISTS (
195
+ SELECT 1
196
+ FROM orders o
197
+ WHERE o.customer_id = u.id
198
+ )
199
+ ORDER BY u.created_at DESC;
200
+
201
+ -- Alternative using LEFT JOIN (often faster)
202
+ SELECT
203
+ u.id,
204
+ u.email,
205
+ u.name,
206
+ u.created_at
207
+ FROM users u
208
+ LEFT JOIN orders o ON u.id = o.customer_id
209
+ WHERE o.id IS NULL
210
+ ORDER BY u.created_at DESC;
211
+ ```
212
+
213
+ ### **5. Common Table Expressions (CTEs)**
214
+
215
+ **Request:** "Get top customers by purchase amount with their order history"
216
+
217
+ ```sql
218
+ WITH customer_totals AS (
219
+ SELECT
220
+ c.id,
221
+ c.name,
222
+ c.email,
223
+ COUNT(o.id) AS order_count,
224
+ SUM(o.total) AS total_spent
225
+ FROM customers c
226
+ INNER JOIN orders o ON c.id = o.customer_id
227
+ WHERE o.status = 'completed'
228
+ GROUP BY c.id, c.name, c.email
229
+ HAVING SUM(o.total) > 500
230
+ )
231
+ SELECT
232
+ ct.*,
233
+ o.id AS order_id,
234
+ o.order_date,
235
+ o.total AS order_total
236
+ FROM customer_totals ct
237
+ INNER JOIN orders o ON ct.id = o.customer_id
238
+ ORDER BY ct.total_spent DESC, o.order_date DESC;
239
+ ```
240
+
241
+ ### **6. Window Functions**
242
+
243
+ **Request:** "Rank products by sales within each category"
244
+
245
+ ```sql
246
+ SELECT
247
+ p.id,
248
+ p.name AS product_name,
249
+ c.name AS category_name,
250
+ SUM(oi.quantity * oi.price) AS total_sales,
251
+ RANK() OVER (
252
+ PARTITION BY p.category_id
253
+ ORDER BY SUM(oi.quantity * oi.price) DESC
254
+ ) AS rank_in_category
255
+ FROM products p
256
+ INNER JOIN categories c ON p.category_id = c.id
257
+ INNER JOIN order_items oi ON p.id = oi.product_id
258
+ INNER JOIN orders o ON oi.order_id = o.id
259
+ WHERE o.status = 'completed'
260
+ GROUP BY p.id, p.name, p.category_id, c.name
261
+ ORDER BY c.name, rank_in_category;
262
+ ```
263
+
264
+ ### **7. INSERT Queries**
265
+
266
+ **Request:** "Insert new user with validation"
267
+
268
+ ```sql
269
+ -- Insert single user
270
+ INSERT INTO users (id, email, name, password, created_at, updated_at)
271
+ VALUES (
272
+ gen_random_uuid(),
273
+ '[email protected]',
274
+ 'John Doe',
275
+ 'hashed_password_here',
276
+ CURRENT_TIMESTAMP,
277
+ CURRENT_TIMESTAMP
278
+ )
279
+ ON CONFLICT (email) DO NOTHING
280
+ RETURNING id, email, name, created_at;
281
+
282
+ -- Bulk insert
283
+ INSERT INTO users (id, email, name, password, created_at, updated_at)
284
+ VALUES
285
+ (gen_random_uuid(), '[email protected]', 'User 1', 'hash1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
286
+ (gen_random_uuid(), '[email protected]', 'User 2', 'hash2', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
287
+ (gen_random_uuid(), '[email protected]', 'User 3', 'hash3', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
288
+ ON CONFLICT (email) DO NOTHING;
289
+ ```
290
+
291
+ ### **8. UPDATE Queries**
292
+
293
+ **Request:** "Update product stock after order"
294
+
295
+ ```sql
296
+ -- Single update
297
+ UPDATE products
298
+ SET
299
+ stock = stock - 5,
300
+ updated_at = CURRENT_TIMESTAMP
301
+ WHERE id = 'product-uuid-here'
302
+ AND stock >= 5 -- Safety check
303
+ RETURNING id, name, stock;
304
+
305
+ -- Batch update with JOIN
306
+ UPDATE products p
307
+ SET
308
+ stock = p.stock - oi.quantity,
309
+ updated_at = CURRENT_TIMESTAMP
310
+ FROM order_items oi
311
+ WHERE p.id = oi.product_id
312
+ AND oi.order_id = 'order-uuid-here'
313
+ AND p.stock >= oi.quantity;
314
+ ```
315
+
316
+ ### **9. DELETE Queries**
317
+
318
+ **Request:** "Delete old inactive users"
319
+
320
+ ```sql
321
+ -- Soft delete (recommended)
322
+ UPDATE users
323
+ SET
324
+ deleted_at = CURRENT_TIMESTAMP,
325
+ updated_at = CURRENT_TIMESTAMP
326
+ WHERE active = false
327
+ AND last_login_at < CURRENT_DATE - INTERVAL '1 year'
328
+ RETURNING id, email;
329
+
330
+ -- Hard delete (with safety checks)
331
+ DELETE FROM users
332
+ WHERE active = false
333
+ AND last_login_at < CURRENT_DATE - INTERVAL '2 years'
334
+ AND id NOT IN (
335
+ SELECT DISTINCT customer_id FROM orders
336
+ );
337
+ ```
338
+
339
+ ### **10. Full-Text Search**
340
+
341
+ **Request:** "Search blog posts by keyword"
342
+
343
+ **PostgreSQL:**
344
+ ```sql
345
+ -- Create text search index
346
+ CREATE INDEX idx_posts_search ON posts
347
+ USING GIN (to_tsvector('english', title || ' ' || content));
348
+
349
+ -- Search query
350
+ SELECT
351
+ id,
352
+ title,
353
+ content,
354
+ ts_rank(
355
+ to_tsvector('english', title || ' ' || content),
356
+ plainto_tsquery('english', 'search keywords')
357
+ ) AS relevance
358
+ FROM posts
359
+ WHERE to_tsvector('english', title || ' ' || content) @@
360
+ plainto_tsquery('english', 'search keywords')
361
+ AND published = true
362
+ ORDER BY relevance DESC, created_at DESC
363
+ LIMIT 20;
364
+ ```
365
+
366
+ **MySQL:**
367
+ ```sql
368
+ -- Create fulltext index
369
+ CREATE FULLTEXT INDEX idx_posts_search ON posts(title, content);
370
+
371
+ -- Search query
372
+ SELECT
373
+ id,
374
+ title,
375
+ content,
376
+ MATCH(title, content) AGAINST('search keywords' IN NATURAL LANGUAGE MODE) AS relevance
377
+ FROM posts
378
+ WHERE MATCH(title, content) AGAINST('search keywords' IN NATURAL LANGUAGE MODE)
379
+ AND published = true
380
+ ORDER BY relevance DESC, created_at DESC
381
+ LIMIT 20;
382
+ ```
383
+
384
+ ---
385
+
386
+ ## Optimization Tips
387
+
388
+ **1. Use Indexes Wisely:**
389
+ ```sql
390
+ -- GOOD: Index foreign keys
391
+ CREATE INDEX idx_posts_author_id ON posts(author_id);
392
+
393
+ -- GOOD: Index columns in WHERE clauses
394
+ CREATE INDEX idx_posts_published ON posts(published, created_at DESC);
395
+
396
+ -- GOOD: Partial index for specific queries
397
+ CREATE INDEX idx_active_users ON users(email) WHERE active = true;
398
+ ```
399
+
400
+ **2. Avoid SELECT *:**
401
+ ```sql
402
+ -- BAD
403
+ SELECT * FROM users;
404
+
405
+ -- GOOD
406
+ SELECT id, email, name FROM users;
407
+ ```
408
+
409
+ **3. Use LIMIT:**
410
+ ```sql
411
+ -- BAD (fetches all rows)
412
+ SELECT * FROM posts ORDER BY created_at DESC;
413
+
414
+ -- GOOD (pagination)
415
+ SELECT * FROM posts ORDER BY created_at DESC LIMIT 20 OFFSET 0;
416
+ ```
417
+
418
+ **4. Optimize JOINs:**
419
+ ```sql
420
+ -- Use INNER JOIN when possible (faster than LEFT JOIN)
421
+ -- Use EXISTS instead of IN for large datasets
422
+
423
+ -- BAD
424
+ SELECT * FROM users WHERE id IN (SELECT user_id FROM orders);
425
+
426
+ -- GOOD
427
+ SELECT u.* FROM users u WHERE EXISTS (
428
+ SELECT 1 FROM orders o WHERE o.user_id = u.id
429
+ );
430
+ ```
431
+
432
+ ---
433
+
434
+ ## Database-Specific Syntax
435
+
436
+ **PostgreSQL:**
437
+ - `gen_random_uuid()` for UUIDs
438
+ - `INTERVAL` for date math
439
+ - `RETURNING` clause
440
+ - Full-text search with `tsvector`
441
+
442
+ **MySQL:**
443
+ - `UUID()` for UUIDs
444
+ - `DATE_SUB()` for date math
445
+ - FULLTEXT indexes for search
446
+
447
+ **SQLite:**
448
+ - `hex(randomblob(16))` for UUIDs
449
+ - `datetime()` for dates
450
+ - Limited JOIN types
451
+
452
+ ---
453
+
454
+ ## Related Commands
455
+
456
+ - `/prisma-schema-gen` - Generate Prisma schemas
457
+ - Database Designer (agent) - Schema design review
458
+
459
+ ---
460
+
461
+ **Query smarter. Optimize faster. Scale confidently.**
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@intentsolutionsio/fullstack-starter-pack",
3
+ "version": "1.0.0",
4
+ "description": "Complete fullstack development toolkit: React, Express/FastAPI, PostgreSQL scaffolding with AI agents",
5
+ "keywords": [
6
+ "fullstack",
7
+ "react",
8
+ "express",
9
+ "fastapi",
10
+ "postgresql",
11
+ "prisma",
12
+ "typescript",
13
+ "authentication",
14
+ "scaffolding",
15
+ "components",
16
+ "api",
17
+ "database",
18
+ "deployment",
19
+ "docker",
20
+ "ci-cd",
21
+ "mvp",
22
+ "claude-code",
23
+ "claude-plugin",
24
+ "tonsofskills"
25
+ ],
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/jeremylongshore/claude-code-plugins-plus-skills.git",
29
+ "directory": "plugins/packages/fullstack-starter-pack"
30
+ },
31
+ "homepage": "https://tonsofskills.com/plugins/fullstack-starter-pack",
32
+ "bugs": "https://github.com/jeremylongshore/claude-code-plugins-plus-skills/issues",
33
+ "license": "MIT",
34
+ "author": {
35
+ "name": "Jeremy Longshore",
36
+ "email": "[email protected]",
37
+ "url": "https://github.com/jeremylongshore"
38
+ },
39
+ "publishConfig": {
40
+ "access": "public"
41
+ },
42
+ "files": [
43
+ "README.md",
44
+ ".claude-plugin",
45
+ "skills",
46
+ "commands",
47
+ "agents"
48
+ ],
49
+ "scripts": {
50
+ "postinstall": "node -e \"console.log(\\\"\\\\n→ This npm package is a tracking/proof artifact. Install the plugin via:\\\\n ccpi install fullstack-starter-pack\\\\n or /plugin install fullstack-starter-pack@claude-code-plugins-plus in Claude Code\\\\n\\\")\""
51
+ }
52
+ }
@@ -0,0 +1,8 @@
1
+ # Assets
2
+
3
+ Bundled resources for fullstack-starter-pack skill
4
+
5
+ - [ ] react_component_templates/: Templates for various React components, such as forms, tables, and modals.
6
+ - [ ] express_route_templates/: Templates for various Express routes, such as CRUD operations and authentication endpoints.
7
+ - [ ] postgresql_model_templates/: Templates for various PostgreSQL models, such as users, products, and orders.
8
+ - [ ] example_env_config.txt: An example env config with all the necessary environment variables for the full-stack application.
@@ -0,0 +1,32 @@
1
+ {
2
+ "skill": {
3
+ "name": "skill-name",
4
+ "version": "1.0.0",
5
+ "enabled": true,
6
+ "settings": {
7
+ "verbose": false,
8
+ "autoActivate": true,
9
+ "toolRestrictions": true
10
+ }
11
+ },
12
+ "triggers": {
13
+ "keywords": [
14
+ "example-trigger-1",
15
+ "example-trigger-2"
16
+ ],
17
+ "patterns": []
18
+ },
19
+ "tools": {
20
+ "allowed": [
21
+ "Read",
22
+ "Grep",
23
+ "Bash"
24
+ ],
25
+ "restricted": []
26
+ },
27
+ "metadata": {
28
+ "author": "Plugin Author",
29
+ "category": "general",
30
+ "tags": []
31
+ }
32
+ }
@@ -0,0 +1,100 @@
1
+ # Fullstack Starter Pack - Example Environment Configuration
2
+
3
+ # This file provides example environment variables for the full-stack application.
4
+ # Copy this file to .env (or .env.production, .env.development as needed) and
5
+ # fill in the values according to your setup.
6
+
7
+ # ==============================================================================
8
+ # General Application Configuration
9
+ # ==============================================================================
10
+
11
+ NODE_ENV=development # Set to 'production' for production environments
12
+
13
+ # Application Port (frontend and backend)
14
+ PORT=3000 # Frontend port (e.g., React app)
15
+ BACKEND_PORT=8000 # Backend port (e.g., Express/FastAPI server)
16
+
17
+ # API Base URL (Used by frontend to connect to backend)
18
+ REACT_APP_API_BASE_URL=http://localhost:8000 # Adjust for production deployment
19
+
20
+ # ==============================================================================
21
+ # Database Configuration (PostgreSQL)
22
+ # ==============================================================================
23
+
24
+ # Database Host (e.g., localhost, IP address, or Docker service name)
25
+ DB_HOST=localhost
26
+
27
+ # Database Port
28
+ DB_PORT=5432
29
+
30
+ # Database Name
31
+ DB_NAME=your_database_name
32
+
33
+ # Database User
34
+ DB_USER=your_database_user
35
+
36
+ # Database Password
37
+ DB_PASSWORD=your_database_password
38
+
39
+ # Enable SSL for database connection (recommended for production)
40
+ DB_SSL=false # Set to 'true' for SSL enabled connections. Requires SSL certificates.
41
+
42
+ # ==============================================================================
43
+ # Backend Configuration (Express/FastAPI)
44
+ # ==============================================================================
45
+
46
+ # Session Secret (Used for session management - MUST be a strong, random string)
47
+ SESSION_SECRET=your_super_secret_session_key
48
+
49
+ # JWT Secret (Used for JWT authentication - MUST be a strong, random string)
50
+ JWT_SECRET=your_super_secret_jwt_key
51
+
52
+ # CORS Configuration (Comma-separated list of allowed origins)
53
+ CORS_ORIGIN=http://localhost:3000 # Add your frontend URL(s) here. Use '*' for all origins (NOT recommended for production).
54
+
55
+ # ==============================================================================
56
+ # AI Agent Configuration (Optional - if using AI features)
57
+ # ==============================================================================
58
+
59
+ # OpenAI API Key (Required if using OpenAI models)
60
+ OPENAI_API_KEY=your_openai_api_key
61
+
62
+ # Other AI Provider API Keys (e.g., Cohere, Anthropic) - Add as needed
63
+ # COHERE_API_KEY=your_cohere_api_key
64
+ # ANTHROPIC_API_KEY=your_anthropic_api_key
65
+
66
+ # ==============================================================================
67
+ # Logging Configuration (Optional)
68
+ # ==============================================================================
69
+
70
+ # Log Level (e.g., 'debug', 'info', 'warn', 'error')
71
+ LOG_LEVEL=info
72
+
73
+ # ==============================================================================
74
+ # Email Configuration (Optional - if using email features)
75
+ # ==============================================================================
76
+
77
+ # Email Service (e.g., 'nodemailer', 'sendgrid')
78
+ EMAIL_SERVICE=nodemailer
79
+
80
+ # Email Host (e.g., SMTP server address)
81
+ EMAIL_HOST=smtp.example.com
82
+
83
+ # Email Port
84
+ EMAIL_PORT=587
85
+
86
+ # Email User
87
+ EMAIL_USER=your_email@example.com
88
+
89
+ # Email Password
90
+ EMAIL_PASSWORD=your_email_password
91
+
92
+ # Email From Address (The address emails will be sent from)
93
+ EMAIL_FROM=your_email@example.com
94
+
95
+ # ==============================================================================
96
+ # Deployment Configuration (Optional)
97
+ # ==============================================================================
98
+
99
+ # Base URL for the application (e.g., https://yourdomain.com)
100
+ BASE_URL=http://localhost:3000 # Change to your production URL.
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Claude Skill Configuration",
4
+ "type": "object",
5
+ "required": ["name", "description"],
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "pattern": "^[a-z0-9-]+$",
10
+ "maxLength": 64,
11
+ "description": "Skill identifier (lowercase, hyphens only)"
12
+ },
13
+ "description": {
14
+ "type": "string",
15
+ "maxLength": 1024,
16
+ "description": "What the skill does and when to use it"
17
+ },
18
+ "allowed-tools": {
19
+ "type": "string",
20
+ "description": "Comma-separated list of allowed tools"
21
+ },
22
+ "version": {
23
+ "type": "string",
24
+ "pattern": "^\\d+\\.\\d+\\.\\d+$",
25
+ "description": "Semantic version (x.y.z)"
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "testCases": [
3
+ {
4
+ "name": "Basic activation test",
5
+ "input": "trigger phrase example",
6
+ "expected": {
7
+ "activated": true,
8
+ "toolsUsed": ["Read", "Grep"],
9
+ "success": true
10
+ }
11
+ },
12
+ {
13
+ "name": "Complex workflow test",
14
+ "input": "multi-step trigger example",
15
+ "expected": {
16
+ "activated": true,
17
+ "steps": 3,
18
+ "toolsUsed": ["Read", "Write", "Bash"],
19
+ "success": true
20
+ }
21
+ }
22
+ ],
23
+ "fixtures": {
24
+ "sampleInput": "example data",
25
+ "expectedOutput": "processed result"
26
+ }
27
+ }