gameforge-cli 0.1.0 → 0.2.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.
Files changed (75) hide show
  1. package/README.md +81 -41
  2. package/dist/agents/base/BaseAgent.d.ts +31 -0
  3. package/dist/agents/base/BaseAgent.d.ts.map +1 -1
  4. package/dist/agents/base/BaseAgent.js +57 -0
  5. package/dist/agents/base/BaseAgent.js.map +1 -1
  6. package/dist/agents/core/Architect.d.ts +17 -5
  7. package/dist/agents/core/Architect.d.ts.map +1 -1
  8. package/dist/agents/core/Architect.js +263 -150
  9. package/dist/agents/core/Architect.js.map +1 -1
  10. package/dist/agents/core/Chaos.d.ts +4 -0
  11. package/dist/agents/core/Chaos.d.ts.map +1 -1
  12. package/dist/agents/core/Chaos.js +46 -11
  13. package/dist/agents/core/Chaos.js.map +1 -1
  14. package/dist/agents/core/Consistency.d.ts +1 -0
  15. package/dist/agents/core/Consistency.d.ts.map +1 -1
  16. package/dist/agents/core/Consistency.js +86 -11
  17. package/dist/agents/core/Consistency.js.map +1 -1
  18. package/dist/agents/core/Modifier.d.ts +13 -0
  19. package/dist/agents/core/Modifier.d.ts.map +1 -0
  20. package/dist/agents/core/Modifier.js +141 -0
  21. package/dist/agents/core/Modifier.js.map +1 -0
  22. package/dist/agents/core/Remediation.d.ts +3 -1
  23. package/dist/agents/core/Remediation.d.ts.map +1 -1
  24. package/dist/agents/core/Remediation.js +63 -3
  25. package/dist/agents/core/Remediation.js.map +1 -1
  26. package/dist/agents/specialists/CreativeSpecialist.d.ts.map +1 -1
  27. package/dist/agents/specialists/CreativeSpecialist.js +94 -25
  28. package/dist/agents/specialists/CreativeSpecialist.js.map +1 -1
  29. package/dist/agents/specialists/EntitySpecialist.d.ts.map +1 -1
  30. package/dist/agents/specialists/EntitySpecialist.js +63 -25
  31. package/dist/agents/specialists/EntitySpecialist.js.map +1 -1
  32. package/dist/agents/specialists/FeatureSpecialist.d.ts.map +1 -1
  33. package/dist/agents/specialists/FeatureSpecialist.js +53 -39
  34. package/dist/agents/specialists/FeatureSpecialist.js.map +1 -1
  35. package/dist/agents/specialists/TechSpecialist.d.ts.map +1 -1
  36. package/dist/agents/specialists/TechSpecialist.js +69 -32
  37. package/dist/agents/specialists/TechSpecialist.js.map +1 -1
  38. package/dist/config/schema.d.ts +1319 -709
  39. package/dist/config/schema.d.ts.map +1 -1
  40. package/dist/config/schema.js +142 -52
  41. package/dist/config/schema.js.map +1 -1
  42. package/dist/config/templates.d.ts.map +1 -1
  43. package/dist/config/templates.js +6 -66
  44. package/dist/config/templates.js.map +1 -1
  45. package/dist/core/Orchestrator.d.ts +17 -3
  46. package/dist/core/Orchestrator.d.ts.map +1 -1
  47. package/dist/core/Orchestrator.js +46 -16
  48. package/dist/core/Orchestrator.js.map +1 -1
  49. package/dist/index.js +335 -195
  50. package/dist/index.js.map +1 -1
  51. package/dist/types/issueReview.d.ts +19 -0
  52. package/dist/types/issueReview.d.ts.map +1 -0
  53. package/dist/types/issueReview.js +3 -0
  54. package/dist/types/issueReview.js.map +1 -0
  55. package/dist/utils/costTracker.d.ts +28 -0
  56. package/dist/utils/costTracker.d.ts.map +1 -1
  57. package/dist/utils/costTracker.js +71 -1
  58. package/dist/utils/costTracker.js.map +1 -1
  59. package/dist/utils/disambiguationHelper.d.ts +54 -0
  60. package/dist/utils/disambiguationHelper.d.ts.map +1 -0
  61. package/dist/utils/disambiguationHelper.js +252 -0
  62. package/dist/utils/disambiguationHelper.js.map +1 -0
  63. package/dist/utils/issueReviewer.d.ts +6 -0
  64. package/dist/utils/issueReviewer.d.ts.map +1 -0
  65. package/dist/utils/issueReviewer.js +159 -0
  66. package/dist/utils/issueReviewer.js.map +1 -0
  67. package/dist/utils/issueSelector.d.ts +26 -0
  68. package/dist/utils/issueSelector.d.ts.map +1 -0
  69. package/dist/utils/issueSelector.js +132 -0
  70. package/dist/utils/issueSelector.js.map +1 -0
  71. package/package.json +1 -1
  72. package/dist/core/CheckpointManager.d.ts +0 -16
  73. package/dist/core/CheckpointManager.d.ts.map +0 -1
  74. package/dist/core/CheckpointManager.js +0 -52
  75. package/dist/core/CheckpointManager.js.map +0 -1
