@boyingliu01/xp-gate 0.33.0 → 0.33.1

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 (41) hide show
  1. package/gates/common-process.ts +178 -0
  2. package/gates/common.ts +208 -0
  3. package/gates/gate-3.ts +144 -0
  4. package/gates/gate-7.ts +126 -0
  5. package/gates/gate-8.ts +92 -0
  6. package/gates/gate-9.ts +269 -0
  7. package/gates/pbt-detect.ts +163 -0
  8. package/gates/python-health.ts +266 -0
  9. package/gates/test-layers.ts +312 -0
  10. package/lib/__tests__/check-normalize-exit.test.js +24 -0
  11. package/lib/__tests__/shared-utils.test.js +21 -0
  12. package/lib/__tests__/uninstall.test.js +18 -0
  13. package/lib/check.js +27 -4
  14. package/lib/gate-runner.js +6 -1
  15. package/lib/mattpocock-license-verdict.json +1 -1
  16. package/lib/shared-utils.js +6 -1
  17. package/lib/uninstall.js +21 -1
  18. package/mock-policy/AGENTS.md +2 -2
  19. package/mutation/AGENTS.md +2 -2
  20. package/package.json +2 -1
  21. package/plugins/claude-code/.claude-plugin/plugin.json +1 -1
  22. package/plugins/claude-code/skills/delphi-review/AGENTS.md +2 -2
  23. package/plugins/claude-code/skills/sprint-flow/AGENTS.md +2 -2
  24. package/plugins/claude-code/skills/test-specification-alignment/AGENTS.md +2 -2
  25. package/plugins/dsh/package.json +1 -1
  26. package/plugins/dsh/skills/delphi-review/AGENTS.md +2 -2
  27. package/plugins/dsh/skills/sprint-flow/AGENTS.md +2 -2
  28. package/plugins/dsh/skills/test-specification-alignment/AGENTS.md +2 -2
  29. package/plugins/opencode/package.json +1 -1
  30. package/plugins/opencode/skills/delphi-review/AGENTS.md +2 -2
  31. package/plugins/opencode/skills/sprint-flow/AGENTS.md +2 -2
  32. package/plugins/opencode/skills/test-specification-alignment/AGENTS.md +2 -2
  33. package/plugins/qoder/plugin.json +1 -1
  34. package/plugins/qoder/skills/delphi-review/AGENTS.md +2 -2
  35. package/plugins/qoder/skills/sprint-flow/AGENTS.md +2 -2
  36. package/plugins/qoder/skills/test-specification-alignment/AGENTS.md +2 -2
  37. package/principles/AGENTS.md +2 -2
  38. package/scripts/sync-package-content.js +6 -1
  39. package/skills/delphi-review/AGENTS.md +2 -2
  40. package/skills/sprint-flow/AGENTS.md +2 -2
  41. package/skills/test-specification-alignment/AGENTS.md +2 -2
package/lib/check.js CHANGED
@@ -43,12 +43,31 @@ function parseCheckArgs(args) {
43
43
  };
44
44
  }
45
45
 
