musubix2 0.5.52 → 0.5.54

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.
@@ -1 +1 @@
1
- {"generator":"musubix2","version":"0.5.52","timestamp":"2026-07-10T07:20:28.524Z"}
1
+ {"generator":"musubix2","version":"0.5.54","timestamp":"2026-07-10T08:14:46.011Z"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0",
3
- "generatedAt": "2026-07-10T07:20:28.553Z",
3
+ "generatedAt": "2026-07-10T08:14:46.046Z",
4
4
  "entries": [
5
5
  {
6
6
  "platform": "copilot",
package/dist/cli.js CHANGED
@@ -12456,14 +12456,16 @@ var init_dist14 = __esm({
12456
12456
  };
12457
12457
  }
12458
12458
  const variables = extractVariables(requirement.text);
12459
+ const negated = /\bSHALL\s+NOT\b/i.test(requirement.text);
12460
+ const actionExpr = negated ? `(not ${actionVar})` : actionVar;
12459
12461
  let assertions;
12460
12462
  switch (requirement.pattern) {
12461
12463
  case "ubiquitous":
12462
- assertions = [`(assert (=> true ${actionVar}))`];
12464
+ assertions = [`(assert (=> true ${actionExpr}))`];
12463
12465
  break;
12464
12466
  case "event-driven": {
12465
12467
  const triggerVar = requirement.trigger ? sanitizeName(requirement.trigger) : "trigger";
12466
- assertions = [`(assert (=> ${triggerVar} ${actionVar}))`];
12468
+ assertions = [`(assert (=> ${triggerVar} ${actionExpr}))`];
12467
12469
  if (!requirement.trigger) {
12468
12470
  warnings.push('No trigger specified; using default "trigger"');
12469
12471
  }
@@ -12471,7 +12473,7 @@ var init_dist14 = __esm({
12471
12473
  }
12472
12474
  case "state-driven": {
12473
12475
  const condVar = requirement.condition ? sanitizeName(requirement.condition) : "condition";
12474
- assertions = [`(assert (=> ${condVar} ${actionVar}))`];
12476
+ assertions = [`(assert (=> ${condVar} ${actionExpr}))`];
12475
12477
  if (!requirement.condition) {
12476
12478
  warnings.push('No condition specified; using default "condition"');
12477
12479
  }
@@ -12479,14 +12481,14 @@ var init_dist14 = __esm({
12479
12481
  }
12480
12482
  case "unwanted":
12481
12483
  if (requirement.condition) {
12482
- assertions = [`(assert (=> ${sanitizeName(requirement.condition)} ${actionVar}))`];
12484
+ assertions = [`(assert (=> ${sanitizeName(requirement.condition)} ${actionExpr}))`];
12483
12485
  } else {
12484
- assertions = [`(assert (not ${actionVar}))`];
12486
+ assertions = [`(assert ${actionExpr})`];
12485
12487
  }
12486
12488
  break;
12487
12489
  case "optional": {
12488
12490
  const featureVar = requirement.trigger ? sanitizeName(requirement.trigger) : "feature_enabled";
12489
- assertions = [`(assert (=> ${featureVar} ${actionVar}))`];
12491
+ assertions = [`(assert (=> ${featureVar} ${actionExpr}))`];
12490
12492
  if (!requirement.trigger) {
12491
12493
  warnings.push('No feature trigger specified; using default "feature_enabled"');
12492
12494
  }
@@ -12495,7 +12497,7 @@ var init_dist14 = __esm({
12495
12497
  case "complex": {
12496
12498
  const condVar = requirement.condition ? sanitizeName(requirement.condition) : "condition";
12497
12499
  const triggerVar = requirement.trigger ? sanitizeName(requirement.trigger) : "trigger";
12498
- assertions = [`(assert (=> (and ${condVar} ${triggerVar}) ${actionVar}))`];
12500
+ assertions = [`(assert (=> (and ${condVar} ${triggerVar}) ${actionExpr}))`];
12499
12501
  if (!requirement.condition) {
12500
12502
  warnings.push('No condition specified; using default "condition"');
12501
12503
  }
package/dist/index.js CHANGED
@@ -12456,14 +12456,16 @@ var init_dist14 = __esm({
12456
12456
  };
12457
12457
  }
12458
12458
  const variables = extractVariables(requirement.text);
12459
+ const negated = /\bSHALL\s+NOT\b/i.test(requirement.text);
12460
+ const actionExpr = negated ? `(not ${actionVar})` : actionVar;
12459
12461
  let assertions;
12460
12462
  switch (requirement.pattern) {
12461
12463
  case "ubiquitous":
12462
- assertions = [`(assert (=> true ${actionVar}))`];
12464
+ assertions = [`(assert (=> true ${actionExpr}))`];
12463
12465
  break;
12464
12466
  case "event-driven": {
12465
12467
  const triggerVar = requirement.trigger ? sanitizeName(requirement.trigger) : "trigger";
12466
- assertions = [`(assert (=> ${triggerVar} ${actionVar}))`];
12468
+ assertions = [`(assert (=> ${triggerVar} ${actionExpr}))`];
12467
12469
  if (!requirement.trigger) {
12468
12470
  warnings.push('No trigger specified; using default "trigger"');
12469
12471
  }
@@ -12471,7 +12473,7 @@ var init_dist14 = __esm({
12471
12473
  }
12472
12474
  case "state-driven": {
12473
12475
  const condVar = requirement.condition ? sanitizeName(requirement.condition) : "condition";
12474
- assertions = [`(assert (=> ${condVar} ${actionVar}))`];
12476
+ assertions = [`(assert (=> ${condVar} ${actionExpr}))`];
12475
12477
  if (!requirement.condition) {
12476
12478
  warnings.push('No condition specified; using default "condition"');
12477
12479
  }
@@ -12479,14 +12481,14 @@ var init_dist14 = __esm({
12479
12481
  }
12480
12482
  case "unwanted":
12481
12483
  if (requirement.condition) {
12482
- assertions = [`(assert (=> ${sanitizeName(requirement.condition)} ${actionVar}))`];
12484
+ assertions = [`(assert (=> ${sanitizeName(requirement.condition)} ${actionExpr}))`];
12483
12485
  } else {
12484
- assertions = [`(assert (not ${actionVar}))`];
12486
+ assertions = [`(assert ${actionExpr})`];
12485
12487
  }
12486
12488
  break;
12487
12489
  case "optional": {
12488
12490
  const featureVar = requirement.trigger ? sanitizeName(requirement.trigger) : "feature_enabled";
12489
- assertions = [`(assert (=> ${featureVar} ${actionVar}))`];
12491
+ assertions = [`(assert (=> ${featureVar} ${actionExpr}))`];
12490
12492
  if (!requirement.trigger) {
12491
12493
  warnings.push('No feature trigger specified; using default "feature_enabled"');
12492
12494
  }
@@ -12495,7 +12497,7 @@ var init_dist14 = __esm({
12495
12497
  case "complex": {
12496
12498
  const condVar = requirement.condition ? sanitizeName(requirement.condition) : "condition";
12497
12499
  const triggerVar = requirement.trigger ? sanitizeName(requirement.trigger) : "trigger";
12498
- assertions = [`(assert (=> (and ${condVar} ${triggerVar}) ${actionVar}))`];
12500
+ assertions = [`(assert (=> (and ${condVar} ${triggerVar}) ${actionExpr}))`];
12499
12501
  if (!requirement.condition) {
12500
12502
  warnings.push('No condition specified; using default "condition"');
12501
12503
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musubix2",
3
- "version": "0.5.52",
3
+ "version": "0.5.54",
4
4
  "description": "MUSUBIX2 — Specification Driven Development System",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",