@boyingliu01/xp-gate 0.25.0 → 0.26.0

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.
@@ -91,12 +91,62 @@ run_static_analysis() {
91
91
  return 0
92
92
  fi
93
93
  fi
94
- # 逐目标调用并聚合退出码(口径见函数头注释)。
95
- require_tool mypy "mypy" || return 1
94
+ # #534: engine selection. mypy is ALWAYS the authoritative engine (determinism —
95
+ # ty is an alpha, ~70% spec conformance, config-incompatible). ty is used ONLY
96
+ # as an explicit opt-in accelerator when XP_GATE_TY=1 AND `ty` is installed:
97
+ # - XP_GATE_TY=1 + ty present -> `ty check <target>` (ty's CLI is `ty check`,
98
+ # not `ty`; exit 1 = type errors -> BLOCK, exit 2 = config/CLI error -> SKIP)
99
+ # - XP_GATE_TY=1 + ty missing -> SKIP (return 0), never BLOCK: the opt-in
100
+ # path must not route through require_tool mypy and false-block a repo that
101
+ # opted into ty but lacks mypy (Delphi R1 Critical).
102
+ # - XP_GATE_TY unset -> pure mypy (authoritative), unchanged.
103
+ # Scope semantics (.xp-gate-mypy-scope / src/ scripts/) are engine-independent
104
+ # and preserved verbatim below.
105
+ local _engine=mypy
106
+ if [ "${XP_GATE_TY:-}" = "1" ]; then
107
+ if command -v ty >/dev/null 2>&1; then
108
+ _engine=ty
109
+ echo " ⚙ engine: ty (Rust, explicit opt-in via XP_GATE_TY=1) — mypy remains the default"
110
+ elif command -v mypy >/dev/null 2>&1; then
111
+ # ty opted in but missing; mypy present -> fall back to the authoritative
112
+ # engine with a warning (never silently drop the type gate, #534 R2 arch).
113
+ echo " ⚠ ty requested (XP_GATE_TY=1) but not installed — falling back to mypy"
114
+ else
115
+ echo " ⚠ ty opted in via XP_GATE_TY=1 but neither ty nor mypy is installed — SKIPPING type check (no BLOCK)"
116
+ echo " install: pip install mypy, or pip install ty (alpha)"
117
+ return 0
118
+ fi
119
+ fi
120
+ # require_tool mypy only on the authoritative (mypy) engine path: when the
121
+ # user opted into ty, a missing mypy must NOT false-BLOCK (Delphi R1 Critical).
122
+ if [ "$_engine" = "mypy" ]; then
123
+ require_tool mypy "mypy" || return 1
124
+ fi
96
125
  local _mypy_rc=0
97
126
  local _mypy_t
98
127
  for _mypy_t in "${MYPY_TARGETS[@]}"; do
99
- mypy "$_mypy_t" || _mypy_rc=1
128
+ if [ "$_engine" = "ty" ]; then
129
+ # ty's CLI is `ty check <path>`, not `ty <path>`. Bare `ty`/`ty check .`
130
+ # without targets would recurse the whole tree (== the anti `mypy .`
131
+ # guard #501/#513): targets are always explicit here. Capture ty's own
132
+ # exit code and diagnostics via a temp file (never discard them): a BLOCK
133
+ # with no reason is undebuggable, and a pipe `| head` would lose the code.
134
+ local _ty_rc=0
135
+ local _ty_tmp
136
+ _ty_tmp="$(mktemp)"
137
+ ty check "$_mypy_t" > "$_ty_tmp" 2>&1 || _ty_rc=$?
138
+ if [ "$_ty_rc" -eq 2 ]; then
139
+ echo " ⚠ ty exited $_ty_rc on target '$_mypy_t' (config/CLI error) — SKIPPING, not blocking"
140
+ head -30 "$_ty_tmp"
141
+ elif [ "$_ty_rc" -ne 0 ]; then
142
+ echo " ty report for '$_mypy_t' (exit $_ty_rc):"
143
+ head -30 "$_ty_tmp"
144
+ _mypy_rc=1
145
+ fi
146
+ rm -f "$_ty_tmp"
147
+ else
148
+ mypy "$_mypy_t" || _mypy_rc=1
149
+ fi
100
150
  done
101
151
  return $_mypy_rc
102
152
  }
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Incremental Python type-checking helpers for the pre-commit Python branch
4
+ # (#534). This is the FAST staged-only pass: pre-commit runs it on just the
5
+ # .py/.pyi files that changed, so a large repo doesn't pay full-inference CPU
6
+ # on every commit. It complements the FULL mypy pass (githooks/adapters/
7
+ # python.sh run_static_analysis, reachable via the adapter CLI / CI), which is
8
+ # where cross-module blind spots get caught.
9
+ #
10
+ # Sourced by githooks/pre-commit (the python) case. Requires CHANGED_FILES
11
+ # (space/newline separated, repo-root relative) to be in scope, matching the
12
+ # rest of the inline branch.
13
+ #
14
+ # Shellcheck: functions are the public API used by pre-commit; SC1091 sources
15
+ # are intentionally not resolved here (adapter-common not needed).
16
+
17
+ # Extract the staged .py/.pyi files from CHANGED_FILES, one per line.
18
+ # Excludes vendored/ignored trees (.venv, venv, node_modules) that a hook
19
+ # should never type-check. Handles whitespace in paths (echo + grep would
20
+ # split them).
21
+ python_staged_py_files() {
22
+ local f
23
+ while IFS= read -r f || [ -n "$f" ]; do
24
+ case "$f" in
25
+ .venv/*|venv/*|node_modules/*) continue ;;
26
+ *.py|*.pyi) printf '%s\n' "$f" ;;
27
+ esac
28
+ done <<< "$CHANGED_FILES"
29
+ }
30
+
31
+ # Run incremental mypy over the given staged files, returning mypy's REAL exit
32
+ # code (never a pipe stage's). Adds --follow-imports=silent so that a change to
33
+ # A.py that references an unchanged B.py does not surface B's own pre-existing
34
+ # diagnostics — only caller-level signature errors are reported. Callers must
35
+ # pass the file list as arguments (already filtered to .py/.pyi).
36
+ #
37
+ # Scope discipline (same .xp-gate-mypy-scope contract as python.sh): a staged
38
+ # file OUTSIDE the declared mypy scope is skipped with a note rather than type-
39
+ # checked, keeping the incremental pass consistent with the full pass. Files in
40
+ # scope default to "under src/ or scripts/" when no scope file exists.
41
+ python_typecheck_incremental() {
42
+ [ "$#" -gt 0 ] || return 0
43
+
44
+ # Resolve the declared scope (identical precedence to run_static_analysis):
45
+ # .xp-gate-mypy-scope (one target per line) wins; else src/ and scripts/
46
+ # are the implicit default. Any staged .py outside this surface is skipped.
47
+ local -a SCOPE_DIRS=()
48
+ local _declared=0 line target
49
+ if [ -f .xp-gate-mypy-scope ]; then
50
+ while IFS= read -r line || [ -n "$line" ]; do
51
+ line="${line%%#*}"
52
+ line="${line#"${line%%[![:space:]]*}"}"
53
+ line="${line%"${line##*[![:space:]]}"}"
54
+ [ -z "$line" ] && continue
55
+ _declared=1
56
+ # Normalize trailing slashes (`src/` -> `src`) so the `$target/*` prefix
57
+ # match below never sees a doubled slash (`src//a.py` would never match).
58
+ line="${line%/}"
59
+ SCOPE_DIRS+=("$line")
60
+ done < .xp-gate-mypy-scope
61
+ else
62
+ [ -d src ] && SCOPE_DIRS+=(src)
63
+ [ -d scripts ] && SCOPE_DIRS+=(scripts)
64
+ fi
65
+
66
+ # If a scope file is declared but yields nothing, every staged .py is out of
67
+ # scope -> SKIP (exit 0), mirroring the full pass.
68
+ local _in_scope=false
69
+ local -a TYPECHECK_FILES=()
70
+ local f
71
+ if [ "${#SCOPE_DIRS[@]}" -gt 0 ]; then
72
+ for f in "$@"; do
73
+ _in_scope=false
74
+ for target in "${SCOPE_DIRS[@]}"; do
75
+ case "$f" in
76
+ "$target"/*) _in_scope=true ;;
77
+ esac
78
+ [ "$_in_scope" = true ] && break
79
+ done
80
+ if [ "$_in_scope" = true ]; then
81
+ TYPECHECK_FILES+=("$f")
82
+ else
83
+ echo " ℹ️ mypy incremental: '$f' is outside declared scope — skipped"
84
+ fi
85
+ done
86
+ fi
87
+
88
+ [ "${#TYPECHECK_FILES[@]}" -gt 0 ] || return 0
89
+
90
+ # Capture mypy's exit code directly. A pipeline like
91
+ # mypy ... | head -20 | tail -10; rc=$?
92
+ # loses mypy's real status (the pipe stage's rc is used instead), which made
93
+ # the gate pass silently on real type errors. Redirect to a temp file, take
94
+ # mypy's own exit code, then print a truncated view.
95
+ local tmp
96
+ tmp="$(mktemp)"
97
+ echo "Running mypy type checking (incremental)..."
98
+ mypy --follow-imports=silent --ignore-missing-imports "${TYPECHECK_FILES[@]}" > "$tmp" 2>&1
99
+ local _mypy_rc=$?
100
+ head -20 "$tmp"
101
+ tail -10 "$tmp"
102
+ rm -f "$tmp"
103
+ return "$_mypy_rc"
104
+ }
@@ -3,6 +3,16 @@
3
3
  # Gate 1 TypeScript static analysis — the single place that decides HOW a project
4
4
  # is type-checked (#436).
5
5
  #
6
+ # NOT incremental (deliberately, #534): TypeScript type-checking cannot be
7
+ # reduced to "staged files only". `tsc` has no single-file check mode — it must
8
+ # resolve the whole module graph to report a file's real type errors, so
9
+ # type-checking only the changed files would silently miss "changing B.ts breaks
10
+ # an unchanged caller in A.ts". Pre-commit therefore runs the project's full
11
+ # typecheck (`npm run typecheck` / `npx tsc --noEmit`) every commit. This is the
12
+ # CORRECTNESS-preserving exception to xp-gate's incremental rule: lint (ESLint /
13
+ # Biome) IS incremental (staged files / --staged), but type-check stays full
14
+ # because incremental type-checking would be wrong, not just slower.
15
+ #
6
16
  # Before this file, `githooks/pre-commit` and `githooks/adapters/typescript.sh` each
7
17
  # hardcoded `npx tsc --noEmit`. Plain tsc cannot resolve `.vue` single-file
8
18
  # components, so every `import X from './Foo.vue'` became a TS2307 and a Vue project
package/hooks/pre-commit CHANGED
@@ -235,6 +235,11 @@ source "${AUDIT_SCRIPT_DIR}/lib/coverage-total.sh"
235
235
  # unit-testable without executing this hook.
236
236
  source "${AUDIT_SCRIPT_DIR}/lib/python-test-selection.sh"
237
237
 
238
+ # Issue #534: incremental Python type-check for the pre-commit python branch —
239
+ # staged-only mypy (fast) that complements python.sh's CI-aligned full pass.
240
+ # Kept in a library so the exit-code capture and scope handling are unit-testable.
241
+ source "${AUDIT_SCRIPT_DIR}/lib/python-incremental-typecheck.sh"
242
+
238
243
  # Read max_duration_ms from .xp-gate-config.json (default 7200000 = 2 hours)
239
244
  _MAX_DURATION_MS=$(node -e "try{const c=JSON.parse(require('fs').readFileSync('${PROJECT_ROOT_FOR_AUDIT}/.xp-gate-config.json','utf8'));console.log((c.audit&&c.audit.max_duration_ms)||7200000);}catch(e){console.log(7200000);}" 2>/dev/null || echo "7200000")
240
245
 
@@ -1308,24 +1313,38 @@ else
1308
1313
  fi
1309
1314
  fi
1310
1315
 
1311
- # Optional: Type checking with mypy
1316
+ # Optional: Type checking with mypy — INCREMENTAL (fast, staged-only).
1317
+ #
1318
+ # Responsibility boundary (#534):
1319
+ # * This branch (python case) runs mypy ONLY over the staged .py/.pyi
1320
+ # files via python_typecheck_incremental — seconds, not a full inference
1321
+ # pass. Uses --follow-imports=silent so a change to A.py that references
1322
+ # an unchanged B.py does NOT surface B's pre-existing diagnostics; only
1323
+ # caller-level signature errors still block. Its exit code is captured
1324
+ # directly (temp file), which is deterministic and does not depend on
1325
+ # set -o pipefail (the old `... | head | tail; rc=$?` worked only under
1326
+ # pipefail and could drop mypy's status when the pattern is copied into
1327
+ # a non-pipefail context).
1328
+ # * The FULL mypy pass lives OUTSIDE this hook: run_static_analysis()
1329
+ # (githooks/adapters/python.sh) is reachable via the adapter CLI and the
1330
+ # general adapter route, and CI installs mypy (quality-gates.yml) for
1331
+ # typed projects. NOTE: the pre-commit python case is fully inline and
1332
+ # never routes to run_static_analysis — so the incremental blind spot
1333
+ # (cross-module signature break on an unchanged file) is the accepted
1334
+ # trade-off here, backstopped by full mypy wherever that surface runs.
1335
+ # Both paths coexist: this one is the fast pre-commit pass.
1312
1336
  if command -v mypy &> /dev/null; then
1337
+ # Collect staged .py/.pyi via the helper (whitespace-safe, bash-3
1338
+ # compatible — macOS default bash is 3.2, so avoid mapfile).
1313
1339
  MYPY_ARGS=()
1314
1340
  while IFS= read -r staged_file; do
1315
- case "$staged_file" in
1316
- *.py|*.pyi) MYPY_ARGS+=("$staged_file") ;;
1317
- esac
1318
- done <<< "$CHANGED_FILES"
1319
- if [ "${#MYPY_ARGS[@]}" -eq 0 ]; then
1320
- MYPY_EXIT=0
1321
- else
1322
- echo "Running mypy type checking (optional)..."
1323
- mypy --ignore-missing-imports "${MYPY_ARGS[@]}" 2>&1 | head -20 | tail -10
1324
- MYPY_EXIT=$?
1325
- fi
1341
+ MYPY_ARGS+=("$staged_file")
1342
+ done < <(python_staged_py_files)
1343
+ python_typecheck_incremental "${MYPY_ARGS[@]}"
1344
+ MYPY_EXIT=$?
1326
1345
  if [ "$MYPY_EXIT" -ne 0 ]; then
1327
1346
  echo ""
1328
- echo "❌ BLOCKED - MYPI TYPE ERRORS detected"
1347
+ echo "❌ BLOCKED - MYPY TYPE ERRORS detected"
1329
1348
  echo "Fix the type errors above before committing."
1330
1349
  exit 1
1331
1350
  fi
@@ -1342,16 +1361,32 @@ else
1342
1361
  echo "ℹ️ golangci-lint not available — skipping Go linting"
1343
1362
  echo "⏭️ SKIPPED - Code quality (golangci-lint not available)"
1344
1363
  else
1345
- echo "Running golangci-lint (comprehensive static analysis)..."
1346
- golangci-lint run 2>&1 | head -30
1347
- GOLANGCI_EXIT=$?
1348
- if [ "$GOLANGCI_EXIT" -ne 0 ]; then
1349
- echo ""
1350
- echo "❌ BLOCKED - GOLANGCI-LINT ERRORS detected"
1351
- echo "Fix the lint errors above before committing."
1352
- exit 1
1364
+ # #534: run golangci-lint over ONLY the staged .go files (incremental),
1365
+ # not the whole repo. `golangci-lint run` with no args scans every package
1366
+ # and dominates pre-commit time on large Go repos. golangci-lint accepts
1367
+ # explicit file targets. No staged .go files -> SKIP (nothing to lint).
1368
+ GO_FILES=$(echo "$CHANGED_FILES" | grep '\.go$' || true)
1369
+ if [ -z "$GO_FILES" ]; then
1370
+ echo "✅ PASSED - No staged Go files to lint."
1371
+ else
1372
+ echo "Running golangci-lint (incremental, staged .go)..."
1373
+ # #534: capture golangci-lint's REAL exit code via a temp file, not a
1374
+ # pipe stage's (`... | head -30; rc=$?` would take head's status; it only
1375
+ # works because of set -o pipefail, which is fragile and inconsistent with
1376
+ # the python incremental helper's temp-file pattern).
1377
+ GO_TMP=$(mktemp)
1378
+ golangci-lint run $GO_FILES > "$GO_TMP" 2>&1
1379
+ GOLANGCI_EXIT=$?
1380
+ head -30 "$GO_TMP"
1381
+ rm -f "$GO_TMP"
1382
+ if [ "$GOLANGCI_EXIT" -ne 0 ]; then
1383
+ echo ""
1384
+ echo "❌ BLOCKED - GOLANGCI-LINT ERRORS detected"
1385
+ echo "Fix the lint errors above before committing."
1386
+ exit 1
1387
+ fi
1388
+ echo "✅ PASSED - golangci-lint."
1353
1389
  fi
1354
- echo "✅ PASSED - golangci-lint."
1355
1390
  fi
1356
1391
  ;;
1357
1392
 
@@ -2,6 +2,6 @@
2
2
  "verdict": "PASS",
3
3
  "license_type": "MIT",
4
4
  "sha256": "0e7ac423bf2c6e223b7c5b156f8cf72da49d748e56a1641402c31f22ad07dbb5",
5
- "checked_at": "2026-10-15T07:13:54.700Z",
5
+ "checked_at": "2026-10-16T00:33:22.006Z",
6
6
  "source": "network"
7
7
  }
@@ -1,9 +1,9 @@
1
1
  # SRC/MOCK-POLICY KNOWLEDGE BASE
2
2
 
3
- **Generated:** 2026-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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.25.0",
3
+ "version": "0.26.0",
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"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xp-gate",
3
- "version": "0.25.0",
3
+ "version": "0.26.0",
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
- **Generated:** 2026-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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.25.0",
3
+ "version": "0.26.0",
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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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.25.0",
3
+ "version": "0.26.0",
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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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.25.0",
3
+ "version": "0.26.0",
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
- **Generated:** 2026-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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
- **Generated:** 2026-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
- **Generated:** 2026-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.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-10-14
4
- **Commit:** a757d625
3
+ **Generated:** 2026-10-16
4
+ **Commit:** 98096abe
5
5
  **Branch:** main
6
- **Version:** 0.25.0.0
6
+ **Version:** 0.26.0.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Test-Specification Alignment Engine — two-stage validation ensuring tests accurately reflect requirements and design specs.