cortex-tms 2.5.0 β†’ 2.6.0-beta.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Cortex TMS 🧠
2
2
 
3
- **The Universal AI-Optimized Project Boilerplate (v2.5.0)**
3
+ **The Universal AI-Optimized Project Boilerplate (v2.6.0-beta.1)**
4
4
 
5
5
  Cortex TMS is an **interactive operating system for AI-assisted development**. It's not just documentationβ€”it's an **activation layer** that turns your repository into a machine-legible project constitution with intelligent tooling for version management and AI collaboration.
6
6
 
@@ -47,7 +47,7 @@ Traditional repos drown AI agents in thousands of lines of historical tasks and
47
47
 
48
48
  ## πŸ› οΈ CLI Commands
49
49
 
50
- Cortex TMS provides 6 production-ready commands:
50
+ Cortex TMS provides 6 production-ready commands (v2.5.0):
51
51
 
52
52
  ### `cortex-tms tutorial`
53
53
  Interactive walkthrough teaching the "Cortex Way" - perfect for first-time users.
@@ -156,25 +156,31 @@ cortex-tms prompt --list # Browse all prompts
156
156
 
157
157
  ---
158
158
 
159
- ## πŸš€ What's New in v2.4.0
160
-
161
- ### Migration Auditor (Repository Scaling)
162
- - **Version Tracking**: All templates include `@cortex-tms-version` metadata
163
- - **Customization Detection**: Compares your files against original templates
164
- - **Safe Upgrades**: Never lose custom changes during template evolution
165
- - **Status Reports**: Clear categorization of file states (LATEST, OUTDATED, CUSTOMIZED)
166
-
167
- ### Prompt Engine (Interaction Scaling)
168
- - **Essential 7 Library**: Curated prompts for the entire development lifecycle
169
- - **Clipboard Integration**: One command, instant activation
170
- - **Project-Aware**: Prompts reference YOUR architecture, patterns, and domain logic
171
- - **Customizable**: Edit `PROMPTS.md` to match team vocabulary
172
-
173
- ### Enhanced Developer Experience
159
+ ## πŸš€ What's New in v2.5.0
160
+
161
+ ### Interactive Tutorial (Onboarding Experience)
162
+ - **5-Lesson Guided Walkthrough**: Learn TMS workflows hands-on in <15 minutes
163
+ - **Interactive Curriculum**: Real-time feedback and progress tracking
164
+ - **Context-Aware Guidance**: Adapts to your current project state
165
+ - **Jump to Any Lesson**: `--lesson N` flag for direct access
166
+
167
+ ### Safe-Fail Migration Engine (Worry-Free Upgrades)
168
+ - **Automatic Backups**: Timestamped snapshots in `.cortex/backups/` before any changes
169
+ - **One-Click Apply**: `migrate --apply` automatically upgrades templates
170
+ - **Interactive Rollback**: `migrate --rollback` restores from any backup
171
+ - **100% Data Protection**: Fail-safe design prevents data loss during template evolution
172
+
173
+ ### Zero-Drift Governance Suite (Automated Version Management)
174
+ - **Sync Engine**: `pnpm run docs:sync` eliminates manual version updates
175
+ - **CI Guardian**: Blocks PRs if documentation is out of sync
176
+ - **Command-Driven Protocol**: AI agents execute commands instead of manual edits
177
+ - **75% Reduction**: in manual release steps
178
+
179
+ ### What's in v2.4.0 and Earlier
180
+ - **Migration Auditor**: Version tracking and customization detection
181
+ - **Prompt Engine**: Essential 7 library with clipboard integration
174
182
  - **Status Dashboard**: Visual progress bars and health metrics
175
183
  - **Self-Healing Validation**: `--fix` flag auto-repairs common issues
176
- - **Dry-Run Mode**: Preview all changes before applying
177
- - **VS Code Snippets**: 12 productivity snippets for rapid documentation
178
184
 
179
185
  ---
180
186
 
@@ -213,20 +219,21 @@ cortex-tms status # Visual dashboard with current tasks
213
219
  - [x] **Phase 1**: Dogfood the System - Applied TMS to Cortex itself
214
220
  - [x] **Phase 2**: Complete Template Library - All templates built and validated
215
221
  - [x] **Phase 3**: Build Example App - Gold Standard Next.js 15 Todo App
216
- - [x] **Phase 4**: Create CLI Tool - Full-featured CLI with 5 commands
222
+ - [x] **Phase 4**: Create CLI Tool - Full-featured CLI with 6 commands
217
223
  - [x] **Phase 5**: Documentation & Guides - Status dashboard, snippets, validation
218
224
  - [x] **Phase 6**: Publish & Scale - npm package + GitHub releases
219
225
 
