@atlashub/smartstack-cli 1.3.0 → 1.4.1

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,507 @@
1
+ ---
2
+ description: Create a full-stack SmartStack project (Clean Architecture .NET + React/Vite/Tailwind)
3
+ argument-hint: <project-name> [description]
4
+ ---
5
+
6
+ # Create SmartStack Project
7
+
8
+ Scaffold a complete full-stack project with:
9
+ - **Backend**: .NET 10 Clean Architecture (Domain, Application, Infrastructure, Api)
10
+ - **Frontend**: React 19 + TypeScript + Vite + Tailwind CSS
11
+
12
+ ## Arguments
13
+
14
+ Parse from `$ARGUMENTS`:
15
+ - **name** (required): Project name in PascalCase (e.g., `MyProject`)
16
+ - **description** (optional): Project description
17
+
18
+ ## Project Structure
19
+
20
+ ```
21
+ {ProjectName}/
22
+ ├── .gitignore
23
+ ├── .claudeignore
24
+ ├── README.md
25
+ ├── CLAUDE.md
26
+ ├── LICENSE
27
+ ├── Directory.Build.props
28
+ ├── {ProjectName}.sln
29
+
30
+ ├── src/
31
+ │ ├── {ProjectName}.Domain/
32
+ │ │ ├── {ProjectName}.Domain.csproj
33
+ │ │ ├── Common/
34
+ │ │ │ ├── BaseEntity.cs
35
+ │ │ │ ├── IAuditableEntity.cs
36
+ │ │ │ └── IDomainEvent.cs
37
+ │ │ ├── Entities/
38
+ │ │ ├── Enums/
39
+ │ │ ├── Exceptions/
40
+ │ │ │ └── DomainException.cs
41
+ │ │ └── ValueObjects/
42
+ │ │
43
+ │ ├── {ProjectName}.Application/
44
+ │ │ ├── {ProjectName}.Application.csproj
45
+ │ │ ├── Common/
46
+ │ │ │ ├── Behaviors/
47
+ │ │ │ │ ├── ValidationBehavior.cs
48
+ │ │ │ │ └── LoggingBehavior.cs
49
+ │ │ │ ├── Interfaces/
50
+ │ │ │ │ ├── IApplicationDbContext.cs
51
+ │ │ │ │ └── ICurrentUserService.cs
52
+ │ │ │ └── Models/
53
+ │ │ │ └── Result.cs
54
+ │ │ ├── Features/
55
+ │ │ │ └── .gitkeep
56
+ │ │ └── DependencyInjection.cs
57
+ │ │
58
+ │ ├── {ProjectName}.Infrastructure/
59
+ │ │ ├── {ProjectName}.Infrastructure.csproj
60
+ │ │ ├── Persistence/
61
+ │ │ │ ├── ApplicationDbContext.cs
62
+ │ │ │ ├── Configurations/
63
+ │ │ │ │ └── .gitkeep
64
+ │ │ │ ├── Migrations/
65
+ │ │ │ │ └── .gitkeep
66
+ │ │ │ └── Seeding/
67
+ │ │ │ └── DatabaseSeeder.cs
68
+ │ │ ├── Services/
69
+ │ │ │ └── DateTimeService.cs
70
+ │ │ └── DependencyInjection.cs
71
+ │ │
72
+ │ ├── {ProjectName}.Api.Core/
73
+ │ │ ├── {ProjectName}.Api.Core.csproj
74
+ │ │ ├── Controllers/
75
+ │ │ │ └── BaseApiController.cs
76
+ │ │ ├── Extensions/
77
+ │ │ │ └── ServiceCollectionExtensions.cs
78
+ │ │ ├── Middleware/
79
+ │ │ │ └── ExceptionHandlingMiddleware.cs
80
+ │ │ └── Hubs/
81
+ │ │ └── NotificationHub.cs
82
+ │ │
83
+ │ └── {ProjectName}.Api/
84
+ │ ├── {ProjectName}.Api.csproj
85
+ │ ├── Properties/
86
+ │ │ └── launchSettings.json
87
+ │ ├── appsettings.json
88
+ │ ├── appsettings.Development.json
89
+ │ ├── appsettings.Production.json
90
+ │ └── Program.cs
91
+
92
+ ├── web/
93
+ │ └── {project-name}-web/
94
+ │ ├── package.json
95
+ │ ├── tsconfig.json
96
+ │ ├── tsconfig.app.json
97
+ │ ├── tsconfig.node.json
98
+ │ ├── vite.config.ts
99
+ │ ├── eslint.config.mjs
100
+ │ ├── tailwind.config.js
101
+ │ ├── postcss.config.js
102
+ │ ├── index.html
103
+ │ ├── .env.example
104
+ │ └── src/
105
+ │ ├── main.tsx
106
+ │ ├── App.tsx
107
+ │ ├── index.css
108
+ │ ├── vite-env.d.ts
109
+ │ ├── components/
110
+ │ │ ├── layout/
111
+ │ │ │ ├── Header.tsx
112
+ │ │ │ ├── Sidebar.tsx
113
+ │ │ │ └── Footer.tsx
114
+ │ │ └── ui/
115
+ │ │ ├── Button.tsx
116
+ │ │ └── Card.tsx
117
+ │ ├── pages/
118
+ │ │ ├── HomePage.tsx
119
+ │ │ └── NotFoundPage.tsx
120
+ │ ├── hooks/
121
+ │ │ └── useApi.ts
122
+ │ ├── contexts/
123
+ │ │ ├── AuthContext.tsx
124
+ │ │ └── ThemeContext.tsx
125
+ │ ├── services/
126
+ │ │ └── api/
127
+ │ │ └── client.ts
128
+ │ ├── types/
129
+ │ │ └── index.ts
130
+ │ ├── utils/
131
+ │ │ └── helpers.ts
132
+ │ └── config/
133
+ │ └── constants.ts
134
+
135
+ ├── tests/
136
+ │ └── {ProjectName}.Tests/
137
+ │ └── {ProjectName}.Tests.csproj
138
+
139
+ └── tools/
140
+ └── .gitkeep
141
+ ```
142
+
143
+ ## Workflow
144
+
145
+ ### 1. PARSE & VALIDATE
146
+
147
+ Extract from `$ARGUMENTS`:
148
+ ```
149
+ name: PascalCase project name (e.g., "MyProject")
150
+ description: Optional description
151
+ ```
152
+
153
+ Validate:
154
+ - Name is PascalCase: `^[A-Z][a-zA-Z0-9]*$`
155
+ - Directory doesn't exist
156
+ - Name is not a reserved word
157
+
158
+ ### 2. CREATE ROOT STRUCTURE
159
+
160
+ Use Bash to create directories:
161
+ ```bash
162
+ mkdir -p {ProjectName}/src
163
+ mkdir -p {ProjectName}/web
164
+ mkdir -p {ProjectName}/tests
165
+ mkdir -p {ProjectName}/tools
166
+ mkdir -p {ProjectName}/scripts
167
+ ```
168
+
169
+ ### 3. GENERATE BACKEND FILES
170
+
171
+ For each backend project, use Write tool to create:
172
+
173
+ #### 3.1 Directory.Build.props
174
+ ```xml
175
+ <Project>
176
+ <PropertyGroup>
177
+ <TargetFramework>net10.0</TargetFramework>
178
+ <ImplicitUsings>enable</ImplicitUsings>
179
+ <Nullable>enable</Nullable>
180
+ <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
181
+ <Version>1.0.0</Version>
182
+ <Authors>{Author}</Authors>
183
+ <Company>{Company}</Company>
184
+ </PropertyGroup>
185
+ </Project>
186
+ ```
187
+
188
+ #### 3.2 Solution File ({ProjectName}.sln)
189
+ Use `dotnet new sln` and `dotnet sln add` commands.
190
+
191
+ #### 3.3 Domain Project
192
+ - Create .csproj with MediatR.Contracts
193
+ - Create BaseEntity.cs, IDomainEvent.cs
194
+ - Create folder structure
195
+
196
+ #### 3.4 Application Project
197
+ - Create .csproj with MediatR, FluentValidation
198
+ - Create Result.cs, ValidationBehavior.cs
199
+ - Create DependencyInjection.cs
200
+
201
+ #### 3.5 Infrastructure Project
202
+ - Create .csproj with EF Core, SqlServer
203
+ - Create ApplicationDbContext.cs
204
+ - Create DependencyInjection.cs
205
+
206
+ #### 3.6 Api.Core Project
207
+ - Create .csproj with ASP.NET Core
208
+ - Create BaseApiController.cs
209
+ - Create ExceptionHandlingMiddleware.cs
210
+
211
+ #### 3.7 Api Project
212
+ - Create .csproj as entry point
213
+ - Create Program.cs with full bootstrap
214
+ - Create appsettings.json files
215
+
216
+ ### 4. GENERATE FRONTEND FILES
217
+
218
+ #### 4.1 package.json
219
+ ```json
220
+ {
221
+ "name": "{project-name}-web",
222
+ "private": true,
223
+ "version": "1.0.0",
224
+ "type": "module",
225
+ "scripts": {
226
+ "dev": "vite",
227
+ "build": "tsc -b && vite build",
228
+ "lint": "eslint .",
229
+ "preview": "vite preview"
230
+ },
231
+ "dependencies": {
232
+ "react": "^19.0.0",
233
+ "react-dom": "^19.0.0",
234
+ "react-router-dom": "^7.0.0",
235
+ "axios": "^1.7.0",
236
+ "@microsoft/signalr": "^8.0.0",
237
+ "lucide-react": "^0.400.0"
238
+ },
239
+ "devDependencies": {
240
+ "@types/react": "^19.0.0",
241
+ "@types/react-dom": "^19.0.0",
242
+ "@vitejs/plugin-react": "^4.3.0",
243
+ "typescript": "~5.6.0",
244
+ "vite": "^6.0.0",
245
+ "tailwindcss": "^4.0.0",
246
+ "@tailwindcss/vite": "^4.0.0",
247
+ "eslint": "^9.0.0"
248
+ }
249
+ }
250
+ ```
251
+
252
+ #### 4.2 vite.config.ts
253
+ ```typescript
254
+ import { defineConfig } from 'vite'
255
+ import react from '@vitejs/plugin-react'
256
+ import tailwindcss from '@tailwindcss/vite'
257
+
258
+ export default defineConfig({
259
+ plugins: [react(), tailwindcss()],
260
+ server: {
261
+ port: 5173,
262
+ proxy: {
263
+ '/api': 'http://localhost:5000'
264
+ }
265
+ }
266
+ })
267
+ ```
268
+
269
+ #### 4.3 React Components
270
+ - Create App.tsx with router setup
271
+ - Create basic layout components
272
+ - Create context providers
273
+ - Create API client
274
+
275
+ ### 5. GENERATE CONFIGURATION FILES
276
+
277
+ #### .gitignore
278
+ ```
279
+ # .NET
280
+ bin/
281
+ obj/
282
+ *.user
283
+ *.suo
284
+ appsettings.Local.json
285
+
286
+ # Node
287
+ node_modules/
288
+ dist/
289
+ .env.local
290
+
291
+ # IDE
292
+ .vs/
293
+ .vscode/
294
+ .idea/
295
+
296
+ # OS
297
+ .DS_Store
298
+ Thumbs.db
299
+
300
+ # Logs
301
+ *.log
302
+ logs/
303
+ ```
304
+
305
+ #### CLAUDE.md
306
+ ```markdown
307
+ # {ProjectName} Architecture Memory
308
+
309
+ ## Project Overview
310
+ {description}
311
+
312
+ ## Technology Stack
313
+ - Backend: .NET 10, EF Core, Clean Architecture
314
+ - Frontend: React 19, TypeScript, Vite, Tailwind CSS
315
+ - Database: SQL Server
316
+
317
+ ## Architecture
318
+ Clean Architecture with CQRS pattern.
319
+
320
+ ## Conventions
321
+ - Use MediatR for commands/queries
322
+ - Use FluentValidation for validation
323
+ - Use Result<T> for operation results
324
+ ```
325
+
326
+ ### 6. INITIALIZE GIT & DOTNET
327
+
328
+ ```bash
329
+ cd {ProjectName}
330
+ git init
331
+ dotnet new sln -n {ProjectName}
332
+ dotnet sln add src/{ProjectName}.Domain
333
+ dotnet sln add src/{ProjectName}.Application
334
+ dotnet sln add src/{ProjectName}.Infrastructure
335
+ dotnet sln add src/{ProjectName}.Api.Core
336
+ dotnet sln add src/{ProjectName}.Api
337
+ dotnet restore
338
+ ```
339
+
340
+ ### 7. DISPLAY SUCCESS
341
+
342
+ ```
343
+ ╔═══════════════════════════════════════════════════════════════╗
344
+ ║ SMARTSTACK PROJECT CREATED ║
345
+ ╠═══════════════════════════════════════════════════════════════╣
346
+ ║ Name: {ProjectName} ║
347
+ ║ Location: {full-path} ║
348
+ ╠═══════════════════════════════════════════════════════════════╣
349
+ ║ Backend: ║
350
+ ║ ✓ {ProjectName}.Domain (Core entities) ║
351
+ ║ ✓ {ProjectName}.Application (CQRS, Use cases) ║
352
+ ║ ✓ {ProjectName}.Infrastructure (EF Core, Services) ║
353
+ ║ ✓ {ProjectName}.Api.Core (Controllers, Middleware) ║
354
+ ║ ✓ {ProjectName}.Api (Entry point) ║
355
+ ╠═══════════════════════════════════════════════════════════════╣
356
+ ║ Frontend: ║
357
+ ║ ✓ {project-name}-web (React + Vite + Tailwind) ║
358
+ ╠═══════════════════════════════════════════════════════════════╣
359
+ ║ Next steps: ║
360
+ ║ 1. cd {ProjectName} ║
361
+ ║ 2. dotnet build ║
362
+ ║ 3. cd web/{project-name}-web && npm install ║
363
+ ║ 4. Configure appsettings.Local.json ║
364
+ ║ 5. dotnet ef database update ║
365
+ ║ 6. dotnet run --project src/{ProjectName}.Api ║
366
+ ║ 7. npm run dev (in web folder) ║
367
+ ╚═══════════════════════════════════════════════════════════════╝
368
+ ```
369
+
370
+ ## File Templates
371
+
372
+ ### Domain/BaseEntity.cs
373
+ ```csharp
374
+ namespace {ProjectName}.Domain.Common;
375
+
376
+ public abstract class BaseEntity
377
+ {
378
+ public Guid Id { get; protected set; } = Guid.NewGuid();
379
+ public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
380
+ public DateTime? UpdatedAt { get; set; }
381
+ public string? CreatedBy { get; set; }
382
+ public string? UpdatedBy { get; set; }
383
+ }
384
+ ```
385
+
386
+ ### Application/Result.cs
387
+ ```csharp
388
+ namespace {ProjectName}.Application.Common.Models;
389
+
390
+ public class Result<T>
391
+ {
392
+ public bool IsSuccess { get; }
393
+ public T? Value { get; }
394
+ public string? Error { get; }
395
+
396
+ private Result(bool isSuccess, T? value, string? error)
397
+ {
398
+ IsSuccess = isSuccess;
399
+ Value = value;
400
+ Error = error;
401
+ }
402
+
403
+ public static Result<T> Success(T value) => new(true, value, null);
404
+ public static Result<T> Failure(string error) => new(false, default, error);
405
+ }
406
+ ```
407
+
408
+ ### Infrastructure/ApplicationDbContext.cs
409
+ ```csharp
410
+ using Microsoft.EntityFrameworkCore;
411
+ using {ProjectName}.Application.Common.Interfaces;
412
+
413
+ namespace {ProjectName}.Infrastructure.Persistence;
414
+
415
+ public class ApplicationDbContext : DbContext, IApplicationDbContext
416
+ {
417
+ public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
418
+ : base(options)
419
+ {
420
+ }
421
+
422
+ protected override void OnModelCreating(ModelBuilder modelBuilder)
423
+ {
424
+ modelBuilder.ApplyConfigurationsFromAssembly(typeof(ApplicationDbContext).Assembly);
425
+ base.OnModelCreating(modelBuilder);
426
+ }
427
+ }
428
+ ```
429
+
430
+ ### Api/Program.cs
431
+ ```csharp
432
+ using {ProjectName}.Application;
433
+ using {ProjectName}.Infrastructure;
434
+ using {ProjectName}.Api.Core.Extensions;
435
+
436
+ var builder = WebApplication.CreateBuilder(args);
437
+
438
+ // Add services
439
+ builder.Services.AddApplication();
440
+ builder.Services.AddInfrastructure(builder.Configuration);
441
+ builder.Services.AddApiCore();
442
+
443
+ builder.Services.AddControllers();
444
+ builder.Services.AddEndpointsApiExplorer();
445
+ builder.Services.AddSwaggerGen();
446
+ builder.Services.AddSignalR();
447
+
448
+ var app = builder.Build();
449
+
450
+ // Configure pipeline
451
+ if (app.Environment.IsDevelopment())
452
+ {
453
+ app.UseSwagger();
454
+ app.UseSwaggerUI();
455
+ }
456
+
457
+ app.UseHttpsRedirection();
458
+ app.UseAuthentication();
459
+ app.UseAuthorization();
460
+ app.MapControllers();
461
+ app.MapHub<NotificationHub>("/hubs/notifications");
462
+
463
+ app.Run();
464
+ ```
465
+
466
+ ### Frontend/App.tsx
467
+ ```tsx
468
+ import { BrowserRouter, Routes, Route } from 'react-router-dom';
469
+ import { AuthProvider } from './contexts/AuthContext';
470
+ import { ThemeProvider } from './contexts/ThemeContext';
471
+ import HomePage from './pages/HomePage';
472
+ import NotFoundPage from './pages/NotFoundPage';
473
+
474
+ function App() {
475
+ return (
476
+ <ThemeProvider>
477
+ <AuthProvider>
478
+ <BrowserRouter>
479
+ <Routes>
480
+ <Route path="/" element={<HomePage />} />
481
+ <Route path="*" element={<NotFoundPage />} />
482
+ </Routes>
483
+ </BrowserRouter>
484
+ </AuthProvider>
485
+ </ThemeProvider>
486
+ );
487
+ }
488
+
489
+ export default App;
490
+ ```
491
+
492
+ ## Execution Rules
493
+
494
+ 1. **ALWAYS** create all directories before files
495
+ 2. **USE** Write tool for each file (not batch)
496
+ 3. **USE** Bash for dotnet commands
497
+ 4. **VALIDATE** project name is PascalCase
498
+ 5. **NEVER** overwrite existing directories
499
+ 6. Create files in this order: root → backend → frontend → config
500
+
501
+ ## Priority
502
+
503
+ Correctness > Completeness > Speed
504
+
505
+ ---
506
+
507
+ User: $ARGUMENTS
@@ -0,0 +1,199 @@
1
+ ---
2
+ description: Create a SmartStack skill extension project with multi-phase workflow
3
+ argument-hint: <name> [phases] [description]
4
+ ---
5
+
6
+ # Create Skill Extension
7
+
8
+ Scaffold a complete SmartStack **skill** extension with multi-phase workflow.
9
+
10
+ ## What is a Skill?
11
+
12
+ A skill is a complex multi-phase orchestrator:
13
+ - Manages workflows with multiple phases
14
+ - Each phase can use different models (cost optimization)
15
+ - Contains templates, questionnaires, validation gates
16
+ - Produces structured output (documentation, code, etc.)
17
+
18
+ ## Arguments
19
+
20
+ Parse from `$ARGUMENTS`:
21
+ - **name** (required): Skill name in kebab-case
22
+ - **phases** (optional): Number of phases (default: 5)
23
+ - **description** (optional): What the skill does
24
+
25
+ ## Project Structure
26
+
27
+ ```
28
+ smartstack-{name}/
29
+ ├── package.json
30
+ ├── tsconfig.json
31
+ ├── tsup.config.ts
32
+ ├── README.md
33
+ ├── .gitignore
34
+ ├── src/
35
+ │ └── index.ts
36
+ └── templates/
37
+ └── skills/
38
+ └── {name}/
39
+ ├── SKILL.md # Main skill definition
40
+ ├── 1-setup.md # Phase 1
41
+ ├── 2-analyze.md # Phase 2
42
+ ├── 3-design.md # Phase 3
43
+ ├── 4-execute.md # Phase 4
44
+ ├── 5-validate.md # Phase 5
45
+ └── templates.md # Shared templates
46
+ ```
47
+
48
+ ## Generated SKILL.md
49
+
50
+ ```markdown
51
+ ---
52
+ name: {name}
53
+ description: |
54
+ {description}
55
+ Use when:
56
+ - User needs {name} functionality
57
+ - User mentions related keywords
58
+ ---
59
+
60
+ # {PascalCaseName} Skill
61
+
62
+ {description}
63
+
64
+ ## Overview
65
+
66
+ Multi-phase workflow for {name} operations.
67
+
68
+ ## Phase Summary
69
+
70
+ | Phase | Command | Description | Model | Cost |
71
+ |-------|---------|-------------|-------|------|
72
+ | 1 | `/{name}:1-setup` | Initial setup and configuration | Haiku | ~$0.02 |
73
+ | 2 | `/{name}:2-analyze` | Analysis and discovery | Sonnet | ~$0.10 |
74
+ | 3 | `/{name}:3-design` | Design and planning | Sonnet | ~$0.10 |
75
+ | 4 | `/{name}:4-execute` | Implementation | Opus | ~$0.30 |
76
+ | 5 | `/{name}:5-validate` | Validation and testing | Sonnet | ~$0.10 |
77
+ | **Total** | | | | ~$0.62 |
78
+
79
+ ## Workflow Diagram
80
+
81
+ ╔═══════════╗ ╔═══════════╗ ╔═══════════╗
82
+ ║ 1-SETUP ║ ──▶ ║ 2-ANALYZE ║ ──▶ ║ 3-DESIGN ║
83
+ ║ (Haiku) ║ ║ (Sonnet) ║ ║ (Sonnet) ║
84
+ ╚═══════════╝ ╚═══════════╝ ╚═══════════╝
85
+
86
+ ╔═══════════╗ ╔═══════════╗ ▼
87
+ ║ COMPLETE ║ ◀── ║ 5-VALIDATE║ ◀── ╔═══════════╗
88
+ ║ ║ ║ (Sonnet) ║ ║ 4-EXECUTE ║
89
+ ╚═══════════╝ ╚═══════════╝ ║ (Opus) ║
90
+ ╚═══════════╝
91
+
92
+ ## Output Location
93
+
94
+ Generated files go to:
95
+ - Working directory: `./{name}/`
96
+ - Or specified output path
97
+
98
+ ## Available Commands
99
+
100
+ | Command | Description |
101
+ |---------|-------------|
102
+ | `/{name}` | Run complete workflow (all phases) |
103
+ | `/{name}:1-setup` | Run setup phase only |
104
+ | `/{name}:2-analyze` | Run analysis phase only |
105
+ | `/{name}:3-design` | Run design phase only |
106
+ | `/{name}:4-execute` | Run execution phase only |
107
+ | `/{name}:5-validate` | Run validation phase only |
108
+
109
+ ## Absolute Rules
110
+
111
+ 1. **NEVER** skip phases in sequence mode
112
+ 2. **ALWAYS** validate before proceeding
113
+ 3. **PRESERVE** existing configurations
114
+ 4. **DOCUMENT** all decisions
115
+ 5. **COST-OPTIMIZE** model selection
116
+
117
+ ## Context Variables
118
+
119
+ Available in all phases:
120
+ - `$NAME` - Skill name
121
+ - `$PHASE` - Current phase number
122
+ - `$OUTPUT_DIR` - Output directory
123
+ - `$ARGUMENTS` - User arguments
124
+
125
+ ## Priority
126
+
127
+ Quality > Cost > Speed
128
+ ```
129
+
130
+ ## Generated Phase Template (example: 1-setup.md)
131
+
132
+ ```markdown
133
+ ---
134
+ description: Phase 1 - Setup and configuration
135
+ argument-hint: [output-dir]
136
+ ---
137
+
138
+ # Phase 1: Setup
139
+
140
+ ## Objective
141
+
142
+ Initialize the {name} workflow environment.
143
+
144
+ ## Prerequisites
145
+
146
+ - None (this is the first phase)
147
+
148
+ ## Steps
149
+
150
+ ### 1.1 Parse Arguments
151
+ - Extract output directory from `$ARGUMENTS`
152
+ - Default to `./{name}/` if not specified
153
+
154
+ ### 1.2 Create Directory Structure
155
+ ```
156
+ {output-dir}/
157
+ ├── config/
158
+ ├── output/
159
+ └── logs/
160
+ ```
161
+
162
+ ### 1.3 Initialize Configuration
163
+ - Create default config file
164
+ - Set up logging
165
+
166
+ ## Output
167
+
168
+ - Directory structure created
169
+ - Configuration initialized
170
+ - Ready for Phase 2
171
+
172
+ ## Validation Checklist
173
+
174
+ - [ ] Output directory exists
175
+ - [ ] Config file created
176
+ - [ ] No errors encountered
177
+
178
+ ## Next Phase
179
+
180
+ Proceed to: `/{name}:2-analyze`
181
+
182
+ ---
183
+
184
+ User: $ARGUMENTS
185
+ ```
186
+
187
+ ## Workflow
188
+
189
+ 1. Parse arguments (name, phases, description)
190
+ 2. Validate name format
191
+ 3. Create project directory
192
+ 4. Generate SKILL.md
193
+ 5. Generate each phase template
194
+ 6. Generate templates.md
195
+ 7. Display success message
196
+
197
+ ---
198
+
199
+ User: $ARGUMENTS