cortex-tms 2.5.0 β 2.6.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -35
- package/dist/__tests__/release.test.d.ts +2 -0
- package/dist/__tests__/release.test.d.ts.map +1 -0
- package/dist/__tests__/release.test.js +484 -0
- package/dist/__tests__/release.test.js.map +1 -0
- package/dist/commands/migrate.js +19 -4
- package/dist/commands/migrate.js.map +1 -1
- package/package.json +11 -2
- package/templates/CLAUDE.md +1 -1
- package/templates/FUTURE-ENHANCEMENTS.md +1 -1
- package/templates/NEXT-TASKS.md +1 -1
- package/templates/PROMPTS.md +1 -1
- package/templates/README.md +1 -1
- package/templates/docs/archive/v1.0-CHANGELOG.md +1 -1
- package/templates/docs/core/ARCHITECTURE.md +1 -1
- package/templates/docs/core/DECISIONS.md +1 -1
- package/templates/docs/core/DOMAIN-LOGIC.md +1 -1
- package/templates/docs/core/GLOSSARY.md +1 -1
- package/templates/docs/core/PATTERNS.md +1 -1
- package/templates/docs/core/SCHEMA.md +1 -1
- package/templates/docs/core/TROUBLESHOOTING.md +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Cortex TMS π§
|
|
2
2
|
|
|
3
|
-
**The Universal AI-Optimized Project Boilerplate (v2.
|
|
3
|
+
**The Universal AI-Optimized Project Boilerplate (v2.6.0-beta.0)**
|
|
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.
|
|
160
|
-
|
|
161
|
-
###
|
|
162
|
-
- **
|
|
163
|
-
- **
|
|
164
|
-
- **
|
|
165
|
-
- **
|
|
166
|
-
|
|
167
|
-
###
|
|
168
|
-
- **
|
|
169
|
-
- **
|
|
170
|
-
- **
|
|
171
|
-
- **
|
|
172
|
-
|
|
173
|
-
###
|
|
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
|
|
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.
|
|
221
|
-
- β
|
|
222
|
-
- β
|
|
223
|
-
- β
|
|
224
|
-
- β
|
|
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.
|
|
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.
|
|
349
|
-
**Last Updated**: 2026-01-
|
|
350
|
-
**Current Sprint**: v2.
|
|
351
|
-
**Completed Sprints**: v2.1, v2.2, v2.3, v2.4 (see `docs/archive/`)
|
|
355
|
+
**Version**: 2.6.0-beta.0 (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.
|
|
360
|
+
<!-- @cortex-tms-version 2.6.0-beta.0 -->
|
|
@@ -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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"}
|
package/dist/commands/migrate.js
CHANGED
|
@@ -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}
|
|
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('
|
|
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
|
|
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.
|
|
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.
|
|
3
|
+
"version": "2.6.0-beta.0",
|
|
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",
|
|
@@ -56,6 +63,7 @@
|
|
|
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",
|
package/templates/CLAUDE.md
CHANGED
|
@@ -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.
|
|
20
|
+
<!-- @cortex-tms-version 2.6.0-beta.0 -->
|
|
@@ -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.
|
|
81
|
+
<!-- @cortex-tms-version 2.6.0-beta.0 -->
|
package/templates/NEXT-TASKS.md
CHANGED
package/templates/PROMPTS.md
CHANGED
|
@@ -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.
|
|
61
|
+
<!-- @cortex-tms-version 2.6.0-beta.0 -->
|
package/templates/README.md
CHANGED
|
@@ -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.
|
|
174
|
+
<!-- @cortex-tms-version 2.6.0-beta.0 -->
|
|
@@ -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.
|
|
85
|
+
<!-- @cortex-tms-version 2.6.0-beta.0 -->
|
|
@@ -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.
|
|
68
|
+
<!-- @cortex-tms-version 2.6.0-beta.0 -->
|