skills-experimental/auto-mode-module-scope-state/SKILL.md
# Auto Mode Module-Scope State Skill Auto Mode Module-Scope State - autoModeActive boolean + autoModeFlagCli boolean + autoModeCircuitBroken boolean + setAutoModeActive/isActive + setAutoModeFlagCli/getFlagCli + setAutoModeCircuitBroken/isCircuitBroken + _resetForTesting test helper + feature('TRANSCRIPT_CLASSIFIER') conditional require + circuit breaker disabled state + kick-out detection。 ## 功能概述 从Claude Code的utils/permissions/autoModeState.ts提取的Auto mode module-scope state,用于OpenClaw的auto
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/auto-mode-module-scope-stateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Auto Mode Module-Scope State - autoModeActive boolean + autoModeFlagCli boolean + autoModeCircuitBroken boolean + setAutoModeActive/isActive + setAutoModeFlagCli/getFlagCli + setAutoModeCircuitBroken/isCircuitBroken + _resetForTesting test helper + feature('TRANSCRIPT_CLASSIFIER') conditional require + circuit breaker disabled state + kick-out detection。
从Claude Code的utils/permissions/autoModeState.ts提取的Auto mode module-scope state,用于OpenClaw的auto mode状态管理。
let autoModeActive = false
export function setAutoModeActive(active: boolean): void {
autoModeActive = active
}
export function isAutoModeActive(): boolean {
return autoModeActive
}
// autoModeActive boolean
# Module-scope state
# set/get functions
# No React state
let autoModeFlagCli = false
export function setAutoModeFlagCli(passed: boolean): void {
autoModeFlagCli = passed
}
export function getAutoModeFlagCli(): boolean {
return autoModeFlagCli
}
// autoModeFlagCli boolean
# CLI flag intent
# Captured at startup
# Session-scoped
// Set by the async verifyAutoModeGateAccess check when it
// reads a fresh tengu_auto_mode_config.enabled === 'disabled' from GrowthBook.
// Used by isAutoModeGateEnabled() to block SDK/explicit re-entry after kick-out.
let autoModeCircuitBroken = false
export function setAutoModeCircuitBroken(broken: boolean): void {
autoModeCircuitBroken = broken
}
export function isAutoModeCircuitBroken(): boolean {
return autoModeCircuitBroken
}
// autoModeCircuitBroken
# Circuit breaker
# Kick-out detection
# GrowthBook disabled state
export function setAutoModeActive(active: boolean): void {
autoModeActive = active
}
export function isAutoModeActive(): boolean {
return autoModeActive
}
// setAutoModeActive/isActive
# Module-scope setter
# Getter function
# No React setState
export function setAutoModeFlagCli(passed: boolean): void {
autoModeFlagCli = passed
}
export function getAutoModeFlagCli(): boolean {
return autoModeFlagCli
}
// setAutoModeFlagCli/getFlagCli
# CLI flag intent
# Captured from --permission-mode auto
export function setAutoModeCircuitBroken(broken: boolean): void {
autoModeCircuitBroken = broken
}
export function isAutoModeCircuitBroken(): boolean {
return autoModeCircuitBroken
}
// setAutoModeCircuitBroken/isCircuitBroken
# Circuit breaker state
# Kick-out detection
# Block re-entry
export function _resetForTesting(): void {
autoModeActive = false
autoModeFlagCli = false
autoModeCircuitBroken = false
}
// _resetForTesting
# Reset all state
# Test helper
# Clean slate
// Auto mode state functions — lives in its own module so callers can
// conditionally require() it on feature('TRANSCRIPT_CLASSIFIER').
const autoModeStateModule = feature('TRANSCRIPT_CLASSIFIER')
? (require('./autoModeState.js') as typeof import('./autoModeState.js'))
: null
// Conditional require
# feature('TRANSCRIPT_CLASSIFIER')
# Dead code elimination
# External builds: null
// Circuit breaker (enabled==='disabled') takes effect here.
autoModeStateModule?.setAutoModeCircuitBroken(
enabledState === 'disabled' || disabledBySettings,
)
// Circuit breaker
# enabled==='disabled'
# Kick-out detection
# Block re-entry
// Unified kick-out transform. Re-checks the FRESH ctx and only fires
// side effects when the kick-out actually applies.
const kickOutOfAutoIfNeeded = (ctx: ToolPermissionContext): ToolPermissionContext => {
const inAuto = ctx.mode === 'auto'
if (!inAuto && !inPlanWithAutoActive) {
return setAvailable(ctx, false)
}
if (inAuto) {
autoModeStateModule?.setAutoModeActive(false)
setNeedsAutoModeExitAttachment(true)
return { ...restoreDangerousPermissions(ctx), mode: 'default', isAutoModeAvailable: false }
}
// ...
}
// kick-out detection
# Re-check fresh ctx
# Fire side effects
# Deactivate classifier
{
"autoModeActive": true,
"autoModeFlagCli": true,
"autoModeCircuitBroken": false
}
let autoModeActive = false + setAutoModeActive(active: boolean) + isAutoModeActive(): boolean → module-scope state → no React setState
# module-scope boolean state
# let + set/get
# no React setState
enabled==='disabled' || disabledBySettings → setAutoModeCircuitBroken(true) → isAutoModeCircuitBroken() → block re-entry → kick-out
# circuit breaker kick-out
# GrowthBook disabled
# block re-entry
--permission-mode auto → autoModeFlagCli = true → getAutoModeFlagCli() → CLI flag intent → session-scoped
# CLI flag intent capture
# session-scoped
# startup capture
_resetForTesting() → autoModeActive=false + autoModeFlagCli=false + autoModeCircuitBroken=false → test helper → clean slate
# _resetForTesting clean slate
# reset all state
# test helper
feature('TRANSCRIPT_CLASSIFIER') ? require('./autoModeState.js') : null → conditional require → DCE → external builds: null
# conditional require DCE
# feature flag
# dead code elimination
utils/permissions/autoModeState.ts (42 lines)business
IAA 日报飞书输出能力。 支持把固定 CSV 模板一键转换成: - 中文运营结论 - 飞书卡片 JSON - 飞书发送载荷 Use when: - 需要把 IAA 日报直接发到飞书 - 需要从 CSV 一键生成运营日报
data-ai
IAA日报分析模型 功能: - 渠道日报自动分析 - 小时级+日级ROI联动判断 - 按地区输出加量/降量/停投建议 - 按产品类型输出阈值 - 自动识别利润区/观察区/止损区 Use when: - 分析每天投放数据 - 生成运营日报结论 - 判断是否加量/降量/停投 - 对比美加澳/日韩表现 Keywords: - 日报模型, 投放日报, 加量, 降量, 停投, ROI日报, 分地区分析
data-ai
IAA固定日报分析模板 功能: - 固定字段模板(可直接贴每天数据) - 自动输出总盘结论 - 自动输出美加澳/日韩结论 - 自动给出加量/降量/停投建议 - 适配文件修复/清理两类产品 Use when: - 需要固定日报格式 - 每天复盘渠道表现 - 给运营团队出统一结论 Keywords: - 固定模板, 日报模板, ROI模板, IAA日报, 运营模板
development
# HyperlinkPool Pattern Skill HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。 ## 功能概述 从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。 ## 核心机制 ### HyperlinkPool Class ```typescript export class HyperlinkPool { private strings: string[] = [''] // Index 0 = no hyperlink private stringMap = new Map<string, number>() // strings