OpenClaw/clawhub-security-signals huggingface dataset:
Skill: zaj7373/legal-needs-analysis (version 1.0.0)

# 法律需求分析技能 ## 你的任务 律师通常面对的困境是：客户用日常语言、带着情绪、缺乏逻辑地描述自己的遭遇，而律师需要迅速判断案件的法律性质和处理方向。你的工作是充当这个"翻译层"——把客户的原始陈述转化为律师可以直接使用的法律分析框架。 ## 处理流程 ### 第一步：阅读并理解客户陈述 仔细读取客户的原始文字。注意： - 客户可能用情绪化语言描述事实（"他就是个骗子"→ 可能涉及欺诈或合同违约） - 客户可能颠倒时间顺序或反复叙述同一件事 - 客户可能混合多个独立的法律问题 - 关键细节往往藏在看似无关的描述中（金额、日期、双方关系、有无书面协议） ### 第二步：提取关键事实 从叙述中剥离出以下要素： - **当事人**：原告/申请人是谁，被告/相对方是谁，有无第三方 - **时间线**：事件的先后顺序（尽量还原） - **核心争议**：双方的主要分歧是什么 - **金额/标的**：涉及多少钱/财产/权益 - **已有证据**：客户提到了哪些可能的证据（合同、转账记录、聊天截图等） ### 第三步：识别法律问题 根据提取的事实，判断涉及哪些法律问题。常见民事纠纷类型包括但不限于： **合同类** - 买卖合同纠纷（货款纠纷、质量纠纷） - 借款合同纠纷（民间借贷） - 服务合同纠纷（装修、中介等） - 租赁合同纠纷 - 劳动合同纠纷 **侵权类** - 人身损害赔偿 - 财产损害赔偿 - 名誉权/隐私权侵权 - 交通事故责任 **其他常见类型** - 婚姻家事（如陈述中涉及） - 继承纠纷 - 不当得利/无因管理 - 公司股权纠纷 如果陈述涉及多个法律问题，逐一列出并说明相互关系。 ### 第四步：标注证据和信息缺口 指出哪些关键事实目前不明确，律师在会谈时需要进一步确认，例如： - 是否有书面合同？ - 款项的支付方式和凭证？ - 具体的时间节点？ - 对方是否有书面承诺或回复？ ### 第五步：输出结构化报告 --- ## 输出格式 请严格使用以下报告模板： --- # 客户法律需求分析报告 **整理日期**：[日期] **陈述来源**：[客户原始陈述/微信记录/录音转文字 等] --- ## 一、案件概述 用2-4句话高度概括：这是一起什么性质的纠纷，涉及哪些当事方，核心诉求是什么。 --- ## 二、基本事实梳理 | 要素 | 内容 | |------|------| | 委托方 | [客户姓名/称谓] | | 相对方 | [对方姓名/称谓] | | 事件起始时间 | [尽量精确到月份] | | 核心争议标的 | [金额/财产/权益描述] | | 主要诉求 | [客户希望达到的结果] | **事件时间线**（按时间顺序）： 1. [时间] - [事件] 2. [时间] - [事件] 3. ... --- ## 三、法律问题识别 ### 主要法律问题 **【问题一】[法律问题名称]** - 法律性质：[合同纠纷/侵权责任/等] - 依据的事实：[来自陈述的具体描述] - 适用法律方向：[民法典相关条款方向，不需要精确条文] - 初步判断：[胜诉可能性的初步印象，用"较强"/"需进一步核实"/"较弱"表述] **【问题二】**（如有） ... ### 次要/关联问题 [如有其他法律层面的附带问题，简要列出] --- ## 四、现有证据线索 | 证据类型 | 具体描述 | 证明目的 | 是否需要固定 | |----------|----------|----------|--------------| | [合同/截图/转账记录等] | [客户提到的描述] | [能证明什么] | [是/否] | --- ## 五、待确认的关键信息 律师在下次会谈中需要重点追问的问题（按重要性排序）： 1. **[问题]** — 原因：[为什么这个信息很重要] 2. **[问题]** — 原因：[...] 3. ... --- ## 六、注意事项 / 风险提示 [如果陈述中存在对客户不利的信息、时效问题、管辖权问题或其他需要律师注意的风险点，在此标出] --- ## 写作原则 - **中立客观**：基于客户陈述的事实，不对对方作道德判断 - **清晰实用**：律师应能在5分钟内读完并理解案件全貌 - **忠实于陈述**：不要添加客户没有提到的假设性信息；如有信息不足，在"待确认"部分标出 - **法律准确**：使用正确的法律术语，但不需要引用精确条文（律师会自己查阅） - **语言简练**：避免冗余表达，报告应当是给专业律师看的，不需要解释基础法律概念 如果客户陈述中明显缺乏关键信息（例如完全没有提到时间、金额或当事方关系），在报告开头用一句话说明，然后基于现有信息尽力完成分析。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: testlbin/vlm-image-helper (version 0.1.0)

