用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/GeorgeDoors888/GB-Power-Market-JJ --skill gui-memory命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
超级简历 WonderCV 出品,3000 万用户信赖。简历分析、段落改写、JD 岗位匹配、自动匹配职位、PDF 导出、AI 求职导师(面试准备/薪资谈判/职业规划/多版本简历策略)。 触发条件:用户提供简历、要求简历点评/打分/反馈、希望改写某个简历部分、 希望将简历与岗位 JD 匹配、咨询求职建议或面试准备,或提到 CV/简历/求职。 不触发条件:用户讨论普通写作(非简历)、询问其他文档, 或讨论与求职和职业发展无关的话题。
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
调用久吾智能体API进行文本或文件分析处理。支持两种调用方式:(1) 文本内容分析 - 传入name(智能体名称)、docno(文档编号)、content(文本内容);(2) 文件分析 - 传入name、docno和files(文件列表)进行智能评审。适用于合同评审、需求评审、文档审查等场景。当用户要求评审合同、分析条款、审查文档、需求评审、合同条款分析、或需要对文本和文件进行AI智能分析时触发。
基于 SOC 职业分类
正在显示 SKILL.md
| name | gui-memory |
| description | Visual memory system — split storage, component forgetting, state merging, transition dedup. |
Each app/site stores memory in four independent files (not one monolithic profile):
memory/apps/<appname>/
├── meta.json # Metadata: detect_count, forget_threshold, img_size
├── components.json # Component registry with activity tracking
├── states.json # States defined by component sets
├── transitions.json # State transitions (dict, deduped by key)
├── components/ # Template images (cropped UI elements)
└── pages/ # Full page screenshots
{
"app": "chromium",
"domain": "united.com",
"detect_count": 47,
"last_updated": "2026-03-23 15:30:00",
"img_size": [1920, 1080],
"forget_threshold": 15
}
detect_count: total times detect_all has been called for this app/siteforget_threshold: consecutive misses before a component is auto-deleted (default 15){
"Travel_info": {
"type": "text",
"source": "ocr",
"rel_x": 661, "rel_y": 188,
"w": 80, "h": 20,
"icon_file": "components/Travel_info.png",
"label": "Travel info",
"confidence": 0.95,
"page": "homepage",
"learned_at": "2026-03-23 02:20:00",
"last_seen": "2026-03-23 15:30:00",
"seen_count": 12,
"consecutive_misses":
Activity tracking fields (auto-managed, LLM does not set these):
last_seen: last time this component was detected on screenseen_count: total times detectedconsecutive_misses: how many consecutive detect_all calls missed this component (resets to 0 on detection){
"s_a3f2c1": {
"name": "homepage",
"description": "United Airlines homepage with booking form",
"defining_components": ["nav_bar", "book_button", "Travel_info"],
"visible_texts": ["United", "Book", "Travel info"],
"first_seen": "2026-03-23 02:20:00",
"last_seen": "2026-03-23 15:30:00",
"visit_count": 5
}
}
defining_components set, not by naming conventions_ + 6-char hex hash of the component set{
"s_a3f2c1|click:Travel_info|s_b7d4e2": {
"from_state": "s_a3f2c1",
"action": "click:Travel_info",
"to_state": "s_b7d4e2",
"count": 3,
"last_used": "2026-03-23 15:30:00",
"success_rate": 1.0
}
}
from_state|action|to_state — natural dedupcount and last_used instead of creating duplicatesThese run inside learn_from_screenshot() — the LLM just calls the function, everything below is automatic.
Every time learn_from_screenshot() runs:
last_seen = now, seen_count += 1, consecutive_misses = 0consecutive_misses += 1detect_count > forget_threshold AND consecutive_misses >= forget_threshold:
defining_componentsdefining_components becomes empty → delete the stateAfter component activity update:
seen_count >= 2) → stable_setstable_set against each state's defining_components via Jaccard similarityvisit_count and last_seens_ + hash IDAfter state identification:
visit_count state, union defining_componentsBrowsers host many websites, each with its own UI. The browser itself has memory for browser-level UI (toolbar, settings). Each website gets its own nested directory with the same 4-file structure:
memory/apps/chromium/
├── meta.json # Browser-level metadata
├── components.json # Browser UI components (toolbar, etc.)
├── states.json
├── transitions.json
├── components/
├── pages/
└── sites/ # ⭐ Each website = same structure
├── united.com/
│ ├── meta.json
│ ├── components.json
│ ├── states.json
│ ├── transitions.json
│ ├── components/
│ └── pages/
├── delta.com/
│ └── ...
└── ...
Rules:
sites/<domain>/ with the 4 filesunited_com, not www.united.com/en/us)Old profile.json files are automatically migrated to the new split format on first load:
profile.json → split into meta.json + components.json + states.json + transitions.jsonprofile.json.baklast_seen, seen_count, consecutive_misses# Learn (detect + save + auto-forget + auto-state)
python3 scripts/agent.py learn --app AppName
# List components
python3 scripts/agent.py list --app AppName
# Rename unlabeled
python3 scripts/app_memory.py rename --app AppName --old unlabeled_xxx --new actual_name
# Delete (privacy, dynamic content)
python3 scripts/app_memory.py delete --app AppName --component name
# View state graph
python3 scripts/app_memory.py transitions --app AppName
# Find navigation path
python3 scripts/app_memory.py path --app AppName --component from_state --contact to_state
auto_cleanup_dynamicimage tool → rename or delete