skills-experimental/grep-tool/SKILL.md
# Grep Tool Skill 搜索工具 - Head_limit pagination + VCS exclusion + Mtime sort + Path relativize。 ## 功能概述 从Claude Code的GrepTool提取的搜索模式,用于OpenClaw的文件内容搜索。 ## 核心机制 ### Head Limit Pagination ```typescript const DEFAULT_HEAD_LIMIT = 250 function applyHeadLimit<T>(items: T[], limit?: number, offset = 0) { if (limit === 0) return { items: items.slice(offset), appliedLimit: undefined } const effectiveLimit = limit ?? DEFAULT_HEAD_LIMIT const sliced = items.slice(offset, offset + effectiveLimi
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/grep-toolInstall 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.
搜索工具 - Head_limit pagination + VCS exclusion + Mtime sort + Path relativize。
从Claude Code的GrepTool提取的搜索模式,用于OpenClaw的文件内容搜索。
const DEFAULT_HEAD_LIMIT = 250
function applyHeadLimit<T>(items: T[], limit?: number, offset = 0) {
if (limit === 0) return { items: items.slice(offset), appliedLimit: undefined }
const effectiveLimit = limit ?? DEFAULT_HEAD_LIMIT
const sliced = items.slice(offset, offset + effectiveLimit)
const wasTruncated = items.length - offset > effectiveLimit
return { items: sliced, appliedLimit: wasTruncated ? effectiveLimit : undefined }
}
// head_limit=250默认
// 0表示无限制(escape hatch)
// offset支持分页
const VCS_DIRECTORIES_TO_EXCLUDE = ['.git', '.svn', '.hg', '.bzr', '.jj', '.sl']
for (const dir of VCS_DIRECTORIES_TO_EXCLUDE) {
args.push('--glob', `!${dir}`)
}
// 自动排除版本控制目录
// 避免噪音
const stats = await Promise.allSettled(results.map(_ => fs.stat(_)))
const sortedMatches = results
.map((_, i) => [_, r.status === 'fulfilled' ? r.value.mtimeMs ?? 0 : 0])
.sort((a, b) => b[1] - a[1]) // newest first
// 按修改时间排序
// 最近修改的文件优先
// For content mode
const finalLines = limitedResults.map(line => {
const colonIndex = line.indexOf(':')
const filePath = line.substring(0, colonIndex)
return toRelativePath(filePath) + rest
})
// Absolute → Relative
// 节省tokens
output_mode: z.enum(['content', 'files_with_matches', 'count'])
// content: 显示匹配行(支持-A/-B/-C)
// files_with_matches: 显示文件路径
// count: 显示匹配次数
if (output_mode === 'content') {
if (context !== undefined) args.push('-C', context.toString())
else {
if (context_before) args.push('-B', context_before.toString())
if (context_after) args.push('-A', context_after.toString())
}
}
// -C优先于-B/-A
// 只在content mode有效
args.push('--max-columns', '500')
// 限制行长度
// 防止base64/minified内容污染输出
{
"mode": "files_with_matches",
"numFiles": 15,
"appliedLimit": 250,
"appliedOffset": 0,
"vcsExcluded": true
}
Default 250 → Explicit 0 = unlimited
// 防止context bloat
// 用户可escape
files_with_matches → sort by mtime → newest first
// 最近修改更可能relevant
// 优先显示
ripgrep返回absolute → toRelativePath → save tokens
// 输出优化
// 节省context
tools/GrepTool/GrepTool.ts (10KB+)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