--- name: vlm-image-helper description: "Visual inspection helper for VLM and OCR workflows. Use when agent needs to help a vision model see an image more clearly before re-analysis: rotate misaligned or sideways text, crop to a relevant region, zoom small details, enhance readability, or convert an image for re-input. Trigger especially when the model cannot confidently read text, cannot tell similar characters apart such as O/0 or I/l/1, says the image is unclear, needs to inspect only one area of the image, or would benefit from a second pass on a clearer view. Do not use as a general-purpose image editor." --- # VLM Image Helper Treat this skill as a visual aid for the model, not as a general image editor. Use `scripts/image_helper.py` to create a clearer intermediate image, then re-run analysis on that result. ## Core Workflow 1. Start from the original image path, a raw base64 string, or a data URI. 2. Apply the smallest transformation that is likely to remove the ambiguity. 3. Prefer semantic crop presets over manual coordinates unless the exact box is already known. 4. Return the processed image as a file or base64, then re-read that result. 5. If the image is still unclear, iterate once with a tighter crop or stronger zoom instead of stacking many edits at once. ## Quick Commands ```bash # Rotate sideways text python scripts/image_helper.py image.png --rotate 90 -o rotated.png # Crop a likely area and zoom it python scripts/image_helper.py image.png --crop-preset bottom-right --scale-preset x3 -o detail.png # Improve low-contrast text python scripts/image_helper.py image.png --auto-enhance -o enhanced.png # Convert an existing file path directly to base64 python scripts/image_helper.py image.png --base64 ``` ## Choose the Next Action - Text is sideways or upside down: use `--rotate`. - Only one region matters: use `--crop-preset` first, then add `--scale-preset`. - Small text or icons are hard to read: use `--scale-preset x2` or `x3`. - Contrast is weak or edges are fuzzy: use `--auto-enhance`, or manually tune `--contrast` and `--sharpness`. - Another tool needs inline image data instead of a file path: add `--base64`. - The source image arrives as raw base64 or a data URI: use `--input-mode auto` or force `--input-mode base64` / `data-uri`. ## Input and Output Rules - Accept a file path, raw base64 string, or data URI as input. - Return a file with `-o` or return inline base64 with `--base64`. - Allow passthrough output with no edits when the only goal is format conversion or path-to-base64 conversion. ## References - Full CLI reference: `references/cli-reference.md` - Crop and scale preset table: `references/presets.md` ## Prerequisite Install Pillow if it is missing: ```bash pip install Pillow # or uv pip install Pillow ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: shalinda-j/llmcom (version 1.0.3)

--- name: llmcom description: Compress prompts for Claude Code and Cursor CLI. Reduces tokens by removing filler words and abbreviating terms. Self-contained, no external dependencies required. --- # LLMCOM Prompt Compression Self-contained prompt compression tool. No installation required - just read this skill and apply the compression rules. ## Compression Rules 1. **Remove filler words**: the, a, an, is, are, with, of, to, in, on, at, and, for, that, this 2. **Abbreviate terms**: - refactor -> refac - review -> rev - function -> func - security -> sec - performance -> perf - module -> mod - component -> comp - authentication -> auth - implementation -> impl 3. **Output format for Claude Code**: agent[task]|scope|focus|action|context|constraints ## Example **Input**: "Refactor the authentication module to improve type security" **Output**: agent[refac]|mod|sec|review|@src|strict **Stats**: 11 -> 6 tokens (45% reduction) ## How to Use Apply these rules manually when writing prompts for Claude Code CLI or Cursor agent. 1. Identify task type: refactor, review, fix, test, audit 2. Remove filler words 3. Abbreviate key terms 4. Format as pipe-separated values ## Quick Reference | Task | Format | |------|--------| | Refactor | agent[refac]|scope|focus|review|@path|constraints | | Security audit | agent[audit]|scope|sec|report|@path|high | | Bug fix | agent[fix]|scope|error|debug|@path|fallback | | Test coverage | agent[test]|scope|cov|jest|@path|edge-cases | ## Integration Use before sending prompts to: - Claude Code CLI ( gent command) - Cursor agent - Any LLM API to reduce token costs


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: amosliuster163/dog-potty-training (version 1.0.0)

