amsd-pipeline-workflow 0.1.27 → 0.1.29

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.
@@ -34,6 +34,9 @@
34
34
  "\u2139 fail 0",
35
35
  "\u2714 (?!\\S+\\.js \\()"
36
36
  ],
37
+ "fixtures": [
38
+ "state"
39
+ ],
37
40
  "failedPattern": "\u2139 fail [1-9]"
38
41
  },
39
42
  "install": {
@@ -372,7 +372,7 @@ let reviewedTree = null, prevBlocker = false, retiredThisCycle = 0, reReview = n
372
372
  let reproDone = false, repro = null, gate = null, uit = null, coverage = null, uncoveredVc = null
373
373
  async function reproStep(prep) {
374
374
  const at = prep.findingMode ? 'review test findings' : '3.54'
375
- if (prep.skip) { log(\`\${at}: \${prep.skip}\`); return { committed: false, reason: prep.skip } }
375
+ if (prep.skip) { log(\`\${at}: \${prep.skip}\`); return { committed: false, reason: prep.skip, noFix: !!prep.noFix } }
376
376
  if (prep.error) { log(\`\${at}: the test writer cannot run — \${prep.error}\${prep.findingMode ? '' : ' (Step 3.55 will block)'}\`); return { committed: false, reason: prep.error } }
377
377
  let source = null
378
378
  if (prep.targetQuestion) {
@@ -572,6 +572,14 @@ async function implementedSteps(checks, attempt) {
572
572
  const end = (r) => ({ end: done(r) })
573
573
  if (!reproDone && checks.repro) {
574
574
  reproDone = true; repro = await reproStep(checks.repro)
575
+ // NOTHING TO GATE (repro.noFix, hooks/repro-prep.sh): no fix file is in the diff at all, so Step 3.55's gate has no
576
+ // change to ask about. Run 11, metrolinx, AMSD-2974: the plan correctly gave this codeline no change (every fix site
577
+ // NO EDIT REQUIRED, the detective's structured analysis), the writer made no change either, and the real Step 3.55
578
+ // gate still ran and blocked it ("no test file accompanies the change") because its own no-change bypass does not
579
+ // know this workflow's structured-analysis fallback (generator/plan-no-change-structured.js). This workflow's own
580
+ // Step 3.54 preparation already answered the only question the gate would ask — asking it again cannot do anything
581
+ // but repeat a question already answered, so it is not asked.
582
+ if (repro.noFix) return { checks }
575
583
  // STEP 3.545 — tests the fix legitimately invalidated (update-invalidated-tests.sh): the step runner checks the whole suite;
576
584
  // when it is red, the agent (its write fence: only tests that existed before the story) updates them or reports a
577
585
  // regression, and its judge decides. An unresolved RED suite blocks after the reproduction gate (below).
@@ -54,7 +54,15 @@ if [ -n "$_FINDING_FILE" ]; then
54
54
  else
55
55
  # :164–165 (no gate finding: a test that accompanies the change is enough)
56
56
  [ "${#TEST_FILES[@]}" -gt 0 ] && say --arg t "${TEST_FILES[0]}" '{skip: ("a test already accompanies the change (" + $t + ") — nothing to write")}'
57
- [ "${#FIX_FILES[@]}" -gt 0 ] || say '{skip: "no fix files in the diff — nothing to test"}'
57
+ # noFix: true — a machine-readable mark, distinct from the "a test already accompanies it" skip above: there is no fix at
58
+ # all to reproduce, so nothing downstream (Step 3.545, Step 3.55's gate) has anything to ask about. Run 11, metrolinx,
59
+ # AMSD-2974: the story's plan correctly gave this codeline no change (every fix site NO EDIT REQUIRED, confirmed by the
60
+ # detective's structured analysis — generator/plan-no-change-structured.js), yet the real Step 3.55 gate still ran and
61
+ # blocked it for shipping no test, because its own no-change bypass (brownfield-repro-test-gate.sh:93-99) only recognizes
62
+ # the pipeline's prose check (plan-gives-no-change.js), not the structured-analysis fallback this workflow also honours.
63
+ # Reported, not patched there (orchestrations/ is the bash pipeline); this flag lets the workflow stop asking the gate
64
+ # a question that has already been answered, here, correctly.
65
+ [ "${#FIX_FILES[@]}" -gt 0 ] || say '{skip: "no fix files in the diff — nothing to test", noFix: true}'
58
66
  fi
59
67
 
60
68
  # :195–216 — testable source, asked of the codeline
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amsd-pipeline-workflow",
3
- "version": "0.1.27",
3
+ "version": "0.1.29",
4
4
  "description": "The AMSD pipeline as Claude workflows. Installed by the amsd-pipeline installer: install.sh --workflows",
5
5
  "license": "UNLICENSED",
6
6
  "bin": {