kiro-spec-engine 1.18.0 → 1.19.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/CHANGELOG.md CHANGED
@@ -7,6 +7,91 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.19.2] - 2026-02-01
11
+
12
+ ### Fixed
13
+ - **Cross-Platform**: Fixed Windows path detection in PathResolver
14
+ - isAbsolute() now correctly detects Windows paths (C:/) on Unix systems
15
+ - Resolves CI test failures on Linux/macOS
16
+ - All PathResolver tests now passing
17
+
18
+ ### Notes
19
+ - Hotfix for v1.19.1 CI test failures
20
+ - All functionality from v1.19.0 and v1.19.1 is included
21
+ - All 1686 tests passing
22
+
23
+ ## [1.19.1] - 2026-02-01
24
+
25
+ ### Fixed
26
+ - **CI/CD**: Updated package-lock.json to sync with new dependencies
27
+ - Added simple-git@^3.22.0 to lock file
28
+ - Added cli-table3@^0.6.3 to lock file
29
+ - Fixed npm ci failure in GitHub Actions
30
+
31
+ ### Notes
32
+ - Hotfix release to resolve CI test failures
33
+ - All functionality from v1.19.0 is included
34
+ - All 1686+ tests passing
35
+
36
+ ## [1.19.0] - 2026-01-31
37
+
38
+ ### Added
39
+ - **Multi-Repository Management**: Complete feature for managing multiple Git subrepositories
40
+ - `kse repo init`: Auto-discover and initialize repository configuration
41
+ - `kse repo status`: View status of all repositories in unified table
42
+ - `kse repo exec`: Execute Git commands across all repositories
43
+ - `kse repo health`: Verify repository configuration and connectivity
44
+ - Configuration stored in `.kiro/project-repos.json`
45
+ - Support for repository groups, tags, and metadata
46
+ - Cross-platform path handling (Windows/Linux/macOS)
47
+ - Comprehensive error handling and validation
48
+ - Dry-run mode for safe command preview
49
+
50
+ ### Documentation
51
+ - Added `docs/multi-repo-management-guide.md` with comprehensive usage guide
52
+ - Quick start guide with examples
53
+ - Configuration file format documentation
54
+ - Common workflows (sync, feature branches, releases, troubleshooting)
55
+ - Manual configuration examples
56
+ - Troubleshooting section
57
+ - Best practices and advanced usage
58
+ - Updated `README.md` with multi-repo management section
59
+ - Updated command overview with repo commands
60
+
61
+ ### Implementation
62
+ - Core utilities: ConfigManager, RepoManager, GitOperations, PathResolver, OutputFormatter
63
+ - Command handlers: InitHandler, StatusHandler, ExecHandler, HealthHandler
64
+ - Error classes: ConfigError, RepoError, GitError
65
+ - CLI integration with Commander
66
+ - Full test coverage (unit + integration tests)
67
+
68
+ ### Dependencies
69
+ - Added `simple-git@^3.22.0` for Git operations
70
+ - Added `cli-table3@^0.6.3` for table formatting
71
+
72
+ ### Notes
73
+ - All 1491+ tests passing
74
+ - Implements Spec 24-00-multi-repo-management
75
+ - Follows data atomicity principle (single source of truth)
76
+ - Documentation synchronized with implementation (principle #8)
77
+
78
+ ## [1.18.1] - 2026-01-31
79
+
80
+ ### Added
81
+ - **Version Synchronization Principle**: Added principle #9 to CORE_PRINCIPLES.md
82
+ - Mandates reading `.kiro/README.md` after version updates or first installation
83
+ - Requires refreshing Steering rules to sync with latest version
84
+ - Prevents AI from using outdated workflows or ignoring new features
85
+ - Ensures consistency between AI behavior and project state
86
+
87
+ ### Changed
88
+ - **CORE_PRINCIPLES.md**: Updated to v11.0 with new version synchronization principle
89
+ - **Steering Rules**: Enhanced with automatic version sync workflow
90
+
91
+ ### Notes
92
+ - This release ensures AI tools stay synchronized with kse version updates
93
+ - All 1491 tests passing
94
+
10
95
  ## [1.18.0] - 2026-01-31
11
96
 
12
97
  ### Added
package/README.md CHANGED
@@ -219,6 +219,7 @@ sequenceDiagram
219
219
  - 🔢 **[Spec Numbering Strategy](docs/spec-numbering-guide.md)** - How to number your Specs
220
220
  - 📄 **[Document Governance](docs/document-governance.md)** - Automated document management
221
221
  - 🌍 **[Environment Management](docs/environment-management-guide.md)** - Multi-environment configuration
222
+ - 📦 **[Multi-Repository Management](docs/multi-repo-management-guide.md)** - Manage multiple Git repositories
222
223
  - 🔌 **[Integration Modes](docs/integration-modes.md)** - Three ways to integrate kse
223
224
  - 📝 **[Command Reference](docs/command-reference.md)** - All kse commands
224
225
 
@@ -267,6 +268,14 @@ Structure your work with Requirements → Design → Tasks workflow
267
268
  - **Command Execution**: Run commands in specific environment context
268
269
  - **Cross-Platform**: Works seamlessly on Windows, Linux, and macOS
269
270
 
271
+ ### Multi-Repository Management 🚀 NEW in v1.19.0
272
+ - **Unified Interface**: Manage multiple Git subrepositories from a single command
273
+ - **Auto-Discovery**: Automatically scan and configure all Git repositories in your project
274
+ - **Batch Operations**: Execute Git commands across all repositories simultaneously
275
+ - **Status Overview**: View status of all repositories in a single table
276
+ - **Health Checks**: Verify repository configuration and connectivity
277
+ - **Cross-Platform**: Consistent path handling across Windows/Linux/macOS
278
+
270
279
  ### DevOps Integration Foundation 🚀
271
280
  - **Operations Spec Management**: Standardized operations documentation (deployment, monitoring, troubleshooting, etc.)
272
281
  - **Progressive AI Autonomy**: L1-L5 takeover levels for gradual AI operations control
@@ -331,6 +340,12 @@ kse env rollback # Rollback to previous environment
331
340
  kse env verify # Verify current environment
332
341
  kse env run "<command>" # Run command in environment context
333
342
 
343
+ # Multi-repository management (NEW in v1.19.0)
344
+ kse repo init # Initialize repository configuration
345
+ kse repo status [--verbose] # Show status of all repositories
346
+ kse repo exec "<command>" # Execute command in all repositories
347
+ kse repo health # Check repository health
348
+
334
349
  # DevOps operations
335
350
  kse ops init <project-name> # Initialize operations specs
336
351
  kse ops validate [<project>] # Validate operations completeness
@@ -509,6 +509,46 @@ envCmd.action(async (subcommand, args, options) => {
509
509
  process.exit(exitCode);
510
510
  });
511
511
 
512
+ // Multi-repository management commands
513
+ const repoCommand = require('../lib/commands/repo');
514
+
515
+ const repoCmd = program
516
+ .command('repo')
517
+ .description('Manage multiple Git subrepositories');
518
+
519
+ repoCmd
520
+ .command('init')
521
+ .description('Initialize repository configuration')
522
+ .option('-y, --yes', 'Skip confirmation prompts')
523
+ .option('--max-depth <depth>', 'Maximum scan depth', parseInt)
524
+ .option('--exclude <paths>', 'Comma-separated paths to exclude')
525
+ .action(async (options) => {
526
+ await repoCommand.initRepo(options);
527
+ });
528
+
529
+ repoCmd
530
+ .command('status')
531
+ .description('Display repository status')
532
+ .option('-v, --verbose', 'Show detailed status')
533
+ .action(async (options) => {
534
+ await repoCommand.statusRepo(options);
535
+ });
536
+
537
+ repoCmd
538
+ .command('exec <command>')
539
+ .description('Execute command across repositories')
540
+ .option('--dry-run', 'Show commands without executing')
541
+ .action(async (command, options) => {
542
+ await repoCommand.execRepo(command, options);
543
+ });
544
+
545
+ repoCmd
546
+ .command('health')
547
+ .description('Check repository health')
548
+ .action(async (options) => {
549
+ await repoCommand.healthRepo(options);
550
+ });
551
+
512
552
  // Template management commands
513
553
  const templatesCommand = require('../lib/commands/templates');
514
554
 
package/docs/README.md CHANGED
@@ -79,6 +79,7 @@ Detailed technical documentation:
79
79
 
80
80
  - **[Command Reference](command-reference.md)** - All kse commands with examples
81
81
  - **[Environment Management Guide](environment-management-guide.md)** - Multi-environment configuration management
82
+ - **[Multi-Repository Management Guide](multi-repo-management-guide.md)** - Managing multiple Git repositories
82
83
  - **[Troubleshooting](troubleshooting.md)** - Solutions to common problems
83
84
  - **[FAQ](faq.md)** - Answers to frequently asked questions
84
85
 
@@ -89,6 +90,7 @@ Detailed technical documentation:
89
90
  - **[Adoption Guide](adoption-guide.md)** - Adopting kse in existing projects
90
91
  - **[Upgrade Guide](upgrade-guide.md)** - Upgrading kse to newer versions
91
92
  - **[Environment Management Guide](environment-management-guide.md)** - Managing multiple environments
93
+ - **[Multi-Repository Management Guide](multi-repo-management-guide.md)** - Managing multiple Git repositories
92
94
  - **[Developer Guide](developer-guide.md)** - Contributing to kse development
93
95
  - **[Architecture](architecture.md)** - kse system architecture
94
96
 
@@ -158,6 +160,11 @@ Detailed technical documentation:
158
160
  - [Environment Commands](command-reference.md#environment-management)
159
161
  - [Multi-Environment Workflow](environment-management-guide.md#common-workflows)
160
162
 
163
+ ### Multi-Repository Management
164
+ - [Multi-Repository Management Guide](multi-repo-management-guide.md)
165
+ - [Repository Commands](command-reference.md#multi-repository-management)
166
+ - [Multi-Repo Workflows](multi-repo-management-guide.md#common-workflows)
167
+
161
168
  ### Context Export
162
169
  - [Manual Export Mode](integration-modes.md#mode-2-manual-export)
163
170
  - [Export Commands](command-reference.md#context--prompts)
@@ -208,6 +215,7 @@ Detailed technical documentation:
208
215
  | Troubleshooting | ✅ Complete | 2026-01-23 |
209
216
  | Command Reference | ✅ Complete | 2026-01-31 |
210
217
  | Environment Management | ✅ Complete | 2026-01-31 |
218
+ | Multi-Repository Management | ✅ Complete | 2026-01-31 |
211
219
 
212
220
  ---
213
221
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Quick reference for all kse commands
4
4
 
5
- **Version**: 1.17.0
5
+ **Version**: 1.19.0
6
6
  **Last Updated**: 2026-01-31
7
7
 
8
8
  ---
@@ -182,6 +182,22 @@ kse env verify
182
182
  kse env run "<command>"
183
183
  ```
184
184
 
185
+ ### Multi-Repository Management
186
+
187
+ ```bash
188
+ # Initialize repository configuration
189
+ kse repo init [--force] [--depth <n>]
190
+
191
+ # Show status of all repositories
192
+ kse repo status [--verbose] [--json]
193
+
194
+ # Execute command in all repositories
195
+ kse repo exec "<command>" [--dry-run]
196
+
197
+ # Check repository health
198
+ kse repo health [--json]
199
+ ```
200
+
185
201
  ### Version & Upgrade
186
202
 
187
203
  ```bash
@@ -326,11 +342,206 @@ kse env rollback
326
342
  5. **Use watch mode** - Automate repetitive tasks
327
343
  6. **Use workspace management** - Easily switch between multiple kse projects
328
344
  7. **Use environment management** - Manage dev, test, staging, prod configurations with automatic backup
345
+ 8. **Use multi-repo management** - Coordinate operations across multiple Git repositories
346
+
347
+ ---
348
+
349
+ ## Detailed Command Documentation
350
+
351
+ ### Multi-Repository Management Commands
352
+
353
+ #### `kse repo init`
354
+
355
+ Initialize repository configuration by scanning the project directory for Git repositories.
356
+
357
+ **Usage:**
358
+ ```bash
359
+ kse repo init [options]
360
+ ```
361
+
362
+ **Options:**
363
+ - `--force` - Overwrite existing configuration without confirmation
364
+ - `--depth <n>` - Maximum directory depth to scan (default: 3)
365
+
366
+ **Behavior:**
367
+ - Scans project directory recursively for Git repositories
368
+ - Excludes `.kiro` directory from scanning
369
+ - Extracts remote URL from `origin` remote (or first available remote)
370
+ - Detects current branch for each repository
371
+ - Prompts for confirmation if configuration already exists (unless `--force`)
372
+ - Creates `.kiro/project-repos.json` configuration file
373
+
374
+ **Example:**
375
+ ```bash
376
+ # Initialize with default settings
377
+ kse repo init
378
+
379
+ # Force overwrite without confirmation
380
+ kse repo init --force
381
+
382
+ # Scan deeper directory structure
383
+ kse repo init --depth 5
384
+ ```
385
+
386
+ **Output:**
387
+ ```
388
+ Scanning for Git repositories...
389
+ Found 3 repositories:
390
+ ✓ frontend (main) - https://github.com/user/frontend.git
391
+ ✓ backend (develop) - https://github.com/user/backend.git
392
+ ✓ shared (main) - https://github.com/user/shared.git
393
+
394
+ Configuration saved to .kiro/project-repos.json
395
+ ```
396
+
397
+ ---
398
+
399
+ #### `kse repo status`
400
+
401
+ Display the Git status of all configured repositories.
402
+
403
+ **Usage:**
404
+ ```bash
405
+ kse repo status [options]
406
+ ```
407
+
408
+ **Options:**
409
+ - `--verbose` - Show detailed file-level changes
410
+ - `--json` - Output in JSON format for scripting
411
+
412
+ **Output includes:**
413
+ - Current branch name
414
+ - Number of modified, added, and deleted files
415
+ - Commits ahead/behind remote
416
+ - Clean/dirty status indicator
417
+ - Error status for inaccessible repositories
418
+
419
+ **Example:**
420
+ ```bash
421
+ # Basic status
422
+ kse repo status
423
+
424
+ # Detailed status with file changes
425
+ kse repo status --verbose
426
+
427
+ # JSON output for automation
428
+ kse repo status --json
429
+ ```
430
+
431
+ **Output:**
432
+ ```
433
+ ┌──────────┬─────────┬────────┬──────────┬───────┬────────┐
434
+ │ Name │ Branch │ Status │ Modified │ Ahead │ Behind │
435
+ ├──────────┼─────────┼────────┼──────────┼───────┼────────┤
436
+ │ frontend │ main │ Clean │ 0 │ 0 │ 0 │
437
+ │ backend │ develop │ Dirty │ 3 │ 2 │ 0 │
438
+ │ shared │ main │ Clean │ 0 │ 0 │ 1 │
439
+ └──────────┴─────────┴────────┴──────────┴───────┴────────┘
440
+ ```
441
+
442
+ ---
443
+
444
+ #### `kse repo exec`
445
+
446
+ Execute a Git command in all configured repositories.
447
+
448
+ **Usage:**
449
+ ```bash
450
+ kse repo exec "<command>" [options]
451
+ ```
452
+
453
+ **Options:**
454
+ - `--dry-run` - Show commands without executing them
455
+ - `--continue-on-error` - Continue even if commands fail (default: true)
456
+
457
+ **Behavior:**
458
+ - Executes command sequentially in each repository
459
+ - Displays output for each repository with clear separators
460
+ - Continues with remaining repositories if one fails
461
+ - Shows summary of successes and failures at the end
462
+
463
+ **Example:**
464
+ ```bash
465
+ # Pull latest changes
466
+ kse repo exec "git pull"
467
+
468
+ # Create and checkout new branch
469
+ kse repo exec "git checkout -b feature/new-feature"
470
+
471
+ # Preview without executing
472
+ kse repo exec "git push" --dry-run
473
+
474
+ # Fetch all remotes
475
+ kse repo exec "git fetch --all"
476
+
477
+ # Show commit history
478
+ kse repo exec "git log --oneline -5"
479
+ ```
480
+
481
+ **Output:**
482
+ ```
483
+ === frontend ===
484
+ Already up to date.
485
+
486
+ === backend ===
487
+ Updating abc123..def456
488
+ Fast-forward
489
+ src/api.js | 10 +++++-----
490
+ 1 file changed, 5 insertions(+), 5 deletions(-)
491
+
492
+ === shared ===
493
+ Already up to date.
494
+
495
+ Summary: 3 succeeded, 0 failed
496
+ ```
497
+
498
+ ---
499
+
500
+ #### `kse repo health`
501
+
502
+ Perform health checks on all configured repositories.
503
+
504
+ **Usage:**
505
+ ```bash
506
+ kse repo health [options]
507
+ ```
508
+
509
+ **Options:**
510
+ - `--json` - Output in JSON format for automation
511
+
512
+ **Checks performed:**
513
+ - Path exists and is accessible
514
+ - Directory is a valid Git repository
515
+ - Remote URL is reachable (network check)
516
+ - Default branch exists
517
+
518
+ **Example:**
519
+ ```bash
520
+ # Run health check
521
+ kse repo health
522
+
523
+ # JSON output for CI/CD
524
+ kse repo health --json
525
+ ```
526
+
527
+ **Output:**
528
+ ```
529
+ ┌──────────┬──────────────┬────────────┬──────────────────┬───────────────┐
530
+ │ Name │ Path Exists │ Git Repo │ Remote Reachable │ Branch Exists │
531
+ ├──────────┼──────────────┼────────────┼──────────────────┼───────────────┤
532
+ │ frontend │ ✓ │ ✓ │ ✓ │ ✓ │
533
+ │ backend │ ✓ │ ✓ │ ✓ │ ✓ │
534
+ │ shared │ ✓ │ ✓ │ ✗ │ ✓ │
535
+ └──────────┴──────────────┴────────────┴──────────────────┴───────────────┘
536
+
537
+ Overall Health: 2 healthy, 1 unhealthy
538
+ ```
329
539
 
330
540
  ---
331
541
 
332
542
  ## See Also
333
543
 
544
+ - [Multi-Repository Management Guide](./multi-repo-management-guide.md)
334
545
  - [Environment Management Guide](./environment-management-guide.md)
335
546
  - [Manual Workflows Guide](./manual-workflows-guide.md)
336
547
  - [Cross-Tool Guide](./cross-tool-guide.md)