--- name: dog-potty-training description: 狗狗如厕训练 - 记录排尿日志、遛狗提醒、意外追踪、进步分析。适合成年犬行为矫正。 version: 1.0.0 tags: dog, pet, training, potty --- # 狗狗如厕训练 (Dog Potty Training) 专为成年犬如厕行为矫正设计的训练追踪技能，提供遛狗提醒、意外记录、进步分析和奖励追踪。 ## ⚠️ 重要提醒 **成年犬训练原则：** - ✅ 不惩罚，只奖励正确行为 - ✅ 耐心，习惯改变需要 2-4 周 - ✅ 一致性，全家人用同样规则 - ✅ 彻底清理旧尿渍（酶清洁剂） **禁忌：** - ❌ 事后打骂（狗记不住） - ❌ 鼻子按尿渍（无效且伤害信任） - ❌ 规则不一致（今天允许明天不许） ## 触发条件 用户可能说： - "遛狗回来了，尿了" - "在家又尿了，在客厅" - "今天遛了几次" - "记录训练" - "看看进步怎么样" - "狗狗又在卧室尿了" ## 核心功能 ### 1. 遛狗/排尿记录 **记录格式**（写入 `memory/dog-training.md`）： ```markdown ## 2026-02-25 ### 外出排尿 | 时间 | 地点 | 排尿情况 | 是否奖励 | 备注 | |------|------|---------|---------|------| | 07:00 | 小区树下 | 尿了 2 次 | ✅ 零食 | 很顺利 | | 12:00 | 公园草地 | 尿了 1 次 | ✅ 夸奖 | - | | 18:00 | 小区树下 | 尿了 2 次 | ✅ 零食 | - | | 22:00 | 小区树下 | 没尿 | - | 玩了一会儿 | ### 室内意外 | 时间 | 地点 | 发现方式 | 清理方式 | 备注 | |------|------|---------|---------|------| | 10:30 | 客厅角落 | 主动发现 | 酶清洁剂 | 可能是标记 | ``` **快捷记录命令：** ``` "遛狗回来了，尿了 2 次" "早上 7 点遛狗，尿了，给了零食" "在家又尿了，在客厅" "今天遛了 3 次，都尿了" ``` ### 2. 遛狗提醒 **建议频率：** - **成年犬**: 每 4-6 小时一次 - **老年犬 (7 岁+)**: 每 3-4 小时一次 - **训练期**: 增加频率，每 3-4 小时一次 **提醒话术示例：** ``` 🐕 老刘，该遛狗了！ 距离上次遛狗已经过去 5 小时。 现在带它去尿，成功率高。 记得：尿了立刻奖励！ ``` ### 3. 意外事故追踪 **记录要点：** - 时间 - 地点（精确到房间/角落） - 可能原因（没人带出去/标记/意外） - 清理方式（必须用酶清洁剂） **分析热点区域：** 如果某个地方反复尿，说明： 1. 气味没清干净 2. 狗狗把这里当厕所了 **解决方案：** - 彻底清理（酶清洁剂） - 喷禁区喷雾 - 暂时限制进入该区域 ### 4. 进步分析 **每周统计：** ``` 第 1 周 (2/25-3/3): - 外出排尿：18 次 ✅ - 室内意外：5 次 ⚠️ - 成功率：78% 第 2 周 (3/4-3/10): - 外出排尿：21 次 ✅ - 室内意外：2 次 ⚠️ - 成功率：91% 🎉 ``` **进步信号：** - 意外次数减少 - 主动示意要出去（挠门/转圈） - 能憋更长时间 - 外出排尿更迅速 ### 5. 奖励追踪 **有效奖励：** - 🍖 零食（高价值，如鸡肉干） - 👍 夸张夸奖（"好狗！" 高音调） - 🎾 玩耍（球/拔河） - ⏱️ 3 秒内给（关联排尿行为） **记录示例：** ``` 奖励方式：零食 + 夸奖 效果：很好，狗狗会主动等奖励 ``` ## 训练阶段 ### 阶段 1：密集训练（第 1-2 周） - 每 3-4 小时遛一次 - 每次尿了立刻奖励 - 室内意外不惩罚，默默清理 - 限制活动范围（围栏/小房间） ### 阶段 2：巩固期（第 3-4 周） - 逐渐延长遛狗间隔到 4-6 小时 - 奖励频率降低（隔次奖励） - 扩大活动范围 - 观察是否主动示意 ### 阶段 3：维持期（第 5 周+） - 正常遛狗频率（每天 3-4 次） - 偶尔奖励（随机强化） - 完全自由活动 - 定期回顾进步 ## 数据记录 **文件位置**: `memory/dog-training.md` **数据结构：** ```markdown # 🐕 狗狗训练日志 ## 基本信息 - **名字**: [狗狗名字] - **年龄**: 8 岁 - **品种**: [品种] - **训练开始**: 2026-02-25 - **训练目标**: 只在外出时排尿 ## 本周统计 | 周次 | 外出排尿 | 室内意外 | 成功率 | 备注 | |------|---------|---------|-------|------| | 第 1 周 | 18 次 | 5 次 | 78% | 开始训练 | ## 每日记录 ### 2026-02-25 [详细记录] ``` ## 配置选项 在 `TOOLS.md` 中配置： ```markdown ### 狗狗训练 - 名字：[狗狗名字] - 年龄：8 岁 - 遛狗频率：每 4 小时 - 奖励方式：零食 + 夸奖 - 禁区喷雾：已购买 - 酶清洁剂：已购买 ``` ## 使用示例 **用户**: "遛狗回来了，尿了 2 次" **助手**: "记下了： - 时间：现在 - 排尿：2 次 ✅ - 地点：外出 🐕 给奖励了吗？零食 + 夸奖，3 秒内给效果最好！" **用户**: "客厅又尿了" **助手**: "记下了意外： - 时间：现在 - 地点：客厅 ⚠️ 老刘，注意： 1. 用酶清洁剂彻底清理（普通清洁剂不行） 2. 看看是不是固定角落，是的话喷禁区喷雾 3. 别打它，8 岁狗打了也没用，反而害怕 今天遛了几次了？是不是间隔太长了？" **用户**: "看看这周进步怎么样" **助手**: "🐕 训练周报（第 1 周）： | 指标 | 数据 | 趋势 | |------|------|------| | 外出排尿 | 18 次 | ✅ 正常 | | 室内意外 | 5 次 | ⚠️ 需改进 | | 成功率 | 78% | 📈 起步阶段 | **热点区域**: 客厅角落（3 次） **建议**: 1. 彻底清理客厅角落 2. 暂时限制进入客厅 3. 增加遛狗频率到每 3 小时 坚持住，第 2 周会明显改善！" --- **记住**: 8 岁的狗改习惯需要耐心，但完全能改善！坚持记录，看到进步会更有动力！🐕


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: juchonghao/philosopher-pack (version 1.0.1)

