skills-experimental/coordinator-mode-pattern/SKILL.md
# Coordinator Mode Pattern Skill Coordinator Mode Pattern - isCoordinatorMode + matchSessionMode + INTERNAL_WORKER_TOOLS + isScratchpadGateEnabled + Session Mode Switch + Worker Whitelist + Task Notification XML。 ## 功能概述 从Claude Code的coordinator/coordinatorMode.ts提取的协调模式,用于OpenClaw的多Agent协调。 ## 核心机制 ### isCoordinatorMode ```typescript export function isCoordinatorMode(): boolean { if (feature('COORDINATOR_MODE')) { return isEnvTruthy(process.env.CLAUDE_CODE_COORDINATOR_MODE) } re
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/coordinator-mode-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.
Coordinator Mode Pattern - isCoordinatorMode + matchSessionMode + INTERNAL_WORKER_TOOLS + isScratchpadGateEnabled + Session Mode Switch + Worker Whitelist + Task Notification XML。
从Claude Code的coordinator/coordinatorMode.ts提取的协调模式,用于OpenClaw的多Agent协调。
export function isCoordinatorMode(): boolean {
if (feature('COORDINATOR_MODE')) {
return isEnvTruthy(process.env.CLAUDE_CODE_COORDINATOR_MODE)
}
return false
}
// Feature flag + env var check
// Coordinator mode toggle
/**
* Checks if current coordinator mode matches session's stored mode.
* If mismatched, flips env var so isCoordinatorMode() returns correct value.
* Returns warning message if mode switched, undefined if no switch needed.
*/
export function matchSessionMode(
sessionMode: 'coordinator' | 'normal' | undefined,
): string | undefined {
// No stored mode (old session before mode tracking) — do nothing
if (!sessionMode) return undefined
const currentIsCoordinator = isCoordinatorMode()
const sessionIsCoordinator = sessionMode === 'coordinator'
if (currentIsCoordinator === sessionIsCoordinator) return undefined
// Flip the env var — isCoordinatorMode() reads it live, no caching
if (sessionIsCoordinator) {
process.env.CLAUDE_CODE_COORDINATOR_MODE = '1'
} else {
delete process.env.CLAUDE_CODE_COORDINATOR_MODE
}
logEvent('tengu_coordinator_mode_switched', {
to: sessionMode as AnalyticsMetadata,
})
return sessionIsCoordinator
? 'Entered coordinator mode to match resumed session.'
: 'Exited coordinator mode to match resumed session.'
}
// Match session mode on resume
// Flip env var if mismatched
# Return warning message
const INTERNAL_WORKER_TOOLS = new Set([
TEAM_CREATE_TOOL_NAME,
TEAM_DELETE_TOOL_NAME,
SEND_MESSAGE_TOOL_NAME,
SYNTHETIC_OUTPUT_TOOL_NAME,
])
// Worker-only tools whitelist
// Coordinator cannot use these
// Checks the same gate as isScratchpadEnabled() in utils/permissions/filesystem.ts.
// Duplicated here because importing filesystem.ts creates circular dependency.
function isScratchpadGateEnabled(): boolean {
return checkStatsigFeatureGate_CACHED_MAY_BE_STALE('tengu_scratch')
}
// Feature gate check
# Avoid circular dependency
# Duplicate gate check
// Flip the env var — isCoordinatorMode() reads it live, no caching
if (sessionIsCoordinator) {
process.env.CLAUDE_CODE_COORDINATOR_MODE = '1'
} else {
delete process.env.CLAUDE_CODE_COORDINATOR_MODE
}
// Live env var flip
# No caching
# Immediate effect
const INTERNAL_WORKER_TOOLS = new Set([...])
// Whitelist of tools only workers can use
// Coordinator restricted from these
// Coordinator receives task notifications in XML format
// Workers send task completion notifications
// XML structure for task tracking
{
"isCoordinator": true,
"sessionMode": "coordinator",
"internalWorkerTools": ["team_create", "team_delete"]
}
feature('COORDINATOR_MODE') + process.env → isCoordinatorMode()
// Feature flag + env var组合
// 双重检查
matchSessionMode(sessionMode) → flip env var → return warning
// 检查session mode是否匹配
// 不匹配则flip env var
// 返回warning message
INTERNAL_WORKER_TOOLS Set → worker-only tools → coordinator restricted
// Worker专用tools whitelist
// Coordinator不能使用这些tools
Duplicate isScratchpadGateEnabled → avoid importing filesystem.ts → circular dependency
// 复制gate check
// 避免循环依赖
// 直接调用Statsig
coordinator/coordinatorMode.tsbusiness
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