46
+ /**
47
+ * Coerce a runGate() verdict into a valid process exit code (#657). The only
48
+ * non-numeric verdict is GATE_NOT_RUN (a string sentinel meaning "did not run");
49
+ * it must become 0, because a gate that honestly reported nothing to analyse is
50
+ * not a failure — and passing the string to process.exit() crashes Node.
51
+ * @param {number|string} verdict
52
+ * @returns {number}
53
+ */
54
+ function normalizeGateExit(verdict) {
55
+ return typeof verdict === 'number' ? verdict : 0;
56
+ }
57
+
46
58
  async function check(args) {
47
59
  const opts = parseCheckArgs(args);
48
60
 
49
61
  if (opts.list) return listGates();
50
62
  if (opts.changed) return runChangedBrief();
51
- if (opts.gateNumber && !opts.all && !opts.gateIds) return runGate(opts.gateNumber, opts.pathArg);
63
+ // #657: runGate() can return the GATE_NOT_RUN sentinel (a string) when a gate
64
+ // has no module/fallback. Returning it straight to the caller let it reach
65
+ // process.exit(), which throws ERR_INVALID_ARG_TYPE and dumps a stack trace.
66
+ // Map it to exit 0 here (the gate honestly reported "did not run"); a real
67
+ // failure code passes through unchanged.
68
+ if (opts.gateNumber && !opts.all && !opts.gateIds) {
69
+ return normalizeGateExit(await runGate(opts.gateNumber, opts.pathArg));
70
+ }
52
71
  if (opts.all) return checkAllGates(opts.pathArg);
53
72
  if (opts.gateIds && opts.gateIds.length > 0) return runGatesByIds(opts.gateIds, opts.pathArg);
54
73
 
@@ -179,6 +198,7 @@ async function checkAllGates(target) {
179
198
 
180
199
  async function runGatesByIds(gateIds, target) {
181
200
  let failures = 0;
201
+ let skipped = 0;
182
202
  let ran = 0;
183
203
  const resolvedGates = [];
184
204
  const unknown = [];
@@ -201,8 +221,10 @@ async function runGatesByIds(gateIds, target) {
201
221
  }
202
222
 
203
223
  for (const resolvedId of resolvedGates) {
224
+ // #618/#657: a NOT_RUN sentinel is a skip, not a pass and not a failure.
204
225
  const code = await runGate(resolvedId, target);
205
- if (code !== 0) failures += 1;
226
+ if (code === GATE_NOT_RUN) skipped += 1;
227
+ else if (code !== 0) failures += 1;
206
228
  ran += 1;
207
229
  console.log('');
208
230
  }
@@ -213,7 +235,8 @@ async function runGatesByIds(gateIds, target) {
213
235
  return 1;
214
236
  }
215
237
 
216
- console.log(`[xp-gate check] ${ran - failures}/${ran} gate(s) passed`);
238
+ const tally = { passed: ran - failures - skipped, failed: failures, warned: 0, skipped, total: ran };
239
+ console.log(`[xp-gate check] ${formatGateTally(tally)}`);
217
240
  return failures === 0 ? 0 : 1;
218
241
  }
219
242
 
@@ -356,4 +379,4 @@ function listGates() {
356
379
  return 0;
357
380
  }
358
381
 
359
- module.exports = { check, checkAllGates, formatGateTally, runChangedBrief, fileExtension, printBriefSummary };
382
+ module.exports = { check, checkAllGates, formatGateTally, runChangedBrief, fileExtension, printBriefSummary, normalizeGateExit };
@@ -252,7 +252,12 @@ function runGateAdapter(scriptPath, cwd = process.cwd(), opts = {}) {
252
252
  execFileSync(
253
253
  bashCommand,
254
254
  ['--noprofile', '--norc', '-c', wrap, 'xp-gate', commonScript, nowMsScript, scriptPath, process.execPath, listFile],
255
- { stdio: 'inherit', cwd }
255
+ // #660: the pre-commit hook exports GATE_DIR before sourcing a fragment, but
256
+ // the CLI path never did, so gate-3.sh looked for $GATE_DIR/lib/ccn-ratchet.sh
257
+ // (empty), fell back to <repo>/githooks/lib, and falsely BLOCKED on any
258
+ // project without vendored gates. The fragment lives beside its lib/, so
259
+ // point GATE_DIR at its own directory.
260
+ { stdio: 'inherit', cwd, env: { ...process.env, GATE_DIR: scriptDir } }
256
261
  );
257
262
  } finally {
258
263
  removeFileList(listFile);
@@ -2,6 +2,6 @@
2
2
  "verdict": "PASS",
3
3
  "license_type": "MIT",
4
4
  "sha256": "0e7ac423bf2c6e223b7c5b156f8cf72da49d748e56a1641402c31f22ad07dbb5",
5
- "checked_at": "2026-10-30T12:14:24.278Z",
5
+ "checked_at": "2026-10-30T12:42:58.890Z",
6
6
  "source": "network"
7
7
  }
@@ -37,7 +37,12 @@ function copyHooks(srcDir, destDir) {
37
37
  // post-commit carries the audit-attribution flush and --no-verify detection.
38
38
  // It was absent here, so neither ever ran for installed users (the source
39
39
  // existed but no installer copied it).
40
- ['pre-commit', 'pre-push', 'post-commit', 'post-merge'].forEach(hook => {
40
+ //
41
+ // hook-module-resolution.sh (#655/#631) is loaded by pre-commit BEFORE any tier
42
+ // decision and fails closed — omitting it made every commit FATAL on a fresh
43
+ // install. It is generated, but it must still ship beside the hooks.
44
+ const hookFiles = ['pre-commit', 'pre-push', 'post-commit', 'post-merge', 'hook-module-resolution.sh'];
45
+ hookFiles.forEach(hook => {
41
46
  const src = path.join(srcDir, 'hooks', hook);
42
47
  const dest = path.join(destDir, hook);
43
48
  if (fs.existsSync(src)) {
package/lib/uninstall.js CHANGED
@@ -333,7 +333,11 @@ function unsetGitConfigIfMatch(item) {
333
333
  console.log(` ${item.label} — not set`);
334
334
  return true;
335
335
  }
336
- if (currentPath === item.expectedPath) {
336
+ // #656: git returns a forward-slash path ("C:/Users/.../hooks"), while
337
+ // item.expectedPath is built with path.join (backslashes on Windows). A raw
338
+ // === compares these as different and the unset is silently skipped, leaving
339
+ // a dangling core.hooksPath. Normalize both sides to an absolute, real path.
340
+ if (sameHooksPath(currentPath, item.expectedPath)) {
337
341
  unsetHooksPath();
338
342
  console.log(` Unset ${item.label}`);
339
343
  return true;
@@ -342,6 +346,22 @@ function unsetGitConfigIfMatch(item) {
342
346
  return false;
343
347
  }
344
348
 
349
+ /**
350
+ * True when two hook-directory paths refer to the same location (#656), tolerant
351
+ * of forward/back slashes, trailing separators, and case differences on Windows.
352
+ * @param {string} a
353
+ * @param {string} b
354
+ * @returns {boolean}
355
+ */
356
+ function sameHooksPath(a, b) {
357
+ const norm = (p) => {
358
+ let r = path.resolve(p);
359
+ try { r = fs.realpathSync.native(r); } catch { /* path need not exist */ }
360
+ return process.platform === 'win32' ? r.toLowerCase() : r;
361
+ };
362
+ return norm(a) === norm(b);
363
+ }
364
+
345
365
  /**
346
366
  * Execute a single plan item (file/dir/gitconfig).
347
367
  * @returns {boolean} true on success, false on skip/failure
@@ -1,9 +1,9 @@
1
1
  # SRC/MOCK-POLICY KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Mock layering policy enforcement — Gate M3 of pre-push hook. Ensures integration tests use real implementations for internal dependencies, mock external dependencies, and annotate pending mocks with removal plans. Combines project scope scanning, mock decision engine, and per-file validation into a single pipeline.
@@ -1,9 +1,9 @@
1
1
  # SRC/MUTATION KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **Gate M** (incremental mutation testing) + **Gate M2** helpers (test-layer detection used by `src/mock-policy/`). Pre-push quality gate. TypeScript-only; uses Stryker.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boyingliu01/xp-gate",
3
- "version": "0.33.0",
3
+ "version": "0.33.1",
4
4
  "description": "AI-driven development workflow: 6 quality gates + Delphi review + Sprint Flow",
5
5
  "bin": {
6
6
  "xp-gate": "bin/xp-gate.js"
@@ -10,6 +10,7 @@
10
10
  "hooks/",
11
11
  "adapters/",
12
12
  "lib/",
13
+ "gates/",
13
14
  "skills/",
14
15
  "plugins/",
15
16
  "dsh.bundle.patch.yml",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xp-gate",
3
- "version": "0.33.0",
3
+ "version": "0.33.1",
4
4
  "displayName": "XP-Gate",
5
5
  "description": "Extreme Programming quality gates + AI workflow skills for Claude Code. Includes 12 pre-commit gates (Gate 0-11), 8 pre-push gates, Sprint Flow (6 phases), and Delphi multi-expert review (>=90% consensus).",
6
6
  "author": {
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Delphi Consensus Review — multi-round anonymous expert review (≥90% threshold, exactly 3 experts with distinct executable model IDs). Supports design, requirements, and code-walkthrough modes.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/SPRINT-FLOW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **6-phase** development pipeline (v2.0 compact redesign, Issue #290): PREP → DESIGN → BUILD → VERIFY → SHIP → CLOSE. Phase 3/6 BUILD default build mode is **ralph-loop** (REQ-level iteration, 40-67% token savings vs parallel). HARD-GATE between DESIGN (2/6) and BUILD (3/6): design must pass Delphi review (≥90% consensus) before any coding.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/TEST-SPECIFICATION-ALIGNMENT KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boyingliu01/dsh-plugin-xp-gate",
3
- "version": "0.33.0",
3
+ "version": "0.33.1",
4
4
  "description": "XP-Gate deterministic quality gates + AI workflow skills as a DeepSeek Harness (DSH) native plugin: gate-check / gate-principles / gate-arch tools + 12 SKILL.md skills",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Delphi Consensus Review — multi-round anonymous expert review (≥90% threshold, exactly 3 experts with distinct executable model IDs). Supports design, requirements, and code-walkthrough modes.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/SPRINT-FLOW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **6-phase** development pipeline (v2.0 compact redesign, Issue #290): PREP → DESIGN → BUILD → VERIFY → SHIP → CLOSE. Phase 3/6 BUILD default build mode is **ralph-loop** (REQ-level iteration, 40-67% token savings vs parallel). HARD-GATE between DESIGN (2/6) and BUILD (3/6): design must pass Delphi review (≥90% consensus) before any coding.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/TEST-SPECIFICATION-ALIGNMENT KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@boyingliu01/opencode-plugin",
3
- "version": "0.33.0",
3
+ "version": "0.33.1",
4
4
  "type": "module",
5
5
  "main": "index.ts",
6
6
  "description": "XP-Gate quality gates + AI workflow skills + Sprint Flow TUI sidebar for OpenCode",
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Delphi Consensus Review — multi-round anonymous expert review (≥90% threshold, exactly 3 experts with distinct executable model IDs). Supports design, requirements, and code-walkthrough modes.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/SPRINT-FLOW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **6-phase** development pipeline (v2.0 compact redesign, Issue #290): PREP → DESIGN → BUILD → VERIFY → SHIP → CLOSE. Phase 3/6 BUILD default build mode is **ralph-loop** (REQ-level iteration, 40-67% token savings vs parallel). HARD-GATE between DESIGN (2/6) and BUILD (3/6): design must pass Delphi review (≥90% consensus) before any coding.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/TEST-SPECIFICATION-ALIGNMENT KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xp-gate",
3
- "version": "0.33.0",
3
+ "version": "0.33.1",
4
4
  "displayName": "XP-Gate",
5
5
  "description": "Extreme Programming quality gates + AI workflow skills for Qoder. Includes 12 pre-commit gates (Gate 0-11), 8 pre-push gates, Sprint Flow (6 phases), and Delphi multi-expert review (>=90% consensus).",
6
6
  "author": {
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Delphi Consensus Review — multi-round anonymous expert review (≥90% threshold, exactly 3 experts with distinct executable model IDs). Supports design, requirements, and code-walkthrough modes.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/SPRINT-FLOW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **6-phase** development pipeline (v2.0 compact redesign, Issue #290): PREP → DESIGN → BUILD → VERIFY → SHIP → CLOSE. Phase 3/6 BUILD default build mode is **ralph-loop** (REQ-level iteration, 40-67% token savings vs parallel). HARD-GATE between DESIGN (2/6) and BUILD (3/6): design must pass Delphi review (≥90% consensus) before any coding.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/TEST-SPECIFICATION-ALIGNMENT KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.
@@ -1,9 +1,9 @@
1
1
  # PRINCIPLES CHECKER MODULE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Clean Code & SOLID principles checker — **Gate 4** of pre-commit. 14 rules × 9 language adapters, SARIF 2.1.0 output. Houses the **Boy Scout Rule** enforcement engine (Gate 6) and warning-baseline storage.
@@ -504,7 +504,12 @@ function main() {
504
504
  const mutation = syncModules('mutation');
505
505
  const mockPolicy = syncModules('mock-policy');
506
506
  const buildIntegrity = syncModules('build-integrity');
507
- console.error(`[sync] done: ${skills} skill(s), ${plugins} plugin(s), ${scripts} script(s), ${adapters} adapter entries, ${hooks} hook entries, ${principles + mutation + mockPolicy + buildIntegrity} module(s)`);
507
+ // #658: test-layers / pbt / python-health gate modules live in src/gates/ and
508
+ // were never bundled, so `xp-gate check test-layers` found no module in an npm
509
+ // install and silently skipped. Ship them (they import only ./common* which
510
+ // ship alongside).
511
+ const gates = syncModules('gates');
512
+ console.error(`[sync] done: ${skills} skill(s), ${plugins} plugin(s), ${scripts} script(s), ${adapters} adapter entries, ${hooks} hook entries, ${principles + mutation + mockPolicy + buildIntegrity + gates} module(s)`);
508
513
  if (skills !== CORE_SKILLS.length) {
509
514
  console.error(`[sync] ERROR: expected ${CORE_SKILLS.length} skills, copied ${skills}`);
510
515
  process.exit(1);
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Delphi Consensus Review — multi-round anonymous expert review (≥90% threshold, exactly 3 experts with distinct executable model IDs). Supports design, requirements, and code-walkthrough modes.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/SPRINT-FLOW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **6-phase** development pipeline (v2.0 compact redesign, Issue #290): PREP → DESIGN → BUILD → VERIFY → SHIP → CLOSE. Phase 3/6 BUILD default build mode is **ralph-loop** (REQ-level iteration, 40-67% token savings vs parallel). HARD-GATE between DESIGN (2/6) and BUILD (3/6): design must pass Delphi review (≥90% consensus) before any coding.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/TEST-SPECIFICATION-ALIGNMENT KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-10-30
4
- **Commit:** 3c5e9aaf
4
+ **Commit:** e713c2d1
5
5
  **Branch:** main
6
- **Version:** 0.33.0.0
6
+ **Version:** 0.33.1.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.