--- name: philosophers preamble-tier: 1 version: 1.0.0 description: "36 philosopher personas (Socrates to Foucault, Confucius to Shankara). Use /philosophers <name> to speak with any of them." triggers: - /philosophers - /philosopher allowed-tools: - Read --- You are a philosopher switchboard. When the user invokes this skill, do the following: ## If invoked with no argument — show the menu Print a categorized list of available philosophers and ask which one they want to speak with. ### Ancient Greece & Rome `socrates` `plato` `aristotle` `epicurus` `marcus_aurelius` ### Medieval `aquinas` ### Early Modern `hobbes` `descartes` `spinoza` `locke` `leibniz` `hume` `rousseau` ### German Idealism & 19th Century `kant` `hegel` `schopenhauer` `mill` `marx` `kierkegaard` `nietzsche` ### 20th Century `wittgenstein` `heidegger` `sartre` `camus` `foucault` ### Chinese Tradition `confucius` `mozi` `laozi` `mencius` `zhuangzi` `xunzi` `hanfeizi` `wang_yangming` ### Indian Tradition `buddha` `nagarjuna` `shankara` ## If invoked with a philosopher name — activate that persona 1. Read the persona file: `{baseDir}/personas/<name>.md` 2. Adopt the persona completely as described in that file. 3. Confirm activation briefly: one line in the philosopher's voice, then wait for the user's first question. 4. Stay in character for the rest of the conversation until the user invokes `/philosophers` again to switch. ## Switching philosophers If the user invokes `/philosophers <new-name>` mid-conversation, read the new persona file and switch immediately. Acknowledge the switch in the new philosopher's voice. ## Name resolution Accept common variations: full name, last name, romanizations, alternate spellings. Examples: "marcus aurelius" → `marcus_aurelius`, "Wang Yangming" → `wang_yangming`, "Han Fei" → `hanfeizi`, "Lao Tzu" → `laozi`. If the name is ambiguous or not found, list close matches.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: zhangss110/xcrawl-scraper (version 1.0.0)

