@boyingliu01/xp-gate 0.19.1 → 0.19.3

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 (87) hide show
  1. package/gate-10.sh +105 -0
  2. package/hooks/pre-commit +24 -5
  3. package/lib/__tests__/npm-package.test.js +25 -0
  4. package/lib/mattpocock-license-verdict.json +1 -1
  5. package/mock-policy/AGENTS.md +3 -3
  6. package/mutation/AGENTS.md +3 -3
  7. package/package.json +2 -1
  8. package/plugins/claude-code/.claude-plugin/plugin.json +2 -2
  9. package/plugins/claude-code/skills/delphi-review/AGENTS.md +3 -3
  10. package/plugins/claude-code/skills/sprint-flow/AGENTS.md +3 -3
  11. package/plugins/claude-code/skills/test-specification-alignment/AGENTS.md +3 -3
  12. package/plugins/dsh/package.json +1 -1
  13. package/plugins/dsh/skills/delphi-review/AGENTS.md +3 -3
  14. package/plugins/dsh/skills/sprint-flow/AGENTS.md +3 -3
  15. package/plugins/dsh/skills/test-specification-alignment/AGENTS.md +3 -3
  16. package/plugins/opencode/package.json +1 -1
  17. package/plugins/opencode/skills/delphi-review/AGENTS.md +3 -3
  18. package/plugins/opencode/skills/sprint-flow/AGENTS.md +3 -3
  19. package/plugins/opencode/skills/test-specification-alignment/AGENTS.md +3 -3
  20. package/plugins/qoder/plugin.json +2 -2
  21. package/plugins/qoder/skills/admin-template-guidelines/SKILL.md +6 -797
  22. package/plugins/qoder/skills/admin-template-guidelines/references/rule-1.md +91 -0
  23. package/plugins/qoder/skills/admin-template-guidelines/references/rule-2.md +155 -0
  24. package/plugins/qoder/skills/admin-template-guidelines/references/rule-3.md +70 -0
  25. package/plugins/qoder/skills/admin-template-guidelines/references/rule-4.md +154 -0
  26. package/plugins/qoder/skills/admin-template-guidelines/references/rule-5.md +126 -0
  27. package/plugins/qoder/skills/admin-template-guidelines/references/rule-6.md +180 -0
  28. package/plugins/qoder/skills/batch-grill-me/SKILL.md +15 -0
  29. package/plugins/qoder/skills/clipboard-vision/describe-clipboard.ps1 +115 -0
  30. package/plugins/qoder/skills/clipboard-vision/describe-clipboard.sh +161 -0
  31. package/plugins/qoder/skills/delphi-review/.delphi-config.json.example +61 -28
  32. package/plugins/qoder/skills/delphi-review/AGENTS.md +3 -3
  33. package/plugins/qoder/skills/delphi-review/INSTALL.md +97 -98
  34. package/plugins/qoder/skills/delphi-review/SKILL.md +77 -54
  35. package/plugins/qoder/skills/delphi-review/hooks.md +19 -0
  36. package/plugins/qoder/skills/delphi-review/opencode.json.delphi.example +6 -10
  37. package/plugins/qoder/skills/delphi-review/references/orchestrator-dispatch.md +64 -0
  38. package/plugins/qoder/skills/delphi-review/references/requirements.md +402 -0
  39. package/plugins/qoder/skills/delphi-review/references/round-templates.md +134 -0
  40. package/plugins/qoder/skills/delphi-review/scripts/verify-consensus.sh +43 -0
  41. package/plugins/qoder/skills/delphi-review/tools.md +29 -0
  42. package/plugins/qoder/skills/domain-modeling/ADR-FORMAT.md +64 -0
  43. package/plugins/qoder/skills/domain-modeling/CONTEXT-FORMAT.md +60 -0
  44. package/plugins/qoder/skills/domain-modeling/SKILL.md +74 -0
  45. package/plugins/qoder/skills/grill-with-docs/SKILL.md +7 -0
  46. package/plugins/qoder/skills/grilling/SKILL.md +12 -0
  47. package/plugins/qoder/skills/ralph-loop/SKILL.md +87 -428
  48. package/plugins/qoder/skills/ralph-loop/references/components.md +113 -0
  49. package/plugins/qoder/skills/ralph-loop/references/workflow-details.md +99 -0
  50. package/plugins/qoder/skills/sprint-flow/AGENTS.md +4 -4
  51. package/plugins/qoder/skills/sprint-flow/SKILL.md +255 -454
  52. package/plugins/qoder/skills/sprint-flow/__tests__/sprint-flow.test.cjs +457 -0
  53. package/plugins/qoder/skills/sprint-flow/hooks.md +18 -0
  54. package/plugins/qoder/skills/sprint-flow/references/components/memory.md +1 -1
  55. package/plugins/qoder/skills/sprint-flow/references/components/middleware.md +1 -1
  56. package/plugins/qoder/skills/sprint-flow/references/components/skill-invocations.md +21 -20
  57. package/plugins/qoder/skills/sprint-flow/references/components/tool-descriptions.md +22 -23
  58. package/plugins/qoder/skills/sprint-flow/references/force-levels.md +0 -1
  59. package/plugins/qoder/skills/sprint-flow/references/orchestration-rules.md +34 -27
  60. package/plugins/qoder/skills/sprint-flow/references/phase-1-prep.md +1 -1
  61. package/plugins/qoder/skills/sprint-flow/references/phase-2-design.md +157 -120
  62. package/plugins/qoder/skills/sprint-flow/references/phase-3-build.md +203 -2
  63. package/plugins/qoder/skills/sprint-flow/references/phase-4-verify.md +107 -34
  64. package/plugins/qoder/skills/sprint-flow/references/phase-5-ship.md +194 -12
  65. package/plugins/qoder/skills/sprint-flow/references/phase-6-close.md +139 -7
  66. package/plugins/qoder/skills/sprint-flow/references/phase-overview.md +486 -0
  67. package/plugins/qoder/skills/sprint-flow/scripts/verify-sprint-state.sh +38 -0
  68. package/plugins/qoder/skills/sprint-flow/tools.md +29 -0
  69. package/plugins/qoder/skills/test-specification-alignment/AGENTS.md +3 -3
  70. package/plugins/qoder/skills/test-specification-alignment/SKILL.md +104 -601
  71. package/plugins/qoder/skills/to-issues/SKILL.md +1 -1
  72. package/principles/AGENTS.md +3 -3
  73. package/skills/delphi-review/AGENTS.md +3 -3
  74. package/skills/sprint-flow/AGENTS.md +3 -3
  75. package/skills/test-specification-alignment/AGENTS.md +3 -3
  76. package/plugins/qoder/skills/clipboard-vision/clipboard-vision/SKILL.md +0 -47
  77. package/plugins/qoder/skills/clipboard-vision/clipboard-vision/__tests__/clipboard-vision-distribution.test.cjs +0 -65
  78. package/plugins/qoder/skills/clipboard-vision/clipboard-vision/__tests__/clipboard-vision-security.test.cjs +0 -185
  79. package/plugins/qoder/skills/clipboard-vision/clipboard-vision/__tests__/clipboard-vision.Tests.ps1 +0 -138
  80. package/plugins/qoder/skills/clipboard-vision/clipboard-vision/__tests__/clipboard-vision.test.cjs +0 -273
  81. package/plugins/qoder/skills/clipboard-vision/clipboard-vision/scripts/clipboard-vision.ps1 +0 -86
  82. package/plugins/qoder/skills/clipboard-vision/clipboard-vision/scripts/clipboard-vision.sh +0 -137
  83. package/plugins/qoder/skills/ralph-loop/references/components/memory.md +0 -55
  84. package/plugins/qoder/skills/ralph-loop/references/components/middleware.md +0 -54
  85. package/plugins/qoder/skills/ralph-loop/references/components/skill-invocations.md +0 -39
  86. package/plugins/qoder/skills/ralph-loop/references/components/system-prompt.md +0 -24
  87. package/plugins/qoder/skills/ralph-loop/references/components/tool-descriptions.md +0 -32
