skills-experimental/errors-utils/SKILL.md
Error handling utilities. ClaudeError + MalformedCommandError + AbortError + ConfigParseError + ShellError + TeleportOperationError + TelemetrySafeError + isAbortError + hasExactErrorMessage + toError + errorMessage + getErrnoCode + isENOENT + getErrnoPath. Use when [errors utils] is needed.
npx skillsauth add bianhaifeng789-hue/openclaw-config errors-utilsInstall 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.
Errors Utils 错误处理工具。
场景:
Claude Code 方案:errors.ts + 239+ lines OpenClaw 飞书适配:Errors utils + Error handling
export class ClaudeError extends Error {
constructor(message: string) {
super(message)
this.name = this.constructor.name
}
}
export class MalformedCommandError extends Error {}
export class AbortError extends Error {
constructor(message?: string) {
super(message)
this.name = 'AbortError'
}
}
export class ConfigParseError extends Error {
filePath: string
defaultConfig: unknown
constructor(message: string, filePath: string, defaultConfig: unknown) {
super(message)
this.name = 'ConfigParseError'
this.filePath = filePath
this.defaultConfig = defaultConfig
}
}
export class ShellError extends Error {
constructor(
public readonly stdout: string,
public readonly stderr: string,
public readonly code: number,
public readonly interrupted: boolean,
) {
super('Shell command failed')
this.name = 'ShellError'
}
}
export class TeleportOperationError extends Error {
constructor(
message: string,
public readonly formattedMessage: string,
) {
super(message)
this.name = 'TeleportOperationError'
}
}
export class TelemetrySafeError_I_VERIFIED_THIS_IS_NOT_CODE_OR_FILEPATHS extends Error {
readonly telemetryMessage: string
constructor(message: string, telemetryMessage?: string) {
super(message)
this.name = 'TelemetrySafeError'
this.telemetryMessage = telemetryMessage ?? message
}
}
export function isAbortError(e: unknown): boolean {
return (
e instanceof AbortError ||
e instanceof APIUserAbortError ||
(e instanceof Error && e.name === 'AbortError')
)
}
export function hasExactErrorMessage(error: unknown, message: string): boolean {
return error instanceof Error && error.message === message
}
export function toError(e: unknown): Error {
return e instanceof Error ? e : new Error(String(e))
}
export function errorMessage(e: unknown): string {
return e instanceof Error ? e.message : String(e)
}
export function getErrnoCode(e: unknown): string | undefined {
if (e && typeof e === 'object' && 'code' in e && typeof e.code === 'string') {
return e.code
}
return undefined
}
export function isENOENT(e: unknown): boolean {
return getErrnoCode(e) === 'ENOENT'
}
export function getErrnoPath(e: unknown): string | undefined {
if (e && typeof e === 'object' && 'path' in e && typeof e.path === 'string') {
return e.path
}
return undefined
}
{
"config": {"wide_screen_mode": true},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "**⚠️ Errors Utils**\n\n---\n\n**Error Classes**:\n• ClaudeError\n• MalformedCommandError\n• AbortError\n• ConfigParseError\n• ShellError\n• TeleportOperationError\n• TelemetrySafeError\n\n---\n\n**Functions**:\n• isAbortError()\n• hasExactErrorMessage()\n• toError()\n• errorMessage()\n• getErrnoCode()\n• isENOENT()\n• getErrnoPath()"
}
}
]
}
// memory/errors-utils-state.json
{
"stats": {
"totalErrors": 0,
"abortErrors": 0
},
"lastUpdate": "2026-04-12T12:37:00Z",
"notes": "Errors Utils Skill 创建完成。"
}
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