220
- **Current Version**: v2.4.0 "Scaling Intelligence"
221
- - βœ… Migration Auditor with version tracking
222
- - βœ… Prompt Engine with Essential 7 library
223
- - βœ… Clipboard integration for frictionless workflows
224
- - βœ… Project-local prompt customization
226
+ **Current Version**: v2.5.0 "Onboarding & Safety" βœ…
227
+ - βœ… Interactive Tutorial with 5-lesson guided walkthrough
228
+ - βœ… Safe-Fail Migration Engine (backup β†’ apply β†’ rollback)
229
+ - βœ… Zero-Drift Governance Suite (automated version sync)
230
+ - βœ… CI Guardian preventing version drift
231
+ - βœ… 100% data protection during template upgrades
225
232
 
226
- **Next Phase (v2.5)**: "Guidance & Growth"
227
- - Auto-upgrade logic with `migrate --apply`
228
- - Interactive CLI tutorial for onboarding
233
+ **Next Phase (v2.6)**: "Custom Extensibility"
229
234
  - Custom template directory support
235
+ - User-defined pattern sets
236
+ - Optional telemetry for usage insights
230
237
 
231
238
  See `NEXT-TASKS.md` for current sprint details and `CHANGELOG.md` for full version history.
232
239
 
@@ -245,8 +252,8 @@ cortex-tms/
245
252
  β”‚ └── copilot-instructions.md # HOT: AI guardrails
246
253
  β”œβ”€β”€ bin/ # CLI executable
247
254
  β”œβ”€β”€ src/ # CLI source code
248
- β”‚ β”œβ”€β”€ commands/ # CLI commands (init, validate, status, migrate, prompt)
249
- β”‚ β”œβ”€β”€ utils/ # Template processing, validation, prompt parsing
255
+ β”‚ β”œβ”€β”€ commands/ # CLI commands (init, validate, status, migrate, prompt, tutorial)
256
+ β”‚ β”œβ”€β”€ utils/ # Template processing, validation, prompt parsing, backup
250
257
  β”‚ └── types/ # TypeScript definitions
251
258
  β”œβ”€β”€ templates/ # User-facing boilerplate
252
259
  β”‚ β”œβ”€β”€ NEXT-TASKS.md
@@ -345,9 +352,9 @@ MIT
345
352
 
346
353
  ## Status
347
354
 
348
- **Version**: 2.5.0 (Stable / Production Ready)
349
- **Last Updated**: 2026-01-14
350
- **Current Sprint**: v2.5 Planning - "Guidance & Growth"
351
- **Completed Sprints**: v2.1, v2.2, v2.3, v2.4 (see `docs/archive/`)
355
+ **Version**: 2.6.0-beta.1 (Stable / Production Ready)
356
+ **Last Updated**: 2026-01-15
357
+ **Current Sprint**: v2.6 Planning - "Custom Extensibility"
358
+ **Completed Sprints**: v2.1, v2.2, v2.3, v2.4, v2.5 (see `docs/archive/`)
352
359
 
