specsmd 0.0.0-dev.17 → 0.0.0-dev.18
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 +10 -2
- package/flows/aidlc/commands/construction-agent.md +4 -0
- package/flows/aidlc/commands/inception-agent.md +4 -0
- package/flows/aidlc/commands/master-agent.md +4 -0
- package/flows/aidlc/commands/operations-agent.md +4 -0
- package/lib/installers/WindsurfInstaller.js +0 -54
- package/package.json +1 -1
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
|
-
- [
|
|
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,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.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.18",
|
|
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": {
|