@boyingliu01/xp-gate 0.8.19 → 0.8.21

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 (49) hide show
  1. package/lib/init.js +2 -2
  2. package/lib/install-skill.js +13 -4
  3. package/lib/principles.js +5 -0
  4. package/mock-policy/AGENTS.md +3 -3
  5. package/mutation/AGENTS.md +3 -3
  6. package/package.json +1 -1
  7. package/plugins/claude-code/.claude-plugin/plugin.json +1 -1
  8. package/plugins/claude-code/skills/delphi-review/AGENTS.md +3 -3
  9. package/plugins/claude-code/skills/sprint-flow/AGENTS.md +3 -3
  10. package/plugins/claude-code/skills/sprint-flow/SKILL.md +135 -1091
  11. package/plugins/claude-code/skills/sprint-flow/references/orchestration-rules.md +333 -0
  12. package/plugins/claude-code/skills/sprint-flow/references/phase-1-plan.md +17 -46
  13. package/plugins/claude-code/skills/sprint-flow/references/phase-2-build.md +4 -193
  14. package/plugins/claude-code/skills/sprint-flow/references/phase-3-review.md +13 -30
  15. package/plugins/claude-code/skills/sprint-flow/references/phase-6-ship.md +4 -181
  16. package/plugins/claude-code/skills/sprint-flow/references/phase-7-land.md +4 -135
  17. package/plugins/claude-code/skills/sprint-flow/references/phase-8-cleanup.md +4 -187
  18. package/plugins/claude-code/skills/sprint-flow/references/phase-minus-1-isolate.md +58 -0
  19. package/plugins/claude-code/skills/test-specification-alignment/AGENTS.md +3 -3
  20. package/plugins/opencode/package.json +1 -1
  21. package/plugins/opencode/skills/delphi-review/AGENTS.md +3 -3
  22. package/plugins/opencode/skills/sprint-flow/AGENTS.md +3 -3
  23. package/plugins/opencode/skills/sprint-flow/SKILL.md +135 -1091
  24. package/plugins/opencode/skills/sprint-flow/references/orchestration-rules.md +333 -0
  25. package/plugins/opencode/skills/sprint-flow/references/phase-1-plan.md +17 -46
  26. package/plugins/opencode/skills/sprint-flow/references/phase-2-build.md +4 -193
  27. package/plugins/opencode/skills/sprint-flow/references/phase-3-review.md +13 -30
  28. package/plugins/opencode/skills/sprint-flow/references/phase-6-ship.md +4 -181
  29. package/plugins/opencode/skills/sprint-flow/references/phase-7-land.md +4 -135
  30. package/plugins/opencode/skills/sprint-flow/references/phase-8-cleanup.md +4 -187
  31. package/plugins/opencode/skills/sprint-flow/references/phase-minus-1-isolate.md +58 -0
  32. package/plugins/opencode/skills/test-specification-alignment/AGENTS.md +3 -3
  33. package/plugins/qoder/bin/xp-gate-check +5 -1
  34. package/plugins/qoder/skills/delphi-review/AGENTS.md +3 -3
  35. package/plugins/qoder/skills/sprint-flow/AGENTS.md +3 -3
  36. package/plugins/qoder/skills/test-specification-alignment/AGENTS.md +3 -3
  37. package/principles/AGENTS.md +3 -3
  38. package/skills/delphi-review/AGENTS.md +3 -3
  39. package/skills/sprint-flow/AGENTS.md +3 -3
  40. package/skills/sprint-flow/SKILL.md +135 -1091
  41. package/skills/sprint-flow/references/orchestration-rules.md +333 -0
  42. package/skills/sprint-flow/references/phase-1-plan.md +17 -46
  43. package/skills/sprint-flow/references/phase-2-build.md +4 -193
  44. package/skills/sprint-flow/references/phase-3-review.md +13 -30
  45. package/skills/sprint-flow/references/phase-6-ship.md +4 -181
  46. package/skills/sprint-flow/references/phase-7-land.md +4 -135
  47. package/skills/sprint-flow/references/phase-8-cleanup.md +4 -187
  48. package/skills/sprint-flow/references/phase-minus-1-isolate.md +58 -0
  49. package/skills/test-specification-alignment/AGENTS.md +3 -3