--- name: XCrawl Scraper description: XCrawl - AI-Powered Web Scraping API / AI 驱动网页爬虫，支持结构化数据提取 homepage: https://github.com/zhangss110/xcrawl-scraper metadata: {"openclaw":{"emoji":"🕷️","requires":{"bins":["python","pip"],"env":[]}}} tags: latest=1.0.0,scraper=1.0.0,web-scraping=1.0.0,ai=1.0.0,json=1.0.0,markdown=1.0.0 --- <p align="center"> <img src="https://img.shields.io/badge/Python-3.8%2B-blue?style=for-the-badge&logo=python" alt="Python"> <img src="https://img.shields.io/badge License-MIT-yellow?style=for-the-badge" alt="License"> </p> <h1 align="center">🕷️ XCrawl Scraper / XCrawl 网页爬虫</h1> <p align="center"> <strong>AI-Powered Web Scraping API - 结构化数据提取利器</strong><br> <em>支持 Markdown、HTML、JSON、Screenshot 等多种格式输出</em> </p> --- ## ✨ 功能特点 / Features | 功能 | 说明 | |------|------| | 🏷️ **网页爬取** | 支持 Markdown、HTML、JSON、Screenshot | | 🔍 **搜索** | 搜索引擎结果爬取 | | 🗺️ **网站地图** | 自动发现站点所有页面 | | 🕷️ **站点爬取** | 批量爬取整个站点 | | 📊 **结构化数据** | JSON Schema 自动提取结构化数据 | | 🌐 **代理支持** | 全球代理可选 | --- ## 📦 安装 / Installation ### 方式一：运行安装脚本 ```bash scripts\install.bat ``` ### 方式二：手动安装 ```bash # 1. 安装依赖 pip install xcrawl # 2. 配置 API Key python scripts\xcrawl_scraper.py set-key YOUR_API_KEY ``` --- ## ⚙️ 获取 API Key 1. 访问 https://xcrawl.com 注册账号 2. 获取 API Key 3. 配置: ```bash python scripts\xcrawl_scraper.py set-key YOUR_API_KEY ``` --- ## 📖 使用方法 / Usage ### 1. 爬取网页 (基本) ```bash python scripts\xcrawl_scraper.py scrape https://example.com markdown ``` ### 2. 爬取多个格式 ```bash python scripts\xcrawl_scraper.py scrape https://example.com markdown html links ``` ### 3. 结构化数据提取 (JSON) ```bash python scripts\xcrawl_scraper.py scrape https://example.com json "提取产品名称和价格" ``` ### 4. 搜索 ```bash python scripts\xcrawl_scraper.py search "web scraping" ``` ### 5. 网站地图 ```bash python scripts\xcrawl_scraper.py map https://example.com ``` ### 6. 站点爬取 ```bash python scripts\xcrawl_scraper.py crawl https://example.com ``` --- ## 📋 命令列表 | 命令 | 说明 | |------|------| | `scrape <URL> [formats...]` | 爬取网页 | | `search <query>` | 搜索 | | `map <URL>` | 网站地图 | | `crawl <URL>` | 站点爬取 | | `set-key <API_KEY>` | 设置 API Key | | `config` | 显示配置 | --- ## 🔧 配置 / Configuration 配置文件: `scripts/config.json` ```json { "apiKey": "YOUR_API_KEY", "apiUrl": "https://run.xcrawl.com", "timeout": 60, "defaultFormats": ["markdown"], "defaultProxy": "" } ``` --- ## 📝 示例输出 ### Markdown 输出 ```markdown # Example Domain This domain is for use in illustrative examples in documents. ``` ### JSON 输出 ```json { "product_name": "iPhone 15 Pro", "price": 999, "currency": "USD" } ``` --- ## 📦 依赖 - Python >= 3.8 - xcrawl SDK --- ## 🤝 贡献 / Contributing 欢迎提交 Issue 和 Pull Request！ --- ## 📄 许可证 MIT License --- <p align="center">🕷️ Powered by XCrawl</p>


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: abhayjb/arrivelah (version 1.0.0)

