@onuraslan/sdd 1.0.7 → 1.1.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 CHANGED
@@ -12,14 +12,28 @@ You can install SDD in two ways:
12
12
 
13
13
  ### Option 1: npm package installation (recommended)
14
14
 
15
- Install the package and run the interactive installer from the npm bundle itself:
15
+ Install or update the package and run the interactive installer from the npm bundle itself:
16
16
 
17
17
  ```bash
18
- npx @onuraslan/sdd install
18
+ npx @onuraslan/sdd@latest install
19
19
  ```
20
20
 
21
21
  This installer reads the skill content from the installed npm package and copies it directly to the target agent directory. It does not clone the GitHub repository at runtime.
22
22
 
23
+ #### Update an existing installation
24
+
25
+ To upgrade the installed skill set to the latest published version, simply rerun the same command:
26
+
27
+ ```bash
28
+ npx @onuraslan/sdd@latest install
29
+ ```
30
+
31
+ If you installed it globally instead of via npx, update it with:
32
+
33
+ ```bash
34
+ npm update -g @onuraslan/sdd
35
+ ```
36
+
23
37
  ### Option 2: Claude Code plugin marketplace
24
38
 
25
39
  ```bash
package/cli/install.js CHANGED
@@ -87,9 +87,10 @@ async function writeMcpConfig(target, selectedPlugins, scope = 'project', cwd =
87
87
  mcp: {
88
88
  ...(existing.mcp || {}),
89
89
  playwright: {
90
- type: 'stdio',
91
- command: 'npx',
92
- args: ['@playwright/mcp']
90
+ ...(existing.mcp?.playwright || {}),
91
+ type: 'local',
92
+ command: ['npx', '-y', '@playwright/mcp'],
93
+ enabled: true
93
94
  }
94
95
  }
95
96
  };
package/cli/targets.js CHANGED
@@ -55,11 +55,18 @@ export function resolveTargetPath(targetId, scope = 'project', cwd = process.cwd
55
55
  }
56
56
 
57
57
  const baseDir = resolveInstallBase(scope, cwd);
58
- const installRoot = path.resolve(baseDir, target.skillDirectory);
59
- const metadataPath = path.resolve(baseDir, path.dirname(target.skillDirectory), 'sdd.json');
58
+ const isOpenCodeUserScope = target.id === 'opencode' && scope === 'user';
59
+ const skillDirectory = isOpenCodeUserScope
60
+ ? path.join('.config', 'opencode', 'skills')
61
+ : target.skillDirectory;
60
62
  const effectiveMcpConfigPath = target.id === 'claude' && scope === 'user'
61
63
  ? '.claude.json'
62
- : target.mcpConfigPath;
64
+ : target.id === 'opencode' && scope === 'user'
65
+ ? path.join('.config', 'opencode', 'opencode.json')
66
+ : target.mcpConfigPath;
67
+
68
+ const installRoot = path.resolve(baseDir, skillDirectory);
69
+ const metadataPath = path.resolve(baseDir, path.dirname(skillDirectory), 'sdd.json');
63
70
  const mcpConfigPath = path.resolve(baseDir, effectiveMcpConfigPath);
64
71
 
65
72
  return {
@@ -67,6 +74,7 @@ export function resolveTargetPath(targetId, scope = 'project', cwd = process.cwd
67
74
  baseDir,
68
75
  installRoot,
69
76
  metadataPath,
70
- mcpConfigPath
77
+ mcpConfigPath,
78
+ skillDirectory
71
79
  };
72
80
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onuraslan/sdd",
3
- "version": "1.0.7",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "description": "Spec-Driven Development skill package and interactive installer for AI coding agents.",
6
6
  "license": "MIT",