skills-experimental/classifier-approvals/SKILL.md
Classifier approvals tracking with CLASSIFIER_APPROVALS map and CLASSIFIER_CHECKING set. setClassifierApproval/getClassifierApproval/setYoloClassifierApproval. Signal subscription. Use when [classifier approvals] is needed.
npx skillsauth add bianhaifeng789-hue/openclaw-config classifier-approvalsInstall 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.
Classifier Approvals tracking,记录 auto-approved tool uses。
场景:
Claude Code 方案:classifierApprovals.ts + 107 lines OpenClaw 飞书适配:Approvals tracking + Signal
type ClassifierApproval = {
classifier: 'bash' | 'auto-mode' // Which classifier
matchedRule?: string // Matched rule(bash)
reason?: string // Reason(auto-mode)
}
function setClassifierApproval(
toolUseID: string,
matchedRule: string
): void {
CLASSIFIER_APPROVALS.set(toolUseID, {
classifier: 'bash',
matchedRule
})
}
function getClassifierApproval(toolUseID: string): string | undefined {
const approval = CLASSIFIER_APPROVALS.get(toolUseID)
if (!approval || approval.classifier !== 'bash') return undefined
return approval.matchedRule
}
function setYoloClassifierApproval(
toolUseID: string,
reason: string
): void {
CLASSIFIER_APPROVALS.set(toolUseID, {
classifier: 'auto-mode',
reason
})
}
function setClassifierChecking(toolUseID: string): void {
CLASSIFIER_CHECKING.add(toolUseID)
classifierChecking.emit()
}
function clearClassifierChecking(toolUseID: string): void {
CLASSIFIER_CHECKING.delete(toolUseID)
classifierChecking.emit()
}
function isClassifierChecking(toolUseID: string): boolean {
return CLASSIFIER_CHECKING.has(toolUseID)
}
{
"config": {"wide_screen_mode": true},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "**✅ Classifier Approvals**\n\n---\n\n**Classifier Approvals**:\n\n| Classifier | Fields |\n|-----------|--------|\n| bash | matchedRule |\n| auto-mode | reason |\n\n---\n\n**Classifier Checking**:\n• setClassifierChecking/clearClassifierChecking\n• isClassifierChecking\n• Signal subscription\n• emit() for UI updates\n\n---\n\n**功能**:\n• Tracks auto-approved tool uses\n• Bash classifier approvals\n• Auto-mode classifier approvals\n• Checking status tracking"
}
}
]
}
// memory/classifier-approvals-state.json
{
"approvals": {},
"checking": [],
"stats": {
"totalApprovals": 0,
"bashApprovals": 0,
"autoModeApprovals": 0
},
"signal": {
"type": "createSignal",
"usage": "subscribeClassifierChecking"
},
"lastUpdate": "2026-04-12T01:08:00Z",
"notes": "Classifier Approvals Skill 创建完成。等待 classifier approval 触发。"
}
| Claude Code | OpenClaw 飞书场景 | |-------------|------------------| | classifierApprovals.ts (107 lines) | Skill + Approvals | | ClassifierApproval type | Approval type | | CLASSIFIER_APPROVALS map | Approvals map | | CLASSIFIER_CHECKING set | Checking set | | createSignal() | Signal subscription |
此 Skill 在 classifier approval 时自动运行。
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