@skitterbyte/skitterspec 16.4.0 → 16.5.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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/cli.js +25 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skitterbyte/skitterspec",
3
- "version": "16.4.0",
3
+ "version": "16.5.0",
4
4
  "description": "Spec-driven development for Claude Code — a tracker-free filesystem workflow: lifecycle skills and per-spec isolation. For Linear sync, install @skitterbyte/skitterspec-linear instead.",
5
5
  "keywords": [
6
6
  "claude",
package/src/cli.js CHANGED
@@ -48,6 +48,29 @@ const { renderRoutes, portsInUse, waitListening } = require('./env/proxy.js')
48
48
 
49
49
  const pkg = require('../package.json')
50
50
 
51
+ // Commands this (tracker-free) base does NOT ship, and the distribution that
52
+ // does. Without this the base says only "unknown command: spec-sync", which a
53
+ // user correctly reads as "no such feature" — nothing anywhere named the
54
+ // distribution that has it, so they were stranded. Naming Linear here is a
55
+ // diagnostic string, not provider machinery: `init.js` already knows
56
+ // `linear.config.json` and `linear-base/` by name in order to protect them.
57
+ const PROVIDER_COMMANDS = {
58
+ 'spec-sync': '@skitterbyte/skitterspec-linear',
59
+ 'spec-sanitise': '@skitterbyte/skitterspec-linear',
60
+ }
61
+
62
+ function unknownCommand(cmd) {
63
+ const dist = PROVIDER_COMMANDS[cmd]
64
+ if (dist) {
65
+ return (
66
+ `unknown command: ${cmd} — this is the base distribution, which does not ` +
67
+ `ship it.\n ${cmd} comes from ${dist} (a superset of this package): ` +
68
+ `install that instead.`
69
+ )
70
+ }
71
+ return `unknown command: ${cmd} (try --help)`
72
+ }
73
+
51
74
  const HELP = `skitterspec — spec-driven-development for Claude Code
52
75
 
53
76
  Usage:
@@ -1384,8 +1407,8 @@ async function run(argv) {
1384
1407
  await cleanupReleaseTooling(dir, opts)
1385
1408
  break
1386
1409
  default:
1387
- throw new Error(`unknown command: ${cmd} (try --help)`)
1410
+ throw new Error(unknownCommand(cmd))
1388
1411
  }
1389
1412
  }
1390
1413
 
1391
- module.exports = { run, parse }
1414
+ module.exports = { run, parse, HELP, unknownCommand }