skills-experimental/environment-detection-module-load-capture/SKILL.md
# Environment Detection Module-Load Capture Pattern ## Source Claude Code: `utils/swarm/backends/detection.ts` (ORIGINAL_USER_TMUX, ORIGINAL_TMUX_PANE) ## Pattern Capture environment variables at module load time before Shell.ts overrides. ## Code Example ```typescript /** * Captured at module load time to detect if user started Claude from within tmux. * Shell.ts may override TMUX env var later, so we capture the original value. */ // eslint-disable-next-line custom-rules/no-process-env-t
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/environment-detection-module-load-captureInstall 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.
Claude Code: utils/swarm/backends/detection.ts (ORIGINAL_USER_TMUX, ORIGINAL_TMUX_PANE)
Capture environment variables at module load time before Shell.ts overrides.
/**
* Captured at module load time to detect if user started Claude from within tmux.
* Shell.ts may override TMUX env var later, so we capture the original value.
*/
// eslint-disable-next-line custom-rules/no-process-env-top-level
const ORIGINAL_USER_TMUX = process.env.TMUX
/**
* Captured at module load time to get the leader's tmux pane ID.
* TMUX_PANE is set by tmux to the pane ID (e.g., %0, %1) when inside tmux.
*/
// eslint-disable-next-line custom-rules/no-process-env-top-level
const ORIGINAL_TMUX_PANE = process.env.TMUX_PANE
let isInsideTmuxCached: boolean | null = null
let isInITerm2Cached: boolean | null = null
/**
* Checks if we're currently running inside a tmux session.
* Uses the original TMUX value captured at module load, not process.env.TMUX,
* because Shell.ts overrides TMUX when Claude's socket is initialized.
*
* IMPORTANT: We ONLY check the TMUX env var. We do NOT run `tmux display-message`
* as a fallback because that succeeds if ANY tmux server is running on the system,
* not just if THIS process is inside tmux.
*/
export async function isInsideTmux(): Promise<boolean> {
if (isInsideTmuxCached !== null) return isInsideTmuxCached
isInsideTmuxCached = !!ORIGINAL_USER_TMUX // Use captured value
return isInsideTmuxCached
}
export function isInsideTmuxSync(): boolean {
return !!ORIGINAL_USER_TMUX
}
export function getLeaderPaneId(): string | null {
return ORIGINAL_TMUX_PANE || null
}
export function isInITerm2(): boolean {
if (isInITerm2Cached !== null) return isInITerm2Cached
const termProgram = process.env.TERM_PROGRAM
const hasItermSessionId = !!process.env.ITERM_SESSION_ID
const terminalIsITerm = env.terminal === 'iTerm.app'
isInITerm2Cached = termProgram === 'iTerm.app' || hasItermSessionId || terminalIsITerm
return isInITerm2Cached
}
export function resetDetectionCache(): void {
isInsideTmuxCached = null
isInITerm2Cached = null
}
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