v2.12.0
v2.12.0 — Claude Code v2.1.110/111 + Opus 4.7 Compatibility (2026-04-17)
Summary
Claude Code v2.1.110/111 and Claude Opus 4.7 (claude-opus-4-7) compatibility layer (SPEC-OPUS47-COMPAT-001 + post-implementation follow-up). Introduces a 5-tier Effort system, Opus 4.7 prompt philosophy (5 principles documented in moai-constitution.md), v2.1.110 runtime handlers, and ApplyEffortPolicy production wiring. Fully backward compatible with Opus 4.6 / Sonnet 4.6 / Haiku 4.5.
Breaking Changes
None. agentModelMap [3]string signature unchanged (NFR-1). effort is opt-in — agents without the field inherit runtime defaults. Existing Opus 4.6 user profiles are preserved (no forced migration).
Added
Effort system
ProfilePreferences.EffortLevelYAML field +CLAUDE_CODE_EFFORT_LEVELenv injection atsyscall.ExectimeEffortLevel{Low,Medium,High,XHigh,Max}5-tier constantsModelIDOpus47 = "claude-opus-4-7"constantagentEffortMapwith explicit overrides for 6 high-reasoning agents (manager-spec / manager-strategy →xhigh; plan-auditor / evaluator-active / expert-security / expert-refactoring →high)GetAgentEffort(agentName)exported functionApplyEffortPolicy(projectRoot, manifestMgr)— called bymoai init/moai update; injects effort overrides into agent.mdfrontmatter, preserves user-customisedeffort:values, registers manifest hashes
Profile setup UI
claude-opus-4-7model option + 5-tier effort selector with 4-language translations (en/ko/ja/zh)
Runtime handlers (v2.1.110+)
checkMCPScopeDuplicatesinmoai doctor— detects collisions between project.mcp.jsonand global~/.claude/.mcp.json(warning-level,exit 0)PermissionRequesthook denies on__updated_input_marker__sentinel (updatedInput re-verification)- Windows-only
injectCLAUDEEnvFileatSessionStart— injectsCLAUDE_ENV_FILEintosettings.local.jsonwhen.envexists; macOS/Linux paths unchanged (R-P1-1 verified) disableBypassPermissionsMode: falsefield in settings template
Rules & documentation
moai-constitution.md— new "Opus 4.7 Prompt Philosophy" section (5 principles)agent-authoring.md— new "Bash Tool Timeout Ceiling" section (600,000ms)worktree-integration.md— v2.1.110/111 rows in minimum version table; recommended2.1.111+skill-authoring.md—effortfield now listslow/medium/high/xhigh/maxCLAUDE.md §12— clarified UltraThink vs Adaptive Thinking vs--deepthinkmoai-workflow-thinking/SKILL.md— Adaptive Thinking redefined; fixedthinking.budget_tokensdirectives removed (Opus 4.7 rejects fixed budgets with HTTP 400)CLAUDE.local.md—settings.local.jsonruntime-management rule +OTEL_LOG_RAW_API_BODIESproduction warning
Testing (post-implementation follow-up — PR #673)
internal/hookcoverage 77.7% → 85.0% (12 new table-driven tests)- R-P1-1 Handle-level Windows guard regression tests
internal/clicoverage 73.6% → 75.1% (partial; 85% target deferred)
Changed
llm.yamltemplate:claude_models.hightier updated from"opus"to"claude-opus-4-7"— new projects now use Opus 4.7 onhighpolicy
Fixed
GetAgentEffortnow has a production caller (ApplyEffortPolicy) — resolves W-5 dead-code warning from Phase 2.5 manager-quality review
Installation & Update
Fresh install (see project README for the one-line installer):
moai versionExisting users:
moai update
moai versionMigrating from Python Version (v1.x):
- Uninstall Python version:
uv tool uninstall moai-adk - Install Go Edition (follow README instructions)
- Update project templates:
moai init
Related PRs: #672 (main), #673 (follow-up), #674 (release finalize)
Related Issues: #671
v2.12.0 — Claude Code v2.1.110/111 + Opus 4.7 호환성 (2026-04-17)
요약
Claude Code v2.1.110/111 및 Claude Opus 4.7(claude-opus-4-7) 호환성 레이어(SPEC-OPUS47-COMPAT-001 + 후속 정리). 5단계 Effort 시스템, Opus 4.7 프롬프트 철학 5원칙(moai-constitution.md 명문화), v2.1.110 런타임 핸들러, ApplyEffortPolicy 프로덕션 연결을 제공합니다. Opus 4.6 / Sonnet 4.6 / Haiku 4.5와 완전 하위 호환.
주요 변경 사항 (Breaking Changes)
없음. agentModelMap [3]string 시그니처 불변(NFR-1). effort는 opt-in으로 미설정 에이전트는 런타임 기본값 사용. 기존 Opus 4.6 사용자 프로파일은 유지(강제 마이그레이션 없음).
추가됨 (Added)
Effort 시스템
ProfilePreferences.EffortLevelYAML 필드 +syscall.Exec시점에CLAUDE_CODE_EFFORT_LEVEL환경변수 주입EffortLevel{Low,Medium,High,XHigh,Max}5단계 상수ModelIDOpus47 = "claude-opus-4-7"상수- 6개 추론 집약 에이전트 명시적 override (manager-spec/strategy →
xhigh, plan-auditor/evaluator-active/expert-security/expert-refactoring →high) GetAgentEffort(agentName)신규 함수ApplyEffortPolicy(projectRoot, manifestMgr)—moai init/moai update가 호출; agent.mdfrontmatter에 effort 주입, 기존 사용자 커스텀effort:값 보존, manifest 해시 갱신
Profile 설정 UI
claude-opus-4-7모델 선택지 + 5단계 effort 선택기(한/영/일/중 4개 언어)
런타임 핸들러(v2.1.110+)
moai doctor의checkMCPScopeDuplicates— 프로젝트.mcp.json과 전역~/.claude/.mcp.json충돌 감지 (warning,exit 0)PermissionRequest훅이__updated_input_marker__sentinel 포함 시 deny (updatedInput 재검증)- Windows 전용
injectCLAUDEEnvFile(SessionStart) —.env존재 시settings.local.json에CLAUDE_ENV_FILE경로 주입; macOS/Linux 기존 경로 영향 없음 (R-P1-1 회귀 검증 완료) settings.json템플릿에disableBypassPermissionsMode: false필드
규칙 및 문서
moai-constitution.md— "Opus 4.7 Prompt Philosophy" 섹션 신설 (5원칙)agent-authoring.md— "Bash Tool Timeout Ceiling" 섹션 신설 (600,000ms)worktree-integration.md— 최소 버전 표에 v2.1.110/111 추가, 권장2.1.111+skill-authoring.md—effort필드를low/medium/high/xhigh/max로 확장CLAUDE.md §12— UltraThink vs Adaptive Thinking vs--deepthink구분 명확화moai-workflow-thinking/SKILL.md— Adaptive Thinking 재정의, 고정thinking.budget_tokens지시 제거 (Opus 4.7은 고정 예산 시 HTTP 400)CLAUDE.local.md—settings.local.json런타임 관리 원칙 +OTEL_LOG_RAW_API_BODIES프로덕션 경고
테스트 (후속 정리 — PR #673)
internal/hook커버리지 77.7% → 85.0% (12개 신규 table-driven 테스트)- R-P1-1 Handle 레벨 Windows 가드 회귀 테스트
internal/cli커버리지 73.6% → 75.1% (부분 개선; 85% 완전 달성은 별도 SPEC으로 연기)
변경됨 (Changed)
llm.yaml템플릿:claude_models.high계층을"opus"→"claude-opus-4-7"로 갱신 — 신규 프로젝트에서high정책이 Opus 4.7 사용
수정됨 (Fixed)
GetAgentEffort에 프로덕션 호출자(ApplyEffortPolicy) 추가 — Phase 2.5 manager-quality 리뷰가 지적한 W-5 dead-code 경고 해소
설치 및 업데이트 (Installation & Update)
신규 설치 (자세한 설치 방법은 프로젝트 README 참조):
moai version기존 사용자:
moai update
moai versionPython 버전(v1.x)에서 마이그레이션:
- Python 버전 제거:
uv tool uninstall moai-adk - Go 에디션 설치 (README 참조)
- 프로젝트 템플릿 업데이트:
moai init
관련 PR: #672 (메인), #673 (후속 정리), #674 (릴리즈 finalize)
관련 이슈: #671