Skip to main content

semantic

Use this skill when a task needs semantic element matching: find UI elements by natural language query, match accessibility tree nodes, score element similarity, classify browser automation failures, or recover from stale element refs. Triggers on 'find element', 'semantic match', 'accessibility matching', 'element recovery'.

来源信息

仓库
pinchtab/semantic
最近来源活动
2026年3月22日 10:46
检测到的 SKILL.md 语言
英语
星标
5
分支
1

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
semantic
description
Use this skill when a task needs semantic element matching: find UI elements by natural language query, match accessibility tree nodes, score element similarity, classify browser automation failures, or recover from stale element refs. Triggers on 'find element', 'semantic match', 'accessibility matching', 'element recovery'.
metadata
{"openclaw":{"requires":{"bins":"[Truncated]"},"homepage":"https://github.com/pinchtab/semantic","install":["[Truncated]","[Truncated]","[Truncated]"]}}
# Semantic Element Matching Semantic is a zero-dependency Go library + CLI for matching natural language queries against accessibility tree elements. ## CLI Usage ### Find elements by query ```bash # From a snapshot file semantic find "sign in button" --snapshot page.json # From stdin (pipe from pinchtab) pinchtab snap --json | semantic find "login" # Control output semantic find "submit" --threshold 0.5 --top-k 5 --format json semantic find "email input" --strategy lexical --format refs ``` ### Score a specific element ```bash semantic match "login button" e4 --snapshot page.json ``` ### Classify an error ```bash semantic classify "could not find node with given id" # → element_not_found (recoverable: true) semantic classify "net::ERR_CONNECTION_REFUSED" # → network (recoverable: false) ``` ## Snapshot Format The CLI expects a JSON array of elements: ```json [ {"ref": "e0", "role": "button", "name": "Sign In"}, {"ref": "e1", "role": "textbox", "name": "Email"}, {"ref": "e2", "role": "link", "name": "Forgot Password"} ] ``` ## Output Formats - `--format table` (default): Human-readable table - `--format json`: Machine-readable JSON with scores and confidence - `--format refs`: Just ref strings, one per line (for piping) ## Strategies - `combined` (default): 60% lexical + 40% embedding — best overall - `lexical`: Jaccard similarity + synonym expansion + role boosting - `embedding`: Cosine similarity on hashing-based dense vectors ## Library Usage (Go) ```go import "github.com/pinchtab/semantic" matcher := semantic.NewCombinedMatcher(semantic.NewHashingEmbedder(128)) result, _ := matcher.Find(ctx, "login button", elements, semantic.FindOptions{ Threshold: 0.3, TopK: 3, }) fmt.Println(result.BestRef, result.BestScore) ```
在 GitHub 查看