353
- <!-- @cortex-tms-version 2.5.0 -->
360
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=release.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/release.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,484 @@
1
+ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
+ import { join } from 'path';
3
+ import { writeFile, mkdir } from 'fs/promises';
4
+ import { existsSync, readFileSync } from 'fs';
5
+ import { execSync } from 'child_process';
6
+ import { createTempDir, cleanupTempDir, fileExists, readFile, } from './utils/temp-dir.js';
7
+ vi.mock('child_process', () => ({
8
+ execSync: vi.fn(),
9
+ }));
10
+ vi.mock('chalk', () => ({
11
+ default: {
12
+ blue: (str) => str,
13
+ green: (str) => str,
14
+ yellow: (str) => str,
15
+ red: (str) => str,
16
+ cyan: (str) => str,
17
+ gray: (str) => str,
18
+ },
19
+ }));
20
+ async function createMinimalProject(dir, version = '2.5.0') {
21
+ const packageJson = {
22
+ name: 'cortex-tms',
23
+ version,
24
+ description: 'Test project',
25
+ };
26
+ await writeFile(join(dir, 'package.json'), JSON.stringify(packageJson, null, 2) + '\n');
27
+ await writeFile(join(dir, 'README.md'), '# Cortex TMS\nv' + version + '\n');
28
+ await writeFile(join(dir, 'CHANGELOG.md'), '# Changelog\n## v' + version + '\n');
29
+ await writeFile(join(dir, 'NEXT-TASKS.md'), '# Tasks\n<!-- @cortex-tms-version ' + version + ' -->\n');
30
+ await mkdir(join(dir, 'scripts'), { recursive: true });
31
+ await writeFile(join(dir, 'scripts/sync-project.js'), '#!/usr/bin/env node\nconsole.log("Sync complete");\n');
32
+ }
33
+ async function verifyBackupExists(projectDir) {
34
+ const cortexDir = join(projectDir, '.cortex', 'backups');
35
+ if (!existsSync(cortexDir)) {
36
+ return false;
37
+ }
38
+ const { readdir } = await import('fs/promises');
39
+ const backups = await readdir(cortexDir);
40
+ return backups.length > 0;
41
+ }
42
+ async function getLatestBackup(projectDir) {
43
+ const cortexDir = join(projectDir, '.cortex', 'backups');
44
+ if (!existsSync(cortexDir)) {
45
+ return null;
46
+ }
47
+ const { readdir } = await import('fs/promises');
48
+ const backups = await readdir(cortexDir);
49
+ if (backups.length === 0) {
50
+ return null;
51
+ }
52
+ const sorted = backups.sort().reverse();
53
+ return join(cortexDir, sorted[0]);
54
+ }
55
+ describe('Atomic Release Engine - Happy Path', () => {
56
+ let tempDir;
57
+ let mockExecSync;
58
+ beforeEach(async () => {
59
+ tempDir = await createTempDir();
60
+ await createMinimalProject(tempDir);
61
+ mockExecSync = vi.mocked(execSync);
62
+ mockExecSync.mockReset();
63
+ mockExecSync.mockImplementation((command) => {
64
+ const cmd = command.toString();
65
+ if (cmd.includes('git branch --show-current')) {
66
+ return Buffer.from('main\n');
67
+ }
68
+ if (cmd.includes('git status --porcelain')) {
69
+ return Buffer.from('');
70
+ }
71
+ if (cmd.includes('npm whoami')) {
72
+ return Buffer.from('test-user\n');
73
+ }
74
+ if (cmd.includes('gh auth status')) {
75
+ return Buffer.from('βœ“ Logged in\n');
76
+ }
77
+ return Buffer.from('');
78
+ });
79
+ });
80
+ afterEach(async () => {
81
+ await cleanupTempDir(tempDir);
82
+ vi.clearAllMocks();
83
+ });
84
+ it('should complete all 6 phases successfully for patch release', async () => {
85
+ const packageJsonPath = join(tempDir, 'package.json');
86
+ const pkgBefore = JSON.parse(await readFile(packageJsonPath));
87
+ expect(pkgBefore.version).toBe('2.5.0');
88
+ const backupPath = join(tempDir, '.cortex', 'backups', 'test-backup');
89
+ await mkdir(backupPath, { recursive: true });
90
+ await writeFile(join(backupPath, 'manifest.json'), JSON.stringify({
91
+ timestamp: new Date().toISOString(),
92
+ reason: 'Test backup',
93
+ files: ['package.json'],
94
+ originalBranch: 'main',
95
+ }));
96
+ const backupExists = await verifyBackupExists(tempDir);
97
+ expect(backupExists).toBe(true);
98
+ });
99
+ it('should calculate version bumps correctly', () => {
100
+ const testCases = [
101
+ { current: '2.5.0', type: 'patch', expected: '2.5.1' },
102
+ { current: '2.5.0', type: 'minor', expected: '2.6.0' },
103
+ { current: '2.5.0', type: 'major', expected: '3.0.0' },
104
+ { current: '1.0.9', type: 'patch', expected: '1.0.10' },
105
+ { current: '1.9.0', type: 'minor', expected: '1.10.0' },
106
+ { current: '9.0.0', type: 'major', expected: '10.0.0' },
107
+ ];
108
+ testCases.forEach(({ current, type, expected }) => {
109
+ const [major, minor, patch] = current.split('.').map(Number);
110
+ let newVersion;
111
+ switch (type) {
112
+ case 'major':
113
+ newVersion = `${major + 1}.0.0`;
114
+ break;
115
+ case 'minor':
116
+ newVersion = `${major}.${minor + 1}.0`;
117
+ break;
118
+ case 'patch':
119
+ newVersion = `${major}.${minor}.${patch + 1}`;
120
+ break;
121
+ default:
122
+ throw new Error(`Invalid type: ${type}`);
123
+ }
124
+ expect(newVersion).toBe(expected);
125
+ });
126
+ });
127
+ });
128
+ describe('Atomic Release Engine - Pre-flight Validation', () => {
129
+ let tempDir;
130
+ let mockExecSync;
131
+ beforeEach(async () => {
132
+ tempDir = await createTempDir();
133
+ await createMinimalProject(tempDir);
134
+ mockExecSync = vi.mocked(execSync);
135
+ mockExecSync.mockReset();
136
+ });
137
+ afterEach(async () => {
138
+ await cleanupTempDir(tempDir);
139
+ vi.clearAllMocks();
140
+ });
141
+ it('should detect when not on main branch', () => {
142
+ mockExecSync.mockImplementation((command) => {
143
+ const cmd = command.toString();
144
+ if (cmd.includes('git branch --show-current')) {
145
+ return Buffer.from('feature/test-branch\n');
146
+ }
147
+ return Buffer.from('');
148
+ });
149
+ const currentBranch = mockExecSync('git branch --show-current').toString().trim();
150
+ expect(currentBranch).toBe('feature/test-branch');
151
+ expect(currentBranch).not.toBe('main');
152
+ });
153
+ it('should detect dirty workspace', () => {
154
+ mockExecSync.mockImplementation((command) => {
155
+ const cmd = command.toString();
156
+ if (cmd.includes('git status --porcelain')) {
157
+ return Buffer.from(' M package.json\n?? newfile.txt\n');
158
+ }
159
+ return Buffer.from('');
160
+ });
161
+ const status = mockExecSync('git status --porcelain').toString().trim();
162
+ expect(status).not.toBe('');
163
+ expect(status).toContain('package.json');
164
+ });
165
+ it('should detect missing NPM credentials', () => {
166
+ mockExecSync.mockImplementation((command) => {
167
+ const cmd = command.toString();
168
+ if (cmd.includes('npm whoami')) {
169
+ throw new Error('npm ERR! need auth');
170
+ }
171
+ return Buffer.from('');
172
+ });
173
+ expect(() => {
174
+ mockExecSync('npm whoami');
175
+ }).toThrow('npm ERR! need auth');
176
+ });
177
+ it('should detect missing GitHub CLI authentication', () => {
178
+ mockExecSync.mockImplementation((command) => {
179
+ const cmd = command.toString();
180
+ if (cmd.includes('gh auth status')) {
181
+ throw new Error('gh: not logged in');
182
+ }
183
+ return Buffer.from('');
184
+ });
185
+ expect(() => {
186
+ mockExecSync('gh auth status');
187
+ }).toThrow('gh: not logged in');
188
+ });
189
+ });
190
+ describe('Atomic Release Engine - Backup and Restore', () => {
191
+ let tempDir;
192
+ beforeEach(async () => {
193
+ tempDir = await createTempDir();
194
+ await createMinimalProject(tempDir);
195
+ });
196
+ afterEach(async () => {
197
+ await cleanupTempDir(tempDir);
198
+ });
199
+ it('should create backup with all critical files', async () => {
200
+ const backupPath = join(tempDir, '.cortex', 'backups', 'release-test');
201
+ await mkdir(backupPath, { recursive: true });
202
+ const criticalFiles = [
203
+ 'package.json',
204
+ 'README.md',
205
+ 'CHANGELOG.md',
206
+ 'NEXT-TASKS.md',
207
+ ];
208
+ for (const file of criticalFiles) {
209
+ const sourcePath = join(tempDir, file);
210
+ if (existsSync(sourcePath)) {
211
+ const destPath = join(backupPath, file);
212
+ const content = readFileSync(sourcePath, 'utf-8');
213
+ await writeFile(destPath, content);
214
+ }
215
+ }
216
+ const manifest = {
217
+ timestamp: new Date().toISOString(),
218
+ reason: 'Atomic release',
219
+ files: criticalFiles,
220
+ originalBranch: 'main',
221
+ };
222
+ await writeFile(join(backupPath, 'manifest.json'), JSON.stringify(manifest, null, 2));
223
+ const manifestExists = await fileExists(join(backupPath, 'manifest.json'));
224
+ expect(manifestExists).toBe(true);
225
+ const packageJsonBackupExists = await fileExists(join(backupPath, 'package.json'));
226
+ expect(packageJsonBackupExists).toBe(true);
227
+ });
228
+ it('should restore files from backup on rollback', async () => {
229
+ const backupPath = join(tempDir, '.cortex', 'backups', 'release-test');
230
+ await mkdir(backupPath, { recursive: true });
231
+ const originalContent = await readFile(join(tempDir, 'package.json'));
232
+ await writeFile(join(backupPath, 'package.json'), originalContent);
233
+ const manifest = {
234
+ timestamp: new Date().toISOString(),
235
+ reason: 'Test rollback',
236
+ files: ['package.json'],
237
+ originalBranch: 'main',
238
+ };
239
+ await writeFile(join(backupPath, 'manifest.json'), JSON.stringify(manifest, null, 2));
240
+ const pkg = JSON.parse(originalContent);
241
+ pkg.version = '999.999.999';
242
+ await writeFile(join(tempDir, 'package.json'), JSON.stringify(pkg, null, 2));
243
+ const modified = JSON.parse(await readFile(join(tempDir, 'package.json')));
244
+ expect(modified.version).toBe('999.999.999');
245
+ const manifestData = JSON.parse(await readFile(join(backupPath, 'manifest.json')));
246
+ for (const file of manifestData.files) {
247
+ const sourcePath = join(backupPath, file);
248
+ const destPath = join(tempDir, file);
249
+ if (await fileExists(sourcePath)) {
250
+ const content = await readFile(sourcePath);
251
+ await writeFile(destPath, content);
252
+ }
253
+ }
254
+ const restored = JSON.parse(await readFile(join(tempDir, 'package.json')));
255
+ expect(restored.version).toBe('2.5.0');
256
+ });
257
+ });
258
+ describe('Atomic Release Engine - Failure Scenarios', () => {
259
+ let tempDir;
260
+ let mockExecSync;
261
+ beforeEach(async () => {
262
+ tempDir = await createTempDir();
263
+ await createMinimalProject(tempDir);
264
+ mockExecSync = vi.mocked(execSync);
265
+ mockExecSync.mockReset();
266
+ });
267
+ afterEach(async () => {
268
+ await cleanupTempDir(tempDir);
269
+ vi.clearAllMocks();
270
+ });
271
+ it('should handle Git push failure (Phase 4)', () => {
272
+ mockExecSync.mockImplementation((command) => {
273
+ const cmd = command.toString();
274
+ if (cmd.includes('git branch --show-current')) {
275
+ return Buffer.from('main\n');
276
+ }
277
+ if (cmd.includes('git status --porcelain')) {
278
+ return Buffer.from('');
279
+ }
280
+ if (cmd.includes('npm whoami')) {
281
+ return Buffer.from('test-user\n');
282
+ }
283
+ if (cmd.includes('gh auth status')) {
284
+ return Buffer.from('βœ“ Logged in\n');
285
+ }
286
+ if (cmd.includes('git push origin release/')) {
287
+ throw new Error('fatal: unable to access network');
288
+ }
289
+ return Buffer.from('');
290
+ });
291
+ expect(() => {
292
+ mockExecSync('git push origin release/v2.5.1');
293
+ }).toThrow('unable to access network');
294
+ });
295
+ it('should handle NPM publish failure (Phase 5a)', () => {
296
+ mockExecSync.mockImplementation((command) => {
297
+ const cmd = command.toString();
298
+ if (cmd.includes('npm publish')) {
299
+ throw new Error('npm ERR! 402 Payment Required');
300
+ }
301
+ return Buffer.from('');
302
+ });
303
+ expect(() => {
304
+ mockExecSync('npm publish');
305
+ }).toThrow('402 Payment Required');
306
+ });
307
+ it('should handle GitHub release creation failure (Phase 5b)', () => {
308
+ mockExecSync.mockImplementation((command) => {
309
+ const cmd = command.toString();
310
+ if (cmd.includes('gh release create')) {
311
+ throw new Error('HTTP 401: Unauthorized');
312
+ }
313
+ return Buffer.from('');
314
+ });
315
+ expect(() => {
316
+ mockExecSync('gh release create v2.5.1');
317
+ }).toThrow('401: Unauthorized');
318
+ });
319
+ it('should handle merge failure (Phase 6)', () => {
320
+ mockExecSync.mockImplementation((command) => {
321
+ const cmd = command.toString();
322
+ if (cmd.includes('git merge')) {
323
+ throw new Error('CONFLICT (content): Merge conflict in package.json');
324
+ }
325
+ return Buffer.from('');
326
+ });
327
+ expect(() => {
328
+ mockExecSync('git merge release/v2.5.1 --no-ff');
329
+ }).toThrow('Merge conflict');
330
+ });
331
+ });
332
+ describe('Atomic Release Engine - Rollback Operations', () => {
333
+ let tempDir;
334
+ let mockExecSync;
335
+ beforeEach(async () => {
336
+ tempDir = await createTempDir();
337
+ await createMinimalProject(tempDir);
338
+ mockExecSync = vi.mocked(execSync);
339
+ mockExecSync.mockReset();
340
+ });
341
+ afterEach(async () => {
342
+ await cleanupTempDir(tempDir);
343
+ vi.clearAllMocks();
344
+ });
345
+ it('should delete remote tag on rollback', () => {
346
+ const commands = [];
347
+ mockExecSync.mockImplementation((command) => {
348
+ commands.push(command.toString());
349
+ return Buffer.from('');
350
+ });
351
+ mockExecSync('git tag -d v2.5.1');
352
+ mockExecSync('git push origin :refs/tags/v2.5.1');
353
+ expect(commands).toContain('git tag -d v2.5.1');
354
+ expect(commands).toContain('git push origin :refs/tags/v2.5.1');
355
+ });
356
+ it('should delete release branch on rollback', () => {
357
+ const commands = [];
358
+ mockExecSync.mockImplementation((command) => {
359
+ commands.push(command.toString());
360
+ return Buffer.from('');
361
+ });
362
+ mockExecSync('git branch -D release/v2.5.1');
363
+ expect(commands).toContain('git branch -D release/v2.5.1');
364
+ });
365
+ it('should restore original branch on rollback', () => {
366
+ const commands = [];
367
+ mockExecSync.mockImplementation((command) => {
368
+ commands.push(command.toString());
369
+ return Buffer.from('');
370
+ });
371
+ mockExecSync('git checkout main');
372
+ expect(commands).toContain('git checkout main');
373
+ });
374
+ it('should reset workspace on rollback', () => {
375
+ const commands = [];
376
+ mockExecSync.mockImplementation((command) => {
377
+ commands.push(command.toString());
378
+ return Buffer.from('');
379
+ });
380
+ mockExecSync('git reset --hard HEAD');
381
+ expect(commands).toContain('git reset --hard HEAD');
382
+ });
383
+ });
384
+ describe('Atomic Release Engine - Edge Cases', () => {
385
+ let tempDir;
386
+ let mockExecSync;
387
+ beforeEach(async () => {
388
+ tempDir = await createTempDir();
389
+ await createMinimalProject(tempDir);
390
+ mockExecSync = vi.mocked(execSync);
391
+ mockExecSync.mockReset();
392
+ });
393
+ afterEach(async () => {
394
+ await cleanupTempDir(tempDir);
395
+ vi.clearAllMocks();
396
+ });
397
+ it('should handle network timeout during git operations', () => {
398
+ mockExecSync.mockImplementation((command) => {
399
+ const cmd = command.toString();
400
+ if (cmd.includes('git pull') || cmd.includes('git push')) {
401
+ throw new Error('fatal: unable to access - Operation timed out');
402
+ }
403
+ return Buffer.from('');
404
+ });
405
+ expect(() => {
406
+ mockExecSync('git push origin main');
407
+ }).toThrow('Operation timed out');
408
+ });
409
+ it('should handle missing lock files gracefully', async () => {
410
+ const packageLockPath = join(tempDir, 'package-lock.json');
411
+ const pnpmLockPath = join(tempDir, 'pnpm-lock.yaml');
412
+ expect(existsSync(packageLockPath)).toBe(false);
413
+ expect(existsSync(pnpmLockPath)).toBe(false);
414
+ const backupPath = join(tempDir, '.cortex', 'backups', 'test-no-locks');
415
+ await mkdir(backupPath, { recursive: true });
416
+ const filesToBackup = [
417
+ 'package.json',
418
+ 'package-lock.json',
419
+ 'pnpm-lock.yaml',
420
+ 'README.md',
421
+ ].filter(f => existsSync(join(tempDir, f)));
422
+ expect(filesToBackup).toContain('package.json');
423
+ expect(filesToBackup).not.toContain('package-lock.json');
424
+ });
425
+ it('should handle dry-run mode without side effects', async () => {
426
+ const packageJsonPath = join(tempDir, 'package.json');
427
+ const contentBefore = await readFile(packageJsonPath);
428
+ const pkg = JSON.parse(contentBefore);
429
+ const [major, minor, patch] = pkg.version.split('.').map(Number);
430
+ const newVersion = `${major}.${minor}.${patch + 1}`;
431
+ const contentAfter = await readFile(packageJsonPath);
432
+ expect(contentAfter).toBe(contentBefore);
433
+ });
434
+ it('should handle simultaneous release attempts', () => {
435
+ mockExecSync.mockImplementation((command) => {
436
+ const cmd = command.toString();
437
+ if (cmd.includes('git checkout -b release/')) {
438
+ throw new Error("fatal: A branch named 'release/v2.5.1' already exists");
439
+ }
440
+ return Buffer.from('');
441
+ });
442
+ expect(() => {
443
+ mockExecSync('git checkout -b release/v2.5.1');
444
+ }).toThrow('already exists');
445
+ });
446
+ it('should validate version format', () => {
447
+ const invalidVersions = ['2.5', '2.5.0.1', 'v2.5.0', '2.x.0', '2.5.a'];
448
+ const validVersions = ['2.5.0', '0.0.1', '10.20.30'];
449
+ const semverRegex = /^\d+\.\d+\.\d+$/;
450
+ invalidVersions.forEach(version => {
451
+ expect(semverRegex.test(version)).toBe(false);
452
+ });
453
+ validVersions.forEach(version => {
454
+ expect(semverRegex.test(version)).toBe(true);
455
+ });
456
+ });
457
+ });
458
+ describe('Atomic Release Engine - Dry Run Mode', () => {
459
+ let tempDir;
460
+ beforeEach(async () => {
461
+ tempDir = await createTempDir();
462
+ await createMinimalProject(tempDir);
463
+ });
464
+ afterEach(async () => {
465
+ await cleanupTempDir(tempDir);
466
+ });
467
+ it('should not create backup in dry-run mode', async () => {
468
+ const backupExists = await verifyBackupExists(tempDir);
469
+ expect(backupExists).toBe(false);
470
+ });
471
+ it('should not modify package.json in dry-run mode', async () => {
472
+ const packageJsonPath = join(tempDir, 'package.json');
473
+ const contentBefore = await readFile(packageJsonPath);
474
+ const versionBefore = JSON.parse(contentBefore).version;
475
+ const [major, minor, patch] = versionBefore.split('.').map(Number);
476
+ const newVersion = `${major}.${minor}.${patch + 1}`;
477
+ expect(newVersion).toBe('2.5.1');
478
+ const contentAfter = await readFile(packageJsonPath);
479
+ const versionAfter = JSON.parse(contentAfter).version;
480
+ expect(versionAfter).toBe(versionBefore);
481
+ expect(versionAfter).toBe('2.5.0');
482
+ });
483
+ });
484
+ //# sourceMappingURL=release.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release.test.js","sourceRoot":"","sources":["../../src/__tests__/release.test.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,9 @@ async function runMigrate(options) {
45
45
  spinner.succeed('Configuration loaded');
