From edef4db088f2ec6663bb21b40a3c20ac81d051ce Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 17 Apr 2026 16:14:31 +0200 Subject: [PATCH 1/2] fix: add missing GitStrategy import --- src/prompts/project.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/prompts/project.ts b/src/prompts/project.ts index 69224c1..6f8087d 100644 --- a/src/prompts/project.ts +++ b/src/prompts/project.ts @@ -10,6 +10,7 @@ import type { BackendType, FrontendType, WorkflowMode, + GitStrategy, SpeckitPreset, } from "../types.js"; @@ -347,6 +348,24 @@ export async function promptProjectConfig( }); } + let gitStrategy: GitStrategy = defaults.gitStrategy ?? "pr-required"; + if (workflowMode === "vibe" && defaults.gitStrategy === undefined) { + gitStrategy = await select({ + message: "Stratégie git", + choices: [ + { + name: "PR obligatoire (plus sûr)", + value: "pr-required", + }, + { + name: "Push direct sur master (plus rapide)", + value: "no-pr", + }, + ], + default: "pr-required", + }); + } + return { name, groupId, @@ -364,6 +383,7 @@ export async function promptProjectConfig( docker, speckit, workflowMode, + gitStrategy, speckitPreset, ci, claudeCode, From 68d21d193a527da78fb2cbc5d88e71a229384132 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 17 Apr 2026 16:14:33 +0200 Subject: [PATCH 2/2] feat: add git strategy prompt for Vibe workflow mode --- src/__tests__/fixtures.ts | 1 + src/commands/add.ts | 1 + src/generators/claude-code/__tests__/claude-code.test.ts | 6 +++++- src/generators/claude-code/index.ts | 5 ++--- src/types.ts | 2 ++ src/utils/detect-project.ts | 1 + 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/__tests__/fixtures.ts b/src/__tests__/fixtures.ts index 49294d8..e5d6a6c 100644 --- a/src/__tests__/fixtures.ts +++ b/src/__tests__/fixtures.ts @@ -25,6 +25,7 @@ export function makeBaseConfig( claudeCode: false, speckit: false, workflowMode: "none", + gitStrategy: "pr-required", speckitPreset: null, gitInit: false, ...overrides, diff --git a/src/commands/add.ts b/src/commands/add.ts index 7fa3a95..fa49b69 100644 --- a/src/commands/add.ts +++ b/src/commands/add.ts @@ -287,6 +287,7 @@ Exemples: claudeCode: false, speckit: false, workflowMode: "none", + gitStrategy: "pr-required", speckitPreset: null, gitInit: false, }; diff --git a/src/generators/claude-code/__tests__/claude-code.test.ts b/src/generators/claude-code/__tests__/claude-code.test.ts index b4e95bc..79a26ec 100644 --- a/src/generators/claude-code/__tests__/claude-code.test.ts +++ b/src/generators/claude-code/__tests__/claude-code.test.ts @@ -474,7 +474,11 @@ describe("ClaudeCodeGenerator", () => { }); it("vibe mode → settings.json git.strategy=no-pr and CLAUDE.md uses commit skill", async () => { - const config = { ...baseConfig, workflowMode: "vibe" as const }; + const config = { + ...baseConfig, + workflowMode: "vibe" as const, + gitStrategy: "no-pr" as const, + }; await generateClaudeCode(tmpDir, config, baseVersions); const settings = await fs.readJson( path.join(tmpDir, ".claude", "settings.json"), diff --git a/src/generators/claude-code/index.ts b/src/generators/claude-code/index.ts index c942e77..4e1cbca 100644 --- a/src/generators/claude-code/index.ts +++ b/src/generators/claude-code/index.ts @@ -138,9 +138,8 @@ class ClaudeCodeGenerator extends BaseGenerator { claudeDir: ".claude", workflowSpeckit: this.config.workflowMode === "speckit", workflowVibe: this.config.workflowMode === "vibe", - gitStrategy: - this.config.workflowMode === "vibe" ? "no-pr" : "pr-required", - gitStrategyNoPr: this.config.workflowMode === "vibe", + gitStrategy: this.config.gitStrategy, + gitStrategyNoPr: this.config.gitStrategy === "no-pr", hasParentSessionStart: parentHooks.has("SessionStart"), hasParentPreCompact: parentHooks.has("PreCompact"), ...this.resolveSpeckitData(), diff --git a/src/types.ts b/src/types.ts index ac25650..3815d53 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,6 +1,7 @@ export type UIFramework = "primeng" | "tailwind" | "none"; export type PrimeNGPreset = "Aura" | "Lara" | "Nora"; export type WorkflowMode = "speckit" | "vibe" | "none"; +export type GitStrategy = "pr-required" | "no-pr"; export type SpeckitPreset = "rigorous" | "balanced" | "fast" | "bare-metal"; export type BackendType = | "spring-boot" @@ -36,6 +37,7 @@ export interface ProjectConfig { claudeCode: boolean; speckit: boolean; workflowMode: WorkflowMode; + gitStrategy: GitStrategy; speckitPreset: SpeckitPreset | null; gitInit: boolean; } diff --git a/src/utils/detect-project.ts b/src/utils/detect-project.ts index bb2c124..ffe021c 100644 --- a/src/utils/detect-project.ts +++ b/src/utils/detect-project.ts @@ -108,6 +108,7 @@ function defaultConfig(projectDir: string): ProjectConfig { claudeCode: false, speckit: false, workflowMode: "none", + gitStrategy: "pr-required", speckitPreset: null, gitInit: false, };