@@ -23,24 +23,37 @@ Be critical but constructive. Every issue must have a recommendation.`,
23
23
  }
24
24
  async execute(bible, onProgress) {
25
25
  const bibleStr = JSON.stringify(bible, null, 2);
26
- const prompt = `Analyze this Game Design Document for critical issues:
26
+ const prompt = `Analyze this Game Design Document for design and gameplay issues:
27
27
 
28
28
  ${bibleStr}
29
29
 
30
- Identify ALL significant problems in these categories:
31
- 1. **Gameplay**: Broken loops, missing mechanics, unfun systems
32
- 2. **Technical**: Over-scoping, engine limitations, impossible requirements
33
- 3. **Scope**: Unrealistic for team size/timeline, asset bloat
34
- 4. **Consistency**: Contradictory features, narrative mismatches
30
+ Identify problems that would impact the PLAYER EXPERIENCE or make the game unfun/broken.
31
+
32
+ ## Categories to check:
33
+ 1. **Gameplay**: Broken loops, missing mechanics, unfun systems, degenerate strategies
34
+ 2. **Technical**: Over-scoping, engine limitations, impossible requirements, network issues
35
+ 3. **Scope**: Unrealistic asset counts, feature bloat for stated scope
36
+ 4. **Consistency**: Contradictory features, narrative mismatches, thematic inconsistencies
37
+
38
+ ## Severity Definitions (use these STRICTLY):
39
+ - **Critical**: BREAKS core gameplay loop. Game cannot function as designed. Must fix before development.
40
+ - **Major**: Significant design flaw affecting player experience. Should fix before production.
41
+ - **Minor**: Polish issue or optimization. Can address later.
42
+
43
+ ## DO NOT REPORT:
44
+ - ID format issues (CARD-001, ABILITY-001 are fine)
45
+ - Typos or formatting issues
46
+ - Missing optional fields
47
+ - Cosmetic concerns
35
48
 
36
49
  For each issue, provide:
37
50
  - category: Gameplay | Technical | Scope | Consistency
38
51
  - severity: Critical | Major | Minor
39
- - description: What's wrong (1-2 sentences)
40
- - location: Where in the document (e.g., "features[2]")
41
- - recommendation: How to fix it
52
+ - description: What's wrong and WHY it matters to the player (1-2 sentences)
53
+ - location: Where in the document (e.g., "features[2].gameplayLoop")
54
+ - recommendation: Concrete fix (not "consider" or "maybe")
42
55
 
43
- Output as JSON array of issues. Be thorough - find 5-10 real problems.`;
56
+ Output as JSON array of issues. Focus on quality over quantity - 5-10 real problems that matter.`;
44
57
  const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.COMPLEX, {
45
58
  initialMaxTokens: 16000,
46
59
  maxRetries: 2,
@@ -49,7 +62,9 @@ Output as JSON array of issues. Be thorough - find 5-10 real problems.`;
49
62
  try {
50
63
  const jsonMatch = result.content.match(/```json\n([\s\S]*?)\n```/) || result.content.match(/\[([\s\S]*?)\]/);
51
64
  const jsonStr = jsonMatch ? (jsonMatch[1] || jsonMatch[0]) : result.content;
52
- const issues = JSON.parse(jsonStr);
65
+ let issues = JSON.parse(jsonStr);
66
+ // Check for critical issues that need user clarification
67
+ issues = await this.clarifyAmbiguousIssues(issues, bible);
53
68
  return issues;
54
69
  }