package/gate-10.sh ADDED
@@ -0,0 +1,105 @@
1
+ # shellcheck shell=bash
2
+ # ============================================================================
3
+ # GATE 10: Semgrep SAST Security Scan
4
+ # Detects security vulnerabilities (SQL injection, XSS, etc.) in staged files
5
+ # Tool: semgrep -- https://semgrep.dev
6
+ # ============================================================================
7
+
8
+ 2>&1 echo ""
9
+ 2>&1 echo "→ Gate 10: Semgrep SAST Security Scan..."
10
+ GATE_10_START=$(gate_start_ms)
11
+
12
+ GATE_10_STATUS=""
13
+
14
+ # Semgrep availability check
15
+ SEMGREP_CMD=""
16
+ if command -v semgrep >/dev/null 2>&1; then
17
+ SEMGREP_CMD="semgrep"
18
+ elif [ -f "$HOME/.local/bin/semgrep" ]; then
19
+ SEMGREP_CMD="$HOME/.local/bin/semgrep"
20
+ fi
21
+
22
+ if [ -z "$SEMGREP_CMD" ]; then
23
+ echo " ⚠️ WARN - semgrep not installed — SAST scanning unavailable"
24
+ echo " Install: brew install semgrep (macOS) | pip install semgrep (Linux) | pip install semgrep (Windows)"
25
+ echo " Pre-cache rules: semgrep --config=p/security-audit"
26
+ echo " Gate 10: SAST Security (WARN, semgrep not installed)"
27
+ GATE_10_STATUS="WARN"
28
+ else
29
+ # Get staged files filtered to Semgrep-supported languages
30
+ SEMGREP_FILES=$(git diff --cached --name-only --diff-filter=ACM 2>/dev/null | grep -E '\.(ts|tsx|js|jsx|py|go|java|c|cpp|cs|rb|php|scala|swift)$' || true)
31
+
32
+ if [ -z "$SEMGREP_FILES" ]; then
33
+ echo " ⏭️ SKIPPED - SAST (no supported language files changed)"
34
+ GATE_10_STATUS="SKIP"
35
+ else
36
+ # Run semgrep with JSON output
37
+ # --config=p/security-audit: explicit security ruleset
38
+ # --json: machine-readable output
39
+ # --disable-version-check: skip network call
40
+ SEMGREP_OUTPUT=$("$SEMGREP_CMD" scan --config=p/security-audit --json --disable-version-check "$SEMGREP_FILES" 2>&1)
41
+ SEMGREP_EXIT=$?
42
+
43
+ if [ "$SEMGREP_EXIT" -eq 0 ]; then
44
+ echo " ✅ PASSED - No security vulnerabilities found."
45
+ GATE_10_STATUS="PASS"
46
+ elif [ "$SEMGREP_EXIT" -eq 1 ]; then
47
+ # Findings detected - parse JSON to categorize
48
+ CRITICAL_HIGH=$(echo "$SEMGREP_OUTPUT" | node -e "
49
+ let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{
50
+ try{const data=JSON.parse(d);const results=data.results||[];
51
+ const count=results.filter(r=>{const s=(r.extra&&r.extra.severity||'').toUpperCase();return s==='CRITICAL'||s==='HIGH';}).length;
52
+ console.log(count);}catch(e){console.log('0');}
53
+ });" 2>/dev/null || echo "0")
54
+
55
+ MEDIUM_LOW=$(echo "$SEMGREP_OUTPUT" | node -e "
56
+ let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{
57
+ try{const data=JSON.parse(d);const results=data.results||[];
58
+ const count=results.filter(r=>{const s=(r.extra&&r.extra.severity||'').toUpperCase();return s==='MEDIUM'||s==='LOW';}).length;
59
+ console.log(count);}catch(e){console.log('0');}
60
+ });" 2>/dev/null || echo "0")
61
+
62
+ # Extract top finding details
63
+ FINDING_DETAILS=$(echo "$SEMGREP_OUTPUT" | node -e "
64
+ let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{
65
+ try{const data=JSON.parse(d);const results=data.results||[];
66
+ results.slice(0,5).forEach(r=>{const extra=r.extra||{};
67
+ const severity=(extra.severity||'UNKNOWN').toUpperCase();
68
+ const ruleId=r.check_id||'unknown';const path=r.path||'unknown';
69
+ const line=(r.start&&r.start.line)||'?';const msg=(extra.message||'').slice(0,80);
70
+ console.log(' ['+severity+'] '+ruleId);console.log(' '+path+':'+line+' → '+msg);console.log();});
71
+ }catch(e){console.log(' (Failed to parse semgrep output)');}
72
+ });" 2>/dev/null || echo " (Failed to parse semgrep output)")
73
+
74
+ if [ "$CRITICAL_HIGH" -gt 0 ]; then
75
+ echo ""
76
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
77
+ echo " GATE 10: Semgrep Security Gate"
78
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
79
+ echo " CRITICAL/HIGH: ${CRITICAL_HIGH} ❌ BLOCKED"
80
+ echo " MEDIUM/LOW: ${MEDIUM_LOW} ⚠️ warning"
81
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
82
+ echo " ❌ BLOCKED — Critical/High vulnerability found"
83
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
84
+ echo "$FINDING_DETAILS"
85
+ echo " Run 'semgrep scan --config=p/security-audit' to review all findings."
86
+ GATE_10_STATUS="FAIL"
87
+ exit 1
88
+ else
89
+ echo ""
90
+ echo " ✅ PASSED - No critical/high vulnerabilities"
91
+ if [ "$MEDIUM_LOW" -gt 0 ]; then
92
+ echo " ⚠️ ${MEDIUM_LOW} medium/low findings (warnings only)"
93
+ echo "$FINDING_DETAILS"
94
+ fi
95
+ GATE_10_STATUS="PASS"
96
+ fi
97
+ else
98
+ # semgrep runtime error (timeout, config error, etc.)
99
+ echo " ⚠️ semgrep exited with code ${SEMGREP_EXIT} — skipping gate"
100
+ echo " ⏭️ SKIPPED - SAST (semgrep runtime error)"
101
+ GATE_10_STATUS="SKIP"
102
+ fi
103
+ fi
104
+ fi
105
+ record_gate_audit "gate-10" "sast-security" "$GATE_10_STATUS" "0" "$GATE_10_START"
package/hooks/pre-commit CHANGED
@@ -1013,8 +1013,16 @@ else
1013
1013
  else
