specsmd 0.1.3 → 0.1.5

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
@@ -29,8 +29,9 @@ Track your AI-DLC progress with our sidebar extension for VS Code and compatible
29
29
  > **Note:** Works with any VS Code-based IDE including [Cursor](https://cursor.sh), [Google Antigravity](https://antigravity.google), [Windsurf](https://codeium.com/windsurf), and others.
30
30
 
31
31
  **Install from:**
32
- - [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=fabriqaai.specsmd)
33
- - [GitHub Releases (VSIX)](https://github.com/fabriqaai/specs.md/releases)
32
+ - [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=fabriqaai.specsmd) — VS Code, GitHub Codespaces
33
+ - [Open VSX Registry](https://open-vsx.org/extension/fabriqaai/specsmd) — Cursor, Windsurf, Amazon Kiro, Google Antigravity, VSCodium, Gitpod, Google IDX
34
+ - [GitHub Releases (VSIX)](https://github.com/fabriqaai/specs.md/releases) — Manual installation
34
35
 
35
36
  ---
36
37
 
@@ -306,6 +307,13 @@ Specs and Memory Bank provide structured context for AI agents. Agents reload co
306
307
  | **Cursor** | Full support | Rules in `.cursor/rules/` (`.mdc` format) |
307
308
  | **GitHub Copilot** | Full support | Agents in `.github/agents/` (`.agent.md` format) |
308
309
  | **Google Antigravity** | Full support | Agents in `.agent/agents/` |
310
+ | **Windsurf** | Full support | Workflows in `.windsurf/workflows/` |
311
+ | **Amazon Kiro** | Full support | Steering in `.kiro/steering/` |
312
+ | **Gemini CLI** | Full support | Commands in `.gemini/commands/` (`.toml` format) |
313
+ | **Cline** | Full support | Rules in `.clinerules/` |
314
+ | **Roo Code** | Full support | Commands in `.roo/commands/` |
315
+ | **OpenAI Codex** | Full support | Config in `.codex/` |
316
+ | **OpenCode** | Full support | Agents in `.opencode/agent/` |
309
317
 
310
318
  ---
311
319
 
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Building phase agent - execute bolts through DDD stages (model, test, implement)
3
+ ---
4
+
1
5
  # Activate Construction Agent
2
6
 
3
7
  **Command**: `/specsmd-construction-agent`
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Planning phase agent - requirements gathering, story creation, and bolt planning
3
+ ---
4
+
1
5
  # Activate Inception Agent
2
6
 
3
7
  **Command**: `/specsmd-inception-agent`
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Master orchestrator for AI-DLC - routes to appropriate phase/agent based on project state
3
+ ---
4
+
1
5
  # Activate Master Agent
2
6
 
3
7
  **Command**: `/specsmd-master-agent`
@@ -1,3 +1,7 @@
1
+ ---
2
+ description: Deployment phase agent - build, deploy, verify, and monitor releases
3
+ ---
4
+
1
5
  # Activate Operations Agent
2
6
 
3
7
  **Command**: `/specsmd-operations-agent`
@@ -10,9 +10,9 @@
10
10
  * - Timestamp format (ISO 8601 without milliseconds)
11
11
  *
12
12
  * Usage:
13
- * node .specsmd/scripts/artifact-validator.js
14
- * node .specsmd/scripts/artifact-validator.js --json
15
- * node .specsmd/scripts/artifact-validator.js --fix
13
+ * node .specsmd/aidlc/scripts/artifact-validator.js
14
+ * node .specsmd/aidlc/scripts/artifact-validator.js --json
15
+ * node .specsmd/aidlc/scripts/artifact-validator.js --fix
16
16
  *
17
17
  * Cross-platform: Works on Linux, macOS, Windows via Node.js
18
18
  */
@@ -115,11 +115,11 @@
115
115
  *
116
116
  * From agent skill (bolt-start.md Step 10):
117
117
  *
118
- * node .specsmd/scripts/bolt-complete.js 016-analytics-tracker
118
+ * node .specsmd/aidlc/scripts/bolt-complete.js 016-analytics-tracker
119
119
  *
120
120
  * With optional stage name:
121
121
  *
122
- * node .specsmd/scripts/bolt-complete.js 016-analytics-tracker --last-stage test
122
+ * node .specsmd/aidlc/scripts/bolt-complete.js 016-analytics-tracker --last-stage test
123
123
  *
124
124
  * ═══════════════════════════════════════════════════════════════════════════════
125
125
  */
@@ -7,8 +7,8 @@
7
7
  * Status must cascade correctly: Bolt complete → Stories complete → Unit complete → Intent complete
8
8
  *
9
9
  * Usage:
10
- * node .specsmd/scripts/status-integrity.js
11
- * node .specsmd/scripts/status-integrity.js --fix
10
+ * node .specsmd/aidlc/scripts/status-integrity.js
11
+ * node .specsmd/aidlc/scripts/status-integrity.js --fix
12
12
  *
13
13
  * Cross-platform: Works on Linux, macOS, Windows via Node.js
14
14
  */
@@ -584,8 +584,8 @@ Options:
584
584
  --help, -h Show this help message
585
585
 
586
586
  Examples:
587
- node .specsmd/scripts/status-integrity.js
588
- node .specsmd/scripts/status-integrity.js --fix
587
+ node .specsmd/aidlc/scripts/status-integrity.js
588
+ node .specsmd/aidlc/scripts/status-integrity.js --fix
589
589
  `);
590
590
  process.exit(0);
591
591
  }
@@ -194,7 +194,7 @@ If the bolt type specifies automatic validation criteria, follow those rules.
194
194
  ┌─────────────────────────────────────────────────────────────┐
195
195
  │ FINAL STAGE DETECTED │
196
196
  │ → Re-read Step 10 NOW │
197
- │ → You MUST run: node .specsmd/scripts/bolt-complete.js
197
+ │ → You MUST run: node .specsmd/aidlc/scripts/bolt-complete.js
198
198
  │ → Do NOT manually edit story files │
199
199
  └─────────────────────────────────────────────────────────────┘
200
200
  ```
@@ -245,7 +245,7 @@ Do NOT manually edit story files - the script handles everything.
245
245
  **Run this command:**
246
246
 
247
247
  ```bash
248
- node .specsmd/scripts/bolt-complete.js {bolt-id}
248
+ node .specsmd/aidlc/scripts/bolt-complete.js {bolt-id}
249
249
  ```
250
250
 
251
251
  **What this command does (deterministically):**
package/lib/installer.js CHANGED
@@ -229,6 +229,9 @@ async function installFlow(flowKey, toolKeys) {
229
229
  if (await fs.pathExists(path.join(flowPath, 'shared'))) {
230
230
  await fs.copy(path.join(flowPath, 'shared'), path.join(targetFlowDir, 'shared'));
231
231
  }
232
+ if (await fs.pathExists(path.join(flowPath, 'scripts'))) {
233
+ await fs.copy(path.join(flowPath, 'scripts'), path.join(targetFlowDir, 'scripts'));
234
+ }
232
235
 
233
236
  // Copy config files
234
237
  if (await fs.pathExists(path.join(flowPath, 'memory-bank.yaml'))) {
@@ -250,20 +253,6 @@ async function installFlow(flowKey, toolKeys) {
250
253
 
251
254
  CLIUtils.displayStatus('', 'Installed flow resources', 'success');
252
255
 
253
- // Step 2.5: Install local scripts for deterministic operations
254
- // These scripts are version-matched to the installed specsmd version
255
- const scriptsDir = path.join(specsmdDir, 'scripts');
256
- await fs.ensureDir(scriptsDir);
257
-
258
- const sourceScriptsDir = path.join(__dirname, '..', 'scripts');
259
- if (await fs.pathExists(sourceScriptsDir)) {
260
- await fs.copy(sourceScriptsDir, scriptsDir);
261
- CLIUtils.displayStatus('', 'Installed local scripts', 'success');
262
- }
263
-
264
- // Note: Scripts are invoked directly via relative path (e.g., node .specsmd/scripts/bolt-complete.js)
265
- // No npm scripts added to package.json to avoid dependency on package.json for execution
266
-
267
256
  // NOTE: memory-bank/ is NOT created during installation
268
257
  // It will be created when user runs project-init
269
258
  // This allows us to detect if project is initialized by checking for memory-bank/standards/
@@ -1,8 +1,5 @@
1
1
  const ToolInstaller = require('./ToolInstaller');
2
- const fs = require('fs-extra');
3
2
  const path = require('path');
4
- const CLIUtils = require('../cli-utils');
5
- const { theme } = CLIUtils;
6
3
 
7
4
  class WindsurfInstaller extends ToolInstaller {
8
5
  get key() {
@@ -20,57 +17,6 @@ class WindsurfInstaller extends ToolInstaller {
20
17
  get detectPath() {
21
18
  return '.windsurf';
22
19
  }
23
-
24
- /**
25
- * Override to add frontmatter for Windsurf workflows
26
- */
27
- async installCommands(flowPath, config) {
28
- const targetCommandsDir = this.commandsDir;
29
- console.log(theme.dim(` Installing workflows to ${targetCommandsDir}/...`));
30
- await fs.ensureDir(targetCommandsDir);
31
-
32
- const commandsSourceDir = path.join(flowPath, 'commands');
33
-
34
- if (!await fs.pathExists(commandsSourceDir)) {
35
- console.log(theme.warning(` No commands folder found at ${commandsSourceDir}`));
36
- return [];
37
- }
38
-
39
- const commandFiles = await fs.readdir(commandsSourceDir);
40
- const installedFiles = [];
41
-
42
- for (const cmdFile of commandFiles) {
43
- if (cmdFile.endsWith('.md')) {
44
- const sourcePath = path.join(commandsSourceDir, cmdFile);
45
- const prefix = (config && config.command && config.command.prefix) ? `${config.command.prefix}-` : '';
46
-
47
- const targetFileName = `specsmd-${prefix}${cmdFile}`;
48
- const targetPath = path.join(targetCommandsDir, targetFileName);
49
-
50
- // Extract agent name from target filename (e.g., "specsmd-master-agent.md" -> "specsmd-master-agent")
51
- const agentName = targetFileName.replace(/\.md$/, '');
52
-
53
- // Read source content and add Windsurf frontmatter
54
- let content = await fs.readFile(sourcePath, 'utf8');
55
-
56
- // Add Windsurf-specific frontmatter if not present
57
- if (!content.startsWith('---')) {
58
- const frontmatter = `---
59
- description: ${agentName}
60
- ---
61
-
62
- `;
63
- content = frontmatter + content;
64
- }
65
-
66
- await fs.writeFile(targetPath, content);
67
- installedFiles.push(targetFileName);
68
- }
69
- }
70
-
71
- CLIUtils.displayStatus('', `Installed ${installedFiles.length} workflows for ${this.name}`, 'success');
72
- return installedFiles;
73
- }
74
20
  }
75
21
 
76
22
  module.exports = WindsurfInstaller;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specsmd",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "Multi-agent orchestration system for AI-native software development. Delivers AI-DLC, Agile, and custom SDLC flows as markdown-based agent systems.",
5
5
  "main": "lib/installer.js",
6
6
  "bin": {