skills-experimental/history-pattern/SKILL.md
# History Pattern Skill History Pattern - MAX_HISTORY_ITEMS=100 + PastedContent Reference + parseReferences + expandPastedTextRefs + lockfile + MAX_PASTED_CONTENT_LENGTH=1024。 ## 功能概述 从Claude Code的history.ts提取的历史管理模式,用于OpenClaw的输入历史。 ## 核心机制 ### MAX_HISTORY_ITEMS ```typescript const MAX_HISTORY_ITEMS = 100 // Bounded history size // Prevent unbounded growth // 100 items max ``` ### MAX_PASTED_CONTENT_LENGTH ```typescript const MAX_PASTED_CONTENT_LENGTH = 1024 // Inline content threshold
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/history-patternInstall 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.
History Pattern - MAX_HISTORY_ITEMS=100 + PastedContent Reference + parseReferences + expandPastedTextRefs + lockfile + MAX_PASTED_CONTENT_LENGTH=1024。
从Claude Code的history.ts提取的历史管理模式,用于OpenClaw的输入历史。
const MAX_HISTORY_ITEMS = 100
// Bounded history size
// Prevent unbounded growth
// 100 items max
const MAX_PASTED_CONTENT_LENGTH = 1024
// Inline content threshold
// Small pastes inline (< 1024 chars)
// Large pastes → hash reference → external store
type StoredPastedContent = {
id: number
type: 'text' | 'image'
content?: string // Inline content for small pastes
contentHash?: string // Hash reference for large pastes
mediaType?: string
filename?: string
}
// Discriminated by content vs contentHash
// Inline vs external storage
// Type + id + metadata
// Claude Code parses history for pasted content references:
// Text: [Pasted text #1 +10 lines]
// Image: [Image #2]
// Numbers unique within prompt, not across prompts
// Auto-incrementing IDs (user-friendly)
export function formatPastedTextRef(id: number, numLines: number): string {
if (numLines === 0) return `[Pasted text #${id}]`
return `[Pasted text #${id} +${numLines} lines]`
}
export function formatImageRef(id: number): string {
return `[Image #${id}]`
}
// Structured reference format
// Line count display (+N lines)
// Auto-incrementing IDs
export function parseReferences(
input: string,
): Array<{ id: number; match: string; index: number }> {
const referencePattern =
/\[(Pasted text|Image|\.\.\.Truncated text) #(\d+)(?: \+\d+ lines)?(\.)*\]/g
const matches = [...input.matchAll(referencePattern)]
return matches
.map(match => ({
id: parseInt(match[2] || '0'),
match: match[0],
index: match.index,
}))
.filter(match => match.id > 0)
}
// Regex parse references
// Match id, full match, index
// Filter valid ids (> 0)
/**
* Replace [Pasted text #N] placeholders in input with their actual content.
* Image refs are left alone — they become content blocks, not inlined text.
*/
// Replace text refs with actual content
// Image refs → content blocks
// Not inlined
import { lock } from './utils/lockfile.js'
// Lock for history file operations
// Prevent concurrent writes
// Safe file access
import { readLinesReverse } from './utils/fsOperations.js'
// Read history file from end
// Recent entries first
// Efficient pagination
import {
hashPastedText,
retrievePastedText,
storePastedText,
} from './utils/pasteStore.js'
// hashPastedText: generate hash for large paste
// storePastedText: store large paste externally
// retrievePastedText: retrieve from hash
// External paste storage system
{
"historySize": 50,
"maxItems": 100,
"pasteThreshold": 1024,
"lastEntryId": 42
}
content < 1024 → inline
content >= 1024 → hash reference → external store
// 小内容inline
// 大内容external存储
[Pasted text #N +M lines] → structured reference → parseReferences regex
// 结构化reference格式
// 正则解析提取id
#1, #2, #3 → within prompt unique → not across prompts
// 提示内唯一
// 提示间不唯一
// 用户友好
lock() → concurrent write protection → safe file access
// 锁文件防止并发写入
// 安全文件访问
history.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