specpilot 1.1.0 → 1.1.2

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 CHANGED
@@ -2,6 +2,47 @@
2
2
 
3
3
  A CLI tool for initializing specification-driven development projects with flexible, production-ready structures.
4
4
 
5
+ ## Table of Contents
6
+
7
+ - [Quick Start](#quick-start)
8
+ - [Description](#description)
9
+ - [Why SpecPilot?](#why-specpilot)
10
+ - [The Problem with Traditional Development](#the-problem-with-traditional-development)
11
+ - [The SpecPilot Solution](#the-specpilot-solution)
12
+ - [šŸ—ļø Analogy: Building a House](#ļø-analogy-building-a-house)
13
+ - [šŸ’” Example: Building a Task Management App](#-example-building-a-task-management-app)
14
+ - [🌟 Why SDD is the Future](#-why-sdd-is-the-future)
15
+ - [Prerequisites](#prerequisites)
16
+ - [Installation](#installation)
17
+ - [Usage Examples](#usage-examples)
18
+ - [Basic Project Initialization](#basic-project-initialization)
19
+ - [Additional Commands](#additional-commands)
20
+ - [Configuration](#configuration)
21
+ - [Global Configuration](#global-configuration)
22
+ - [Project Configuration](#project-configuration)
23
+ - [Templates](#templates)
24
+ - [Available Templates](#available-templates)
25
+ - [Custom Templates](#custom-templates)
26
+ - [Features](#features)
27
+ - [Project Structure](#project-structure)
28
+ - [Troubleshooting](#troubleshooting)
29
+ - [Common Issues](#common-issues)
30
+ - [Debug Mode](#debug-mode)
31
+ - [Getting Help](#getting-help)
32
+ - [Getting Started](#getting-started)
33
+ - [Best Practices](#best-practices)
34
+ - [How to Contribute](#how-to-contribute)
35
+ - [Version History](#version-history)
36
+ - [MIT License](#mit-license)
37
+ - [Extended Configuration](#extended-configuration)
38
+ - [CI/CD Integration](#cicd-integration)
39
+ - [Team Collaboration](#team-collaboration)
40
+ - [Enterprise Integration](#enterprise-integration)
41
+ - [API Usage](#api-usage)
42
+ - [Contributing](#contributing)
43
+ - [Development Setup](#development-setup)
44
+ - [License](#license)
45
+
5
46
  ## Quick Start
6
47
 
7
48
  ```bash
@@ -9,7 +50,7 @@ A CLI tool for initializing specification-driven development projects with flexi
9
50
  npm install -g specpilot
10
51
 
11
52
  # Initialize your first project
12
- specpilot my-project --lang typescript --framework react
53
+ specpilot init my-project --lang typescript --framework react
13
54
 
14
55
  # Start coding with full control
15
56
  cd my-project
@@ -70,68 +111,69 @@ cd task-manager
70
111
 
71
112
  **SpecPilot gives you a professional project foundation in seconds, so you can focus on building great features instead of figuring out folder structures.**
72
113
 
114
+ ## Prerequisites
115
+
116
+ - **Node.js**: 16.0.0 or higher (18+ recommended)
117
+ - **npm**: 8.0.0 or higher (or yarn 1.22+)
118
+ - **Git**: For version control (recommended)
119
+ - **Operating System**: Windows, macOS, or Linux
120
+
73
121
  ## Installation
74
122
 
75
123
  ```bash
76
124
  npm install -g specpilot
77
125
  ```
78
126
 
127
+ ### Verify Installation
128
+
129
+ ```bash
130
+ specpilot --version
131
+ # Should output: 1.1.1 (or current version)
132
+
133
+ specpilot --help
134
+ # Shows available commands
135
+ ```
136
+
79
137
  ## Usage Examples
80
138
 
81
139
  ### Basic Project Initialization
82
140
 
83
141
  ```bash
84
142
  # Initialize with default settings (.specs folder)
85
- specpilot my-project
143
+ specpilot init my-project
86
144
 
87
145
  # Specify language and framework
88
- specpilot my-project --lang typescript --framework react
89
- specpilot my-project --lang python --framework django
90
- specpilot my-project --lang java --framework spring
146
+ specpilot init my-project --lang typescript --framework react
147
+ specpilot init my-project --lang typescript --framework express
148
+ specpilot init my-project --lang python --framework fastapi
149
+ specpilot init my-project --lang python --framework django
91
150
 
92
- # Use custom spec directory name
93
- specpilot my-project --spec-dir .project-specs
94
- specpilot my-project --spec-dir docs/specifications
151
+ # Use a custom specs folder name
152
+ specpilot init my-project --specs-name .project-specs
95
153
 
96
- # Interactive mode (guided setup)
97
- specpilot --interactive
154
+ # Skip interactive prompts
155
+ specpilot init my-project --no-prompts
98
156
  ```
99
157
 
100
- ### Advanced Usage
101
-
102
- ```bash
103
- # Initialize with specific template
104
- specpilot my-api --lang typescript --framework express --template rest-api
105
-
106
- # Initialize for team collaboration
107
- specpilot team-project --lang python --framework fastapi --collaboration
108
-
109
- # Initialize with custom author and license
110
- specpilot my-lib --lang typescript --author "Your Name" --license MIT
111
- ```
112
-
113
- ### Validation and Management
158
+ ### Additional Commands
114
159
 
115
160
  ```bash
116
161
  # Validate project specs
117
- specpilot --validate
118
-
119
- # Validate with strict rules and auto-fix
120
- specpilot --validate --strict --fix
121
-
122
- # Check for migration needs
123
- specpilot --migrate
124
-
125
- # Show migration history
126
- specpilot --migrate --show-history
162
+ specpilot validate --verbose
163
+ specpilot validate --fix
127
164
 
128
165
  # List available templates
129
- specpilot --list-templates
166
+ specpilot list
130
167
 
131
- # Show template details
132
- specpilot --template-info typescript-react
168
+ # Migrate legacy structures (when applicable)
169
+ specpilot migrate --from complex --to simple --backup
170
+
171
+ # Generate or update specs from a natural language description
172
+ specpilot specify "A simple REST API for todos" --update
133
173
  ```
134
174
 
175
+ > Tip: Run `specpilot --help` or `specpilot <command> --help` for full options.
176
+
135
177
  ## Configuration
136
178
 
137
179
  ### Global Configuration
@@ -158,7 +200,7 @@ validation:
158
200
 
159
201
  ### Project Configuration
160
202
 
161
- After initialization, customize `.specs/project.yaml`:
203
+ After initialization, customize `.specs/project/project.yaml`:
162
204
 
163
205
  ```yaml
164
206
  project:
@@ -166,7 +208,7 @@ project:
166
208
  description: "My awesome project"
167
209
  language: "typescript"
168
210
  framework: "react"
169
- version: "1.0.0"
211
+ version: "1.1.1"
170
212
 
171
213
  rules:
172
214
  - "Follow specification-driven development"
@@ -187,26 +229,20 @@ ai-context:
187
229
  - **Generic**: Basic TypeScript project structure
188
230
  - **React**: React application with modern tooling
189
231
  - **Express**: REST API server setup
190
- - **Library**: NPM package development
191
- - **CLI**: Command-line tool development
192
232
 
193
233
  #### Python
194
234
 
195
235
  - **Generic**: Basic Python project structure
196
236
  - **FastAPI**: Modern API development
197
237
  - **Django**: Web application framework
198
- - **Data Science**: Jupyter, pandas, scikit-learn setup
199
- - **CLI**: Python command-line tools
200
-
201
- #### Java
202
238
 
203
- - **Generic**: Maven/Gradle project structure
204
- - **Spring Boot**: Microservices development
205
- - **Android**: Mobile app development
239
+ > **Note**: Run `specpilot list` to see all currently available templates and their status.
206
240
 
207
241
  ### Custom Templates
208
242
 
209
- Create custom templates in `~/.specpilot-templates/`:
243
+ > **Coming Soon**: Custom template support is planned for future releases. Currently, SpecPilot uses built-in templates optimized for specification-driven development.
244
+
245
+ **Planned custom template structure:**
210
246
 
211
247
  ```text
212
248
  ~/.specpilot-templates/
@@ -218,14 +254,12 @@ Create custom templates in `~/.specpilot-templates/`:
218
254
 
219
255
  ## Features
220
256
 
221
- - **Flexible Structure**: Generates `.specs` directories with customizable layouts
222
- - **Language Support**: Templates for TypeScript, Python, Java, and more
223
- - **Spec Validation**: Built-in validation with auto-fix capabilities
257
+ - **Flexible Structure**: Generates `.specs` with customizable, production-ready layout
258
+ - **Language Support**: Templates for TypeScript and Python
259
+ - **Spec Validation**: Built-in validation with optional auto-fix
224
260
  - **AI Integration**: Dedicated prompts tracking for development cycles
225
- - **GitHub Ready**: Structures optimized for version control and collaboration
226
- - **Migration Support**: Handles structure updates across versions
227
- - **Custom Templates**: Support for organization-specific templates
228
- - **Team Collaboration**: Built-in support for team development workflows
261
+ - **Migration Support**: Helps transition older structures
262
+ - **Template Listing**: Discover available language/framework combinations
229
263
 
230
264
  ## Project Structure
231
265
 
@@ -233,17 +267,14 @@ After initialization, your project will have:
233
267
 
234
268
  ```text
235
269
  project-root/
236
- ā”œā”€ā”€ .specs/ # Specification-driven structure
237
- │ ā”œā”€ā”€ config/ # Project configuration
238
- │ ā”œā”€ā”€ architecture/ # System design docs
239
- │ ā”œā”€ā”€ requirements/ # Feature and user story specs
240
- │ ā”œā”€ā”€ api/ # API specifications
241
- │ ā”œā”€ā”€ tests/ # Test plans and criteria
242
- │ ā”œā”€ā”€ tasks/ # Task tracking
243
- │ ā”œā”€ā”€ prompts/ # AI development prompts
244
- │ └── docs/ # Development guidelines
245
- ā”œā”€ā”€ src/ # Your source code
246
- └── README.md # This file
270
+ ā”œā”€ā”€ .specs/
271
+ │ ā”œā”€ā”€ project/ # project.yaml, requirements.md, project-plan.md
272
+ │ ā”œā”€ā”€ architecture/ # architecture.md, api.yaml
273
+ │ ā”œā”€ā”€ planning/ # tasks.md, roadmap.md
274
+ │ ā”œā”€ā”€ quality/ # tests.md
275
+ │ └── development/ # docs.md, context.md, prompts.md
276
+ ā”œā”€ā”€ src/
277
+ └── README.md
247
278
  ```
248
279
 
249
280
  ## Troubleshooting
@@ -263,50 +294,42 @@ npm config set prefix '~/.npm-global'
263
294
 
264
295
  #### Template Not Found
265
296
 
266
- ```bash
267
297
  ```bash
268
298
  # List available templates
269
- specpilot --list-templates
270
-
271
- # Update templates
272
- specpilot --update-templates
273
- ````
299
+ specpilot list
300
+ ```
274
301
 
275
302
  #### Validation Failures
276
303
 
277
304
  ```bash
278
305
  # Run with detailed error output
279
- specpilot --validate --verbose
306
+ specpilot validate --verbose
280
307
 
281
308
  # Auto-fix common issues
282
- specpilot --validate --fix
309
+ specpilot validate --fix
283
310
  ```
284
311
 
285
312
  #### Migration Issues
286
313
 
287
- ````bash
288
314
  ```bash
289
- # Check current version
315
+ # Show CLI version
290
316
  specpilot --version
291
317
 
292
- # Force migration
293
- specpilot --migrate --force
294
-
295
- # Rollback migration
296
- specpilot --migrate --rollback
297
- ````
318
+ # Migrate legacy structure
319
+ specpilot migrate --from complex --to simple --backup
320
+ ```
298
321
 
299
322
  ### Debug Mode
300
323
 
301
324
  ```bash
302
325
  # Enable debug logging
303
- DEBUG=specpilot specpilot my-project
326
+ DEBUG=specpilot specpilot init my-project
304
327
 
305
328
  # Verbose output
306
- specpilot my-project --verbose
329
+ specpilot validate --verbose
307
330
 
308
- # Dry run (show what would be created)
309
- specpilot my-project --dry-run
331
+ # Check what templates are available
332
+ specpilot list --verbose
310
333
  ```
311
334
 
312
335
  ### Getting Help
@@ -318,54 +341,40 @@ specpilot --help
318
341
  # Command-specific help
319
342
  specpilot init --help
320
343
  specpilot validate --help
344
+ specpilot list --help
345
+ specpilot migrate --help
346
+ specpilot specify --help
321
347
  ```
322
348
 
323
349
  ## Getting Started
324
350
 
325
- 1. **Initialize your project**: `specpilot my-project --lang typescript`
351
+ 1. **Initialize your project**: `specpilot init my-project --lang typescript`
326
352
  2. **Review the generated `.specs` structure** - This provides your flexible framework
327
- 3. **Customize the specifications** in `.specs/project.yaml` according to your needs
328
- 4. **Document your architecture** in `.specs/architecture.md` (you control the design)
329
- 5. **Track all development prompts** in `.specs/prompts.md` throughout your coding cycle
330
- 6. **Define your requirements** in `.specs/requirements.md` and `.specs/tests.md`
331
- 7. **Start building** your production code in `src/` with full control over implementation
353
+ 3. **Customize the specifications** in `.specs/project/project.yaml`
354
+ 4. **Document your architecture** in `.specs/architecture/architecture.md`
355
+ 5. **Track all development prompts** in `.specs/development/prompts.md`
356
+ 6. **Plan your work** in `.specs/planning/tasks.md` and `.specs/planning/roadmap.md`
357
+ 7. **Define tests** in `.specs/quality/tests.md`
358
+ 8. **Start building** your production code in `src/`
332
359
 
333
360
  ### Best Practices
334
361
 
335
362
  - **Start with specifications**: Define what you're building before coding
336
363
  - **Keep prompts updated**: Log all AI interactions for future reference
337
- - **Validate regularly**: Use `specpilot --validate` during development
338
- - **Customize templates**: Adapt the structure to your team's needs
364
+ - **Validate regularly**: Use `specpilot validate` during development
365
+ - **Follow the subfolder structure**: Organize specs in `project/`, `architecture/`, `planning/`, `quality/`, `development/`
366
+ - **Use stable IDs**: Reference requirements and tasks by their IDs (e.g., `REQ-001`, `TASK-002`)
339
367
  - **Version control everything**: Include `.specs/` in your git repository
368
+ - **Update metadata**: Keep `lastUpdated` and `version` fields current in spec files
340
369
 
341
370
  ## How to Contribute
342
371
 
343
- We welcome contributions! Please see our contributing guidelines:
344
-
345
- 1. **Fork the repository** and create a feature branch
346
- 2. **Follow the existing code style** and add tests for new features
347
- 3. **Update documentation** for any new functionality
348
- 4. **Submit a pull request** with a clear description of changes
349
-
350
- ### Local Development Setup
351
-
352
- ```bash
353
- # Clone the repository
354
- git clone https://github.com/specpilot/specpilot.git
355
- cd specpilot
356
-
357
- # Install dependencies
358
- npm install
359
-
360
- # Run in development mode
361
- npm run dev -- my-test-project --lang typescript
372
+ We welcome contributions! Please:
362
373
 
363
- # Run tests
364
- npm test
365
-
366
- # Build for production
367
- npm run build
368
- ```
374
+ 1. Fork the repo and create a feature branch
375
+ 2. Follow the existing code style and add tests for new features
376
+ 3. Update documentation for new functionality
377
+ 4. Submit a pull request with a clear description
369
378
 
370
379
  ## Version History
371
380
 
@@ -389,77 +398,87 @@ jobs:
389
398
  steps:
390
399
  - uses: actions/checkout@v3
391
400
  - uses: actions/setup-node@v3
401
+ with:
402
+ node-version: '18'
392
403
  - run: npm install -g specpilot
393
- - run: specpilot --validate --strict
404
+ - run: specpilot validate --verbose
394
405
  ```
395
406
 
396
407
  ### Team Collaboration
397
408
 
398
409
  ```bash
399
- # Initialize for team with shared templates
400
- specpilot team-project --lang typescript --template team-standard
410
+ # Initialize project for team collaboration
411
+ specpilot init team-project --lang typescript --framework react
401
412
 
402
- # Sync team templates
403
- specpilot --sync-templates --from git@github.com:company/templates.git
413
+ # Share specs folder structure with team
414
+ git add .specs/
415
+ git commit -m "feat: add specification-driven development structure"
404
416
 
405
- # Validate against team standards
406
- specpilot --validate --team-rules
417
+ # Team members can validate specs consistently
418
+ specpilot validate --verbose
407
419
  ```
408
420
 
409
421
  ### Enterprise Integration
410
422
 
411
- ```bash
412
- # Use corporate templates
413
- specforge --template-repo https://internal.company.com/templates
414
-
415
- # Apply company policies
416
- specforge --apply-policies company-standards
417
-
418
- # Generate compliance reports
419
- specforge --compliance-report --output report.json
420
- ```
423
+ Your organization can wrap SpecPilot with internal tooling and templates. For now, use `specpilot list` to explore built-ins.
421
424
 
422
425
  ### API Usage
423
426
 
427
+ > **Coming Soon**: Programmatic API support is planned for future releases. Currently, SpecPilot is designed as a CLI-first tool.
428
+
429
+ **Planned programmatic usage:**
424
430
  ```javascript
425
- // Use SpecPilot SDD CLI programmatically
431
+ // Future API (not yet available)
426
432
  const { initProject, validateSpecs } = require("specpilot");
427
433
 
428
- // Initialize project
429
434
  await initProject({
430
435
  name: "my-project",
431
436
  language: "typescript",
432
- framework: "react",
433
- specDir: ".specs",
437
+ framework: "react"
434
438
  });
439
+ ```
435
440
 
436
- // Validate specifications
437
- const result = await validateSpecs("./my-project");
438
- if (!result.valid) {
439
- console.error("Validation errors:", result.errors);
440
- }
441
+ For now, use the CLI commands or shell integration:
442
+ ```bash
443
+ # Use in shell scripts
444
+ specpilot init my-project --lang typescript --no-prompts
445
+ specpilot validate --fix
441
446
  ```
442
447
 
443
448
  ## Contributing
444
449
 
445
- This project follows specification-driven development. See `.specs` for contribution guidelines and development setup.
450
+ This project follows specification-driven development principles. Please review our [`.specs/`](.specs/) folder for detailed contribution guidelines, architecture decisions, and development context.
451
+
452
+ ### Quick Contribution Guide
453
+
454
+ 1. **Read the specs**: Review [`.specs/project/requirements.md`](.specs/project/requirements.md) and [`.specs/architecture/architecture.md`](.specs/architecture/architecture.md)
455
+ 2. **Check current tasks**: See [`.specs/planning/tasks.md`](.specs/planning/tasks.md) for open issues
456
+ 3. **Follow conventions**: Use the metadata format documented in [`.specs/development/docs.md`](.specs/development/docs.md)
457
+ 4. **Update specs**: Modify relevant spec files when making changes
458
+ 5. **Validate**: Run `specpilot validate` before committing
446
459
 
447
460
  ### Development Setup
448
461
 
449
462
  ```bash
450
463
  # Clone and setup
451
- git clone https://github.com/specpilot/specpilot.git
452
- cd specpilot
464
+ git clone https://github.com/girishr/SpecPilot.git
465
+ cd SpecPilot
453
466
  npm install
454
467
 
455
468
  # Run in development mode
456
- npm run dev
469
+ npm run dev -- init test-project --lang typescript
457
470
 
458
471
  # Run tests
459
472
  npm test
460
473
 
474
+ # Run tests with coverage
475
+ npm run test:coverage
476
+
461
477
  # Build for production
462
478
  npm run build
479
+
480
+ # Test CLI locally
481
+ node cli.js init my-test --lang python
463
482
  ```
464
483
 
465
484
  ## License
@@ -469,3 +488,4 @@ MIT License - see LICENSE file for details.
469
488
  ---
470
489
 
471
490
  _Built with specification-driven development principles for serious production projects._
491
+ ````
package/dist/cli.js CHANGED
@@ -17,8 +17,8 @@ commander_1.program
17
17
  .command('init')
18
18
  .alias('i')
19
19
  .description('Initialize a new SDD project')
20
- .argument('[name]', 'Project name')
21
- .option('-l, --lang <language>', 'Programming language (typescript, python, java)', 'typescript')
20
+ .argument('<name>', 'Project name (required)')
21
+ .option('-l, --lang <language>', 'Programming language (typescript, python)', 'typescript')
22
22
  .option('-f, --framework <framework>', 'Framework (react, express, django, spring, etc.)')
23
23
  .option('-d, --dir <directory>', 'Target directory', '.')
24
24
  .option('--specs-name <name>', 'Name for specs folder', '.specs')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,kDAAsD;AACtD,gDAAoD;AACpD,0CAA8C;AAC9C,gDAAoD;AAEpD,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,mBAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,qEAAqE,CAAC;KAClF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,qBAAqB;AACrB,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;KAClC,MAAM,CAAC,uBAAuB,EAAE,iDAAiD,EAAE,YAAY,CAAC;KAChG,MAAM,CAAC,6BAA6B,EAAE,kDAAkD,CAAC;KACzF,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACxD,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,QAAQ,CAAC;KAChE,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,mBAAmB;AACnB,mBAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC;KACzC,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;KACvD,MAAM,CAAC,0BAAe,CAAC,CAAC;AAE3B,kBAAkB;AAClB,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,EAAE,SAAS,CAAC;KACnF,MAAM,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,QAAQ,CAAC;KACjE,MAAM,CAAC,UAAU,EAAE,gCAAgC,CAAC;KACpD,MAAM,CAAC,wBAAc,CAAC,CAAC;AAE1B,yBAAyB;AACzB,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;KACjD,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,kBAAkB;AAClB,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,gEAAgE,CAAC;KAC7E,QAAQ,CAAC,eAAe,EAAE,+CAA+C,CAAC;KAC1E,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,QAAQ,CAAC;KAChE,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,cAAc,EAAE,uCAAuC,CAAC;KAC/D,MAAM,CAAC,wBAAc,CAAC,CAAC;AAE1B,+BAA+B;AAC/B,mBAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,kDAAsD;AACtD,gDAAoD;AACpD,0CAA8C;AAC9C,gDAAoD;AAEpD,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,mBAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,qEAAqE,CAAC;KAClF,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,qBAAqB;AACrB,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;KAC7C,MAAM,CAAC,uBAAuB,EAAE,2CAA2C,EAAE,YAAY,CAAC;KAC1F,MAAM,CAAC,6BAA6B,EAAE,kDAAkD,CAAC;KACzF,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACxD,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,QAAQ,CAAC;KAChE,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,mBAAmB;AACnB,mBAAO;KACJ,OAAO,CAAC,UAAU,CAAC;KACnB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,OAAO,EAAE,wBAAwB,CAAC;KACzC,MAAM,CAAC,WAAW,EAAE,kCAAkC,CAAC;KACvD,MAAM,CAAC,0BAAe,CAAC,CAAC;AAE3B,kBAAkB;AAClB,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,KAAK,CAAC,GAAG,CAAC;KACV,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,oBAAoB,EAAE,0CAA0C,EAAE,SAAS,CAAC;KACnF,MAAM,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,QAAQ,CAAC;KACjE,MAAM,CAAC,UAAU,EAAE,gCAAgC,CAAC;KACpD,MAAM,CAAC,wBAAc,CAAC,CAAC;AAE1B,yBAAyB;AACzB,mBAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;KACjD,MAAM,CAAC,WAAW,EAAE,uBAAuB,CAAC;KAC5C,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,kBAAkB;AAClB,mBAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,KAAK,CAAC,MAAM,CAAC;KACb,WAAW,CAAC,gEAAgE,CAAC;KAC7E,QAAQ,CAAC,eAAe,EAAE,+CAA+C,CAAC;KAC1E,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,QAAQ,CAAC;KAChE,MAAM,CAAC,cAAc,EAAE,0BAA0B,CAAC;KAClD,MAAM,CAAC,cAAc,EAAE,uCAAuC,CAAC;KAC/D,MAAM,CAAC,wBAAc,CAAC,CAAC;AAE1B,+BAA+B;AAC/B,mBAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -5,5 +5,5 @@ export interface InitOptions {
5
5
  specsName: string;
6
6
  prompts: boolean;
7
7
  }
8
- export declare function initCommand(name: string | undefined, options: InitOptions): Promise<void>;
8
+ export declare function initCommand(name: string, options: InitOptions): Promise<void>;
9
9
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,iBAyD/E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,iBA+EnE"}
@@ -15,7 +15,26 @@ async function initCommand(name, options) {
15
15
  const logger = new logger_1.Logger();
16
16
  try {
17
17
  logger.info('šŸš€ Initializing SDD project...');
18
- const projectName = name || 'my-project';
18
+ // Validate project name
19
+ if (!name || name.trim() === '') {
20
+ logger.error('āŒ Project name is required and cannot be empty');
21
+ logger.info('šŸ’” Usage: specpilot init <project-name>');
22
+ process.exit(1);
23
+ }
24
+ const projectName = name.trim();
25
+ // Validate project name doesn't contain invalid characters
26
+ if (/[<>:"/\\|?*]/.test(projectName)) {
27
+ logger.error('āŒ Project name contains invalid characters: < > : " / \\ | ? *');
28
+ logger.info('šŸ’” Please use only letters, numbers, hyphens, and underscores');
29
+ process.exit(1);
30
+ }
31
+ // Validate supported language
32
+ const supportedLanguages = ['typescript', 'python'];
33
+ if (!supportedLanguages.includes(options.lang)) {
34
+ logger.error(`āŒ Language "${options.lang}" is not supported`);
35
+ logger.info(`šŸ’” Supported languages: ${supportedLanguages.join(', ')}`);
36
+ process.exit(1);
37
+ }
19
38
  // Get framework if not provided and prompts enabled
20
39
  let framework = options.framework;
21
40
  if (!framework && options.prompts) {
@@ -64,8 +83,7 @@ async function initCommand(name, options) {
64
83
  function getFrameworksForLanguage(language) {
65
84
  const frameworks = {
66
85
  typescript: ['react', 'express', 'next', 'nest', 'vue', 'angular'],
67
- python: ['fastapi', 'django', 'flask', 'streamlit'],
68
- java: ['spring-boot', 'spring-mvc', 'android']
86
+ python: ['fastapi', 'django', 'flask', 'streamlit']
69
87
  };
70
88
  return frameworks[language] || [];
71
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBAiDrD"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,iBA6CrD"}
@@ -41,9 +41,6 @@ async function listCommand(options) {
41
41
  }
42
42
  });
43
43
  });
44
- console.log(chalk_1.default.cyan('\nšŸ“– Usage:'));
45
- console.log(' specpilot <project-name> --lang <language> --framework <framework>');
46
- console.log(' specpilot my-app --lang typescript --framework react');
47
44
  }
48
45
  catch (error) {
49
46
  logger.error(`āŒ Failed to list templates: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;AAUA,kCAiDC;AA1DD,kDAA0B;AAC1B,gEAA6D;AAC7D,4CAAyC;AAOlC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,mCAAgB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC9B,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAsC,CAAC,CAAC;QAE3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YAE1D,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/B,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC;gBAEhB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IAExE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACxG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;AAUA,kCA6CC;AAtDD,kDAA0B;AAC1B,gEAA6D;AAC7D,4CAAyC;AAOlC,KAAK,UAAU,WAAW,CAAC,OAAoB;IACpD,MAAM,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,mCAAgB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACjD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC9B,CAAC;YACD,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAsC,CAAC,CAAC;QAE3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE;YAC5D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;YAE1D,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC/B,GAAG,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;oBAC5C,QAAQ,CAAC,IAAI,CAAC;gBAEhB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IAEL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACxG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}