55
70
  catch {
@@ -62,6 +77,26 @@ Output as JSON array of issues. Be thorough - find 5-10 real problems.`;
62
77
  }];
63
78
  }
64
79
  }
80
+ /**
81
+ * For critical issues with ambiguous recommendations, ask the user for clarification
82
+ */
83
+ async clarifyAmbiguousIssues(issues, bible) {
84
+ const criticalIssues = issues.filter(i => i.severity === 'Critical');
85
+ // Only ask about the first critical issue to avoid overwhelming the user
86
+ if (criticalIssues.length > 0) {
87
+ const issue = criticalIssues[0];
88
+ // Check if the recommendation is vague
89
+ if (issue.recommendation.length < 30 ||
90
+ issue.recommendation.toLowerCase().includes('consider') ||
91
+ issue.recommendation.toLowerCase().includes('maybe')) {
92
+ const result = await this.askClarification(`Critical Issue Found: ${issue.description}\n\nHow would you like to address this?`, bible, 'Critical Issue Resolution');
93
+ // Update the issue with the user's preferred resolution
94
+ issue.recommendation = result.answer;
95
+ issue.description += ' [User provided resolution]';
96
+ }
97
+ }
98
+ return issues;
99
+ }
65
100
  }
66
101
  exports.Chaos = Chaos;
67
102
  //# sourceMappingURL=Chaos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chaos.js","sourceRoot":"","sources":["../../../src/agents/core/Chaos.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAW3D,MAAa,KAAM,SAAQ,qBAAS;IAClC,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;;;;;sEAUkD;YAChE,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,UAAsC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG;;EAEjB,QAAQ;;;;;;;;;;;;;;;uEAe6D,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAAc,CAAC,OAAO,EAAE;YAC7E,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC7G,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5E,MAAM,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC;oBACN,QAAQ,EAAE,aAAa;oBACvB,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,oCAAoC;oBACjD,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE,2BAA2B;iBAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AA9DD,sBA8DC"}
1
+ {"version":3,"file":"Chaos.js","sourceRoot":"","sources":["../../../src/agents/core/Chaos.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAW3D,MAAa,KAAM,SAAQ,qBAAS;IAClC,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;;;;;sEAUkD;YAChE,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,UAAsC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG;;EAEjB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGA4BuF,CAAC;QAE9F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAAc,CAAC,OAAO,EAAE;YAC7E,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC7G,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5E,IAAI,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE/C,yDAAyD;YACzD,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE1D,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC;oBACN,QAAQ,EAAE,aAAa;oBACvB,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,oCAAoC;oBACjD,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE,2BAA2B;iBAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAClC,MAAoB,EACpB,KAAgB;QAEhB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QAErE,yEAAyE;QACzE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAEhC,uCAAuC;YACvC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE;gBAChC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACvD,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAEzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,yBAAyB,KAAK,CAAC,WAAW,yCAAyC,EACnF,KAAK,EACL,2BAA2B,CAC5B,CAAC;gBAEF,wDAAwD;gBACxD,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;gBACrC,KAAK,CAAC,WAAW,IAAI,6BAA6B,CAAC;YACrD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAhHD,sBAgHC"}
@@ -12,5 +12,6 @@ export declare class ConsistencyAgent {
12
12
  private validateNamingConventions;
13
13
  private checkAssetBalance;
14
14
  private detectMissingFeatures;
15
+ private checkPlatformAlignment;
15
16
  }
16
17
  //# sourceMappingURL=Consistency.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Consistency.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,EAAE;IAY9C,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,wBAAwB;IAqChC,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,qBAAqB;CAyB9B"}
1
+ {"version":3,"file":"Consistency.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,EAAE;IAa9C,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,wBAAwB;IAqChC,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,sBAAsB;CAqD/B"}
@@ -9,6 +9,7 @@ class ConsistencyAgent {
9
9
  issues.push(...this.validateNamingConventions(bible));
10
10
  issues.push(...this.checkAssetBalance(bible));
11
11
  issues.push(...this.detectMissingFeatures(bible));
12
+ issues.push(...this.checkPlatformAlignment(bible));
12
13
  return issues;
13
14
  }
14
15
  checkFeatureDependencies(bible) {
@@ -63,20 +64,21 @@ class ConsistencyAgent {
63
64
  }
64
65
  validateNamingConventions(bible) {
65
66
  const issues = [];
67
+ // Only check for missing IDs, not format - descriptive IDs like CARD-001 or ABILITY-001 are fine
66
68
  bible.features.forEach((feature, idx) => {
67
- if (!feature.id.match(/^FEAT-\d{3}$/)) {
69
+ if (!feature.id || feature.id.trim() === '') {
68
70
  issues.push({
69
- severity: 'Warning',
70
- message: `Feature ID should follow format FEAT-XXX, got "${feature.id}"`,
71
+ severity: 'Error',
72
+ message: `Feature at index ${idx} is missing an ID`,
71
73
  location: `features[${idx}].id`
72
74
  });
73
75
  }
74
76
  });
75
77
  bible.gameObjects.forEach((entity, idx) => {
76
- if (!entity.id.match(/^(NPC|ITEM|MON|INT)-\d{3}$/)) {
78
+ if (!entity.id || entity.id.trim() === '') {
77
79
  issues.push({
78
- severity: 'Warning',
79
- message: `Entity ID should follow format TYPE-XXX, got "${entity.id}"`,
80
+ severity: 'Error',
81
+ message: `Entity at index ${idx} is missing an ID`,
80
82
  location: `gameObjects[${idx}].id`
81
83
  });
82
84
  }
@@ -85,8 +87,12 @@ class ConsistencyAgent {
85
87
  }
86
88
  checkAssetBalance(bible) {
87
89
  const issues = [];
90
+ // Skip check if creative section is not provided
91
+ if (!bible.creative) {
92
+ return issues;
93
+ }
88
94
  const reqs = bible.creative.assetRequirements;
89
- const total = Object.values(reqs).reduce((sum, val) => sum + val, 0);
95
+ const total = Object.values(reqs).reduce((sum, val) => sum + (val || 0), 0);
90
96
  if (total > 500 && bible.meta.estimatedScope === 'Prototype') {
91
97
  issues.push({
92
98
  severity: 'Warning',
@@ -108,15 +114,21 @@ class ConsistencyAgent {
108
114
  detectMissingFeatures(bible) {
109
115
  const issues = [];
110
116
  const featureNames = bible.features.map(f => f.name.toLowerCase());
111
- // Heuristic checks
117
+ const featureNamesStr = featureNames.join(' ');
118
+ // Heuristic checks for commonly paired features
112
119
  const checks = [
113
120
  { has: 'crafting', needs: 'inventory', message: 'Crafting system typically requires Inventory management' },
114
- { has: 'multiplayer', needs: 'lobby', message: 'Multiplayer games usually need a Lobby/Matchmaking system' },
121
+ { has: 'multiplayer', needs: 'lobby', needsAlt: 'matchmak', message: 'Multiplayer games usually need a Lobby/Matchmaking system' },
115
122
  { has: 'progression', needs: 'save', message: 'Progression systems require Save/Load functionality' },
116
- { has: 'combat', needs: 'health', message: 'Combat systems typically need Health/Damage management' }
123
+ { has: 'combat', needs: 'health', needsAlt: 'damage', message: 'Combat systems typically need Health/Damage management' },
124
+ { has: 'economy', needs: 'balance', needsAlt: 'sink', message: 'Economy systems need balance mechanisms (sinks, caps, etc.)' },
125
+ { has: 'trading', needs: 'inventory', message: 'Trading systems require Inventory management' }
117
126
  ];
118
127
  checks.forEach(check => {
119
- if (featureNames.some(n => n.includes(check.has)) && !featureNames.some(n => n.includes(check.needs))) {
128
+ const hasFeature = featureNames.some(n => n.includes(check.has));
129
+ const hasNeeded = featureNames.some(n => n.includes(check.needs));
130
+ const hasAlt = check.needsAlt ? featureNames.some(n => n.includes(check.needsAlt)) : false;
131
+ if (hasFeature && !hasNeeded && !hasAlt) {
120
132
  issues.push({
121
133
  severity: 'Info',
122
134
  message: check.message,
@@ -125,6 +137,69 @@ class ConsistencyAgent {
125
137
  });
126
138
  }
127
139
  });
140
+ // Check for tutorial/onboarding if game has many features
141
+ if (bible.features.length > 5 && !featureNamesStr.includes('tutorial') && !featureNamesStr.includes('onboard')) {
142
+ issues.push({
143
+ severity: 'Info',
144
+ message: `Game has ${bible.features.length} features but no tutorial/onboarding system mentioned`,
145
+ location: 'features',
146
+ suggestion: 'Consider adding a Tutorial or Onboarding feature to teach players the mechanics'
147
+ });
148
+ }
149
+ return issues;
150
+ }
151
+ checkPlatformAlignment(bible) {
152
+ const issues = [];
153
+ // Skip if technical section is not provided
154
+ if (!bible.technical) {
155
+ return issues;
156
+ }
157
+ const metaPlatforms = bible.meta.targetPlatform || [];
158
+ const buildTargets = bible.technical.buildTargets || [];
159
+ // Normalize platform names for comparison
160
+ const normalizeplatform = (p) => {
161
+ const lower = p.toLowerCase();
162
+ if (lower.includes('pc') || lower.includes('windows'))
163
+ return 'pc';
164
+ if (lower.includes('mac'))
165
+ return 'mac';
166
+ if (lower.includes('linux'))
167
+ return 'linux';
168
+ if (lower.includes('playstation') || lower.includes('ps4') || lower.includes('ps5'))
169
+ return 'playstation';
170
+ if (lower.includes('xbox'))
171
+ return 'xbox';
172
+ if (lower.includes('switch') || lower.includes('nintendo'))
173
+ return 'nintendo';
174
+ if (lower.includes('ios') || lower.includes('iphone') || lower.includes('ipad'))
175
+ return 'ios';
176
+ if (lower.includes('android'))
177
+ return 'android';
178
+ if (lower.includes('console'))
179
+ return 'console';
180
+ return lower;
181
+ };
182
+ const normalizedMeta = new Set(metaPlatforms.map(normalizeplatform));
183
+ const normalizedBuild = new Set(buildTargets.map(normalizeplatform));
184
+ // Check for platforms in meta but not in build targets
185
+ const inMetaNotBuild = [...normalizedMeta].filter(p => !normalizedBuild.has(p));
186
+ const inBuildNotMeta = [...normalizedBuild].filter(p => !normalizedMeta.has(p));
187
+ if (inMetaNotBuild.length > 0) {
188
+ issues.push({
189
+ severity: 'Warning',
190
+ message: `Target platforms "${inMetaNotBuild.join(', ')}" listed in meta but not in technical.buildTargets`,
191
+ location: 'meta.targetPlatform vs technical.buildTargets',
192
+ suggestion: 'Align target platforms in both sections or clarify which is the source of truth'
193
+ });
194
+ }
195
+ if (inBuildNotMeta.length > 0) {
196
+ issues.push({
197
+ severity: 'Warning',
198
+ message: `Build targets "${inBuildNotMeta.join(', ')}" listed in technical but not in meta.targetPlatform`,
199
+ location: 'technical.buildTargets vs meta.targetPlatform',
200
+ suggestion: 'Align target platforms in both sections'
201
+ });
202
+ }
128
203
  return issues;
129
204
  }
130
205
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Consistency.js","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Consistency.js","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { BaseAgent } from '../base/BaseAgent';
2
+ import { GameBible } from '../../config/schema';
3
+ export interface ModificationResult {
4
+ updatedBible: GameBible;
5
+ changesSummary: string[];
6
+ errors: string[];
7
+ }
8
+ export declare class Modifier extends BaseAgent {
9
+ constructor(apiKey: string, costTracker: any, modelSelector: any);
10
+ execute(bible: GameBible, modificationRequest: string, onProgress?: (message: string) => void): Promise<ModificationResult>;
11
+ private parseResult;
12
+ }
13
+ //# sourceMappingURL=Modifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modifier.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;AAGjE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,SAAS,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,QAAS,SAAQ,SAAS;gBACzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IA2B1D,OAAO,CACX,KAAK,EAAE,SAAS,EAChB,mBAAmB,EAAE,MAAM,EAC3B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,kBAAkB,CAAC;IAiD9B,OAAO,CAAC,WAAW;CA6DpB"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Modifier = void 0;
4
+ const BaseAgent_1 = require("../base/BaseAgent");
5
+ const modelSelector_1 = require("../../utils/modelSelector");
6
+ const schema_1 = require("../../config/schema");
7
+ const zod_1 = require("zod");
8
+ class Modifier extends BaseAgent_1.BaseAgent {
9
+ constructor(apiKey, costTracker, modelSelector) {
10
+ const config = {
11
+ systemPrompt: `You are the Modification Agent, responsible for applying user-requested changes to Game Design Documents.
12
+
13
+ Your role is to:
14
+ 1. Understand the user's modification request in natural language
15
+ 2. Apply targeted changes to the GameBible JSON
16
+ 3. Preserve existing design intent unless explicitly asked to change it
17
+ 4. Add new features/entities if requested
18
+ 5. Remove or modify existing elements as requested
19
+
20
+ Rules:
21
+ 1. Keep all existing data unless the modification explicitly affects it
22
+ 2. When adding new features, follow existing naming conventions
23
+ 3. Maintain ID patterns: FEAT-XXX, NPC-XXX, ITEM-XXX, MON-XXX, INT-XXX
24
+ 4. Ensure dependencies are properly updated when adding/removing features
25
+ 5. When removing features, also remove references to them from dependencies
26
+ 6. Preserve the overall structure and schema compliance
27
+ 7. Make the minimum changes needed to fulfill the request
28
+
29
+ Output ONLY raw JSON, no markdown code blocks, no commentary.
30
+ Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
31
+ temperature: 0.4
32
+ };
33
+ super(apiKey, config, costTracker, modelSelector);
34
+ }
35
+ async execute(bible, modificationRequest, onProgress) {
36
+ const prompt = `Apply the following modification to this Game Design Document.
37
+
38
+ ## User's Modification Request:
39
+ ${modificationRequest}
40
+
41
+ ## Current GameBible:
42
+ ${JSON.stringify(bible, null, 2)}
43
+
44
+ ## Instructions:
45
+ 1. Carefully read and understand the user's modification request
46
+ 2. Apply the requested changes to the GameBible
47
+ 3. Maintain consistency with the existing design
48
+ 4. Update any related dependencies or references
49
+ 5. Keep all unaffected sections unchanged
50
+
51
+ ## Response Format:
52
+ {
53
+ "updatedBible": { /* Complete GameBible with modifications applied */ },
54
+ "changesSummary": ["Brief description of change 1", "Brief description of change 2"],
55
+ "errors": ["Any issues encountered while applying changes"]
56
+ }
57
+
58
+ CRITICAL SCHEMA RULES for updatedBible:
59
+ - mathFormulas/balanceFormulas MUST use this structure:
60
+ {
61
+ "expression": "result = input1 * input2",
62
+ "variables": {
63
+ "varName": {"type": "int|float|bool", "range": "min-max"}
64
+ },
65
+ "validated": false,
66
+ "balanceNotes": "optional notes"
67
+ }
68
+ - The field is "expression" NOT "formula" or "name"
69
+ - "variables" is an OBJECT keyed by variable name, NOT an array
70
+ - multiplayer.playerCount must be a STRING like "2-8", NOT an object
71
+ - Variable types must be exactly: "int", "float", or "bool"
72
+
73
+ Output only valid JSON. Apply the requested modifications completely.`;
74
+ const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.COMPLEX, {
75
+ initialMaxTokens: 32000,
76
+ maxRetries: 2,
77
+ onProgress
78
+ });
79
+ return this.parseResult(result.content, bible);
80
+ }
81
+ parseResult(content, originalBible) {
82
+ let jsonStr = content.trim();
83
+ // Handle markdown code blocks
84
+ const codeBlockMatch = content.match(/```(?:json)?\n?([\s\S]*?)\n?```/);
85
+ if (codeBlockMatch) {
86
+ jsonStr = codeBlockMatch[1].trim();
87
+ }
88
+ // Find JSON object boundaries
89
+ if (!jsonStr.startsWith('{')) {
90
+ const firstBrace = jsonStr.indexOf('{');
91
+ const lastBrace = jsonStr.lastIndexOf('}');
92
+ if (firstBrace !== -1 && lastBrace > firstBrace) {
93
+ jsonStr = jsonStr.substring(firstBrace, lastBrace + 1);
94
+ }
95
+ }
96
+ try {
97
+ const parsed = JSON.parse(jsonStr);
98
+ // Validate the updated bible against schema
99
+ if (parsed.updatedBible) {
100
+ try {
101
+ const validated = schema_1.GameBibleSchema.parse(parsed.updatedBible);
102
+ return {
103
+ updatedBible: validated,
104
+ changesSummary: parsed.changesSummary || [],
105
+ errors: parsed.errors || []
106
+ };
107
+ }
108
+ catch (zodError) {
109
+ if (zodError instanceof zod_1.ZodError) {
110
+ // Schema validation failed - return original bible
111
+ return {
112
+ updatedBible: originalBible,
113
+ changesSummary: [],
114
+ errors: [
115
+ 'Modification output failed schema validation',
116
+ ...zodError.errors.slice(0, 3).map((e) => `${e.path.join('.')}: ${e.message}`)
117
+ ]
118
+ };
119
+ }
120
+ throw zodError;
121
+ }
122
+ }
123
+ // No updatedBible in response
124
+ return {
125
+ updatedBible: originalBible,
126
+ changesSummary: [],
127
+ errors: ['Modification response did not contain updatedBible']
128
+ };
129
+ }
130
+ catch {
131
+ // JSON parsing failed - return original bible unchanged
132
+ return {
133
+ updatedBible: originalBible,
134
+ changesSummary: [],
135
+ errors: ['Failed to parse modification response']
136
+ };
137
+ }
138
+ }
139
+ }
140
+ exports.Modifier = Modifier;
141
+ //# sourceMappingURL=Modifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modifier.js","sourceRoot":"","sources":["../../../src/agents/core/Modifier.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { BaseAgent } from '../base/BaseAgent';
2
2
  import { GameBible } from '../../config/schema';
