sdtk-kit 1.3.1 → 1.4.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 +36 -5
- package/bin/sdtk.js +10 -0
- package/package.json +2 -2
- package/src/commands/update.js +32 -0
package/README.md
CHANGED
|
@@ -23,8 +23,9 @@ After install, all five SDTK CLI tools — plus the unified `sdtk` orchestrator
|
|
|
23
23
|
# Set up the chosen runtime for the whole suite in one command
|
|
24
24
|
sdtk init --runtime claude # or --runtime codex
|
|
25
25
|
|
|
26
|
-
# Generate
|
|
27
|
-
|
|
26
|
+
# Generate the 17-file SDLC scaffold for your product/MVP (or a single feature)
|
|
27
|
+
# (both --key and --name are required; --feature-key/--feature-name still work)
|
|
28
|
+
sdtk-spec generate --key SHOPEASE --name "ShopEase MVP"
|
|
28
29
|
```
|
|
29
30
|
|
|
30
31
|
## Unified init: `sdtk init`
|
|
@@ -118,7 +119,7 @@ are the mechanism that puts `sdtk`, `sdtk-spec`, `sdtk-code`, `sdtk-ops`,
|
|
|
118
119
|
- **Major version bumps** in any sub-toolkit require a coordinated `sdtk-kit` major-bump and re-publish.
|
|
119
120
|
- If you need exact version control per toolkit, use standalone packages instead.
|
|
120
121
|
|
|
121
|
-
Current dependency ranges (as of sdtk-kit v1.3.
|
|
122
|
+
Current dependency ranges (as of sdtk-kit v1.3.2):
|
|
122
123
|
|
|
123
124
|
| Package | Version |
|
|
124
125
|
|------------------|---------|
|
|
@@ -131,10 +132,40 @@ Current dependency ranges (as of sdtk-kit v1.3.1):
|
|
|
131
132
|
## Updating
|
|
132
133
|
|
|
133
134
|
```bash
|
|
134
|
-
npm update -g sdtk-kit
|
|
135
|
+
npm update -g sdtk-kit # or: npm install -g sdtk-kit@latest
|
|
136
|
+
sdtk --version # confirm sdtk-kit + per-kit versions
|
|
135
137
|
```
|
|
136
138
|
|
|
137
|
-
This updates all sub-toolkits within their caret ranges.
|
|
139
|
+
This updates all sub-toolkits within their caret ranges. Two things to remember:
|
|
140
|
+
|
|
141
|
+
- **npm only updates the CLI code.** To refresh the skills already installed in a
|
|
142
|
+
project, re-run `init` with `--force` there: `sdtk init --runtime <r> --force`
|
|
143
|
+
(without `--force`, existing skill files are kept). `--force` re-copies
|
|
144
|
+
toolkit-managed files but never your own files — back up a customized
|
|
145
|
+
`*.config.json` first.
|
|
146
|
+
- **`init` never deletes.** When a release stops writing a directory an older
|
|
147
|
+
version created, remove the leftover yourself after inspecting it
|
|
148
|
+
(e.g. `Remove-Item -Recurse -Force .\.agents`), then re-run `sdtk init --force`.
|
|
149
|
+
|
|
150
|
+
If `npm install` fails right after a publish with `ETARGET No matching version
|
|
151
|
+
found`, your local metadata cache is stale — run `npm cache verify` then
|
|
152
|
+
`npm install -g sdtk-kit@latest --prefer-online`.
|
|
153
|
+
|
|
154
|
+
### Maintainers: publish order
|
|
155
|
+
|
|
156
|
+
When releasing, **publish the sub-kits before the umbrella**, and verify each is
|
|
157
|
+
live before publishing `sdtk-kit`. The umbrella pins its sub-kits with caret
|
|
158
|
+
ranges, so if `sdtk-kit` is published before a sub-kit it requires, anyone
|
|
159
|
+
installing in that window hits `ETARGET`.
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# in the sub-kit (e.g. sdtk-design-kit)
|
|
163
|
+
npm publish
|
|
164
|
+
npm view sdtk-design-kit@<version> version # confirm it is live
|
|
165
|
+
# then in sdtk-kit
|
|
166
|
+
npm publish
|
|
167
|
+
npm view sdtk-kit@<version> version
|
|
168
|
+
```
|
|
138
169
|
|
|
139
170
|
## Uninstalling
|
|
140
171
|
|
package/bin/sdtk.js
CHANGED
|
@@ -24,6 +24,7 @@ function helpText() {
|
|
|
24
24
|
"",
|
|
25
25
|
"Usage:",
|
|
26
26
|
" sdtk init --runtime <claude|codex> [options] Initialise all five toolkits",
|
|
27
|
+
" sdtk update [--check-only] Update all five toolkit CLIs",
|
|
27
28
|
" sdtk --help Show this help",
|
|
28
29
|
" sdtk --version Show versions",
|
|
29
30
|
"",
|
|
@@ -42,6 +43,9 @@ function helpText() {
|
|
|
42
43
|
" --keep-going Continue past a failing toolkit (default: fail-fast).",
|
|
43
44
|
" --verbose Verbose per-toolkit output.",
|
|
44
45
|
"",
|
|
46
|
+
"update options:",
|
|
47
|
+
" --check-only Print the planned npm command without running it.",
|
|
48
|
+
"",
|
|
45
49
|
"Runs: sdtk-spec → sdtk-ops → sdtk-code → sdtk-design (all with --runtime)",
|
|
46
50
|
" → sdtk-wiki (its own non-runtime init; installs no skills).",
|
|
47
51
|
"",
|
|
@@ -91,6 +95,12 @@ function main(argv) {
|
|
|
91
95
|
return cmdInit(argv.slice(1));
|
|
92
96
|
}
|
|
93
97
|
|
|
98
|
+
if (command === "update") {
|
|
99
|
+
// eslint-disable-next-line global-require
|
|
100
|
+
const { cmdUpdate } = require("../src/commands/update");
|
|
101
|
+
return cmdUpdate(argv.slice(1));
|
|
102
|
+
}
|
|
103
|
+
|
|
94
104
|
console.error(`sdtk: unknown command '${command}'.`);
|
|
95
105
|
console.error("Run `sdtk --help` for usage.");
|
|
96
106
|
return 2;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sdtk-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Install all five SDTK toolkits in one command. Meta-package for sdtk-spec-kit, sdtk-code-kit, sdtk-ops-kit, sdtk-design-kit, and sdtk-wiki-kit.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"bin": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"sdtk-code-kit": "^0.3.0",
|
|
31
31
|
"sdtk-ops-kit": "^0.2.4",
|
|
32
32
|
"sdtk-design-kit": "^0.3.2",
|
|
33
|
-
"sdtk-wiki-kit": "^0.
|
|
33
|
+
"sdtk-wiki-kit": "^0.3.0"
|
|
34
34
|
},
|
|
35
35
|
"engines": {
|
|
36
36
|
"node": ">=18.13.0"
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const { execSync } = require("child_process");
|
|
4
|
+
|
|
5
|
+
const UPDATE_CMD = "npm install -g sdtk-kit@latest";
|
|
6
|
+
|
|
7
|
+
function cmdUpdate(argv) {
|
|
8
|
+
const checkOnly = argv.includes("--check-only");
|
|
9
|
+
|
|
10
|
+
if (checkOnly) {
|
|
11
|
+
console.log("Planned update command:");
|
|
12
|
+
console.log(` ${UPDATE_CMD}`);
|
|
13
|
+
console.log("\nThis will update all five SDTK toolkit CLIs to the latest published versions.");
|
|
14
|
+
console.log("After updating, run `sdtk init --runtime <runtime> --force` in each project");
|
|
15
|
+
console.log("to refresh managed skills and project files to the new version.");
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
console.log(`Running: ${UPDATE_CMD}\n`);
|
|
20
|
+
try {
|
|
21
|
+
execSync(UPDATE_CMD, { stdio: "inherit" });
|
|
22
|
+
console.log("\nUpdate complete.");
|
|
23
|
+
console.log("Run `sdtk --version` to confirm new versions.");
|
|
24
|
+
console.log("Run `sdtk init --runtime <runtime> --force` in each project to refresh managed files.");
|
|
25
|
+
return 0;
|
|
26
|
+
} catch (err) {
|
|
27
|
+
process.stderr.write(`sdtk update failed: ${err.message}\n`);
|
|
28
|
+
return 1;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
module.exports = { cmdUpdate };
|