package/lib/init.js CHANGED
@@ -335,7 +335,7 @@ async function installLocal(args) {
335
335
  ensureConfigDir();
336
336
 
337
337
  const manifest = generateManifest(srcDir, projectRoot);
338
- updateConfig({ lastInit: new Date().toISOString(), mode: 'local', manifest });
338
+ updateConfig({ lastInit: new Date().toISOString(), mode: 'local', templateDir: TEMPLATE_DIR, manifest });
339
339
 
340
340
  injectKarpathyPrinciples(projectRoot);
341
341
  configureOpenCodePlugin(srcDir, projectRoot);
@@ -388,7 +388,7 @@ async function setupGlobal(args) {
388
388
  ensureConfigDir();
389
389
 
390
390
  const manifest = generateGlobalManifest(srcDir);
391
- updateConfig({ lastInit: new Date().toISOString(), mode: 'global', manifest });
391
+ updateConfig({ lastInit: new Date().toISOString(), mode: 'global', templateDir: TEMPLATE_DIR, manifest });
392
392
 
393
393
  console.log('\nGlobal setup complete!');
394
394
  console.log('All git repositories will now use xp-gate quality gates.');
@@ -3,12 +3,21 @@ const path = require('path');
3
3
  const https = require('https');
4
4
  const http = require('http');
5
5
  const { execSync } = require('child_process');
6
- const { checkDeps, detectPlatform } = require('./detect-deps.js');
6
+ const { checkDeps } = require('./detect-deps.js');
7
7
  const { downloadFromGitHub } = require('./download-skill.js');
8
8
  const { rollback } = require('./rollback.js');
9
- const { HOME_DIR, CONFIG_DIR } = require('./shared-paths.js');
9
+ const { HOME_DIR, CONFIG_DIR, detectPlatform } = require('./shared-paths.js');
10
10
 
11
- const SKILLS_DIR = path.join(HOME_DIR, '.config', 'opencode', 'skills');
11
+ function getSkillsDir() {
12
+ const platform = detectPlatform();
13
+ if (platform === 'qoder') {
14
+ return path.join(HOME_DIR, '.qoder', 'skills');
15
+ }
16
+ if (platform === 'claude-code') {
17
+ return path.join(HOME_DIR, '.claude', 'skills');
18
+ }
19
+ return path.join(HOME_DIR, '.config', 'opencode', 'skills');
20
+ }
12
21
 
13
22
  const SKILLS_REGISTRY = {
14
23
  'sprint-flow': { repo: 'boyingliu01/xp-gate', path: 'skills/sprint-flow' },
@@ -43,7 +52,7 @@ async function installSkill(name, options = {}) {
43
52
  return 1;
44
53
  }
45
54
 
46
- const targetDir = path.join(SKILLS_DIR, name);
55
+ const targetDir = path.join(getSkillsDir(), name);
47
56
  if (fs.existsSync(targetDir) && !force) {
48
57
  console.error(`Error: ${name} is already installed`);
49
58
  console.error('Use --force to overwrite');
package/lib/principles.js CHANGED
@@ -10,8 +10,13 @@ const path = require('path');
10
10
  // - ../../src/principles/index.ts (installed under node_modules/@boyingliu01/xp-gate)
11
11
  function findPrinciplesEntry() {
12
12
  const candidates = [
13
+ // npm package bundled layout: lib/principles.js → principles/index.ts
14
+ path.resolve(__dirname, '..', 'principles', 'index.ts'),
15
+ // Development layout: lib/principles.js → src/principles/index.ts
13
16
  path.resolve(__dirname, '..', '..', '..', 'src', 'principles', 'index.ts'),
17
+ // npm package installed under node_modules/@boyingliu01/xp-gate
14
18
  path.resolve(__dirname, '..', '..', 'src', 'principles', 'index.ts'),
19
+ // Running from repo root
15
20
  path.resolve(process.cwd(), 'src', 'principles', 'index.ts'),
16
21
  ];
17
22
  for (const c of candidates) {
@@ -1,9 +1,9 @@
1
1
  # SRC/MOCK-POLICY KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-06-17
4
- **Commit:** d8388b4
5
- **Branch:** sprint/2026-06-17-01
6
- **Version:** 0.8.19.0
4
+ **Commit:** c0c52f4
5
+ **Branch:** main
6
+ **Version:** 0.8.21.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-06-17
4
- **Commit:** d8388b4
5
- **Branch:** sprint/2026-06-17-01
6
- **Version:** 0.8.19.0
4
+ **Commit:** c0c52f4
5
+ **Branch:** main
6
+ **Version:** 0.8.21.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.8.19",
3
+ "version": "0.8.21",
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.8.19",
3
+ "version": "0.8.21",
4
4
  "displayName": "XP-Gate",
5
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).",
6
6
  "author": {
@@ -1,9 +1,9 @@
1
1
  # SKILLS/DELPHI-REVIEW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-06-17
4
- **Commit:** d8388b4
5
- **Branch:** sprint/2026-06-17-01
6
- **Version:** 0.8.19.0
4
+ **Commit:** c0c52f4
5
+ **Branch:** main
6
+ **Version:** 0.8.21.0
7
7
 
8
8
  ## OVERVIEW
9
9
  Delphi Consensus Review — multi-round anonymous expert review (≥90% threshold, 3 experts from ≥2 providers, domestic models only). Supports design + code-walkthrough modes.
@@ -1,9 +1,9 @@
1
1
  # SKILLS/SPRINT-FLOW KNOWLEDGE BASE
2
2
 
3
3
  **Generated:** 2026-06-17
4
- **Commit:** d8388b4
5
- **Branch:** sprint/2026-06-17-01
6
- **Version:** 0.8.19.0
4
+ **Commit:** c0c52f4
5
+ **Branch:** main
6
+ **Version:** 0.8.21.0
7
7
 
8
8
  ## OVERVIEW
9
9
  **11-phase** development pipeline: ISOLATE → AUTO-ESTIMATE → THINK → PLAN → BUILD → REVIEW → USER ACCEPTANCE → FEEDBACK → SHIP → LAND → CLEANUP. Phase 2 default build mode is **ralph-loop** (REQ-level iteration, 40-67% token savings vs parallel). HARD-GATE in Phase 1: design must pass Delphi review (≥90% consensus) before any coding.