specpilot 1.6.3 → 1.6.7
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 +26 -11
- package/dist/cli.js +15 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/add-specs.d.ts.map +1 -1
- package/dist/commands/add-specs.js +16 -9
- package/dist/commands/add-specs.js.map +1 -1
- package/dist/commands/archive.d.ts +1 -0
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +66 -0
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/backfill.d.ts +8 -0
- package/dist/commands/backfill.d.ts.map +1 -0
- package/dist/commands/backfill.js +81 -0
- package/dist/commands/backfill.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +17 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/ideConfigGenerator.d.ts +9 -1
- package/dist/utils/ideConfigGenerator.d.ts.map +1 -1
- package/dist/utils/ideConfigGenerator.js +46 -31
- package/dist/utils/ideConfigGenerator.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/specArchiver.js +4 -4
- package/dist/utils/specArchiver.js.map +1 -1
- package/dist/utils/specBackfiller.d.ts +66 -0
- package/dist/utils/specBackfiller.d.ts.map +1 -0
- package/dist/utils/specBackfiller.js +502 -0
- package/dist/utils/specBackfiller.js.map +1 -0
- package/dist/utils/specFileGenerator.d.ts.map +1 -1
- package/dist/utils/specFileGenerator.js +15 -3
- package/dist/utils/specFileGenerator.js.map +1 -1
- package/dist/utils/specGenerator.d.ts.map +1 -1
- package/dist/utils/specGenerator.js +2 -0
- package/dist/utils/specGenerator.js.map +1 -1
- package/dist/utils/specValidator.d.ts +2 -0
- package/dist/utils/specValidator.d.ts.map +1 -1
- package/dist/utils/specValidator.js +10 -10
- package/dist/utils/specValidator.js.map +1 -1
- package/dist/utils/templateEngine.d.ts.map +1 -1
- package/dist/utils/templateEngine.js +2 -0
- package/dist/utils/templateEngine.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/specify.d.ts +0 -8
- package/dist/commands/specify.d.ts.map +0 -1
- package/dist/commands/specify.js +0 -286
- package/dist/commands/specify.js.map +0 -1
- package/dist/utils/templateRegistry.d.ts +0 -14
- package/dist/utils/templateRegistry.d.ts.map +0 -1
- package/dist/utils/templateRegistry.js +0 -87
- package/dist/utils/templateRegistry.js.map +0 -1
package/README.md
CHANGED
|
@@ -37,19 +37,35 @@ This AI-assisted approach ensures comprehensive, high-quality specifications tai
|
|
|
37
37
|
|
|
38
38
|
| Command | Description |
|
|
39
39
|
| ----------------------- | --------------------------------------------------- |
|
|
40
|
-
| `init <name>` | Initialize new SDD project
|
|
41
|
-
| `init <name> --dry-run` | Preview files that would be created without writing
|
|
42
|
-
| `add-specs` | Add specs to existing project
|
|
43
|
-
| `validate` | Validate specification files
|
|
44
|
-
| `archive` | Archive oversized `prompts.md` / `tasks.md` entries
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
40
|
+
| `init <name>` | Initialize new SDD project |
|
|
41
|
+
| `init <name> --dry-run` | Preview files that would be created without writing |
|
|
42
|
+
| `add-specs` | Add specs to existing project |
|
|
43
|
+
| `validate` | Validate specification files |
|
|
44
|
+
| `archive` | Archive oversized `prompts.md` / `tasks.md` entries |
|
|
45
|
+
| `backfill` | Backfill missing mandates into existing project files |
|
|
46
|
+
| `list` | Show available templates |
|
|
47
|
+
| `migrate` | Convert legacy `.project-spec` folder (rarely needed) |
|
|
48
|
+
| `refine [desc]` | Refine project specifications |
|
|
48
49
|
|
|
49
50
|
> **Tip — command aliases:** All commands have a short alias you can use instead of the full name.
|
|
50
|
-
> `init` → `i` · `validate` → `v` · `migrate` → `m` · `list` → `ls` · `refine` → `ref` · `archive` → `ar` · `add-specs` → `add`
|
|
51
|
+
> `init` → `i` · `validate` → `v` · `migrate` → `m` · `list` → `ls` · `refine` → `ref` · `archive` → `ar` · `add-specs` → `add` · `backfill` → `bf`
|
|
51
52
|
> Example: `specpilot i my-app` is identical to `specpilot init my-app`.
|
|
52
53
|
|
|
54
|
+
### Per-Command Options
|
|
55
|
+
|
|
56
|
+
| Command | Options |
|
|
57
|
+
| ----------- | ----------------------------------------------------------------------------------- |
|
|
58
|
+
| `init` | `--lang` · `--framework` · `--dir` · `--specs-name` · `--no-prompts` · `--dry-run` |
|
|
59
|
+
| `validate` | `--fix` · `--verbose` |
|
|
60
|
+
| `migrate` | `--from` · `--to` · `--backup` |
|
|
61
|
+
| `list` | `--lang` · `--verbose` |
|
|
62
|
+
| `refine` | `--update` · `--no-prompts` |
|
|
63
|
+
| `archive` | `--dry-run` |
|
|
64
|
+
| `add-specs` | `--no-analysis` · `--deep-analysis` · `--no-prompts` |
|
|
65
|
+
| `backfill` | `--dir` · `--specs-name` · `--dry-run` |
|
|
66
|
+
|
|
67
|
+
> Run `specpilot <command> --help` for full flag descriptions and default values.
|
|
68
|
+
|
|
53
69
|
### Examples
|
|
54
70
|
|
|
55
71
|
```bash
|
|
@@ -132,7 +148,6 @@ SpecPilot generates AI agent configuration files during project initialization.
|
|
|
132
148
|
- **VSCode** - Industry standard with Copilot integration
|
|
133
149
|
- **Cursor** - AI-first code editor with enhanced AI context
|
|
134
150
|
- **Windsurf** - Advanced AI coding assistant
|
|
135
|
-
- **Kiro** - Specialized AI development environment
|
|
136
151
|
- **Antigravity** - AI-powered IDE with context awareness
|
|
137
152
|
|
|
138
153
|
**Cloud-Based AI Agents (Instruction Files):**
|
|
@@ -172,7 +187,7 @@ The generated settings/instructions automatically configure your AI agent to:
|
|
|
172
187
|
# During init, you'll be prompted to select your IDE/Agent
|
|
173
188
|
specpilot init my-project --lang typescript --framework react
|
|
174
189
|
# Respond with your preferred IDE/Agent:
|
|
175
|
-
# - vscode, cursor, windsurf,
|
|
190
|
+
# - vscode, cursor, windsurf, antigravity (desktop)
|
|
176
191
|
# - cowork, codex (cloud agents)
|
|
177
192
|
```
|
|
178
193
|
|
package/dist/cli.js
CHANGED
|
@@ -13,6 +13,7 @@ const list_1 = require("./commands/list");
|
|
|
13
13
|
const refine_1 = require("./commands/refine");
|
|
14
14
|
const add_specs_1 = require("./commands/add-specs");
|
|
15
15
|
const archive_1 = require("./commands/archive");
|
|
16
|
+
const backfill_1 = require("./commands/backfill");
|
|
16
17
|
const logger_1 = require("./utils/logger");
|
|
17
18
|
const packageJson = require('../package.json');
|
|
18
19
|
commander_1.program
|
|
@@ -45,7 +46,7 @@ commander_1.program
|
|
|
45
46
|
commander_1.program
|
|
46
47
|
.command('migrate')
|
|
47
48
|
.alias('m')
|
|
48
|
-
.description('
|
|
49
|
+
.description('Convert legacy .project-spec folder to current .specs/ structure (rarely needed)')
|
|
49
50
|
.option('-d, --dir <directory>', 'Project directory', '.')
|
|
50
51
|
.option('--from <structure>', 'Source structure (complex, project-spec)', 'complex')
|
|
51
52
|
.option('--to <structure>', 'Target structure (simple)', 'simple')
|
|
@@ -74,8 +75,9 @@ commander_1.program
|
|
|
74
75
|
commander_1.program
|
|
75
76
|
.command('archive')
|
|
76
77
|
.alias('ar')
|
|
77
|
-
.description('Archive oversized .specs/ files (prompts.md >
|
|
78
|
+
.description('Archive oversized .specs/ files (prompts.md > 100 lines, tasks.md Completed > 25 lines)')
|
|
78
79
|
.option('--dry-run', 'Preview what would be archived without writing any files')
|
|
80
|
+
.option('--force', 'Skip branch warning and archive without confirmation')
|
|
79
81
|
.action(archive_1.archiveCommand);
|
|
80
82
|
// Add-specs command
|
|
81
83
|
commander_1.program
|
|
@@ -88,10 +90,20 @@ commander_1.program
|
|
|
88
90
|
.option('--deep-analysis', 'Perform thorough codebase analysis')
|
|
89
91
|
.option('--no-prompts', 'Skip interactive prompts')
|
|
90
92
|
.action(add_specs_1.addSpecsCommand);
|
|
93
|
+
// Backfill command
|
|
94
|
+
commander_1.program
|
|
95
|
+
.command('backfill')
|
|
96
|
+
.alias('bf')
|
|
97
|
+
.description('Backfill missing SpecPilot mandates into existing project.yaml and copilot-instructions.md')
|
|
98
|
+
.option('-d, --dir <directory>', 'Project directory', '.')
|
|
99
|
+
.option('--specs-name <name>', 'Name for specs folder', '.specs')
|
|
100
|
+
.option('--dry-run', 'Preview changes without writing any files')
|
|
101
|
+
.option('--no-prompts', 'Accept suggested devPrefix silently when team.devPrefix is missing')
|
|
102
|
+
.action(backfill_1.backfillCommand);
|
|
91
103
|
commander_1.program.addHelpText('after', `
|
|
92
104
|
Aliases:
|
|
93
105
|
init → i validate → v migrate → m list → ls
|
|
94
|
-
refine → ref archive → ar add-specs → add
|
|
106
|
+
refine → ref archive → ar add-specs → add backfill → bf
|
|
95
107
|
|
|
96
108
|
Per-command options: specpilot <command> --help
|
|
97
109
|
`);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,0CAA8C;AAC9C,kDAAsD;AACtD,gDAAoD;AACpD,0CAA8C;AAC9C,8CAAkD;AAClD,oDAAuD;AACvD,gDAAoD;AACpD,2CAAwC;AAExC,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,WAAW,EAAE,uDAAuD,CAAC;KAC5E,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,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-specs.d.ts","sourceRoot":"","sources":["../../src/commands/add-specs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add-specs.d.ts","sourceRoot":"","sources":["../../src/commands/add-specs.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBA8H7D"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.addSpecsCommand = addSpecsCommand;
|
|
7
7
|
const path_1 = require("path");
|
|
8
8
|
const fs_1 = require("fs");
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
9
10
|
const chalk_1 = __importDefault(require("chalk"));
|
|
10
11
|
const inquirer_1 = __importDefault(require("inquirer"));
|
|
11
12
|
const projectDetector_1 = require("../utils/projectDetector");
|
|
@@ -57,16 +58,22 @@ async function addSpecsCommand(options) {
|
|
|
57
58
|
framework = response.framework === 'none' ? undefined : response.framework;
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
|
-
// Get
|
|
61
|
-
|
|
61
|
+
// Get short handle for task/prompt ID namespacing (mandatory when prompts enabled)
|
|
62
|
+
const osUsername = os_1.default.userInfo().username;
|
|
63
|
+
let developerName = projectInfo?.author || osUsername;
|
|
62
64
|
if (options.prompts) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
let handle = '';
|
|
66
|
+
while (!handle) {
|
|
67
|
+
const nameResponse = await inquirer_1.default.prompt([{
|
|
68
|
+
type: 'input',
|
|
69
|
+
name: 'developerName',
|
|
70
|
+
message: `Your short handle is used as a prefix in task IDs (e.g. CD-jsmith-001) and prompt IDs\n (e.g. PROMPT-jsmith-001) to avoid collisions when multiple devs share the same spec files.\n Use your GitHub, GitLab, or Bitbucket username, or any short tag of your choice [${osUsername}]:`,
|
|
71
|
+
}]);
|
|
72
|
+
handle = nameResponse.developerName.trim();
|
|
73
|
+
if (!handle)
|
|
74
|
+
handle = osUsername;
|
|
75
|
+
}
|
|
76
|
+
developerName = handle;
|
|
70
77
|
}
|
|
71
78
|
// Analyze codebase if requested
|
|
72
79
|
let analysis = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-specs.js","sourceRoot":"","sources":["../../src/commands/add-specs.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"add-specs.js","sourceRoot":"","sources":["../../src/commands/add-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAsBD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,iBAwD3D"}
|
package/dist/commands/archive.js
CHANGED
|
@@ -1,16 +1,82 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
5
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
39
|
exports.archiveCommand = archiveCommand;
|
|
7
40
|
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
+
const child_process_1 = require("child_process");
|
|
42
|
+
const readline = __importStar(require("readline"));
|
|
8
43
|
const specArchiver_1 = require("../utils/specArchiver");
|
|
9
44
|
const logger_1 = require("../utils/logger");
|
|
45
|
+
function getCurrentBranch() {
|
|
46
|
+
try {
|
|
47
|
+
return (0, child_process_1.execSync)('git rev-parse --abbrev-ref HEAD', { stdio: ['pipe', 'pipe', 'pipe'] })
|
|
48
|
+
.toString()
|
|
49
|
+
.trim();
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function askConfirmation(question) {
|
|
56
|
+
return new Promise(resolve => {
|
|
57
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
58
|
+
rl.question(question, answer => {
|
|
59
|
+
rl.close();
|
|
60
|
+
resolve(answer.trim().toLowerCase() === 'y');
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
}
|
|
10
64
|
async function archiveCommand(options) {
|
|
11
65
|
const logger = new logger_1.Logger();
|
|
12
66
|
const projectDir = process.cwd();
|
|
13
67
|
try {
|
|
68
|
+
// Branch guard — warn if not on main/master
|
|
69
|
+
if (!options.dryRun && !options.force) {
|
|
70
|
+
const branch = getCurrentBranch();
|
|
71
|
+
if (branch && branch !== 'main' && branch !== 'master') {
|
|
72
|
+
console.log(chalk_1.default.yellow(`⚠ You're on branch '${branch}'. Archive is recommended only on the default branch after merging.`));
|
|
73
|
+
const confirmed = await askConfirmation('Continue? [y/N] ');
|
|
74
|
+
if (!confirmed) {
|
|
75
|
+
logger.info('Archive cancelled.');
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
14
80
|
if (options.dryRun) {
|
|
15
81
|
logger.info('🔍 Dry run — previewing archive operations (no files will be changed)...');
|
|
16
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backfill.d.ts","sourceRoot":"","sources":["../../src/commands/backfill.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB7E"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.backfillCommand = backfillCommand;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const specBackfiller_1 = require("../utils/specBackfiller");
|
|
10
|
+
const logger_1 = require("../utils/logger");
|
|
11
|
+
async function backfillCommand(options) {
|
|
12
|
+
const logger = new logger_1.Logger();
|
|
13
|
+
const projectDir = (0, path_1.resolve)(options.dir);
|
|
14
|
+
if (options.dryRun) {
|
|
15
|
+
logger.info('🔍 Dry-run mode — no files will be written.\n');
|
|
16
|
+
}
|
|
17
|
+
const backfiller = new specBackfiller_1.SpecBackfiller();
|
|
18
|
+
try {
|
|
19
|
+
const result = await backfiller.backfill(projectDir, options.specsName, options.dryRun ?? false, options.noPrompts ?? false);
|
|
20
|
+
displayResult(result, options.dryRun ?? false, logger);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
logger.error(`❌ ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function fileResultLines(label, r, dryRun) {
|
|
28
|
+
const lines = [chalk_1.default.cyan(`📄 ${label}`)];
|
|
29
|
+
if (r.action === 'missing') {
|
|
30
|
+
lines.push(chalk_1.default.yellow(` ⚠️ File not found — ${r.reason}`));
|
|
31
|
+
}
|
|
32
|
+
else if (r.action === 'skipped') {
|
|
33
|
+
if (r.reason) {
|
|
34
|
+
lines.push(chalk_1.default.yellow(` ⚠️ Skipped — ${r.reason}`));
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
lines.push(chalk_1.default.green(` ✅ All ${r.total} items already present — nothing to backfill`));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (r.action === 'created') {
|
|
41
|
+
const verb = dryRun ? 'Would create' : 'Created';
|
|
42
|
+
lines.push(chalk_1.default.green(` ✅ ${verb} with all ${r.total} mandates`));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// updated
|
|
46
|
+
lines.push(chalk_1.default.green(` ✅ ${r.found}/${r.total} items already present`));
|
|
47
|
+
const verb = dryRun ? 'Would add' : 'Added';
|
|
48
|
+
lines.push(chalk_1.default.white(` ➕ ${verb} ${r.added.length} missing item(s):`));
|
|
49
|
+
r.added.forEach((label) => lines.push(chalk_1.default.white(` • ${label}`)));
|
|
50
|
+
}
|
|
51
|
+
return lines;
|
|
52
|
+
}
|
|
53
|
+
function displayResult(result, dryRun, logger) {
|
|
54
|
+
const allResults = [result.projectYaml, result.copilotInstructions, result.tasksMd];
|
|
55
|
+
const content = [
|
|
56
|
+
chalk_1.default.blue.bold(`Backfill Results${dryRun ? ' (dry-run — no changes written)' : ''}`),
|
|
57
|
+
'',
|
|
58
|
+
...fileResultLines('.specs/project/project.yaml', result.projectYaml, dryRun),
|
|
59
|
+
'',
|
|
60
|
+
...fileResultLines('.github/copilot-instructions.md', result.copilotInstructions, dryRun),
|
|
61
|
+
'',
|
|
62
|
+
...fileResultLines('.specs/planning/tasks.md', result.tasksMd, dryRun),
|
|
63
|
+
'',
|
|
64
|
+
];
|
|
65
|
+
const updatedCount = allResults.filter((r) => r.action === 'updated' || r.action === 'created').length;
|
|
66
|
+
const skippedCount = allResults.filter((r) => r.action === 'skipped').length;
|
|
67
|
+
if (updatedCount === 0) {
|
|
68
|
+
content.push(chalk_1.default.green('✅ Everything is up to date — nothing to backfill.'));
|
|
69
|
+
}
|
|
70
|
+
else if (dryRun) {
|
|
71
|
+
content.push(chalk_1.default.yellow(`ℹ️ ${updatedCount} file(s) would be updated, ${skippedCount} already up to date. Run without --dry-run to apply.`));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
content.push(chalk_1.default.green(`✅ ${updatedCount} file(s) updated, ${skippedCount} already up to date.`));
|
|
75
|
+
content.push('');
|
|
76
|
+
content.push(chalk_1.default.cyan('📖 Next steps:'));
|
|
77
|
+
content.push(chalk_1.default.white(' specpilot validate # Verify your specs are complete'));
|
|
78
|
+
}
|
|
79
|
+
logger.displayWithLogo(content);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=backfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backfill.js","sourceRoot":"","sources":["../../src/commands/backfill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAWA,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;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,iBAwRnE"}
|
package/dist/commands/init.js
CHANGED
|
@@ -39,6 +39,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
39
39
|
exports.initCommand = initCommand;
|
|
40
40
|
const path_1 = require("path");
|
|
41
41
|
const fs_1 = require("fs");
|
|
42
|
+
const os_1 = __importDefault(require("os"));
|
|
42
43
|
const chalk_1 = __importDefault(require("chalk"));
|
|
43
44
|
const inquirer_1 = __importDefault(require("inquirer"));
|
|
44
45
|
const yaml = __importStar(require("js-yaml"));
|
|
@@ -145,16 +146,22 @@ async function initCommand(name, options) {
|
|
|
145
146
|
framework = response.framework === 'none' ? undefined : response.framework;
|
|
146
147
|
}
|
|
147
148
|
}
|
|
148
|
-
// Get
|
|
149
|
-
|
|
149
|
+
// Get short handle for task/prompt ID namespacing (mandatory when prompts enabled)
|
|
150
|
+
const osUsername = os_1.default.userInfo().username;
|
|
151
|
+
let developerName = osUsername;
|
|
150
152
|
if (options.prompts) {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
153
|
+
let handle = '';
|
|
154
|
+
while (!handle) {
|
|
155
|
+
const nameResponse = await inquirer_1.default.prompt([{
|
|
156
|
+
type: 'input',
|
|
157
|
+
name: 'developerName',
|
|
158
|
+
message: `Your short handle is used as a prefix in task IDs (e.g. CD-jsmith-001) and prompt IDs\n (e.g. PROMPT-jsmith-001) to avoid collisions when multiple devs share the same spec files.\n Use your GitHub, GitLab, or Bitbucket username, or any short tag of your choice [${osUsername}]:`,
|
|
159
|
+
}]);
|
|
160
|
+
handle = nameResponse.developerName.trim();
|
|
161
|
+
if (!handle)
|
|
162
|
+
handle = osUsername;
|
|
163
|
+
}
|
|
164
|
+
developerName = handle;
|
|
158
165
|
}
|
|
159
166
|
// Get IDE/Agent preference for context configuration
|
|
160
167
|
let ide = 'vscode'; // default
|
|
@@ -163,7 +170,7 @@ async function initCommand(name, options) {
|
|
|
163
170
|
type: 'list',
|
|
164
171
|
name: 'ide',
|
|
165
172
|
message: 'Select your AI IDE/Agent for SpecPilot context:',
|
|
166
|
-
choices: ['vscode', 'Cursor', 'Windsurf', 'Antigravity', '
|
|
173
|
+
choices: ['vscode', 'Cursor', 'Windsurf', 'Antigravity', 'Cowork', 'Codex']
|
|
167
174
|
}]);
|
|
168
175
|
ide = ideResponse.ide;
|
|
169
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TemplateContext } from './templateEngine';
|
|
2
2
|
/**
|
|
3
|
-
* Generates IDE workspace settings (.vscode, .cursor, .windsurf, .
|
|
3
|
+
* Generates IDE workspace settings (.vscode, .cursor, .windsurf, .antigravity).
|
|
4
4
|
* Each IDE gets a settings.json and extensions.json with a shared base config
|
|
5
5
|
* plus per-IDE overlay keys.
|
|
6
6
|
*/
|
|
@@ -23,7 +23,15 @@ export declare class IdeConfigGenerator {
|
|
|
23
23
|
*/
|
|
24
24
|
private buildCopilotSection;
|
|
25
25
|
private buildCopilotInstructions;
|
|
26
|
+
private buildCriticalMandatesMarkdown;
|
|
27
|
+
private buildProcessMandatesMarkdown;
|
|
26
28
|
private generateIDESettings;
|
|
27
29
|
private buildSettingsJson;
|
|
30
|
+
/**
|
|
31
|
+
* Generates (or updates) .gitattributes at project root with merge=union rules
|
|
32
|
+
* for append-heavy spec files, preventing git merge conflicts on shared branches.
|
|
33
|
+
* If the file already exists, only missing lines are appended.
|
|
34
|
+
*/
|
|
35
|
+
generateGitAttributes(projectDir: string): void;
|
|
28
36
|
}
|
|
29
37
|
//# sourceMappingURL=ideConfigGenerator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ideConfigGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/ideConfigGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ideConfigGenerator.d.ts","sourceRoot":"","sources":["../../src/utils/ideConfigGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAoCnD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,kEAAkE;IAC5D,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxF;;;;;;;;OAQG;IACG,2BAA2B,CAC/B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,EACxB,SAAS,UAAQ,GAChB,OAAO,CAAC,IAAI,CAAC;IAyChB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,6BAA6B;IAgBrC,OAAO,CAAC,4BAA4B;YAMtB,mBAAmB;IAsBjC,OAAO,CAAC,iBAAiB;IA4DzB;;;;OAIG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;CAqBhD"}
|