From 4d69d04e2b544d9cadb1c8145ad881201f0a3752 Mon Sep 17 00:00:00 2001 From: Kacper Date: Tue, 30 Dec 2025 14:21:17 +0100 Subject: [PATCH] feat(server): Wire generate-spec to use phaseModels.specGenerationModel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pass model from settings.phaseModels.specGenerationModel to createSpecGenerationOptions(). Falls back to DEFAULT_PHASE_MODELS if settings unavailable. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- apps/server/src/routes/app-spec/generate-spec.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/apps/server/src/routes/app-spec/generate-spec.ts b/apps/server/src/routes/app-spec/generate-spec.ts index 0762bb90..1797509e 100644 --- a/apps/server/src/routes/app-spec/generate-spec.ts +++ b/apps/server/src/routes/app-spec/generate-spec.ts @@ -1,5 +1,8 @@ /** * Generate app_spec.txt from project overview + * + * Model is configurable via phaseModels.specGenerationModel in settings + * (defaults to Opus for high-quality specification generation). */ import { query } from '@anthropic-ai/claude-agent-sdk'; @@ -13,6 +16,7 @@ import { type SpecOutput, } from '../../lib/app-spec-format.js'; import { createLogger } from '@automaker/utils'; +import { DEFAULT_PHASE_MODELS } from '@automaker/types'; import { createSpecGenerationOptions } from '../../lib/sdk-options.js'; import { logAuthStatus } from './common.js'; import { generateFeaturesFromSpec } from './generate-features-from-spec.js'; @@ -93,10 +97,18 @@ ${getStructuredSpecPromptInstruction()}`; '[SpecRegeneration]' ); + // Get model from phase settings + const settings = await settingsService?.getGlobalSettings(); + const specGenerationModel = + settings?.phaseModels?.specGenerationModel || DEFAULT_PHASE_MODELS.specGenerationModel; + + logger.info('Using model:', specGenerationModel); + const options = createSpecGenerationOptions({ cwd: projectPath, abortController, autoLoadClaudeMd, + model: specGenerationModel, outputFormat: { type: 'json_schema', schema: specOutputSchema,