--- name: arrivelah description: One-word trigger for next bus arrival to your destination homepage: https://github.com/abhay/arrivelah metadata: {"clawdbot":{"emoji":"🚌","requires":{"bins":["curl","jq"]},"tags":["singapore","transport","bus"]}} --- # ArriveLah - Singapore Bus Arrivals Get your next bus arrival with a single word. ## Usage ``` bus ``` Returns: Next bus to your saved destination with arrival time. ## Configuration Edit `config.json` to set: - `defaultStop`: Your usual bus stop code (e.g., "10051") - `defaultService`: Your usual bus number (e.g., "120") - `destination`: Where you're usually going (for display) ## API Uses the free Arrivelah2 API (https://arrivelah2.busrouter.sg/) No API key required. ## Example Output ``` 🚌 Bus 120 → Home ⏰ Next: 2 min (Seats available) 📍 From: Blk 149 Jalan Bukit Merah ```

path: bus-arrival.sh
content: #!/bin/bash
set -euo pipefail

# Get script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIG="$SCRIPT_DIR/config.json"

# Read config
STOP=$(jq -r '.defaultStop' "$CONFIG")
STOP_NAME=$(jq -r '.defaultStopName' "$CONFIG")
SERVICE=$(jq -r '.defaultService' "$CONFIG")
DESTINATION=$(jq -r '.destination' "$CONFIG")
API_URL=$(jq -r '.apiUrl' "$CONFIG")

# Query API
RESPONSE=$(curl -s "${API_URL}/?id=${STOP}")

# Parse for the specific service
BUS_DATA=$(echo "$RESPONSE" | jq -r --arg svc "$SERVICE" '.services[] | select(.no == $svc)')

if [ -z "$BUS_DATA" ]; then
  echo "❌ Bus $SERVICE not found at this stop"
  exit 1
fi

# Extract next bus timing
NEXT_TIME=$(echo "$BUS_DATA" | jq -r '.next.time // empty')
DURATION_MS=$(echo "$BUS_DATA" | jq -r '.next.duration_ms // 0')
LOAD=$(echo "$BUS_DATA" | jq -r '.next.load // "UNK"')

if [ -z "$NEXT_TIME" ] || [ "$NEXT_TIME" == "null" ]; then
  echo "❌ No bus $SERVICE arriving soon"
  exit 0
fi

# Convert duration to minutes
MINUTES=$((DURATION_MS / 60000))

# Map load to readable text
case "$LOAD" in
  "SEA") LOAD_TEXT="Seats available" ;;
  "SDA") LOAD_TEXT="Standing available" ;;
  "LSD") LOAD_TEXT="Limited standing" ;;
  *) LOAD_TEXT="Unknown" ;;
esac

# Output
echo "🚌 Bus $SERVICE → $DESTINATION"
if [ "$MINUTES" -eq 0 ]; then
  echo "⏰ Next: Arriving now ($LOAD_TEXT)"
else
  echo "⏰ Next: $MINUTES min ($LOAD_TEXT)"
fi
echo "📍 From: $STOP_NAME"


path: config.json
content: defaultStop: 10051
defaultStopName: Blk 149 Jalan Bukit Merah
defaultService: 120
destination: Home
apiUrl: https://arrivelah2.busrouter.sg

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: huamu668/huamu668-memos-cloud (version 1.0.0)

--- name: memos-recall description: Recall memories from MemOS Cloud before responding. Use this skill when you need context about user's previous conversations, preferences, or decisions. triggers: - user asks about previous conversations - user mentions "before", "last time", "previously" - need user preferences or context - user asks "what did I say" version: 1.0.0 --- # MemOS 记忆召回 在回答前从 MemOS Cloud 召回相关记忆。 ## 使用方式 当需要上下文时，执行以下命令： ```bash node ~/.claude/plugins/memos-cloud/memos-api.js search "{user_query}" ``` ## 参数 - `user_query` - 用户的输入或提炼的搜索关键词 ## 处理结果 ### 成功返回记忆 将记忆整合到回复中： ``` 根据之前的记录，{memory_content} ``` ### 无相关记忆 正常回复，不提及记忆功能。 ### API 错误 静默失败，正常回复。 ## 示例场景 **用户**: "我之前说的那个项目怎么样了？" **动作**: ```bash node ~/.claude/plugins/memos-cloud/memos-api.js search "之前说的那个项目" ``` **回复**: "根据之前的记录，你提到的项目是 X，当时..." --- **用户**: "我还是喜欢之前那个方案" **动作**: ```bash node ~/.claude/plugins/memos-cloud/memos-api.js search "方案偏好" ``` **回复**: "根据记录，你之前倾向于..."

path: README.md
content: # MemOS Cloud Plugin for Claude Code

MemOS Cloud 记忆插件 - 在 Claude Code 中实现跨会话记忆功能。

## 功能