1014
1014
  # Run Ruff (includes syntax check, linting)
1015
1015
  echo "Running Ruff linting (syntax + lint)..."
1016
- RUFF_OUTPUT=$(ruff check "$CHANGED_FILES" --output-format json 2>&1)
1017
- RUFF_EXIT=$?
1016
+ # Filter to *.py (unquoted) like the format/debug gates below; skip ruff
1017
+ # when no Python files are staged so yaml/.gitignore are never parsed.
1018
+ PY_LINT_FILES=$(echo "$CHANGED_FILES" | grep '\.py$' || true)
1019
+ if [ -z "$PY_LINT_FILES" ]; then
1020
+ RUFF_OUTPUT="[]"
1021
+ RUFF_EXIT=0
1022
+ else
1023
+ RUFF_OUTPUT=$(ruff check $PY_LINT_FILES --output-format json 2>&1)
1024
+ RUFF_EXIT=$?
1025
+ fi
1018
1026
  if [ "$RUFF_EXIT" -ne 0 ]; then
1019
1027
  if [ -f ".xp-gate/lint-baseline.json" ] && command -v node &> /dev/null; then
1020
1028
  # Get baseline warnings for changed Python files
@@ -1101,9 +1109,14 @@ else
1101
1109
 
1102
1110
  # Optional: Type checking with mypy
