skills-experimental/format-utils/SKILL.md
# Format Utils Skill **优先级**: P29 **来源**: Claude Code `format.ts` **适用场景**: 文件大小、时长、数字格式化 --- ## 概述 Format Utils提供显示格式化函数:文件大小(KB/MB/GB)、时长(1.2s、1d 2h)、数字(1.3k)、相对时间。NumberFormat缓存避免重复创建。 --- ## 核心功能 ### 1. 文件大小 ```typescript export function formatFileSize(sizeInBytes: number): string { const kb = sizeInBytes / 1024 if (kb < 1) return `${sizeInBytes} bytes` if (kb < 1024) return `${kb.toFixed(1).replace(/\.0$/, '')}KB` const mb = kb / 1024 if (mb < 1024) return `${mb.toFixed(1)
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/format-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.
优先级: P29
来源: Claude Code format.ts
适用场景: 文件大小、时长、数字格式化
Format Utils提供显示格式化函数:文件大小(KB/MB/GB)、时长(1.2s、1d 2h)、数字(1.3k)、相对时间。NumberFormat缓存避免重复创建。
export function formatFileSize(sizeInBytes: number): string {
const kb = sizeInBytes / 1024
if (kb < 1) return `${sizeInBytes} bytes`
if (kb < 1024) return `${kb.toFixed(1).replace(/\.0$/, '')}KB`
const mb = kb / 1024
if (mb < 1024) return `${mb.toFixed(1).replace(/\.0$/, '')}MB`
const gb = mb / 1024
return `${gb.toFixed(1).replace(/\.0$/, '')}GB`
}
export function formatSecondsShort(ms: number): string {
return `${(ms / 1000).toFixed(1)}s`
}
// 1234 → "1.2s"
export function formatDuration(
ms: number,
options?: { hideTrailingZeros?: boolean; mostSignificantOnly?: boolean }
): string
// < 1s: "0.5s", "5s"
// >= 1m: "5m", "1h 5m", "1d 2h"
export function formatNumber(number: number): string {
const shouldUseConsistentDecimals = number >= 1000
return getNumberFormatter(shouldUseConsistentDecimals)
.format(number)
.toLowerCase()
}
// 1321 → "1.3k"
// 900 → "900"
const fileSize = formatFileSize(file.bytes)
// 在飞书卡片中显示
{
"elements": [{
"tag": "div",
"text": {
"content": `文件大小: ${fileSize}`,
"tag": "plain_text"
}
}]
}
const duration = formatDuration(task.durationMs)
const shortDuration = formatSecondsShort(apiResponseTime)
{
"skill": "format-utils",
"priority": "P29",
"source": "format.ts",
"enabled": true,
"formats": ["fileSize", "secondsShort", "duration", "number", "relativeTime"],
"createdAt": "2026-04-12T13:00:00Z"
}
format.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