skills-experimental/env-timeout-constants-pattern/SKILL.md
# Env Timeout Constants Pattern Skill Env Timeout Constants Pattern - getDefaultBashTimeoutMs + getMaxBashTimeoutMs + env parameter injection + EnvLike type + parseInt NaN check > 0 + Math.max ensure max >= default + DEFAULT_TIMEOUT_MS 120_000 + MAX_TIMEOUT_MS 600_000 + configurable constants。 ## 功能概述 从Claude Code的utils/timeouts.ts提取的Env timeout constants模式,用于OpenClaw的超时配置。 ## 核心机制 ### getDefaultBashTimeoutMs ```typescript export function getDefaultBashTimeoutMs(env: EnvLike = process.env)
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/env-timeout-constants-patternInstall 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.
Env Timeout Constants Pattern - getDefaultBashTimeoutMs + getMaxBashTimeoutMs + env parameter injection + EnvLike type + parseInt NaN check > 0 + Math.max ensure max >= default + DEFAULT_TIMEOUT_MS 120_000 + MAX_TIMEOUT_MS 600_000 + configurable constants。
从Claude Code的utils/timeouts.ts提取的Env timeout constants模式,用于OpenClaw的超时配置。
export function getDefaultBashTimeoutMs(env: EnvLike = process.env): number {
const envValue = env.BASH_DEFAULT_TIMEOUT_MS
if (envValue) {
const parsed = parseInt(envValue, 10)
if (!isNaN(parsed) && parsed > 0) {
return parsed
}
}
return DEFAULT_TIMEOUT_MS
}
// Get default timeout from env or default
# BASH_DEFAULT_TIMEOUT_MS env var
# Falls back to DEFAULT_TIMEOUT_MS
export function getMaxBashTimeoutMs(env: EnvLike = process.env): number {
const envValue = env.BASH_MAX_TIMEOUT_MS
if (envValue) {
const parsed = parseInt(envValue, 10)
if (!isNaN(parsed) && parsed > 0) {
// Ensure max is at least as large as default
return Math.max(parsed, getDefaultBashTimeoutMs(env))
}
}
// Always ensure max is at least as large as default
return Math.max(MAX_TIMEOUT_MS, getDefaultBashTimeoutMs(env))
}
// Get max timeout from env or max
# BASH_MAX_TIMEOUT_MS env var
# Ensure max >= default
env: EnvLike = process.env
// Inject env for testing
# Default to process.env
# Test can inject custom env
type EnvLike = Record<string, string | undefined>
// Env object type
# Record<string, string | undefined>
# Flexible for testing
const parsed = parseInt(envValue, 10)
if (!isNaN(parsed) && parsed > 0) {
return parsed
}
// parseInt validation
# NaN check
# > 0 check (positive)
# Invalid → fall back
return Math.max(parsed, getDefaultBashTimeoutMs(env))
// Ensure max >= default
# Never return max smaller than default
# Math.max safeguard
const DEFAULT_TIMEOUT_MS = 120_000 // 2 minutes
// Default timeout: 2 minutes
# 120_000 ms
const MAX_TIMEOUT_MS = 600_000 // 10 minutes
// Max timeout: 10 minutes
# 600_000 ms
// Constants configurable via env
# BASH_DEFAULT_TIMEOUT_MS
# BASH_MAX_TIMEOUT_MS
# Runtime configurable
{
"defaultTimeout": 120000,
"maxTimeout": 600000,
"envDefault": "300000",
"envMax": "900000"
}
env: EnvLike = process.env → default process.env | test inject custom env → testable
# env parameter injection
# 默认process.env
# test inject custom env
parseInt(envValue, 10) → isNaN check → > 0 check → invalid → fall back to default
# parseInt validation
# NaN check + > 0 check
# invalid时fall back
Math.max(parsed, getDefaultBashTimeoutMs(env)) → never smaller → safeguard → max >= default
# Math.max确保max >= default
# never return smaller
# safeguard
DEFAULT_TIMEOUT_MS + BASH_DEFAULT_TIMEOUT_MS env → configurable → runtime adjustable → no code change
# configurable constants via env
# runtime adjustable
# no code change needed
type EnvLike = Record<string, string | undefined> → flexible → test mock → not tied to process.env
# EnvLike type flexible
# test mock
# 不依赖process.env
utils/timeouts.ts (58 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