- **召回 (Recall)**: 在对话中自动搜索相关记忆
- **存储 (Store)**: 将重要信息保存到 MemOS Cloud
- **命令 (Commands)**: `/memos` 手动管理记忆

## 安装

### 1. 获取 API Key

访问 https://memos-dashboard.openmem.net/cn/apikeys/ 创建 API Key。

### 2. 配置环境变量

```bash
# 创建配置文件
cat > ~/.claude/.env << 'EOF'
MEMOS_API_KEY=your_api_key_here
MEMOS_USER_ID=openclaw-user
MEMOS_BASE_URL=https://memos.memtensor.cn/api/openmem/v1
EOF
```

### 3. 验证安装

```bash
node ~/.claude/plugins/memos-cloud/memos-api.js status
```

## 使用

### 自动召回

当对话涉及之前的内容时，Claude 会自动调用：
```bash
node ~/.claude/plugins/memos-cloud/memos-api.js search "查询内容"
```

### 自动存储

当你说"记住"或有重要信息时，Claude 会自动调用：
```bash
node ~/.claude/plugins/memos-cloud/memos-api.js add "记忆内容"
```

### 手动管理

```bash
/memos search 关键词    # 搜索记忆
/memos add 内容        # 添加记忆
/memos status          # 查看状态
```

## 文件结构

```
~/.claude/plugins/memos-cloud/
├── .claude-plugin/
│   └── plugin.json          # 插件元数据
├── .mcp.json                # MCP 配置
├── commands/
│   └── memos.md             # /memos 命令定义
├── skills/
│   ├── memos-recall/        # 记忆召回技能
│   │   └── SKILL.md
│   └── memos-store/         # 记忆存储技能
│       └── SKILL.md
├── memos-api.js             # API 客户端 (Node.js)
├── memos-api.sh             # API 客户端 (Bash)
└── README.md                # 本文档
```

## 与 OpenClaw 插件的区别

| 特性 | OpenClaw 插件 | Claude Code 插件 |
|------|--------------|------------------|
| 自动召回 | ✅ 对话前自动 | ⚠️ 技能触发 |
| 自动存储 | ✅ 对话后自动 | ⚠️ 技能触发 |
| 需要 OpenClaw | ✅ 必须 | ❌ 不需要 |
| 安装复杂度 | 高 | 低 |

## 故障排除

### API Key 未设置
```
❌ Error: MEMOS_API_KEY not set
```
**解决**: 创建 `~/.claude/.env` 并添加 `MEMOS_API_KEY=your_key`

### 网络错误
检查网络连接和 `MEMOS_BASE_URL` 配置。

### 技能未触发
Claude Code 技能触发依赖关键词和上下文，手动使用 `/memos` 命令更可靠。

## 参考

- MemOS Cloud: https://memos.memtensor.cn
- API Dashboard: https://memos-dashboard.openmem.net
- OpenClaw Plugin: https://github.com/MemTensor/MemOS-Cloud-OpenClaw-Plugin


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: marerlee/env-change-guard (version 1.0.0)

--- name: env-change-guard description: 在修改环境变量或系统变量时，记录改了什么，并用电脑小白能听懂的话解释这次改动会带来什么影响。也适用于用户表示某个程序、命令、环境或系统功能出了问题，但又说不清具体原因时，优先从相关 log、报错信息或可见线索入手；如果日志相关，就先有限排查 log 内容，再继续正常排查其他可能原因，并用电脑小白能听懂的话解释。常用于 PATH、JAVA_HOME、Python、Node、ADB、Android SDK、OpenClaw 等环境相关场景。 --- # 环境变量变更记录与问题排查技能 这个技能主要做三件事： 1. 记录这次改了什么 2. 向电脑小白解释这次改动会有什么影响 3. 当用户说某个程序、命令、环境或系统功能出了问题，但又说不清具体原因时，优先从相关 log、报错信息或可见线索入手；如果日志相关，就先有限排查 log 内容，再继续正常排查其他可能原因，并用电脑小白能听懂的话解释 ## 使用要求 ### 修改环境变量或系统变量时 要做到： - 修改前先说明准备改什么 - 修改后明确记录改了什么 - 用简单的话解释这次改动会影响什么 ### 用户说某个功能或环境出了问题时 要做到： - 先看相关报错、log 或明显线索 - 先用简单的话解释目前看到的问题大概是什么意思 - 如果日志相关，就先有限排查 log 内容 - 然后继续正常排查其他可能原因 - 整个过程都尽量用电脑小白能听懂的话说明 ## 记录要求 默认把环境变量变更记录写到： - `logs/env-change-log.md` 每次记录至少包含： - 时间 - 改了哪个变量 - 修改前是什么 - 修改后是什么 - 为什么要改 ## 给小白的解释方式 默认把用户当成不懂系统配置的人。 所以解释时要尽量简单，重点说清楚： - 这次改的是哪个变量，或者当前问题大概出在哪里 - 它大概是干什么用的 - 改完以后哪些命令或程序可能会受影响 - 如果是报错，下一步还要继续看什么 - 是否需要重新打开终端、程序，或者继续检查其他可能问题 不要堆太多术语，不要写得像技术文档。 ## 典型触发场景 - “帮我配环境变量” - “把 Python 加到 PATH” - “设置 JAVA_HOME” - “配置 ADB / Android SDK” - “改一下系统变量” - “我不太懂，你解释简单一点” - “这个报错是什么意思” - “帮我查下日志” - “看看是什么问题” - “我看不懂这个错误” - “你帮我排查下 XXX 出了什么问题” ## 完成前检查 结束前确认： - 如果改了变量，已记录改动内容 - 已用简单语言解释影响 - 如果用户在排查问题，已先查看相关 log、报错或线索 - 如果日志相关，已先有限排查 log 内容 - 之后已继续说明其他可能问题


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ttjsndx/code-project-analyzer (version 1.0.0)

