skills-experimental/backend-detection-cached-result/SKILL.md
# Backend Detection Cached Result Pattern ## Source Claude Code: `utils/swarm/backends/registry.ts` (detectAndGetBackend) ## Pattern Cache detection result for process lifetime + priority flow + fallback handling. ## Code Example ```typescript let cachedBackend: PaneBackend | null = null let cachedDetectionResult: BackendDetectionResult | null = null let inProcessFallbackActive = false /** * Detection priority flow: * 1. If inside tmux, always use tmux (even in iTerm2) * 2. If in iTerm2 w
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/backend-detection-cached-resultInstall 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/registry.ts (detectAndGetBackend)
Cache detection result for process lifetime + priority flow + fallback handling.
let cachedBackend: PaneBackend | null = null
let cachedDetectionResult: BackendDetectionResult | null = null
let inProcessFallbackActive = false
/**
* Detection priority flow:
* 1. If inside tmux, always use tmux (even in iTerm2)
* 2. If in iTerm2 with it2 available, use iTerm2 backend
* 3. If in iTerm2 without it2, return result indicating setup needed
* 4. If tmux available, use tmux (creates external session)
* 5. Otherwise, throw error with instructions
*/
export async function detectAndGetBackend(): Promise<BackendDetectionResult> {
await ensureBackendsRegistered()
if (cachedDetectionResult) return cachedDetectionResult // Cache hit
const insideTmux = await isInsideTmux()
const inITerm2 = isInITerm2()
// Priority 1: Inside tmux → always use tmux
if (insideTmux) {
const backend = createTmuxBackend()
cachedDetectionResult = { backend, isNative: true, needsIt2Setup: false }
return cachedDetectionResult
}
// Priority 2: In iTerm2 with it2 → native iTerm2 panes
if (inITerm2) {
const preferTmux = getPreferTmuxOverIterm2()
if (!preferTmux) {
const it2Available = await isIt2CliAvailable()
if (it2Available) {
const backend = createITermBackend()
cachedDetectionResult = { backend, isNative: true, needsIt2Setup: false }
return cachedDetectionResult
}
}
// iTerm2 without it2 → tmux fallback
const tmuxAvailable = await isTmuxAvailable()
if (tmuxAvailable) {
const backend = createTmuxBackend()
cachedDetectionResult = { backend, isNative: false, needsIt2Setup: !preferTmux }
return cachedDetectionResult
}
throw new Error('iTerm2 detected but it2 CLI not installed. Install with: pip install it2')
}
// Priority 3: External tmux session
const tmuxAvailable = await isTmuxAvailable()
if (tmuxAvailable) {
const backend = createTmuxBackend()
cachedDetectionResult = { backend, isNative: false, needsIt2Setup: false }
return cachedDetectionResult
}
throw new Error(getTmuxInstallInstructions())
}
export function isInProcessEnabled(): boolean {
if (getIsNonInteractiveSession()) return true // -p mode
const mode = getTeammateMode()
if (mode === 'in-process') return true
if (mode === 'tmux') return false
// 'auto' mode
if (inProcessFallbackActive) return true // Prior spawn fell back
const insideTmux = isInsideTmuxSync()
const inITerm2 = isInITerm2()
return !insideTmux && !inITerm2 // Use in-process if no pane backend
}
export function markInProcessFallback(): void {
inProcessFallbackActive = true // Sticky for session lifetime
}
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