skills-experimental/fuzzy-picker/SKILL.md
# Fuzzy Picker Skill Fuzzy Picker - PickerAction + previewPosition + direction (down/up) + CHROME_ROWS + visibleCount动态计算。 ## 功能概述 从Claude Code的FuzzyPicker提取的模糊选择器模式,用于OpenClaw的搜索/选择界面。 ## 核心机制 ### PickerAction Type ```typescript type PickerAction<T> = { /** Hint label shown in the byline, e.g. "mention" → "Tab to mention". */ action: string handler: (item: T) => void } onTab?: PickerAction<T> onShiftTab?: PickerAction<T> // Action + handler pair // Hint label for byline // Tab gets
npx skillsauth add bianhaifeng789-hue/openclaw-config skills-experimental/fuzzy-pickerInstall 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.
Fuzzy Picker - PickerAction + previewPosition + direction (down/up) + CHROME_ROWS + visibleCount动态计算。
从Claude Code的FuzzyPicker提取的模糊选择器模式,用于OpenClaw的搜索/选择界面。
type PickerAction<T> = {
/** Hint label shown in the byline, e.g. "mention" → "Tab to mention". */
action: string
handler: (item: T) => void
}
onTab?: PickerAction<T>
onShiftTab?: PickerAction<T>
// Action + handler pair
// Hint label for byline
// Tab gets own action, no longer aliases Enter
previewPosition?: 'bottom' | 'right'
// 'right' keeps hints stable (no bounce), but needs width
// 'bottom' default position
// Preview placement determines layout
direction?: 'down' | 'up'
/**
* 'up' puts items[0] at the bottom next to the input (atuin-style).
* Arrows always match screen direction — ↑ walks visually up regardless.
*/
// 'down': normal layout
// 'up': atuin-style reverse layout
// Arrows match screen direction
const DEFAULT_VISIBLE = 8
// Pane (paddingTop + Divider) + title + 3 gaps + SearchBox (rounded border = 3 rows) + hints
// matchLabel adds +1 when present, accounted for separately.
const CHROME_ROWS = 10
const MIN_VISIBLE = 2
// Fixed UI chrome rows
// Used for visibleCount calculation
const visibleCount = Math.max(MIN_VISIBLE, Math.min(requestedVisible, rows - CHROME_ROWS - (matchLabel ? 1 : 0)))
// Cap visibleCount so picker never exceeds terminal height
// Overflow causes cursor mis-positioning
// Dynamic calculation based on terminal rows
/**
* Fires when focused item changes (via arrows or when items reset).
* Useful for async preview loading — keeps I/O out of renderPreview.
*/
onFocus?: (item: T | undefined) => void
// Async preview loading hook
// Keeps I/O out of render function
emptyMessage?: string | ((query: string) => string)
// Shown when items is empty
// Caller bakes loading/searching state into this
// Can be static string or dynamic function
{
"previewPosition": "right",
"direction": "down",
"chromeRows": 10,
"minVisible": 2,
"defaultVisible": 8
}
{ action: "mention", handler: (item) => void } → Tab gets own action + hint
// Tab不再alias Enter
// Shift+Tab fallback if onShiftTab unset
'right' → stable hints, needs width, 'bottom' → default
// 右侧预览防止bounce
// 需要额外宽度
'up' → items[0] at bottom, arrows match screen direction
// 反向布局(atuin风格)
// ↑ visually up regardless
rows - CHROME_ROWS - matchLabel → visibleCount cap
// overflow会导致cursor mis-positioning
// 动态计算防止溢出
onFocus → async preview → keeps I/O out of renderPreview
// 预览加载异步化
// 渲染函数无I/O
components/design-system/FuzzyPicker.tsxbusiness
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