@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.
- package/gates/common-process.ts +178 -0
- package/gates/common.ts +208 -0
- package/gates/gate-3.ts +144 -0
- package/gates/gate-7.ts +126 -0
- package/gates/gate-8.ts +92 -0
- package/gates/gate-9.ts +269 -0
- package/gates/pbt-detect.ts +163 -0
- package/gates/python-health.ts +266 -0
- package/gates/test-layers.ts +312 -0
- package/lib/__tests__/check-normalize-exit.test.js +24 -0
- package/lib/__tests__/shared-utils.test.js +21 -0
- package/lib/__tests__/uninstall.test.js +18 -0
- package/lib/check.js +27 -4
- package/lib/gate-runner.js +6 -1
- package/lib/mattpocock-license-verdict.json +1 -1
- package/lib/shared-utils.js +6 -1
- package/lib/uninstall.js +21 -1
- package/mock-policy/AGENTS.md +2 -2
- package/mutation/AGENTS.md +2 -2
- package/package.json +2 -1
- package/plugins/claude-code/.claude-plugin/plugin.json +1 -1
- package/plugins/claude-code/skills/delphi-review/AGENTS.md +2 -2
- package/plugins/claude-code/skills/sprint-flow/AGENTS.md +2 -2
- package/plugins/claude-code/skills/test-specification-alignment/AGENTS.md +2 -2
- package/plugins/dsh/package.json +1 -1
- package/plugins/dsh/skills/delphi-review/AGENTS.md +2 -2
- package/plugins/dsh/skills/sprint-flow/AGENTS.md +2 -2
- package/plugins/dsh/skills/test-specification-alignment/AGENTS.md +2 -2
- package/plugins/opencode/package.json +1 -1
- package/plugins/opencode/skills/delphi-review/AGENTS.md +2 -2
- package/plugins/opencode/skills/sprint-flow/AGENTS.md +2 -2
- package/plugins/opencode/skills/test-specification-alignment/AGENTS.md +2 -2
- package/plugins/qoder/plugin.json +1 -1
- package/plugins/qoder/skills/delphi-review/AGENTS.md +2 -2
- package/plugins/qoder/skills/sprint-flow/AGENTS.md +2 -2
- package/plugins/qoder/skills/test-specification-alignment/AGENTS.md +2 -2
- package/principles/AGENTS.md +2 -2
- package/scripts/sync-package-content.js +6 -1
- package/skills/delphi-review/AGENTS.md +2 -2
- package/skills/sprint-flow/AGENTS.md +2 -2
- 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
|
-
|
|
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
|
|
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
|
-
|
|
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 };
|
package/lib/gate-runner.js
CHANGED
|
@@ -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
|
-
|
|
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);
|
package/lib/shared-utils.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
package/mock-policy/AGENTS.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# SRC/MOCK-POLICY KNOWLEDGE BASE
|
|
2
2
|
|
|
3
3
|
**Generated:** 2026-10-30
|
|
4
|
-
**Commit:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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.
|
package/mutation/AGENTS.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# SRC/MUTATION KNOWLEDGE BASE
|
|
2
2
|
|
|
3
3
|
**Generated:** 2026-10-30
|
|
4
|
-
**Commit:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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.
|
|
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.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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.
|
package/plugins/dsh/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boyingliu01/dsh-plugin-xp-gate",
|
|
3
|
-
"version": "0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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
|
# SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
|
|
2
2
|
|
|
3
3
|
**Generated:** 2026-10-30
|
|
4
|
-
**Commit:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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.
|
package/principles/AGENTS.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# PRINCIPLES CHECKER MODULE
|
|
2
2
|
|
|
3
3
|
**Generated:** 2026-10-30
|
|
4
|
-
**Commit:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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
|
-
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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:**
|
|
4
|
+
**Commit:** e713c2d1
|
|
5
5
|
**Branch:** main
|
|
6
|
-
**Version:** 0.33.
|
|
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.
|