--- name: code-project-analyzer description: 自动分析任意代码目录的结构与内容，识别项目主要功能、模块划分、技术栈，自动生成规范的项目介绍文档，包含基础功能、应用场景、实现原理三个核心部分。使用当需要快速了解陌生项目结构、生成项目README/介绍文档、梳理代码架构时触发。 --- # 代码项目分析助手 ## 功能说明 扫描指定代码目录，自动完成： 1. 识别项目技术栈、依赖、核心入口文件 2. 分析模块划分与目录结构职责 3. 提炼项目核心功能、应用场景 4. 总结核心实现原理与架构特点 5. 输出标准化的项目介绍文档（支持Markdown格式） ## 触发关键词 - "分析这个项目" - "生成项目介绍文档" - "梳理代码结构" - "这个项目是干啥的" - "帮我看下这个代码库的架构" ## 使用方法 ``` 分析代码目录 <本地路径> 生成项目介绍文档到 <输出路径> 梳理 <路径> 的代码架构 ``` ## 支持的项目类型 - 前端项目（JS/TS/Vue/React等） - 后端项目（Node.js/Python/Go/Java等） - 工具类项目、脚本项目 ## 依赖 - Node.js 18+ - 本地文件读取权限


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: danpian1/chip-distribution (version 1.0.0)

--- name: chip-distribution version: "1.0.0" description: 筹码分布分析 — 基于东方财富筹码分布数据（CYQ），分析成本分布、集中度、套牢盘与支撑阻力。当用户说「筹码分布」「筹码集中度」「成本密集区」「套牢盘」「低位密集」时激活。 --- # 筹码分布分析体系 筹码分布（CYQ）是东方财富特有指标，将持仓成本可视化，揭示主力吸筹/派发区间。 ## 核心概念 ### 筹码区间的五个位置 ``` 高位密集：股价上方筹码占比>70% → 主力出货/上方套牢重 低位单峰：股价下方筹码集中 → 主力吸筹充分 双峰峡谷：上下各一筹码峰，中间筹码少 → 主力洗盘 发散状态：筹码散乱 → 趋势不明 成本均匀：各价格筹码差不多 → 等待方向 ``` ### 成本集中度（CYQKKD） ``` >70%：高度集中，主力控盘强 50%~70%：中度集中 <50%：筹码分散 ``` ### 获利盘比例（CYS） ``` CYS > 30%：多数筹码盈利 → 短线回调风险大 CYS < -30%：多数筹码套牢 → 反弹空间大 CYS 在0附近：成本接近现价 → 突破概率大 ``` ## 典型形态与操作 | 形态 | 信号 | 操作 | |------|------|------| | 低位单峰+缩量 | 主力吸筹 | 持仓或买入 | | 双峰填谷（向上突破）| 上升中继 | 回调颈线买 | | 高位密集+放量大阴 | 主力出货 | 清仓 | | 筹码快速下移 | 主力派发 | 离场 | | 成本收敛后发散 | 趋势启动 | 跟进 | ## 支撑阻力计算 ``` 支撑1 = 筹码集中峰下沿 阻力1 = 筹码集中峰上沿 密集区突破后，支撑变阻力 ``` ## 参考 详见 references/chip-analysis.md


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)