@nathapp/nax 0.60.1 → 0.60.2

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/dist/nax.js +12 -6
  2. package/package.json +1 -1
package/dist/nax.js CHANGED
@@ -22705,7 +22705,7 @@ ${opts.specContent}
22705
22705
 
22706
22706
  The spec above is the authoritative source for acceptance criteria.
22707
22707
  - Each story's \`acceptanceCriteria\` array MUST contain only criteria that are explicitly stated or directly implied by the spec.
22708
- - If a debater proposed criteria beyond the spec (edge cases, error handling, implementation details), place those in a separate \`suggestedCriteria\` array on the same story object.
22708
+ - If a debater proposed criteria beyond the spec (edge cases, error handling, implementation details), place those in a separate \`suggestedCriteria\` array on the same story object. Each element of \`suggestedCriteria\` MUST be a plain string \u2014 never an object or structured value.
22709
22709
  - Never silently merge debater-invented criteria into \`acceptanceCriteria\`. The distinction matters: \`acceptanceCriteria\` drives automated testing; \`suggestedCriteria\` is logged for human review.
22710
22710
  - Preserve the spec's AC wording. You may refine for clarity but must not change semantics.` : "";
22711
22711
  const planSynthesisSuffix = `IMPORTANT: Your response must be a single valid JSON object in PRD format (with project, feature, branchName, userStories array, etc.). Do NOT wrap it in markdown fences. Output raw JSON only.${specAnchor}`;
@@ -36572,7 +36572,7 @@ var package_default;
36572
36572
  var init_package = __esm(() => {
36573
36573
  package_default = {
36574
36574
  name: "@nathapp/nax",
36575
- version: "0.60.1",
36575
+ version: "0.60.2",
36576
36576
  description: "AI Coding Agent Orchestrator \u2014 loops until done",
36577
36577
  type: "module",
36578
36578
  bin: {
@@ -36652,8 +36652,8 @@ var init_version = __esm(() => {
36652
36652
  NAX_VERSION = package_default.version;
36653
36653
  NAX_COMMIT = (() => {
36654
36654
  try {
36655
- if (/^[0-9a-f]{6,10}$/.test("2b74a9ef"))
36656
- return "2b74a9ef";
36655
+ if (/^[0-9a-f]{6,10}$/.test("db851936"))
36656
+ return "db851936";
36657
36657
  } catch {}
36658
36658
  try {
36659
36659
  const result = Bun.spawnSync(["git", "rev-parse", "--short", "HEAD"], {
@@ -72854,12 +72854,18 @@ function validateStory(raw, index, allIds) {
72854
72854
  throw new Error(`[schema] story[${index}].suggestedCriteria must be an array when present`);
72855
72855
  }
72856
72856
  if (s.suggestedCriteria.length > 0) {
72857
+ const coerced = [];
72857
72858
  for (let i = 0;i < s.suggestedCriteria.length; i++) {
72858
- if (typeof s.suggestedCriteria[i] !== "string") {
72859
+ const item = s.suggestedCriteria[i];
72860
+ if (typeof item === "string") {
72861
+ coerced.push(item);
72862
+ } else if (item !== null && typeof item === "object" && typeof item.criterion === "string") {
72863
+ coerced.push(item.criterion);
72864
+ } else {
72859
72865
  throw new Error(`[schema] story[${index}].suggestedCriteria[${i}] must be a string`);
72860
72866
  }
72861
72867
  }
72862
- suggestedCriteria = s.suggestedCriteria;
72868
+ suggestedCriteria = coerced;
72863
72869
  }
72864
72870
  }
72865
72871
  const routing = typeof s.routing === "object" && s.routing !== null ? s.routing : {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nathapp/nax",
3
- "version": "0.60.1",
3
+ "version": "0.60.2",
4
4
  "description": "AI Coding Agent Orchestrator — loops until done",
5
5
  "type": "module",
6
6
  "bin": {