1103
1111
  if command -v mypy &> /dev/null; then
1104
- echo "Running mypy type checking (optional)..."
1105
- mypy --ignore-missing-imports $(echo "$CHANGED_FILES" | grep "\.py$" || echo ".") 2>&1 | head -20 | tail -10
1106
- MYPY_EXIT=$?
1112
+ PY_MYPY_FILES=$(echo "$CHANGED_FILES" | grep "\.py$" || true)
1113
+ if [ -z "$PY_MYPY_FILES" ]; then
1114
+ MYPY_EXIT=0
1115
+ else
1116
+ echo "Running mypy type checking (optional)..."
1117
+ mypy --ignore-missing-imports $PY_MYPY_FILES 2>&1 | head -20 | tail -10
1118
+ MYPY_EXIT=$?
1119
+ fi
1107
1120
  if [ "$MYPY_EXIT" -ne 0 ]; then
1108
1121
  echo ""
1109
1122
  echo "❌ BLOCKED - MYPI TYPE ERRORS detected"
@@ -2565,12 +2578,18 @@ fi
2565
2578
  GATE_11_START=$(date +%s)
2566
2579
  GATE_11_STATUS="PASS"
2567
2580
 
2581
+ # BEGIN SPRINT_GATE_SCRIPT RESOLUTION
2582
+ # Tier order: GATE_DIR (gate scripts dir) -> repo-root githooks/ -> SCRIPT_DIR
2583
+ # (hooks dir; update-hooks installs sprint-gate.sh beside pre-commit/pre-push).
2568
2584
  SPRINT_GATE_SCRIPT=""
2569
2585
  if [ -f "$GATE_DIR/sprint-gate.sh" ]; then
2570
2586
  SPRINT_GATE_SCRIPT="$GATE_DIR/sprint-gate.sh"
2571
2587
  elif [ -f "$(git rev-parse --show-toplevel 2>/dev/null)/githooks/sprint-gate.sh" ]; then
2572
2588
  SPRINT_GATE_SCRIPT="$(git rev-parse --show-toplevel)/githooks/sprint-gate.sh"
