bmad-auto-copilot 1.1.2 → 1.1.3

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 CHANGED
@@ -30,7 +30,7 @@ The automation loop continuously:
30
30
  3. Auto-commits code after successful code reviews
31
31
  4. Repeats until all stories reach `done`
32
32
 
33
- Each session uses **Claude Opus 4.6** by default (configurable).
33
+ Each session uses **GPT-5.3-Codex** with **xhigh reasoning effort** by default (configurable).
34
34
 
35
35
  ## Prerequisites
36
36
 
@@ -82,6 +82,7 @@ Installs to: `.scripts/bmad-auto/copilot/`
82
82
  npx bmad-auto-copilot run # Run with defaults
83
83
  npx bmad-auto-copilot run --max 100 # Limit to 100 iterations
84
84
  npx bmad-auto-copilot run --model gpt-4.1 # Use different model
85
+ npx bmad-auto-copilot run --reasoning-effort high # Use different reasoning effort
85
86
  npx bmad-auto-copilot run --verbose --dry # Dry run with debug output
86
87
  ```
87
88
 
@@ -124,7 +125,8 @@ After installation, you can run the scripts directly:
124
125
 
125
126
  | Variable | Default | Description |
126
127
  |----------|---------|-------------|
127
- | `COPILOT_MODEL` | `claude-opus-4.6` | AI model for all sessions |
128
+ | `COPILOT_MODEL` | `gpt-5.3-codex` | AI model for all sessions |
129
+ | `COPILOT_REASONING_EFFORT` | `xhigh` | Reasoning effort for all sessions |
128
130
  | `ITERATION_DELAY` | `10` | Seconds between iterations |
129
131
 
130
132
  ### bmad-auto-config.yaml
@@ -142,8 +144,8 @@ implementation_artifacts: "_bmad-output/implementation-artifacts"
142
144
  Each step creates a **completely isolated Copilot CLI session**:
143
145
 
144
146
  ```
