gameforge-cli 0.2.0 → 0.2.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/README.md +38 -5
- package/dist/agents/core/Architect.d.ts +4 -0
- package/dist/agents/core/Architect.d.ts.map +1 -1
- package/dist/agents/core/Architect.js +150 -0
- package/dist/agents/core/Architect.js.map +1 -1
- package/dist/agents/core/DocumentUpdater.d.ts +13 -0
- package/dist/agents/core/DocumentUpdater.d.ts.map +1 -0
- package/dist/agents/core/DocumentUpdater.js +165 -0
- package/dist/agents/core/DocumentUpdater.js.map +1 -0
- package/dist/agents/specialists/CreativeSpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/CreativeSpecialist.js +68 -0
- package/dist/agents/specialists/CreativeSpecialist.js.map +1 -1
- package/dist/agents/specialists/EntitySpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/EntitySpecialist.js +16 -0
- package/dist/agents/specialists/EntitySpecialist.js.map +1 -1
- package/dist/agents/specialists/FeatureSpecialist.d.ts +4 -0
- package/dist/agents/specialists/FeatureSpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/FeatureSpecialist.js +61 -0
- package/dist/agents/specialists/FeatureSpecialist.js.map +1 -1
- package/dist/agents/specialists/TechSpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/TechSpecialist.js +100 -0
- package/dist/agents/specialists/TechSpecialist.js.map +1 -1
- package/dist/index.js +316 -138
- package/dist/index.js.map +1 -1
- package/dist/utils/disambiguationHelper.d.ts.map +1 -1
- package/dist/utils/disambiguationHelper.js +18 -8
- package/dist/utils/disambiguationHelper.js.map +1 -1
- package/dist/utils/fileManager.d.ts +7 -0
- package/dist/utils/fileManager.d.ts.map +1 -1
- package/dist/utils/fileManager.js +47 -0
- package/dist/utils/fileManager.js.map +1 -1
- package/dist/utils/issueReviewer.d.ts +4 -0
- package/dist/utils/issueReviewer.d.ts.map +1 -1
- package/dist/utils/issueReviewer.js +47 -0
- package/dist/utils/issueReviewer.js.map +1 -1
- package/dist/utils/pdfGenerator.d.ts +12 -0
- package/dist/utils/pdfGenerator.d.ts.map +1 -0
- package/dist/utils/pdfGenerator.js +341 -0
- package/dist/utils/pdfGenerator.js.map +1 -0
- package/package.json +20 -15
package/README.md
CHANGED
|
@@ -377,15 +377,48 @@ The modify command allows you to make changes to previously generated GDDs using
|
|
|
377
377
|
|
|
378
378
|
## Roadmap
|
|
379
379
|
|
|
380
|
-
|
|
380
|
+
GameForge aims to be a complete **Game Idea → Production-Ready Tasks** pipeline:
|
|
381
|
+
|
|
382
|
+
### ✅ Phase 1: Game Design Document (Complete)
|
|
383
|
+
- [x] Interactive discovery interview
|
|
384
|
+
- [x] Multi-agent GDD generation
|
|
385
|
+
- [x] Validation & remediation system
|
|
381
386
|
- [x] Interactive issue review system
|
|
382
|
-
- [
|
|
387
|
+
- [x] Interactive editing mode (Modifier agent)
|
|
388
|
+
- [x] Genre templates
|
|
389
|
+
|
|
390
|
+
### 🎨 Phase 2: Art Design Document
|
|
391
|
+
Transform the GDD into a comprehensive Art Design Document (ADD):
|
|
392
|
+
- [ ] UI/UX specifications with AI-generated mockups
|
|
393
|
+
- [ ] AI-generated concept art for characters, environments, items
|
|
394
|
+
- [ ] Branding guidelines (logo concepts, color palettes, typography)
|
|
395
|
+
- [ ] Sound design specifications
|
|
396
|
+
- [ ] Music direction and composition guidelines
|
|
397
|
+
- [ ] Asset pipeline and naming conventions
|
|
398
|
+
|
|
399
|
+
### 🔧 Phase 3: Technical Design Document
|
|
400
|
+
Generate a detailed Technical Design Document (TDD) from the GDD:
|
|
401
|
+
- [ ] Comprehensive codebase architecture breakdown
|
|
402
|
+
- [ ] Major systems design (rendering, physics, networking, AI, etc.)
|
|
403
|
+
- [ ] AI-generated flow charts as Mermaid diagrams
|
|
404
|
+
- [ ] API specifications and data models
|
|
405
|
+
- [ ] Performance budgets and optimization strategies
|
|
406
|
+
- [ ] Platform-specific implementation notes
|
|
407
|
+
|
|
408
|
+
### 📋 Phase 4: Task Management Integration
|
|
409
|
+
Populate a task management system with implementation tasks using [Beads](https://github.com/steveyegge/beads):
|
|
410
|
+
- [ ] Auto-generate tasks from TDD and ADD specifications
|
|
411
|
+
- [ ] Dependency mapping between tasks
|
|
412
|
+
- [ ] Priority and complexity estimation
|
|
413
|
+
- [ ] Sprint/milestone organization
|
|
414
|
+
- [ ] Integration with existing project management tools
|
|
415
|
+
|
|
416
|
+
### 🔮 Future Enhancements
|
|
417
|
+
- [ ] PDF export
|
|
383
418
|
- [ ] Notion/Confluence integration
|
|
384
419
|
- [ ] Team collaboration features
|
|
385
|
-
- [ ] Asset generation integration (DALL-E, Midjourney)
|
|
386
|
-
- [ ] More genre templates
|
|
387
420
|
- [ ] Multi-language support
|
|
388
|
-
- [ ]
|
|
421
|
+
- [ ] Real-time asset generation previews
|
|
389
422
|
|
|
390
423
|
## Contributing
|
|
391
424
|
|
|
@@ -18,6 +18,10 @@ export declare class Architect extends BaseAgent {
|
|
|
18
18
|
* Returns additional transcript entries with clarifications
|
|
19
19
|
*/
|
|
20
20
|
private checkForAmbiguities;
|
|
21
|
+
/**
|
|
22
|
+
* Check the generated GameBible for structural issues and ask clarifying questions
|
|
23
|
+
*/
|
|
24
|
+
private checkPostGenerationAmbiguities;
|
|
21
25
|
private generateMetaAndFeatures;
|
|
22
26
|
private generateGameObjects;
|
|
23
27
|
private generateCreativeAndTech;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Architect.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAmB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKjE,KAAK,eAAe,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmB1D,OAAO,CACX,UAAU,EAAE,eAAe,EAAE,EAC7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Architect.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAmB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKjE,KAAK,eAAe,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmB1D,OAAO,CACX,UAAU,EAAE,eAAe,EAAE,EAC7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,SAAS,CAAC;IAyFrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAsG1B;;;OAGG;YACW,mBAAmB;IAiHjC;;OAEG;YACW,8BAA8B;YA0J9B,uBAAuB;YA2EvB,mBAAmB;YA+EnB,uBAAuB;IA6ErC,OAAO,CAAC,SAAS;IAoGjB,OAAO,CAAC,oBAAoB;CA8C7B"}
|
|
@@ -58,6 +58,8 @@ Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
|
|
|
58
58
|
creative: creativeAndTech.creative,
|
|
59
59
|
technical: creativeAndTech.technical
|
|
60
60
|
};
|
|
61
|
+
// Check post-generation ambiguities
|
|
62
|
+
await this.checkPostGenerationAmbiguities(gameBible, enhancedTranscript, onProgress);
|
|
61
63
|
// Normalize/coerce common LLM output issues before validation
|
|
62
64
|
this.normalizeGameBible(gameBible);
|
|
63
65
|
try {
|
|
@@ -247,11 +249,159 @@ Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
|
|
|
247
249
|
autoGenerated: result.wasAIGenerated
|
|
248
250
|
});
|
|
249
251
|
}
|
|
252
|
+
// Check for vague target audience
|
|
253
|
+
const audienceAnswer = transcript.find(t => t.question.toLowerCase().includes('audience') ||
|
|
254
|
+
t.question.toLowerCase().includes('target'))?.answer || '';
|
|
255
|
+
const normalizedAudience = audienceAnswer.toLowerCase();
|
|
256
|
+
if (audienceAnswer.length < 15 ||
|
|
257
|
+
normalizedAudience.includes('everyone') ||
|
|
258
|
+
normalizedAudience.includes('all ages') ||
|
|
259
|
+
normalizedAudience.includes('casual and hardcore') ||
|
|
260
|
+
normalizedAudience.includes('broad')) {
|
|
261
|
+
const result = await this.askClarification('The target audience is very broad. Who is the PRIMARY audience? (e.g., "competitive FPS players 18-35" vs "everyone")', transcript, 'Target Audience Clarification');
|
|
262
|
+
clarifications.push({
|
|
263
|
+
question: 'Clarification: Target Audience',
|
|
264
|
+
answer: result.answer,
|
|
265
|
+
autoGenerated: result.wasAIGenerated
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
// Check for genre mixing overload
|
|
269
|
+
const genreAnswer = transcript.find(t => t.question.toLowerCase().includes('genre'))?.answer || '';
|
|
270
|
+
const genreCount = genreAnswer.split(/[,/&+]/).filter(g => g.trim().length > 0).length;
|
|
271
|
+
if (genreCount > 3) {
|
|
272
|
+
const result = await this.askClarification(`You're mixing ${genreCount} genres. This can dilute the experience. What's the PRIMARY genre?`, transcript, 'Genre Focus');
|
|
273
|
+
clarifications.push({
|
|
274
|
+
question: 'Clarification: Primary Genre',
|
|
275
|
+
answer: result.answer,
|
|
276
|
+
autoGenerated: result.wasAIGenerated
|
|
277
|
+
});
|
|
278
|
+
}
|
|
250
279
|
if (clarifications.length > 0) {
|
|
251
280
|
onProgress?.(`Added ${clarifications.length} clarifications`);
|
|
252
281
|
}
|
|
253
282
|
return clarifications;
|
|
254
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Check the generated GameBible for structural issues and ask clarifying questions
|
|
286
|
+
*/
|
|
287
|
+
async checkPostGenerationAmbiguities(bible, transcript, onProgress) {
|
|
288
|
+
// Check for too many features for scope
|
|
289
|
+
const scope = bible.meta.estimatedScope;
|
|
290
|
+
const featureCount = bible.features.length;
|
|
291
|
+
const featureLimits = {
|
|
292
|
+
'Prototype': 5,
|
|
293
|
+
'Vertical Slice': 8,
|
|
294
|
+
'MVP': 12,
|
|
295
|
+
'Full Game': 20
|
|
296
|
+
};
|
|
297
|
+
const limit = featureLimits[scope] || 12;
|
|
298
|
+
if (featureCount > limit) {
|
|
299
|
+
const result = await this.askClarification(`You have ${featureCount} features for a "${scope}" project. This may be too ambitious. Should we prioritize the most critical features?`, bible, 'Feature Count');
|
|
300
|
+
// Note: We inform but don't auto-reduce features - user decides
|
|
301
|
+
onProgress?.(`Feature count acknowledged: ${featureCount} features for ${scope} scope`);
|
|
302
|
+
}
|
|
303
|
+
// Check for core gameplay loop
|
|
304
|
+
const hasGameplayLoop = bible.features.some((f) => f.gameplayLoop && f.gameplayLoop.length > 0);
|
|
305
|
+
if (!hasGameplayLoop) {
|
|
306
|
+
const result = await this.askClarification('No gameplay loops are defined. What does the player DO moment-to-moment in this game?', bible, 'Core Gameplay Loop');
|
|
307
|
+
onProgress?.('Core gameplay loop clarified');
|
|
308
|
+
}
|
|
309
|
+
// Check for genre-specific features
|
|
310
|
+
const genres = bible.meta.genre.map((g) => g.toLowerCase());
|
|
311
|
+
// RPG without progression
|
|
312
|
+
if (genres.some((g) => g.includes('rpg')) &&
|
|
313
|
+
!bible.features.some((f) => f.progression)) {
|
|
314
|
+
const result = await this.askClarification('RPG games typically need a progression system. Should we add character/player progression?', bible, 'RPG Progression');
|
|
315
|
+
const decision = (result.answer || '').toLowerCase();
|
|
316
|
+
if (decision.includes('yes') || decision.includes('add') || decision.includes('should')) {
|
|
317
|
+
onProgress?.('Note: User confirmed RPG progression system should be added - consider this for future feature expansion');
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
onProgress?.('RPG progression acknowledged as intentional design decision');
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
// Multiplayer genre without networking
|
|
324
|
+
if ((genres.some((g) => g.includes('multiplayer') || g.includes('mmo') || g.includes('competitive')) ||
|
|
325
|
+
bible.features.some((f) => f.multiplayer)) &&
|
|
326
|
+
!bible.technical?.networking) {
|
|
327
|
+
const result = await this.askClarification('Multiplayer features detected but no networking architecture specified. What network model should we use?', bible, 'Multiplayer Networking');
|
|
328
|
+
const decision = (result.answer || '').toLowerCase();
|
|
329
|
+
// Extract network architecture from user response
|
|
330
|
+
if (!bible.technical) {
|
|
331
|
+
bible.technical = { engine: { primary: 'Unity', version: '2023.2', reasoning: 'Default engine' }, buildTargets: [] };
|
|
332
|
+
}
|
|
333
|
+
if (decision.includes('client-server') || decision.includes('client server')) {
|
|
334
|
+
bible.technical.networking = { architecture: 'Client-Server', maxPlayers: 8 };
|
|
335
|
+
onProgress?.('Added Client-Server networking architecture');
|
|
336
|
+
}
|
|
337
|
+
else if (decision.includes('peer-to-peer') || decision.includes('p2p')) {
|
|
338
|
+
bible.technical.networking = { architecture: 'Peer-to-Peer', maxPlayers: 4 };
|
|
339
|
+
onProgress?.('Added Peer-to-Peer networking architecture');
|
|
340
|
+
}
|
|
341
|
+
else if (decision.includes('relay')) {
|
|
342
|
+
bible.technical.networking = { architecture: 'Relay Server', maxPlayers: 8 };
|
|
343
|
+
onProgress?.('Added Relay Server networking architecture');
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
onProgress?.('Multiplayer networking clarified - manual specification may be needed');
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
// Card game without cards
|
|
350
|
+
if (genres.some((g) => g.includes('card') || g.includes('ccg') || g.includes('tcg')) &&
|
|
351
|
+
!bible.gameObjects.some((e) => e.category === 'Card')) {
|
|
352
|
+
const result = await this.askClarification('Card game genre but no card entities defined. Should we add card definitions?', bible, 'Card Game Entities');
|
|
353
|
+
const decision = (result.answer || '').toLowerCase();
|
|
354
|
+
if (decision.includes('yes') || decision.includes('add') || decision.includes('should')) {
|
|
355
|
+
onProgress?.('Note: User confirmed cards should be added - consider expanding entity list');
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
onProgress?.('Card-less design acknowledged as intentional');
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// Horror without atmosphere
|
|
362
|
+
if (genres.some((g) => g.includes('horror')) &&
|
|
363
|
+
!bible.creative?.horror?.atmosphere) {
|
|
364
|
+
const result = await this.askClarification('Horror game but no horror atmosphere defined. What kind of horror experience are you creating?', bible, 'Horror Atmosphere');
|
|
365
|
+
const decision = (result.answer || '').toLowerCase();
|
|
366
|
+
// Attempt to add horror atmosphere based on user response
|
|
367
|
+
if (bible.creative && decision.length > 10) {
|
|
368
|
+
if (!bible.creative.horror) {
|
|
369
|
+
bible.creative.horror = {};
|
|
370
|
+
}
|
|
371
|
+
const horror = bible.creative.horror;
|
|
372
|
+
// Extract atmosphere keywords from response
|
|
373
|
+
if (decision.includes('psychological')) {
|
|
374
|
+
horror.atmosphere = 'Psychological tension and unease';
|
|
375
|
+
}
|
|
376
|
+
else if (decision.includes('survival')) {
|
|
377
|
+
horror.atmosphere = 'Survival horror with resource scarcity';
|
|
378
|
+
}
|
|
379
|
+
else if (decision.includes('jump scare') || decision.includes('jumpscare')) {
|
|
380
|
+
horror.atmosphere = 'Jump scares and sudden frights';
|
|
381
|
+
}
|
|
382
|
+
else if (decision.includes('cosmic') || decision.includes('lovecraft')) {
|
|
383
|
+
horror.atmosphere = 'Cosmic horror and existential dread';
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
horror.atmosphere = result.answer.substring(0, 100);
|
|
387
|
+
}
|
|
388
|
+
onProgress?.('Added horror atmosphere based on user input');
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
// Story/narrative game without NPCs
|
|
392
|
+
if ((genres.some((g) => g.includes('rpg') || g.includes('adventure') || g.includes('story')) ||
|
|
393
|
+
bible.features.some((f) => f.narrative)) &&
|
|
394
|
+
!bible.gameObjects.some((e) => e.category === 'NPC')) {
|
|
395
|
+
const result = await this.askClarification('Story-driven game with no NPCs. Should we add key characters to populate the world?', bible, 'Story Characters');
|
|
396
|
+
const decision = (result.answer || '').toLowerCase();
|
|
397
|
+
if (decision.includes('yes') || decision.includes('add') || decision.includes('should')) {
|
|
398
|
+
onProgress?.('Note: User confirmed NPCs should be added - consider expanding entity list');
|
|
399
|
+
}
|
|
400
|
+
else {
|
|
401
|
+
onProgress?.('NPC-less design acknowledged as intentional (e.g., environmental storytelling)');
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
}
|
|
255
405
|
async generateMetaAndFeatures(transcriptStr, onProgress) {
|
|
256
406
|
const prompt = `Generate the meta section and core features for a Game Design Document.
|
|
257
407
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Architect.js","sourceRoot":"","sources":["../../../src/agents/core/Architect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Architect.js","sourceRoot":"","sources":["../../../src/agents/core/Architect.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 DocumentUpdateResult {
|
|
4
|
+
updatedDocument: string;
|
|
5
|
+
sectionsModified: string[];
|
|
6
|
+
errors: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare class DocumentUpdater extends BaseAgent {
|
|
9
|
+
constructor(apiKey: string, costTracker: any, modelSelector: any);
|
|
10
|
+
execute(previousDocument: string, changesSummary: string[], updatedBible: GameBible, onProgress?: (message: string) => void): Promise<DocumentUpdateResult>;
|
|
11
|
+
private parseResult;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=DocumentUpdater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentUpdater.d.ts","sourceRoot":"","sources":["../../../src/agents/core/DocumentUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAqC1D,OAAO,CACX,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EAAE,EACxB,YAAY,EAAE,SAAS,EACvB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,oBAAoB,CAAC;IAqDhC,OAAO,CAAC,WAAW;CA4EpB"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocumentUpdater = void 0;
|
|
4
|
+
const BaseAgent_1 = require("../base/BaseAgent");
|
|
5
|
+
const modelSelector_1 = require("../../utils/modelSelector");
|
|
6
|
+
const debugLogger_1 = require("../../utils/debugLogger");
|
|
7
|
+
class DocumentUpdater extends BaseAgent_1.BaseAgent {
|
|
8
|
+
constructor(apiKey, costTracker, modelSelector) {
|
|
9
|
+
const config = {
|
|
10
|
+
systemPrompt: `You are a Document Update Specialist. Your role is to make TARGETED, SURGICAL modifications to existing Game Design Documents.
|
|
11
|
+
|
|
12
|
+
CRITICAL RULES:
|
|
13
|
+
1. PRESERVE all existing content that is NOT affected by the changes
|
|
14
|
+
2. Only modify text that directly references the changed elements
|
|
15
|
+
3. Do NOT rewrite descriptions, narratives, or creative content unless explicitly changed
|
|
16
|
+
4. Do NOT add new sections or expand existing ones
|
|
17
|
+
5. Do NOT change writing style, tone, or level of detail
|
|
18
|
+
6. Treat the existing document as authoritative - your job is to update references, not improve content
|
|
19
|
+
|
|
20
|
+
When changing names/titles:
|
|
21
|
+
- Find-and-replace the old name with the new name throughout
|
|
22
|
+
- Update any references, headings, and mentions
|
|
23
|
+
- Keep all surrounding prose EXACTLY as it was
|
|
24
|
+
|
|
25
|
+
When adding new elements:
|
|
26
|
+
- Add a new section in the appropriate location
|
|
27
|
+
- Keep it brief and consistent with existing style
|
|
28
|
+
- Do NOT modify existing sections
|
|
29
|
+
|
|
30
|
+
When removing elements:
|
|
31
|
+
- Remove the relevant section
|
|
32
|
+
- Remove references to it from other sections
|
|
33
|
+
- Do NOT fill the gap with new content
|
|
34
|
+
|
|
35
|
+
When modifying element properties:
|
|
36
|
+
- Update only the specific property mentioned
|
|
37
|
+
- Keep all other descriptions unchanged
|
|
38
|
+
|
|
39
|
+
Output the COMPLETE updated document, preserving all markdown formatting.`,
|
|
40
|
+
temperature: 0.1 // Very low temperature for consistency
|
|
41
|
+
};
|
|
42
|
+
super(apiKey, config, costTracker, modelSelector);
|
|
43
|
+
}
|
|
44
|
+
async execute(previousDocument, changesSummary, updatedBible, onProgress) {
|
|
45
|
+
// If there are no changes, return the original document
|
|
46
|
+
if (changesSummary.length === 0) {
|
|
47
|
+
return {
|
|
48
|
+
updatedDocument: previousDocument,
|
|
49
|
+
sectionsModified: [],
|
|
50
|
+
errors: []
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const prompt = `Apply the following changes to this Game Design Document. Make ONLY the changes described - preserve everything else EXACTLY as it is.
|
|
54
|
+
|
|
55
|
+
## CHANGES TO APPLY:
|
|
56
|
+
${changesSummary.map((change, i) => `${i + 1}. ${change}`).join('\n')}
|
|
57
|
+
|
|
58
|
+
## UPDATED GAME BIBLE (for reference only - use this to verify correct values):
|
|
59
|
+
Game Title: ${updatedBible.meta.title}
|
|
60
|
+
Genre: ${updatedBible.meta.genre.join(', ')}
|
|
61
|
+
Features: ${updatedBible.features.map(f => f.name).join(', ')}
|
|
62
|
+
Entities: ${updatedBible.gameObjects.map(e => e.name).join(', ')}
|
|
63
|
+
|
|
64
|
+
## CURRENT DOCUMENT:
|
|
65
|
+
${previousDocument}
|
|
66
|
+
|
|
67
|
+
## INSTRUCTIONS:
|
|
68
|
+
1. Apply ONLY the changes listed above
|
|
69
|
+
2. For name changes: find-and-replace throughout the document
|
|
70
|
+
3. For new elements: add minimal sections matching existing style
|
|
71
|
+
4. For removals: delete the relevant sections and references
|
|
72
|
+
5. PRESERVE all existing prose, descriptions, and creative content
|
|
73
|
+
6. Maintain all markdown formatting, headings, and structure
|
|
74
|
+
7. Do NOT rewrite or expand any content that wasn't explicitly changed
|
|
75
|
+
|
|
76
|
+
## RESPONSE FORMAT:
|
|
77
|
+
{
|
|
78
|
+
"updatedDocument": "COMPLETE markdown document with changes applied",
|
|
79
|
+
"sectionsModified": ["List of section names that were modified"],
|
|
80
|
+
"errors": ["Any issues encountered"]
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
CRITICAL: Output valid JSON. The updatedDocument must be the COMPLETE document, not just the changed parts.`;
|
|
84
|
+
onProgress?.('Applying targeted changes to document...');
|
|
85
|
+
const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.COMPLEX, {
|
|
86
|
+
initialMaxTokens: 32000,
|
|
87
|
+
maxRetries: 2,
|
|
88
|
+
onProgress
|
|
89
|
+
});
|
|
90
|
+
return this.parseResult(result.content, previousDocument);
|
|
91
|
+
}
|
|
92
|
+
parseResult(content, originalDocument) {
|
|
93
|
+
let jsonStr = content.trim();
|
|
94
|
+
// Handle markdown code blocks
|
|
95
|
+
const codeBlockMatch = content.match(/```(?:json)?\n?([\s\S]*?)\n?```/);
|
|
96
|
+
if (codeBlockMatch) {
|
|
97
|
+
jsonStr = codeBlockMatch[1].trim();
|
|
98
|
+
}
|
|
99
|
+
// Find JSON object boundaries
|
|
100
|
+
if (!jsonStr.startsWith('{')) {
|
|
101
|
+
const firstBrace = jsonStr.indexOf('{');
|
|
102
|
+
const lastBrace = jsonStr.lastIndexOf('}');
|
|
103
|
+
if (firstBrace !== -1 && lastBrace > firstBrace) {
|
|
104
|
+
jsonStr = jsonStr.substring(firstBrace, lastBrace + 1);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// No JSON object found at all
|
|
108
|
+
const errorMsg = 'No JSON object found in response';
|
|
109
|
+
debugLogger_1.debugLogger.logJSONParsing({
|
|
110
|
+
agent: 'DocumentUpdater',
|
|
111
|
+
success: false,
|
|
112
|
+
rawContent: content,
|
|
113
|
+
error: errorMsg
|
|
114
|
+
});
|
|
115
|
+
return {
|
|
116
|
+
updatedDocument: originalDocument,
|
|
117
|
+
sectionsModified: [],
|
|
118
|
+
errors: [errorMsg]
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
const parsed = JSON.parse(jsonStr);
|
|
124
|
+
if (parsed.updatedDocument && typeof parsed.updatedDocument === 'string') {
|
|
125
|
+
return {
|
|
126
|
+
updatedDocument: parsed.updatedDocument,
|
|
127
|
+
sectionsModified: parsed.sectionsModified || [],
|
|
128
|
+
errors: parsed.errors || []
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// If no valid document in response, return original
|
|
132
|
+
const errorMsg = `Response JSON did not contain valid updatedDocument field. Keys found: ${Object.keys(parsed).join(', ')}`;
|
|
133
|
+
debugLogger_1.debugLogger.logJSONParsing({
|
|
134
|
+
agent: 'DocumentUpdater',
|
|
135
|
+
success: false,
|
|
136
|
+
rawContent: jsonStr,
|
|
137
|
+
parsedObject: parsed,
|
|
138
|
+
error: errorMsg
|
|
139
|
+
});
|
|
140
|
+
return {
|
|
141
|
+
updatedDocument: originalDocument,
|
|
142
|
+
sectionsModified: [],
|
|
143
|
+
errors: [errorMsg]
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
// JSON parsing failed - log detailed error and return original document
|
|
148
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown parsing error';
|
|
149
|
+
const errorMsg = `JSON parse failed: ${errorMessage}`;
|
|
150
|
+
debugLogger_1.debugLogger.logJSONParsing({
|
|
151
|
+
agent: 'DocumentUpdater',
|
|
152
|
+
success: false,
|
|
153
|
+
rawContent: jsonStr,
|
|
154
|
+
error: errorMsg
|
|
155
|
+
});
|
|
156
|
+
return {
|
|
157
|
+
updatedDocument: originalDocument,
|
|
158
|
+
sectionsModified: [],
|
|
159
|
+
errors: [errorMsg]
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.DocumentUpdater = DocumentUpdater;
|
|
165
|
+
//# sourceMappingURL=DocumentUpdater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DocumentUpdater.js","sourceRoot":"","sources":["../../../src/agents/core/DocumentUpdater.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;IAa1D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
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;CA6NzF"}
|
|
@@ -74,6 +74,74 @@ Focus on the creative vision, not production pipeline details.`
|
|
|
74
74
|
if (overages.length > 0) {
|
|
75
75
|
await this.askClarification(`The following asset categories exceed typical limits for a "${scope}" scope:\n\n${overages.map(o => `- ${o}`).join('\n')}`, bible, 'Asset Scope');
|
|
76
76
|
}
|
|
77
|
+
// Check for art style-genre mismatch
|
|
78
|
+
const genres = bible.meta.genre.map((g) => g.toLowerCase());
|
|
79
|
+
const artStyle = bible.creative.artStyle.toLowerCase();
|
|
80
|
+
// Horror game check - more nuanced to allow horror-comedy or intentional contrast
|
|
81
|
+
if (genres.some((g) => g.includes('horror'))) {
|
|
82
|
+
// Only flag if BOTH bright/cheerful AND no indication of comedy/intentional contrast
|
|
83
|
+
const hasConflictingStyle = (artStyle.includes('bright') || artStyle.includes('cheerful') || artStyle.includes('colorful')) &&
|
|
84
|
+
!artStyle.includes('contrast') && !artStyle.includes('ironic');
|
|
85
|
+
const isHorrorComedy = genres.some((g) => g.includes('comedy')) || artStyle.includes('comedy');
|
|
86
|
+
if (hasConflictingStyle && !isHorrorComedy) {
|
|
87
|
+
const result = await this.askClarification(`Art style "${bible.creative.artStyle}" seems unusual for a horror game. Is this intentional (e.g., horror-comedy, ironic contrast)?`, bible, 'Art Style Genre Match');
|
|
88
|
+
const decision = (result.answer || '').toLowerCase();
|
|
89
|
+
if (decision.includes('comedy') || decision.includes('ironic') || decision.includes('contrast')) {
|
|
90
|
+
onProgress?.('Unconventional horror art style acknowledged as intentional design choice');
|
|
91
|
+
}
|
|
92
|
+
else if (decision.includes('change') || decision.includes('darken')) {
|
|
93
|
+
onProgress?.('Note: Consider darkening art style to match horror atmosphere');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (genres.some((g) => g.includes('realistic') || g.includes('simulation') || g.includes('military'))) {
|
|
98
|
+
if (artStyle.includes('stylized') || artStyle.includes('anime') ||
|
|
99
|
+
artStyle.includes('cartoon') || artStyle.includes('cute')) {
|
|
100
|
+
const result = await this.askClarification(`Art style "${bible.creative.artStyle}" seems unusual for a ${genres.join('/')} game. Is this intentional?`, bible, 'Art Style Realism');
|
|
101
|
+
const decision = (result.answer || '').toLowerCase();
|
|
102
|
+
if (decision.includes('yes') || decision.includes('intentional') || decision.includes('stylized')) {
|
|
103
|
+
onProgress?.('Stylized art for realistic game acknowledged as design choice');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (genres.some((g) => g.includes('serious') || g.includes('tactical'))) {
|
|
108
|
+
if (artStyle.includes('cute') || artStyle.includes('whimsical') ||
|
|
109
|
+
artStyle.includes('playful')) {
|
|
110
|
+
const result = await this.askClarification(`Art style "${bible.creative.artStyle}" seems unusual for a serious/tactical game. Is this a deliberate contrast?`, bible, 'Art Style Tone');
|
|
111
|
+
const decision = (result.answer || '').toLowerCase();
|
|
112
|
+
if (decision.includes('yes') || decision.includes('deliberate') || decision.includes('contrast')) {
|
|
113
|
+
onProgress?.('Contrasting art style acknowledged as deliberate design choice');
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
onProgress?.('Note: Consider aligning art style with serious/tactical tone');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Check for audio-genre mismatch
|
|
121
|
+
const audioMood = bible.creative.audioMood.toLowerCase();
|
|
122
|
+
if (genres.some((g) => g.includes('horror'))) {
|
|
123
|
+
if (audioMood.includes('upbeat') || audioMood.includes('cheerful') ||
|
|
124
|
+
audioMood.includes('lighthearted') || audioMood.includes('happy')) {
|
|
125
|
+
const result = await this.askClarification(`Audio mood "${bible.creative.audioMood}" seems unusual for a horror game. Is this intentional?`, bible, 'Audio Mood Genre Match');
|
|
126
|
+
const decision = (result.answer || '').toLowerCase();
|
|
127
|
+
if (decision.includes('yes') || decision.includes('intentional') || decision.includes('contrast')) {
|
|
128
|
+
onProgress?.('Unconventional horror audio mood acknowledged as design choice');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (genres.some((g) => g.includes('puzzle') || g.includes('relaxing'))) {
|
|
133
|
+
if (audioMood.includes('intense') || audioMood.includes('aggressive') ||
|
|
134
|
+
audioMood.includes('heavy metal') || audioMood.includes('chaotic')) {
|
|
135
|
+
const result = await this.askClarification(`Audio mood "${bible.creative.audioMood}" seems unusual for a ${genres.join('/')} game. Is this intentional?`, bible, 'Audio Mood Intensity');
|
|
136
|
+
const decision = (result.answer || '').toLowerCase();
|
|
137
|
+
if (decision.includes('yes') || decision.includes('intentional') || decision.includes('tension')) {
|
|
138
|
+
onProgress?.('High-intensity audio for puzzle game acknowledged as design choice');
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
onProgress?.('Note: Consider calmer audio mood for puzzle/relaxing game');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
77
145
|
const prompt = `Generate creative direction documentation focused on vision and mood:
|
|
78
146
|
|
|
79
147
|
Game: ${bible.meta.title} (${bible.meta.genre.join(', ')})
|