Parent: GH-2432
full implementation - Implement the entire epic as a single consolidated task to avoid merge conflicts. The bulk of changes (Phases 1-4, 6) all touch internal/executor/ (config.go, backend.go, backend_claudecode.go, runner.go, epic.go, hooks.go), and the retry-label work in Phase 5 (internal/github/labels.go, internal/poller/poller.go, internal/autopilot/auto_merger.go) is tightly coupled to the executor changes via shared constants and label lifecycle. Splitting would cause cascade conflicts in runner.go (6 call sites) and config.go (shared struct extensions). Deliverables: (a) extend ClaudeCodeConfig with AllowedTools/MCPConfigPath and add PlanningConfig with claude-opus-4-7 default; (b) extend ExecuteOptions and append --allowedTools/--mcp-config in args builder; (c) populate options at all 6 backend.Execute sites via a buildExecutorOptions helper; (d) modify PlanEpic to pass --model claude-opus-4-7, restrict tools to Read,Grep,Glob, and set ANTHROPIC_MODEL env per-invocation; (e) replace in-memory retryReadyCount with GitHub labels (pilot-retry-1/2/exhausted) and clean them up on merge in auto_merger.go; (f) flip RunTestsOnStop default to false; (g) add tests for planning-model routing, AllowedTools/MCPConfigPath wiring, and retry-label state; (h) verify go build ./... && go test ./... pass.
Parent: GH-2432
full implementation - Implement the entire epic as a single consolidated task to avoid merge conflicts. The bulk of changes (Phases 1-4, 6) all touch
internal/executor/(config.go, backend.go, backend_claudecode.go, runner.go, epic.go, hooks.go), and the retry-label work in Phase 5 (internal/github/labels.go,internal/poller/poller.go,internal/autopilot/auto_merger.go) is tightly coupled to the executor changes via shared constants and label lifecycle. Splitting would cause cascade conflicts inrunner.go(6 call sites) andconfig.go(shared struct extensions). Deliverables: (a) extendClaudeCodeConfigwithAllowedTools/MCPConfigPathand addPlanningConfigwithclaude-opus-4-7default; (b) extendExecuteOptionsand append--allowedTools/--mcp-configin args builder; (c) populate options at all 6backend.Executesites via abuildExecutorOptionshelper; (d) modifyPlanEpicto pass--model claude-opus-4-7, restrict tools toRead,Grep,Glob, and setANTHROPIC_MODELenv per-invocation; (e) replace in-memoryretryReadyCountwith GitHub labels (pilot-retry-1/2/exhausted) and clean them up on merge inauto_merger.go; (f) flipRunTestsOnStopdefault tofalse; (g) add tests for planning-model routing, AllowedTools/MCPConfigPath wiring, and retry-label state; (h) verifygo build ./... && go test ./...pass.