feat(effort): session default high, env-var warning, live effort in statusline

This commit is contained in:
bastien
2026-09-28 18:52:36 +02:00
parent 5437638437
commit 45ae0d1217
4 changed files with 18 additions and 6 deletions
+7
View File
@@ -107,6 +107,12 @@ fi
REPO_DIR="${_repo_dir:-}" REPO_DIR="${_repo_dir:-}"
unset _claude_real _repo_dir unset _claude_real _repo_dir
# Effort tiering (BDR-NEXT): this env var beats every skill/agent `effort:` pin.
EFFORT_WARN=""
if [ -n "${CLAUDE_CODE_EFFORT_LEVEL:-}" ]; then
EFFORT_WARN="⚠️ CLAUDE_CODE_EFFORT_LEVEL=${CLAUDE_CODE_EFFORT_LEVEL} set: skill/agent effort pins ignored"
fi
# Detect plan and set passive token budget # Detect plan and set passive token budget
PLAN=$(detect_plan 2>/dev/null || echo "pro") PLAN=$(detect_plan 2>/dev/null || echo "pro")
case "$PLAN" in case "$PLAN" in
@@ -253,5 +259,6 @@ unset _remote_ver REPO_DIR
echo "│ 💡 /plugin-check before starting a new project │" echo "│ 💡 /plugin-check before starting a new project │"
echo "│ 🩺 make doctor full diagnostic │" echo "│ 🩺 make doctor full diagnostic │"
echo "└───────────────────────────────────────────────────┘" echo "└───────────────────────────────────────────────────┘"
[ -n "$EFFORT_WARN" ] && printf '%s\n' "$EFFORT_WARN"
echo "" echo ""
unset TOKEN_WARN unset TOKEN_WARN
+6 -5
View File
@@ -33,13 +33,14 @@ if [ -z "$PROFILE" ] || [ "$PROFILE" = "none" ]; then
PROFILE="$DEFAULT_PROFILE" PROFILE="$DEFAULT_PROFILE"
fi fi
# Effort level from settings.json (.effortLevel — set by /effort or manual edit). # Effort level: the live value when the harness exports it (skill/agent
# settings.json is the source-of-truth, symlinked into ~/.claude/settings.json. # `effort:` shifts included, BDR-NEXT), else the persisted settings.json key
EFFORT="?" # (.effortLevel — set by /effort or manual edit; symlinked into ~/.claude).
if [ -f "$REPO/settings.json" ]; then EFFORT="${CLAUDE_EFFORT:-}"
if [ -z "$EFFORT" ] && [ -f "$REPO/settings.json" ]; then
EFFORT=$(jq -r '.effortLevel // "?"' "$REPO/settings.json" 2>/dev/null) EFFORT=$(jq -r '.effortLevel // "?"' "$REPO/settings.json" 2>/dev/null)
[ -z "$EFFORT" ] && EFFORT="?"
fi fi
[ -z "$EFFORT" ] && EFFORT="?"
# Session duration (from total_duration_ms) # Session duration (from total_duration_ms)
DURATION_MS=$(echo "$INPUT" | jq -r \ DURATION_MS=$(echo "$INPUT" | jq -r \
+4
View File
@@ -29,6 +29,10 @@ printf -- '---\nname: bad\neffort: turbo\n---\n' > "$FIX/bad.md"
# ── 1) session default (spec D1) # ── 1) session default (spec D1)
has "settings.json" '"effortLevel": "high"' has "settings.json" '"effortLevel": "high"'
# ── 2) hooks: env-var warning + live effort in the statusline (spec D1, D5)
has "hooks/session-start.sh" 'CLAUDE_CODE_EFFORT_LEVEL'
has "hooks/statusline.sh" 'CLAUDE_EFFORT'
# ── summary (later tasks insert their locks ABOVE this line) # ── summary (later tasks insert their locks ABOVE this line)
printf 'effort-routing census: %d pass, %d fail\n' "$pass" "$fail" printf 'effort-routing census: %d pass, %d fail\n' "$pass" "$fail"
[ "$fail" -eq 0 ] [ "$fail" -eq 0 ]
+1 -1
View File
@@ -444,7 +444,7 @@
} }
}, },
"feedbackDrafts": "off", "feedbackDrafts": "off",
"effortLevel": "xhigh", "effortLevel": "high",
"remoteControlAtStartup": true, "remoteControlAtStartup": true,
"inputNeededNotifEnabled": true, "inputNeededNotifEnabled": true,
"skipAutoPermissionPrompt": true, "skipAutoPermissionPrompt": true,