2589
+ elif [ -f "$SCRIPT_DIR/sprint-gate.sh" ]; then
2590
+ SPRINT_GATE_SCRIPT="$SCRIPT_DIR/sprint-gate.sh"
2573
2591
  fi
2592
+ # END SPRINT_GATE_SCRIPT RESOLUTION
2574
2593
 
2575
2594
  if [ -n "$SPRINT_GATE_SCRIPT" ]; then
2576
2595
  if ! bash "$SPRINT_GATE_SCRIPT" --pre-commit; then
@@ -110,3 +110,28 @@ describe('published adapter-common.sh', () => {
110
110
  expect(published).toContain('run_without_git_context');
111
111
  });
112
112
  });
113
+
114
+ // ---------- Issue #411: gate scripts must be publishable (doctor parity) ----------
115
+
116
+ describe('Issue #411: every gate-*.sh at package root is listed in "files"', () => {
117
+ const GATE_SCRIPT_RE = /^gate-\d+.*\.sh$/;
118
+
119
+ it('files array covers all gate scripts present at package root', () => {
120
+ const rootScripts = fs.readdirSync(pkgDir).filter(f => GATE_SCRIPT_RE.test(f));
121
+ expect(rootScripts.length).toBeGreaterThan(0);
122
+ const files = pkg.files || [];
123
+ const missing = rootScripts.filter(f => !files.includes(f));
124
+ expect(missing).toEqual([]);
125
+ });
126
+
127
+ it('files array covers doctor EXPECTED_GATE_SCRIPTS', () => {
128
+ const doctorSrc = fs.readFileSync(path.join(pkgDir, 'lib', 'doctor.js'), 'utf8');
129
+ const match = doctorSrc.match(/EXPECTED_GATE_SCRIPTS\s*=\s*\[([^\]]*)\]/);
130
+ expect(match).not.toBeNull();
131
+ const expected = [...match[1].matchAll(/'([^']+)'/g)].map(m => m[1]);
132
+ expect(expected).toContain('gate-10.sh');
133
+ const files = pkg.files || [];
134
+ const missing = expected.filter(f => !files.includes(f));
135
+ expect(missing).toEqual([]);
136
+ });
137
+ });
@@ -2,6 +2,6 @@
2
2
  "verdict": "PASS",
3
3
  "license_type": "MIT",
4
4
  "sha256": "0e7ac423bf2c6e223b7c5b156f8cf72da49d748e56a1641402c31f22ad07dbb5",
5
- "checked_at": "2026-08-30T15:25:50.166Z",
5
+ "checked_at": "2026-09-24T04:13:16.240Z",
6
6
  "source": "network"
7
7
  }
@@ -1,9 +1,9 @@
1
1
  # SRC/MOCK-POLICY KNOWLEDGE BASE
2
2
 
3
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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.19.1",
3
+ "version": "0.19.3",
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"
@@ -23,6 +23,7 @@
23
23
  "gate-7.sh",
24
24
  "gate-8.sh",
25
25
  "gate-9.sh",
26
+ "gate-10.sh",
26
27
  "gate-12-file-hygiene.sh",
27
28
  "sprint-gate.sh"
28
29
  ],
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "xp-gate",
3
- "version": "0.19.1",
3
+ "version": "0.19.3",
4
4
  "displayName": "XP-Gate",
5
- "description": "Extreme Programming quality gates + AI workflow skills for Claude Code. Includes 10 quality gates (Gate 0-9), Sprint Flow (11 phases), and Delphi multi-expert review (>=90% consensus).",
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": {
7
7
  "name": "boyingliu01"
8
8
  },
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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.19.1",
3
+ "version": "0.19.3",
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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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.19.1",
3
+ "version": "0.19.3",
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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.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
- **Generated:** 2026-08-30
4
- **Commit:** 0848858
3
+ **Generated:** 2026-09-24
4
+ **Commit:** 467174d
5
5
  **Branch:** main
6
- **Version:** 0.19.1.0
6
+ **Version:** 0.19.3.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "xp-gate",
3
- "version": "0.19.1",
3
+ "version": "0.19.3",
4
4
  "displayName": "XP-Gate",
5
- "description": "Extreme Programming quality gates + AI workflow skills for Qoder. Includes 10 quality gates (Gate 0-9), Sprint Flow (11 phases), and Delphi multi-expert review (>=90% consensus).",
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": {
7
7
  "name": "boyingliu01"
8
8
  },