From 244693af1f53e124afbd616c4e5b602c2e6358c4 Mon Sep 17 00:00:00 2001 From: okash1n <48118431+okash1n@users.noreply.github.com> Date: Fri, 12 Jun 2026 13:10:28 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=85=8D=E5=B8=83=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=81=AE=E4=B8=96=E4=BB=A3=E4=BE=9D=E5=AD=98=E3=83=94=E3=83=B3?= =?UTF-8?q?=E3=82=92=E6=95=B4=E7=90=86=20=E2=80=94=20agent-teams=20feature?= =?UTF-8?q?=20=E5=8C=96=E3=83=BBeffortLevel=20=E3=83=94=E3=83=B3=E8=A7=A3?= =?UTF-8?q?=E9=99=A4=EF=BC=88#120=E3=80=81v0.70.0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS を settings-base から agent-teams feature へ切り出し(全プロファイル既定 true・文書化・GA 時の除去経路確保) - settings-base の effortLevel: high 固定を削除(CLI の世代別 effort 管理に委譲、ユーザー上書きは merge で保持) - auto-update.sh の MIN_ASYNC_VERSION デッド変数を 2 箇所同時削除 - legacy hook 経路の退役マイルストーンを Issue #136 として起票 Closes #120 --- CHANGELOG.md | 14 ++++++++++++++ config/settings-base.json | 4 ---- docs/wizard-config-mapping.en.md | 1 + docs/wizard-config-mapping.md | 1 + features/agent-teams/feature.json | 14 ++++++++++++++ features/agent-teams/hooks.json | 5 +++++ features/auto-update/scripts/auto-update.sh | 2 -- i18n/en/strings.sh | 1 + i18n/ja/strings.sh | 1 + lib/features.sh | 3 ++- profiles/full.conf | 1 + profiles/minimal.conf | 1 + profiles/standard.conf | 1 + tests/unit/test-content-cleanup.sh | 11 +++++++++++ wizard/defaults.conf | 1 + wizard/registry.sh | 2 +- wizard/steps.sh | 2 ++ wizard/wizard.sh | 1 + 18 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 features/agent-teams/feature.json create mode 100644 features/agent-teams/hooks.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e170d1..9975e95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/). +## [0.70.0] - 2026-06-12 + +LLM 性能監査(#121)の最終弾(#120)。配布設定の世代依存ピンを整理した。これで監査計画 P1-P4 の全 14 Issue(#107〜#120)が完了。 + +### Changed +- **CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS を feature 化(#120)**: settings-base.json への無条件・無文書の埋め込みをやめ、`agent-teams` feature(`ENABLE_AGENT_TEAMS`、全プロファイル既定 true)に切り出し。既存ユーザーの動作は変わらないが、ウィザードでオフにでき、docs/wizard-config-mapping に文書化された。Claude Code 側で agent teams が GA になった際はフラグメントからキーを削除するだけで全ユーザーから除去できる(#75 の kit-remove 経路) +- **settings-base.json の `effortLevel: "high"` 固定を削除(#120)**: 現行 CLI はモデル世代ごとに launch effort を管理しており、デフォルトと同値の静的ピンは将来の製品デフォルト変更を黙って打ち消すだけだった。未変更ユーザーは update の 3-way merge でキーが削除され、明示的に変更済みのユーザーの値は保持される(#75 で修正済みの経路) + +### Removed +- **auto-update.sh の `MIN_ASYNC_VERSION` デッド変数を削除(#120)**: v0.55.0 でビルド時判定へ移行した際の残骸(定義 + detach 時の env 伝播の 2 箇所を同時削除) + +### Added +- legacy hook 経路(Claude Code < 2.1.89 対応)の退役マイルストーンを宣言し、削除対象を列挙したトラッキング Issue #136 を起票(2026-10 以降の最初の minor で削除予定) + ## [0.69.0] - 2026-06-12 LLM 性能監査(#121)P4 の第 3 弾(#119)。CLAUDE.md 注入部(base + partials)の最終縮小。Fable 5 分類器対策(#76 / v0.54.0)と同方向の常時注入削減で、最大構成の合成 kit セクションは約 34% 縮小(ja: 2360 → 1557 bytes)。 diff --git a/config/settings-base.json b/config/settings-base.json index b715e6d..17cf625 100644 --- a/config/settings-base.json +++ b/config/settings-base.json @@ -1,10 +1,6 @@ { "$schema": "https://json.schemastore.org/claude-code-settings.json", "enableAllProjectMcpServers": false, - "env": { - "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" - }, - "effortLevel": "high", "hooks": {}, "language": "__LANGUAGE_NAME__" } diff --git a/docs/wizard-config-mapping.en.md b/docs/wizard-config-mapping.en.md index 31ed1fc..9d2edb2 100644 --- a/docs/wizard-config-mapping.en.md +++ b/docs/wizard-config-mapping.en.md @@ -70,6 +70,7 @@ These flags are used to merge the corresponding `features/*/hooks.json` fragment | `ENABLE_PRE_COMPACT_COMMIT` | Pre-compact Snapshot | Stash tracked changes before compact (opt-in; default false in all profiles) | Yes | | `ENABLE_STATUSLINE` | Statusline | Statusline feature toggle | Yes | | `ENABLE_DOC_SIZE_GUARD` | Doc Size Guard | Warn when `CLAUDE.md` / `AGENTS.md` is too large | Yes | +| `ENABLE_AGENT_TEAMS` | Agent Teams (experimental) | Injects CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 into settings.json env (default true in all profiles) | Yes | | `ENABLE_NO_FLICKER` | No Flicker | Reduce display flicker | Yes | | `ENABLE_FEATURE_RECOMMENDATION` | Feature Recommendation | Notify about newly available features | Yes | diff --git a/docs/wizard-config-mapping.md b/docs/wizard-config-mapping.md index 914599a..2cff7d5 100644 --- a/docs/wizard-config-mapping.md +++ b/docs/wizard-config-mapping.md @@ -70,6 +70,7 @@ | `ENABLE_PRE_COMPACT_COMMIT` | Pre-compact Snapshot | compact 前に tracked 変更を git stash へ退避(opt-in・全プロファイル既定 false) | はい | | `ENABLE_STATUSLINE` | Statusline | ステータスライン機能 | はい | | `ENABLE_DOC_SIZE_GUARD` | Doc Size Guard | 大きすぎる `CLAUDE.md` / `AGENTS.md` を警告 | はい | +| `ENABLE_AGENT_TEAMS` | Agent Teams(実験的) | CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 を settings.json の env に注入(全プロファイル既定 true) | はい | | `ENABLE_NO_FLICKER` | No Flicker | 表示のちらつき低減設定 | はい | | `ENABLE_FEATURE_RECOMMENDATION` | Feature Recommendation | 新機能候補の通知 | はい | diff --git a/features/agent-teams/feature.json b/features/agent-teams/feature.json new file mode 100644 index 0000000..7c256dd --- /dev/null +++ b/features/agent-teams/feature.json @@ -0,0 +1,14 @@ +{ + "name": "agent-teams", + "displayName": "Agent Teams (experimental)", + "description": "Enable Claude Code experimental agent teams via CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1", + "category": "setting", + "default": true, + "profiles": { + "minimal": true, + "standard": true, + "full": true + }, + "dependencies": [], + "conflicts": [] +} diff --git a/features/agent-teams/hooks.json b/features/agent-teams/hooks.json new file mode 100644 index 0000000..33ac685 --- /dev/null +++ b/features/agent-teams/hooks.json @@ -0,0 +1,5 @@ +{ + "env": { + "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" + } +} diff --git a/features/auto-update/scripts/auto-update.sh b/features/auto-update/scripts/auto-update.sh index 16e57b0..8967f14 100644 --- a/features/auto-update/scripts/auto-update.sh +++ b/features/auto-update/scripts/auto-update.sh @@ -8,7 +8,6 @@ BACKUP_PATH_FILE="${BACKUP_PATH_FILE:-$HOME/.claude/.starter-kit-last-backup}" STATUS_FILE="${STATUS_FILE:-$HOME/.claude/.starter-kit-update-status}" LEGACY_CACHE_FILE="${LEGACY_CACHE_FILE:-$HOME/.claude/.starter-kit-update-cache}" LEGACY_CACHE_TTL="${LEGACY_CACHE_TTL:-86400}" -MIN_ASYNC_VERSION="${MIN_ASYNC_VERSION:-2.1.89}" AUTO_UPDATE_HOOK="${AUTO_UPDATE_HOOK:-SessionStart}" AUTO_UPDATE_LEGACY="${AUTO_UPDATE_LEGACY:-0}" @@ -81,7 +80,6 @@ _auto_update_maybe_detach() { STATUS_FILE="$STATUS_FILE" \ LEGACY_CACHE_FILE="$LEGACY_CACHE_FILE" \ LEGACY_CACHE_TTL="$LEGACY_CACHE_TTL" \ - MIN_ASYNC_VERSION="$MIN_ASYNC_VERSION" \ AUTO_UPDATE_LEGACY="$AUTO_UPDATE_LEGACY" \ "$0" >/dev/null 2>&1 & return 0 diff --git a/i18n/en/strings.sh b/i18n/en/strings.sh index dd60765..f3d1b73 100644 --- a/i18n/en/strings.sh +++ b/i18n/en/strings.sh @@ -54,6 +54,7 @@ STR_FONTS_NO="No - Skip font installation" STR_CONFIRM_FONTS="Fonts" STR_CONFIRM_STATUSLINE="Status Line" STR_CONFIRM_NO_FLICKER="No Flicker" +STR_CONFIRM_AGENT_TEAMS="Agent Teams (experimental)" STR_CONFIRM_FEATURE_RECOMMENDATION="Feature Rec." # Font installation messages diff --git a/i18n/ja/strings.sh b/i18n/ja/strings.sh index 063e422..58e8da3 100644 --- a/i18n/ja/strings.sh +++ b/i18n/ja/strings.sh @@ -52,6 +52,7 @@ STR_FONTS_NO="いいえ - フォントのインストールをスキップ" STR_CONFIRM_FONTS="フォント" STR_CONFIRM_STATUSLINE="ステータスライン" STR_CONFIRM_NO_FLICKER="フリッカー防止" +STR_CONFIRM_AGENT_TEAMS="Agent Teams(実験的機能)" STR_CONFIRM_FEATURE_RECOMMENDATION="機能レコメンド" # Font installation messages diff --git a/lib/features.sh b/lib/features.sh index af690b9..a9e0ff5 100644 --- a/lib/features.sh +++ b/lib/features.sh @@ -29,6 +29,7 @@ declare -g -A _FEATURE_FLAGS=( [statusline]=ENABLE_STATUSLINE [doc-size-guard]=ENABLE_DOC_SIZE_GUARD [no-flicker]=ENABLE_NO_FLICKER + [agent-teams]=ENABLE_AGENT_TEAMS [feature-recommendation]=ENABLE_FEATURE_RECOMMENDATION ) @@ -54,7 +55,7 @@ declare -g -A _FEATURE_HAS_SCRIPTS=( declare -g -a _FEATURE_ORDER=( safety-net tmux-hooks doc-blocker prettier-hooks biome-hooks pr-creation-log pre-compact-commit - auto-update web-content-update statusline doc-size-guard no-flicker + auto-update web-content-update statusline doc-size-guard no-flicker agent-teams feature-recommendation ) diff --git a/profiles/full.conf b/profiles/full.conf index 52f0e8f..02a564f 100644 --- a/profiles/full.conf +++ b/profiles/full.conf @@ -24,4 +24,5 @@ ENABLE_FONTS_SETUP=true ENABLE_DOC_SIZE_GUARD=true ENABLE_NO_FLICKER=false +ENABLE_AGENT_TEAMS=true ENABLE_FEATURE_RECOMMENDATION=true diff --git a/profiles/minimal.conf b/profiles/minimal.conf index 2863845..39d9362 100644 --- a/profiles/minimal.conf +++ b/profiles/minimal.conf @@ -24,4 +24,5 @@ ENABLE_FONTS_SETUP=false ENABLE_DOC_SIZE_GUARD=false ENABLE_NO_FLICKER=false +ENABLE_AGENT_TEAMS=true ENABLE_FEATURE_RECOMMENDATION=false diff --git a/profiles/standard.conf b/profiles/standard.conf index fe4aec1..377fc37 100644 --- a/profiles/standard.conf +++ b/profiles/standard.conf @@ -24,4 +24,5 @@ ENABLE_FONTS_SETUP=true ENABLE_DOC_SIZE_GUARD=false ENABLE_NO_FLICKER=false +ENABLE_AGENT_TEAMS=true ENABLE_FEATURE_RECOMMENDATION=true diff --git a/tests/unit/test-content-cleanup.sh b/tests/unit/test-content-cleanup.sh index 8cfc31d..c2626b8 100644 --- a/tests/unit/test-content-cleanup.sh +++ b/tests/unit/test-content-cleanup.sh @@ -99,3 +99,14 @@ fail "$test_name" fi } + +{ + test_name="content-cleanup: settings-base has no generation-dependent pins (env / effortLevel)" + if ! jq -e 'has("env") or has("effortLevel")' "$PROJECT_DIR/config/settings-base.json" >/dev/null \ + && jq -e '.env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS == "1"' "$PROJECT_DIR/features/agent-teams/hooks.json" >/dev/null \ + && grep -q '\[agent-teams\]=ENABLE_AGENT_TEAMS' "$PROJECT_DIR/lib/features.sh"; then + pass "$test_name" + else + fail "$test_name" + fi +} diff --git a/wizard/defaults.conf b/wizard/defaults.conf index c576d1d..450e07d 100644 --- a/wizard/defaults.conf +++ b/wizard/defaults.conf @@ -18,6 +18,7 @@ ENABLE_PRETTIER_HOOKS="false" ENABLE_BIOME_HOOKS="false" ENABLE_PR_CREATION_LOG="false" ENABLE_GHOSTTY_SETUP="false" +ENABLE_AGENT_TEAMS="true" ENABLE_FONTS_SETUP="false" SELECTED_PLUGINS="" diff --git a/wizard/registry.sh b/wizard/registry.sh index 05d3c2c..4e3d6ae 100644 --- a/wizard/registry.sh +++ b/wizard/registry.sh @@ -20,7 +20,7 @@ _CONFIG_KEYS=( ENABLE_MEMORY_PERSISTENCE ENABLE_STRATEGIC_COMPACT ENABLE_PR_CREATION_LOG ENABLE_PRE_COMPACT_COMMIT ENABLE_SAFETY_NET ENABLE_AUTO_UPDATE ENABLE_WEB_CONTENT_UPDATE ENABLE_STATUSLINE ENABLE_GHOSTTY_SETUP ENABLE_FONTS_SETUP ENABLE_DOC_SIZE_GUARD - ENABLE_NO_FLICKER ENABLE_FEATURE_RECOMMENDATION + ENABLE_NO_FLICKER ENABLE_FEATURE_RECOMMENDATION ENABLE_AGENT_TEAMS "" DISMISSED_FEATURES "" diff --git a/wizard/steps.sh b/wizard/steps.sh index b7751c8..e1fac35 100644 --- a/wizard/steps.sh +++ b/wizard/steps.sh @@ -296,6 +296,7 @@ _step_confirm() { printf "%-20s : %s\n" "$STR_CONFIRM_FONTS" "$(_bool_label_enabled "$ENABLE_FONTS_SETUP")" printf "%-20s : %s\n" "$STR_CONFIRM_STATUSLINE" "$(_bool_label_enabled "${ENABLE_STATUSLINE:-false}")" printf "%-20s : %s\n" "$STR_CONFIRM_NO_FLICKER" "$(_bool_label_enabled "${ENABLE_NO_FLICKER:-false}")" + printf "%-20s : %s\n" "$STR_CONFIRM_AGENT_TEAMS" "$(_bool_label_enabled "${ENABLE_AGENT_TEAMS:-false}")" printf "%-20s : %s\n" "${STR_CONFIRM_FEATURE_RECOMMENDATION:-Feature Rec.}" "$(_bool_label_enabled "${ENABLE_FEATURE_RECOMMENDATION:-false}")" local hook_labels=() @@ -356,6 +357,7 @@ _fill_noninteractive_defaults() { [[ -z "$ENABLE_NEW_INIT" ]] && ENABLE_NEW_INIT="true" [[ -z "${ENABLE_STATUSLINE:-}" ]] && ENABLE_STATUSLINE="true" [[ -z "${ENABLE_NO_FLICKER:-}" ]] && ENABLE_NO_FLICKER="false" + [[ -z "${ENABLE_AGENT_TEAMS:-}" ]] && ENABLE_AGENT_TEAMS="true" [[ -z "${ENABLE_FEATURE_RECOMMENDATION:-}" ]] && ENABLE_FEATURE_RECOMMENDATION="false" [[ -z "${ENABLE_WEB_CONTENT_UPDATE:-}" ]] && ENABLE_WEB_CONTENT_UPDATE="false" [[ -z "$ENABLE_GHOSTTY_SETUP" ]] && ENABLE_GHOSTTY_SETUP="false" diff --git a/wizard/wizard.sh b/wizard/wizard.sh index ca5f910..2459355 100755 --- a/wizard/wizard.sh +++ b/wizard/wizard.sh @@ -47,6 +47,7 @@ ENABLE_GHOSTTY_SETUP="${ENABLE_GHOSTTY_SETUP:-}" ENABLE_FONTS_SETUP="${ENABLE_FONTS_SETUP:-}" ENABLE_DOC_SIZE_GUARD="${ENABLE_DOC_SIZE_GUARD:-}" ENABLE_NO_FLICKER="${ENABLE_NO_FLICKER:-}" +ENABLE_AGENT_TEAMS="${ENABLE_AGENT_TEAMS:-}" ENABLE_FEATURE_RECOMMENDATION="${ENABLE_FEATURE_RECOMMENDATION:-}" DISMISSED_FEATURES="${DISMISSED_FEATURES:-}"