skills-experimental/exit-plan-mode-v2-tool/SKILL.md
# Exit Plan Mode V2 Tool Skill 退出计划模式工具 - Leader approval + Gate fallback + Mode restore + Plan snapshot。 ## 功能概述 从Claude Code的ExitPlanModeV2Tool提取的计划模式退出模式,用于OpenClaw的计划执行。 ## 核心机制 ### Leader Approval Request ```typescript if (isTeammate() && isPlanModeRequired()) { const approvalRequest = { type: 'plan_approval_request', from: agentName, planFilePath: filePath, planContent: plan, requestId } await writeToMailbox('team-lead', { from: agentName, text: jsonStringif
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/exit-plan-mode-v2-toolInstall 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.
退出计划模式工具 - Leader approval + Gate fallback + Mode restore + Plan snapshot。
从Claude Code的ExitPlanModeV2Tool提取的计划模式退出模式,用于OpenClaw的计划执行。
if (isTeammate() && isPlanModeRequired()) {
const approvalRequest = {
type: 'plan_approval_request',
from: agentName,
planFilePath: filePath,
planContent: plan,
requestId
}
await writeToMailbox('team-lead', { from: agentName, text: jsonStringify(approvalRequest) }, teamName)
setAwaitingPlanApproval(agentTaskId, context.setAppState, true)
return { awaitingLeaderApproval: true, requestId }
}
// Teammate → 发送plan_approval_request到leader mailbox
// 设置awaiting状态
const prePlanRaw = appState.toolPermissionContext.prePlanMode ?? 'default'
if (prePlanRaw === 'auto' && !isAutoModeGateEnabled()) {
gateFallbackNotification = getAutoModeUnavailableNotification(reason)
restoreMode = 'default' // circuit breaker defense
}
// prePlanMode是auto但gate off → fallback to default
// 防止bypass circuit breaker
let restoreMode = prev.toolPermissionContext.prePlanMode ?? 'default'
const restoringToAuto = restoreMode === 'auto'
let baseContext = prev.toolPermissionContext
if (restoringToAuto) {
baseContext = stripDangerousPermissionsForAutoMode(baseContext)
} else if (prev.toolPermissionContext.strippedDangerousRules) {
baseContext = restoreDangerousPermissions(baseContext)
}
// auto → strip dangerous
// 非auto → restore stripped
if (inputPlan !== undefined && filePath) {
await writeFile(filePath, inputPlan, 'utf-8').catch(...)
void persistFileSnapshotIfRemote()
}
// CCR web UI edited plan → sync to disk
// Snapshot persist
const autoWasUsedDuringPlan = isAutoModeActive()
const finalRestoringAuto = restoreMode === 'auto'
setAutoModeActive(finalRestoringAuto)
if (autoWasUsedDuringPlan && !finalRestoringAuto) {
setNeedsAutoModeExitAttachment(true)
}
// 记录auto使用状态
// Exit时设置attachment flag
isEnabled() {
if (getAllowedChannels().length > 0) {
return false // Telegram/Discord用户不在TUI,plan dialog会hang
}
return true
}
// --channels时禁用
// 防止plan mode trap
if (awaitingLeaderApproval) {
return {
content: `Your plan has been submitted to team lead for approval.
**Important:** Do NOT proceed until you receive approval. Check your inbox.
Request ID: ${requestId}`
}
}
// Teammate等待leader批准
// 提示check inbox
const planLabel = planWasEdited ? 'Approved Plan (edited by user)' : 'Approved Plan'
// CCR或Ctrl+G编辑 → 标注edited
// 模型知道用户改了内容
{
"awaitingLeaderApproval": true,
"requestId": "plan_approval@agent@team",
"planFilePath": "/path/to/plan.md",
"restoreMode": "default",
"gateFallback": true
}
Teammate + plan_mode_required → writeToMailbox → setAwaitingPlanApproval → return awaiting=true
// 异步批准流程
// Inbox通信
prePlanMode=auto + gate off → restoreMode=default + notification
// 防止bypass circuit breaker
// Graceful fallback
auto mode → strip dangerous permissions
exit auto → restore stripped permissions
// 动态permission调整
getAllowedChannels().length > 0 → disable ExitPlanMode
// 防止plan mode hang
// 非TUI用户安全
tools/ExitPlanModeTool/ExitPlanModeV2Tool.ts (12KB+)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