145
- copilot --agent sm --model claude-opus-4.6 -p <prompt> --allow-all --no-ask-user
146
- copilot --agent dev --model claude-opus-4.6 -p <prompt> --allow-all --no-ask-user
147
+ copilot --model gpt-5.3-codex --reasoning-effort xhigh -p <prompt> --allow-all --no-ask-user
148
+ copilot --model gpt-5.3-codex --reasoning-effort xhigh -p <prompt> --allow-all --no-ask-user
147
149
  ```
148
150
 
149
151
  This ensures:
package/bin/cli.js CHANGED
@@ -30,7 +30,8 @@ COMMANDS:
30
30
  run [path] Run the automation loop (shortcut for bmad-loop.sh)
31
31
 
32
32
  OPTIONS:
33
- --model <model> AI model (default: claude-opus-4.6)
33
+ --model <model> AI model (default: gpt-5.3-codex)
34
+ --reasoning-effort Reasoning effort (default: xhigh)
34
35
  --max <n> Max iterations (default: 250)
35
36
  --output <folder> BMAD output folder (default: auto-detect from config)
36
37
  --force Overwrite existing installation
@@ -39,7 +40,8 @@ OPTIONS:
39
40
  EXAMPLES:
40
41
  npx bmad-auto-copilot install
41
42
  npx bmad-auto-copilot install ~/projects/my-app
42
- npx bmad-auto-copilot install --model claude-sonnet-4.5
43
+ npx bmad-auto-copilot install --model gpt-5.3-codex
44
+ npx bmad-auto-copilot run --reasoning-effort xhigh
43
45
  npx bmad-auto-copilot run --max 100
44
46
  npx bmad-auto-copilot status
45
47
  npx bmad-auto-copilot uninstall
@@ -54,7 +56,8 @@ function parseArgs(args) {
54
56
  const parsed = {
55
57
  command: null,
56
58
  projectPath: null,
57
- model: 'claude-opus-4.6',
59
+ model: 'gpt-5.3-codex',
60
+ reasoningEffort: 'xhigh',
58
61
  maxIterations: 250,
59
62
  outputFolder: null,
60
63
  force: false,
@@ -82,6 +85,9 @@ function parseArgs(args) {
82
85
  case '--model':
83
86
  parsed.model = args[++i];
84
87
  break;
88
+ case '--reasoning-effort':
89
+ parsed.reasoningEffort = args[++i];
90
+ break;
85
91
  case '--max':
86
92
  parsed.maxIterations = parseInt(args[++i], 10);
87
93
  break;
package/lib/run.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // ============================================================
4
4
 
5
5
  const path = require('path');
6
- const { execSync, spawn } = require('child_process');
6
+ const { spawn } = require('child_process');
7
7
  const {
8
8
  resolveProject,
9
9
  getInstallPath,
@@ -40,8 +40,9 @@ async function run(args) {
40
40
  String(args.maxIterations),
41
41
  ...(args.verbose ? ['-Verbose'] : []),
42
42
  ...(args.dryRun ? ['-DryRun'] : []),
43
- ...(args.model !== 'claude-opus-4.6'
44
- ? ['-Model', args.model]
43
+ ...(args.model ? ['-Model', args.model] : []),
44
+ ...(args.reasoningEffort
45
+ ? ['-ReasoningEffort', args.reasoningEffort]
45
46
  : []),
46
47
  ]
47
48
  );
@@ -63,6 +64,9 @@ async function run(args) {
63
64
  if (args.model) {
64
65
  env.COPILOT_MODEL = args.model;
65
66
  }
67
+ if (args.reasoningEffort) {
68
+ env.COPILOT_REASONING_EFFORT = args.reasoningEffort;
69
+ }
66
70
 
67
71
  // Spawn the loop script as a child process with inherited stdio
68
72
  const child = spawn(scriptArgs[0], scriptArgs[1], {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bmad-auto-copilot",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "Automated BMAD story development loop using GitHub Copilot CLI — install into any BMAD project",
5
5
  "keywords": [
6
6
  "bmad",
@@ -7,11 +7,13 @@
7
7
  Each step runs as a NEW Copilot CLI session (fresh context window).
8
8
  Continues until all stories reach 'done' state in sprint-status.yaml.
9
9
 
10
- Model: Claude Opus 4.6 (configurable via -Model or COPILOT_MODEL env var)
10
+ Model: GPT-5.3-Codex with xhigh reasoning (configurable via params or env vars)
11
11
  .PARAMETER MaxIterations
12
12
  Safety limit for maximum loop iterations (default: 250)
13
13
  .PARAMETER Model
14
- AI model to use (default: claude-opus-4.6)
14
+ AI model to use (default: gpt-5.3-codex)
15
+ .PARAMETER ReasoningEffort
16
+ Reasoning effort to use (default: xhigh)
15
17
  .PARAMETER Verbose
16
18
  Enable detailed debug logging
17
19
  .PARAMETER DryRun
@@ -31,6 +33,7 @@
31
33
  param(
32
34
  [int]$MaxIterations = 250,
33
35
  [string]$Model = "",
36
+ [string]$ReasoningEffort = "",
34
37
  [switch]$Verbose,
35
38
  [switch]$DryRun
36
39
  )
@@ -51,7 +54,15 @@ if (-not $Model) {
51
54
  $Model = $env:COPILOT_MODEL
52
55
  }
53
56
  if (-not $Model) {
54
- $Model = "claude-opus-4.6"
57
+ $Model = "gpt-5.3-codex"
58
+ }
59
+
60
+ # Reasoning effort: prefer parameter > env var > default
61
+ if (-not $ReasoningEffort) {
62
+ $ReasoningEffort = $env:COPILOT_REASONING_EFFORT
63
+ }
64
+ if (-not $ReasoningEffort) {
65
+ $ReasoningEffort = "xhigh"
55
66
  }
56
67
 
57
68
  # Delay between iterations (seconds)
@@ -181,6 +192,10 @@ function Get-NextAction {
181
192
  Write-Log "[NEXT] Found story in REVIEW state -> code-review (Dev agent)" "Green"
182
193
  return "code-review"
183
194
  }
195
+ if ($inProgressCount -gt 0) {
196
+ Write-Log "[NEXT] Found story in IN-PROGRESS state -> dev-story resume (Dev agent)" "Green"
197
+ return "dev-story"
198
+ }
184
199
  if ($readyCount -gt 0) {
185
200
  Write-Log "[NEXT] Found story in READY-FOR-DEV state -> dev-story (Dev agent)" "Green"
186
201
  return "dev-story"
@@ -194,10 +209,6 @@ function Get-NextAction {
194
209
  return "complete"
195
210
  }
196
211
 
197
- if ($inProgressCount -gt 0) {
198
- Write-Log "[WAIT] Found $inProgressCount story(ies) in-progress" "Yellow"
199
- }
200
-
201
212
  return "wait"
202
213
  }
203
214
 
@@ -220,10 +231,10 @@ function Invoke-CopilotSession {
220
231
  $prompt = Get-Content $PromptFile -Raw
221
232
  $prompt = $prompt -replace '\{TIMESTAMP\}', (Get-Date -Format "yyyy-MM-dd HH:mm:ss")
222
233
 
223
- Write-Log "[SESSION] New Copilot CLI session -> Agent: $Agent | Model: $Model | Action: $ActionLabel" "Magenta"
234
+ Write-Log "[SESSION] New Copilot CLI session -> Agent: $Agent | Model: $Model | Reasoning: $ReasoningEffort | Action: $ActionLabel" "Magenta"
224
235
 
225
236
  if ($DryRun) {
226
- Write-Log "[DRY RUN] Would execute: copilot --agent $Agent --model $Model -p '...' --allow-all --no-ask-user" "Yellow"
237
+ Write-Log "[DRY RUN] Would execute: copilot --model $Model --reasoning-effort $ReasoningEffort -p '...' --allow-all --no-ask-user" "Yellow"
227
238
  return $true
228
239
  }
229
240
 
@@ -235,6 +246,7 @@ function Invoke-CopilotSession {
235
246
  # The prompt itself contains all workflow instructions.
236
247
  copilot `
