skills-experimental/circular-buffer/SKILL.md
Circular buffer for fixed-size rolling window. CircularBuffer<T> + add/addAll/getRecent/toArray/clear/length. Automatically evicts oldest items when full. Use when [circular buffer] is needed.
npx skillsauth add bianhaifeng789-hue/openclaw-config circular-bufferInstall 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.
Circular Buffer 固定大小滚动窗口。
场景:
Claude Code 方案:CircularBuffer.ts + 71 lines OpenClaw 飞书适配:Circular buffer + Rolling window
class CircularBuffer<T> {
private buffer: T[]
private head = 0
private size = 0
constructor(private capacity: number) {
this.buffer = new Array(capacity)
}
add(item: T): void {
this.buffer[this.head] = item
this.head = (this.head + 1) % this.capacity
if (this.size < this.capacity) {
this.size++
}
}
getRecent(count: number): T[] {
const result: T[] = []
const start = this.size < this.capacity ? 0 : this.head
const available = Math.min(count, this.size)
for (let i = 0; i < available; i++) {
const index = (start + this.size - available + i) % this.capacity
result.push(this.buffer[index]!)
}
return result
}
toArray(): T[] {
// Get all items (oldest to newest)
}
clear(): void {
// Clear all items
}
length(): number {
return this.size
}
}
// Create buffer with capacity 10
const buffer = new CircularBuffer<string>(10)
// Add items
buffer.add('item1')
buffer.add('item2')
buffer.add('item3')
// Get recent 5 items
const recent = buffer.getRecent(5)
// Get all items
const all = buffer.toArray()
// Clear buffer
buffer.clear()
// Get length
const len = buffer.length()
{
"config": {"wide_screen_mode": true},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "**🔄 Circular Buffer**\n\n---\n\n**Class**:\n```typescript\nclass CircularBuffer<T> {\n add(item: T): void\n addAll(items: T[]): void\n getRecent(count: number): T[]\n toArray(): T[]\n clear(): void\n length(): number\n}\n```\n\n---\n\n**Features**:\n• Fixed-size buffer\n• Automatically evicts oldest\n• Rolling window\n• Memory-efficient\n• Recent items retrieval"
}
}
]
}
// memory/circular-buffer-state.json
{
"buffers": [],
"stats": {
"totalBuffers": 0,
"totalAdds": 0,
"totalGets": 0
},
"lastUpdate": "2026-04-12T01:54:00Z",
"notes": "Circular Buffer Skill 创建完成。等待 buffer 触发。"
}
| Claude Code | OpenClaw 飞书场景 | |-------------|------------------| | CircularBuffer.ts (71 lines) | Skill + Buffer | | CircularBuffer<T> | Buffer class | | add/getRecent/toArray | Methods | | capacity param | Fixed-size |
此 Skill 在 buffer operation 时自动运行。
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