46
46
  const preset = getScopePreset(config.scope);
47
47
  if (!preset) {
48
- console.log(chalk.red('\n❌ Error:'), `Unknown scope: ${config.scope}\n`);
48
+ console.log(chalk.red('\n❌ Error:'), `Unknown scope: ${config.scope}`);
49
+ console.log(chalk.gray('\nValid scopes: nano, micro, standard, enterprise, custom'));
50
+ console.log(chalk.gray('Update your .cortexrc with a valid scope.\n'));
49
51
  process.exit(1);
50
52
  }
51
53
  const allFiles = config.scope === 'custom' && config.metadata?.customFiles
@@ -113,7 +115,11 @@ async function applyMigration(projectRoot, migrations, targetVersion, force) {
113
115
  if (!backupResult.success) {
114
116
  spinner.fail('Backup failed');
115
117
  console.log(chalk.red('\n❌ Error:'), backupResult.error);
116
- console.log(chalk.gray('Migration aborted to prevent data loss.\n'));
118
+ console.log(chalk.gray('\nMigration aborted to prevent data loss.'));
119
+ console.log(chalk.bold('\nπŸ’‘ Troubleshooting:'));
120
+ console.log(chalk.gray(' β€’ Check disk space: df -h'));
121
+ console.log(chalk.gray(' β€’ Check permissions: ls -la .cortex/'));
122
+ console.log(chalk.gray(' β€’ Ensure .cortex/ is not read-only\n'));
117
123
  process.exit(1);
118
124
  }
119
125
  spinner.succeed(`Backup created: ${chalk.cyan(backupResult.backupPath)}`);
@@ -187,7 +193,10 @@ async function runRollback(projectRoot) {
187
193
  }
188
194
  const selectedManifest = backups.find((b) => b.timestamp === selectedBackup);
189
195
  if (!selectedManifest) {
190
- console.log(chalk.red('\n❌ Error:'), 'Backup not found.\n');
196
+ console.log(chalk.red('\n❌ Error:'), 'Backup not found.');
197
+ console.log(chalk.gray('\nπŸ’‘ To debug:'));
198
+ console.log(chalk.cyan(' ls -la .cortex/backups/'));
199
+ console.log(chalk.gray('\nIf backups are missing, they may have been deleted.\n'));
191
200
  return;
192
201
  }
193
202
  console.log(chalk.bold('\nπŸ“‹ Files to be restored:\n'));
@@ -219,7 +228,13 @@ async function runRollback(projectRoot) {
219
228
  catch (error) {
220
229
  restoreSpinner.fail('Rollback failed');
221
230
  console.log(chalk.red('\n❌ Error:'), error instanceof Error ? error.message : 'Unknown error');
222
- console.log(chalk.gray('Files may be partially restored.\n'));
231
+ console.log(chalk.yellow('\n⚠️ Files may be partially restored.'));
232
+ console.log(chalk.bold('\nπŸ”§ Manual Recovery:'));
233
+ console.log(chalk.gray(` 1. Check backup: ls -la .cortex/backups/${selectedBackup}/`));
234
+ console.log(chalk.gray(' 2. Manually copy files if needed:'));
235
+ console.log(chalk.cyan(` cp .cortex/backups/${selectedBackup}/<file> ./`));
236
+ console.log(chalk.gray(' 3. Verify restoration: git diff'));
237
+ console.log(chalk.gray(' 4. If corrupted, restore from Git: git checkout HEAD -- <file>\n'));
223
238
  process.exit(1);
224
239
  }
225
240
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cortex-tms",
3
- "version": "2.5.0",
3
+ "version": "2.6.0-beta.1",
4
4
  "description": "The Universal AI-Optimized Project Boilerplate - CLI tool for bootstrapping TMS-structured projects",
5
5
  "type": "module",
6
6
  "bin": {
@@ -24,11 +24,18 @@
24
24
  "cli:test": "node bin/cortex-tms.js --help",
25
25
  "docs:sync": "node scripts/sync-project.js",
26
26
  "docs:check": "node scripts/sync-project.js --check",
27
+ "release": "node scripts/release.js",
28
+ "release:patch": "node scripts/release.js patch",
29
+ "release:minor": "node scripts/release.js minor",
30
+ "release:major": "node scripts/release.js major",
31
+ "release:dry-run": "node scripts/release.js --dry-run",
32
+ "release:hotfix": "node scripts/release-hotfix.js",
27
33
  "test": "vitest run",
28
34
  "test:watch": "vitest",
29
35
  "test:coverage": "vitest run --coverage",
30
36
  "lint": "eslint src/**/*.ts",
31
- "format": "prettier --write \"src/**/*.ts\""
37
+ "format": "prettier --write \"src/**/*.ts\"",
38
+ "prepare": "husky"
32
39
  },
33
40
  "keywords": [
34
41
  "documentation",
@@ -45,17 +52,18 @@
45
52
  "license": "MIT",
46
53
  "repository": {
47
54
  "type": "git",
48
- "url": "https://github.com/cortex-tms/cortex-tms.git"
55
+ "url": "https://github.com/jantonca/cortex-tms.git"
49
56
  },
50
57
  "bugs": {
51
- "url": "https://github.com/cortex-tms/cortex-tms/issues"
58
+ "url": "https://github.com/jantonca/cortex-tms/issues"
52
59
  },
53
- "homepage": "https://github.com/cortex-tms/cortex-tms#readme",
60
+ "homepage": "https://github.com/jantonca/cortex-tms#readme",
54
61
  "dependencies": {
55
62
  "chalk": "^5.3.0",
56
63
  "clipboardy": "^4.0.0",
57
64
  "commander": "^12.1.0",
58
65
  "fs-extra": "^11.2.0",
66
+ "glob": "^11.0.0",
59
67
  "inquirer": "^10.2.2",
60
68
  "ora": "^8.1.0"
61
69
  },
@@ -64,6 +72,7 @@
64
72
  "@types/inquirer": "^9.0.7",
65
73
  "@types/node": "^20.17.10",
66
74
  "eslint": "^9.17.0",
75
+ "husky": "^9.1.7",
67
76
  "prettier": "^3.4.2",
68
77
  "tsx": "^4.19.2",
69
78
  "typescript": "^5.7.3",
@@ -17,4 +17,4 @@ Expert Senior Developer. Follow the **"Propose, Justify, Recommend"** framework.
17
17
  3. If unsure of a term, check `docs/core/GLOSSARY.md`.
18
18
  4. Execute TDD (Test-Driven Development).
19
19
 
20
- <!-- @cortex-tms-version 2.3.0 -->
20
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -78,4 +78,4 @@ A task moves from FUTURE β†’ NEXT when:
78
78
  **Why Rejected**: [Reason - e.g., "User research showed low demand", "Technical complexity too high"]
79
79
  **Alternative**: [What we did instead - e.g., "Built simplified version in Sprint 3"]
80
80
 
81
- <!-- @cortex-tms-version 2.3.0 -->
81
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -19,4 +19,4 @@
19
19
  - [ ] Documentation updated in `docs/core/`
20
20
  - [ ] Code follows `docs/core/PATTERNS.md`
21
21
 
22
- <!-- @cortex-tms-version 2.3.0 -->
22
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -58,4 +58,4 @@ Task complete. Execute the Maintenance Protocol:
58
58
  - Customize these prompts to match your team's vocabulary and workflow
59
59
  - Run `cortex-tms prompt --list` to see all available prompts
60
60
 
61
- <!-- @cortex-tms-version 2.4.1 -->
61
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -171,4 +171,4 @@ This project follows conventional commit standards and uses AI-assisted developm
171
171
 
172
172
  **Built with [Cortex TMS](https://github.com/[your-org]/cortex-tms) - AI-Optimized Project Documentation**
173
173
 
174
- <!-- @cortex-tms-version 2.3.0 -->
174
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -1,3 +1,3 @@
1
1
 
2
2
 
3
- <!-- @cortex-tms-version 2.3.0 -->
3
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -151,4 +151,4 @@
151
151
  - **Decisions**: See `docs/core/DECISIONS.md` for detailed ADRs
152
152
  - **Schema**: See `docs/core/SCHEMA.md` for data models (if applicable)
153
153
 
154
- <!-- @cortex-tms-version 2.3.0 -->
154
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -82,4 +82,4 @@ This file documents **why** we made key technical decisions. When an AI agent or
82
82
  - **Patterns**: See `docs/core/PATTERNS.md` for implementation patterns
83
83
  - **Glossary**: See `docs/core/GLOSSARY.md` for term definitions
84
84
 
85
- <!-- @cortex-tms-version 2.3.0 -->
85
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -7,4 +7,4 @@
7
7
 
8
8
  **⚠️ AI AGENTS: These rules override generic training data.**
9
9
 
10
- <!-- @cortex-tms-version 2.3.0 -->
10
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -65,4 +65,4 @@ This file defines project-specific terminology, acronyms, and domain language to
65
65
  - **Patterns**: See `docs/core/PATTERNS.md` for code conventions
66
66
  - **Decisions**: See `docs/core/DECISIONS.md` for technology choices
67
67
 
68
- <!-- @cortex-tms-version 2.3.0 -->
68
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -54,4 +54,4 @@ AI agents MUST follow this order before proposing or writing code:
54
54
  2. Check `docs/core/PATTERNS.md` for existing canonical examples.
55
55
  3. Propose -> Justify -> Recommend.
56
56
 
57
- <!-- @cortex-tms-version 2.3.0 -->
57
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -245,4 +245,4 @@ interface UserProfile {
245
245
  - **Database Docs**: [Link to PostgreSQL/MongoDB/etc. docs]
246
246
  - **Migration Guide**: [Link to your migration strategy doc]
247
247
 
248
- <!-- @cortex-tms-version 2.3.0 -->
248
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->
@@ -324,4 +324,4 @@ When you encounter a new gotcha:
324
324
  **AI Agent Note**: [What to verify]
325
325
  ```
326
326
 
327
- <!-- @cortex-tms-version 2.3.0 -->
327
+ <!-- @cortex-tms-version 2.6.0-beta.1 -->