237
248
  --model $Model `
249
+ --reasoning-effort $ReasoningEffort `
238
250
  --allow-all `
239
251
  --no-ask-user `
240
252
  -p $prompt
@@ -343,6 +355,7 @@ Write-Host ""
343
355
  Write-Log "[START] BMAD Auto Loop Started" "Green"
344
356
  Write-Log "Max iterations: $MaxIterations" "Gray"
345
357
  Write-Log "Model: $Model" "Gray"
358
+ Write-Log "Reasoning effort: $ReasoningEffort" "Gray"
346
359
  Write-Log "Project root: $ProjectRoot" "Gray"
347
360
  Write-Log "Sprint status: $SprintStatusPath" "Gray"
348
361
  if ($DryRun) {
@@ -22,7 +22,7 @@
22
22
  # - BMAD installed with .github/agents/ directory (sm, dev agents)
23
23
  # - Sprint planning completed (sprint-status.yaml exists)
24
24
  #
25
- # MODEL: Claude Opus 4.6 (configurable via COPILOT_MODEL env var)
25
+ # MODEL: GPT-5.3-Codex with xhigh reasoning (configurable via env vars)
26
26
  #
27
27
  # ============================================================
28
28
 
@@ -52,8 +52,9 @@ CONFIG_PATH="$SCRIPT_DIR/bmad-auto-config.yaml"
52
52
  PROGRESS_LOG="$SCRIPT_DIR/bmad-progress.log"
53
53
  PROMPT_DIR="$SCRIPT_DIR/prompts"
54
54
 
55
- # Model configuration - Claude Opus 4.6
56
- COPILOT_MODEL="${COPILOT_MODEL:-claude-opus-4.6}"
55
+ # Model configuration - GPT-5.3-Codex + xhigh reasoning effort
56
+ COPILOT_MODEL="${COPILOT_MODEL:-gpt-5.3-codex}"
57
+ COPILOT_REASONING_EFFORT="${COPILOT_REASONING_EFFORT:-xhigh}"
57
58
 
58
59
  # Delay between iterations (seconds)
59
60
  ITERATION_DELAY="${ITERATION_DELAY:-10}"
@@ -231,10 +232,10 @@ invoke_copilot() {
231
232
  local prompt=$(cat "$prompt_file")
232
233
  prompt="${prompt//\{TIMESTAMP\}/$(date "+%Y-%m-%d %H:%M:%S")}"
233
234
 
234
- log "[SESSION] New Copilot CLI session → Model: $COPILOT_MODEL | Action: $action_label" "magenta"
235
+ log "[SESSION] New Copilot CLI session → Model: $COPILOT_MODEL | Reasoning: $COPILOT_REASONING_EFFORT | Action: $action_label" "magenta"
235
236
 
236
237
  if $DRY_RUN; then
237
- log "[DRY RUN] Would execute: copilot --model $COPILOT_MODEL -p '...' --allow-all --no-ask-user" "yellow"
238
+ log "[DRY RUN] Would execute: copilot --model $COPILOT_MODEL --reasoning-effort $COPILOT_REASONING_EFFORT -p '...' --allow-all --no-ask-user" "yellow"
238
239
  return 0
239
240
  fi
240
241
 
@@ -243,6 +244,7 @@ invoke_copilot() {
243
244
  # The prompt itself contains all workflow instructions.
244
245
  if copilot \
245
246
  --model "$COPILOT_MODEL" \
247
+ --reasoning-effort "$COPILOT_REASONING_EFFORT" \
246
248
  --allow-all \
247
249
  --no-ask-user \
248
250
  -p "$prompt" \
@@ -333,6 +335,7 @@ log "" "white"
333
335
  log "[START] BMAD Auto Loop Started" "green"
334
336
  log "Max iterations: $MAX_ITERATIONS" "gray"
335
337
  log "Model: $COPILOT_MODEL" "gray"
338
+ log "Reasoning effort: $COPILOT_REASONING_EFFORT" "gray"
336
339
  log "Project root: $PROJECT_ROOT" "gray"
337
340
  log "Sprint status: $SPRINT_STATUS_PATH" "gray"
338
341
  if $DRY_RUN; then