3
3
  import { ChaosIssue } from './Chaos';
4
4
  import { ConsistencyIssue } from './Consistency';
5
+ import { IssueWithNotes } from '../../types/issueReview';
5
6
  export interface RemediationResult {
6
7
  updatedBible: GameBible;
7
8
  fixedIssues: string[];
@@ -9,8 +10,9 @@ export interface RemediationResult {
9
10
  }
10
11
  export declare class Remediation extends BaseAgent {
11
12
  constructor(apiKey: string, costTracker: any, modelSelector: any);
12
- execute(bible: GameBible, consistencyIssues: ConsistencyIssue[], chaosIssues: ChaosIssue[], onProgress?: (message: string) => void): Promise<RemediationResult>;
13
+ execute(bible: GameBible, consistencyIssuesOrWithNotes: ConsistencyIssue[] | IssueWithNotes[], chaosIssuesOrProgress?: ChaosIssue[] | ((message: string) => void), onProgress?: (message: string) => void): Promise<RemediationResult>;
13
14
  private formatIssues;
15
+ private formatIssuesWithNotes;
14
16
  private parseResult;
15
17
  }
16
18
  //# sourceMappingURL=Remediation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Remediation.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IA0B1D,OAAO,CACX,KAAK,EAAE,SAAS,EAChB,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,WAAW,EAAE,UAAU,EAAE,EACzB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAsC7B,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,WAAW;CA6DpB"}
1
+ {"version":3,"file":"Remediation.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IA4B1D,OAAO,CACX,KAAK,EAAE,SAAS,EAChB,4BAA4B,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EACnE,qBAAqB,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,EAClE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAyE7B,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,WAAW;CA6DpB"}
@@ -15,6 +15,7 @@ Your role is to:
15
15
  2. Apply targeted fixes to the GameBible JSON
16
16
  3. Preserve the original design intent while resolving conflicts
17
17
  4. Prioritize critical issues over minor ones
18
+ 5. Follow any custom user instructions provided for specific issues
18
19
 
19
20
  Rules:
20
21
  1. NEVER remove features entirely - only modify them to fix issues
@@ -24,6 +25,7 @@ Rules:
24
25
  5. Keep all existing data unless it directly causes the reported issue
25
26
  6. For scope issues, adjust asset counts or estimatedScope field appropriately
26
27
  7. For gameplay issues, add missing mechanics or clarify existing ones
28
+ 8. When a user provides custom notes for an issue, follow their instructions as the primary guidance
27
29
 
28
30
  Output ONLY raw JSON, no markdown code blocks, no commentary.
29
31
  Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
@@ -31,8 +33,26 @@ Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
31
33
  };
32
34
  super(apiKey, config, costTracker, modelSelector);
33
35
  }
34
- async execute(bible, consistencyIssues, chaosIssues, onProgress) {
35
- const issuesDescription = this.formatIssues(consistencyIssues, chaosIssues);
36
+ async execute(bible, consistencyIssuesOrWithNotes, chaosIssuesOrProgress, onProgress) {
37
+ let issuesDescription;
38
+ let progressCallback;
39
+ // Check if using new IssueWithNotes[] signature
40
+ if (consistencyIssuesOrWithNotes.length > 0 &&
41
+ ('consistencyIssue' in consistencyIssuesOrWithNotes[0] ||
42
+ 'chaosIssue' in consistencyIssuesOrWithNotes[0])) {
43
+ // New signature: IssueWithNotes[]
44
+ const issuesWithNotes = consistencyIssuesOrWithNotes;
45
+ issuesDescription = this.formatIssuesWithNotes(issuesWithNotes);
46
+ progressCallback =
47
+ typeof chaosIssuesOrProgress === 'function' ? chaosIssuesOrProgress : undefined;
48
+ }
49
+ else {
50
+ // Legacy signature: separate arrays
51
+ const consistencyIssues = consistencyIssuesOrWithNotes;
52
+ const chaosIssues = chaosIssuesOrProgress || [];
53
+ issuesDescription = this.formatIssues(consistencyIssues, chaosIssues);
54
+ progressCallback = onProgress;
55
+ }
36
56
  const prompt = `Fix the following issues in this Game Design Document.
37
57
 
38
58
  ## Issues to Fix:
@@ -57,11 +77,26 @@ ${JSON.stringify(bible, null, 2)}
57
77
  "unfixableIssues": ["Issue that cannot be automatically fixed"]
58
78
  }
59
79
 
80
+ CRITICAL SCHEMA RULES for updatedBible:
81
+ - mathFormulas/balanceFormulas MUST use this structure:
82
+ {
83
+ "expression": "result = input1 * input2",
84
+ "variables": {
85
+ "varName": {"type": "int|float|bool", "range": "min-max"}
86
+ },
87
+ "validated": false,
88
+ "balanceNotes": "optional notes"
89
+ }
90
+ - The field is "expression" NOT "formula" or "name"
91
+ - "variables" is an OBJECT keyed by variable name, NOT an array
92
+ - multiplayer.playerCount must be a STRING like "2-8", NOT an object
93
+ - Variable types must be exactly: "int", "float", or "bool"
94
+
60
95
  Output only valid JSON. Apply ALL fixes you can to the bible.`;
61
96
  const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.COMPLEX, {
62
97
  initialMaxTokens: 32000,
63
98
  maxRetries: 2,
64
- onProgress
99
+ onProgress: progressCallback
65
100
  });
66
101
  return this.parseResult(result.content, bible);
67
102
  }
@@ -88,6 +123,31 @@ Output only valid JSON. Apply ALL fixes you can to the bible.`;
88
123
  }
89
124
  return lines.join('\n');
90
125
  }
126
+ formatIssuesWithNotes(issuesWithNotes) {
127
+ const lines = [];
128
+ issuesWithNotes.forEach((item, idx) => {
129
+ if (item.consistencyIssue) {
130
+ const issue = item.consistencyIssue;
131
+ lines.push(`${idx + 1}. [${issue.severity}] Consistency Issue: ${issue.message}`);
132
+ lines.push(` Location: ${issue.location}`);
133
+ if (issue.suggestion) {
134
+ lines.push(` Suggestion: ${issue.suggestion}`);
135
+ }
136
+ }
137
+ else if (item.chaosIssue) {
138
+ const issue = item.chaosIssue;
139
+ lines.push(`${idx + 1}. [${issue.severity}] ${issue.category} Issue: ${issue.description}`);
140
+ lines.push(` Location: ${issue.location}`);
141
+ lines.push(` Recommendation: ${issue.recommendation}`);
142
+ }
143
+ // Add custom notes if provided - this is key for user instructions
144
+ if (item.customNotes) {
145
+ lines.push(` >>> USER INSTRUCTIONS: ${item.customNotes}`);
146
+ }
147
+ lines.push(''); // Blank line between issues
148
+ });
149
+ return lines.join('\n');
150
+ }
91
151
  parseResult(content, originalBible) {
92
152
  let jsonStr = content.trim();
93
153
  // Handle markdown code blocks
@@ -1 +1 @@
1
- {"version":3,"file":"Remediation.js","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Remediation.js","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CreativeSpecialist.d.ts","sourceRoot":"","sources":["../../../src/agents/specialists/CreativeSpecialist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAc1D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAiDzF"}
1
+ {"version":3,"file":"CreativeSpecialist.d.ts","sourceRoot":"","sources":["../../../src/agents/specialists/CreativeSpecialist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAa1D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAgIzF"}