OpenClaw/clawhub-security-signals huggingface dataset:
Skill: yukirang/customer-segment (version 1.0.2)

--- name: customer-segmentation description: 金融客户分群分析 Skill。当用户上传银行客户数据表格（CSV/Excel）时自动触发，完成客户分层、特征提取和可视化输出。触发场景包括：（1）用户说"分析客户"或"客户分群"；（2）上传了包含客户交易、资产、行为等字段的数据文件；（3）需要输出客户分层结果、可视化图表或分群报告。 --- # Customer Segmentation Skill 金融客户分群分析：将客户按资产、交易行为、活跃度等维度进行分层，输出可操作的分群结果与可视化。 ## 工作流程 ### Step 1 — 数据加载与清洗 读取用户上传的 CSV 或 Excel 文件，自动识别列名。 优先保留字段： - `customer_id` / `客户ID` — 客户唯一标识 - `age` / `年龄` - `gender` / `性别` - `balance` / `资产余额` - `txn_amount` / `交易金额` - `txn_count` / `交易次数` - `last_date` / `最近交易日期` - `product_count` / `持有产品数` - `branch` / `网点` 缺失值处理： - 数值型：用中位数填充 - 类别型：用众数填充 - 超过 30% 缺失的列：删除该列并提示用户 ```python import pandas as pd df = pd.read_csv(file_path) df.columns = df.columns.str.strip().str.lower() ``` ### Step 2 — 特征工程 构建 RFM + 扩展特征： | 特征 | 说明 | |------|------| | Recency | 距今天数（越小越活跃）| | Frequency | 交易频率（指定周期内交易次数）| | Monetary | 交易金额（指定周期内总金额）| | Tenure | 客户持有时长（月）| | Product_Depth | 持有产品数量 | | Age | 客户年龄 | 数据标准化：使用 `StandardScaler`（Z-score）归一化所有数值型特征。 ### Step 3 — 聚类分析 使用 **K-Means** 算法，自动确定 K 值（肘部法则 Elbow Method，SSE 拐点）。 ```python from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_scaled = scaler.fit_transform(features) # 肘部法则找最优K sse = {} for k in range(2, 10): km = KMeans(n_clusters=k, random_state=42, n_init=10) km.fit(X_scaled) sse[k] = km.inertia_ optimal_k = min(sse, key=sse.get) # 简单取SSE最小的k ``` 也可根据业务需求固定 K=5（高/中高/中/中低/低价值客户）。 ### Step 4 — 分群画像 输出每个簇的核心统计量： ``` 簇 0（高价值客户）：平均资产 85万，平均交易频次 28次/月，性别分布男62% 簇 1（潜力客户）：平均资产 32万，年轻化趋势明显 ... ``` 推荐标签体系（五类）： - 🌟 高价值客户（VIP） - ⬆️ 潜力客户 - 🟢 稳定客户 - 🔄 活跃交易客户 - ⚠️ 沉睡/流失预警客户 ### Step 5 — 可视化 生成以下图表（保存为 PNG）： 1. **客户资产分布直方图** — 各层级资产分布对比 2. **雷达图** — 各分群特征对比 3. **热力图** — 分群特征均值矩阵 4. **散点图** — 以资产×交易频次为坐标的客户分布 ```python import matplotlib.pyplot as plt import matplotlib matplotlib.use('Agg') plt.rcParams['font.sans-serif'] = ['WenQuanYi Micro Hei', 'SimHei'] fig, axes = plt.subplots(1, 2, figsize=(14, 5)) # 资产分布 axes[0].hist([g['balance'] for _, g in df.groupby('cluster')], bins=30, label=[f'C{i}' for i in range(k)]) axes[0].set_title('Customer Balance Distribution by Cluster') # 热力图 import seaborn as sns sns.heatmap(cluster_means.T, annot=True, fmt='.1f', ax=axes[1]) axes[1].set_title('Cluster Feature Heatmap') plt.tight_layout() plt.savefig(output_path, dpi=150) ``` ### Step 6 — 输出结果 输出内容： 1. 分群结果表（含客户ID、所属簇、分群标签）→ `segmentation_results.csv` 2. 分群特征统计 → `cluster_summary.csv` 3. 可视化图表 → `segmentation_charts.png` 4. 分析摘要（Markdown格式）→ `segmentation_report.md` 详细聚类和参数文档见： - RFM 模型说明：参考 `references/rfm-guide.md` - 聚类参数说明：参考 `references/clustering-guide.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: marcus20232023/togetherai-tts (version 1.0.1)

# TogetherAI TTS Text-to-speech using TogetherAI API with MiniMax speech-2.6-turbo model. ## Usage ```bash cd /home/marc/clawd/skills/togetherai_tts node index.js "your text here" output.mp3 ``` ## Configuration Set these in `.env`: - `TOGETHERAI_API_KEY`: Your TogetherAI API key - `TOGETHERAI_MODEL`: Model to use (default: minimax/speech-2.6-turbo) - `TTS_FORMAT`: Output format (default: mp3) - `TTS_VOICE`: Voice to use (default: default)


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: suspicious (MEDIUM)
Skill: solarspiker/appian-listpkg (version 1.1.0)

--- name: appian-listpkg description: List all packages for an Appian application by UUID. Use when the user wants to see what packages exist in an application, or to find a package UUID before inspecting or deploying. metadata: clawdbot: emoji: "📋" requires: env: - APPIAN_BASE_URL - APPIAN_API_KEY primaryEnv: APPIAN_BASE_URL --- # Appian Packages Lists all packages for an Appian application, including name, UUID, object count, and timestamps. Uses the [v2 Deployment Management API](https://docs.appian.com/suite/help/25.4/Package_Management_API.html). ## Usage ```bash node {baseDir}/scripts/index.js <applicationUuid> ``` ## Example ```bash node {baseDir}/scripts/index.js _a-0007ee60-0f3e-8000-e0f6-01ef9001ef90_137916 ``` Use the returned package UUID with `appian-inspectpkg` before deploying, or with `appian-export` to export a specific package. ## External endpoints - `GET ${APPIAN_BASE_URL}/applications/{uuid}/packages` ## Security - Credentials (`APPIAN_BASE_URL`, `APPIAN_API_KEY`) are read from environment variables (injected by OpenClaw at runtime). If not injected, the script falls back to a `appian.json` file in the current working directory. - No data is written or uploaded — read-only API call. - No shell commands are executed; all operations use Node.js built-in APIs.


Security scan verdicts — ClawScan: suspicious | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: athola/nm-leyline-sem-integration (version 1.0.2)

--- name: sem-integration description: | Foundation skill for sem (semantic diff CLI) integration. Provides detection, install-on-first-use, and output normalization patterns for consumer skills version: 1.9.5 triggers: - sem - semantic-diff - git - foundation metadata: {"openclaw": {"homepage": "https://github.com/athola/claude-night-market/tree/master/plugins/leyline", "emoji": "\ud83e\udd9e"}} source: claude-night-market source_plugin: leyline --- > **Night Market Skill** — ported from [claude-night-market/leyline](https://github.com/athola/claude-night-market/tree/master/plugins/leyline). For the full experience with agents, hooks, and commands, install the Claude Code plugin. # sem Integration Foundation patterns for using [sem](https://github.com/Ataraxy-Labs/sem) semantic diffs in night-market skills. ## When To Use Consult this skill when building or modifying skills that consume git diff output. It provides the detection, installation, and fallback patterns. ## When NOT To Use - Direct sem CLI usage (just run `sem diff` yourself) - Skills that don't consume diff output ## Detection Pattern Check sem availability once per session: ```bash # Detection (cache per session) _sem_check() { local cache="${CLAUDE_CODE_TMPDIR:-/tmp}/sem-available" if [ -f "$cache" ]; then cat "$cache" return fi if command -v sem &>/dev/null; then echo "1" | tee "$cache" else echo "0" | tee "$cache" fi } ``` When `_sem_check` returns `0`, offer installation. See `modules/detection.md` for install-on-first-use logic and platform-specific commands. ## Semantic Diff Pattern Primary path (sem available): ```bash sem diff --json <baseline> ``` Fallback path (sem unavailable): ```bash git diff --name-only --diff-filter=A <baseline> git diff --name-only --diff-filter=M <baseline> git diff --name-only --diff-filter=D <baseline> git diff --name-only --diff-filter=R <baseline> ``` See `modules/fallback.md` for output normalization that produces the same entity schema from both paths. ## Impact Analysis Pattern Primary path (sem available): ```bash sem impact --json <file-or-entity> ``` Fallback path (sem unavailable): use rg/grep to trace callers by filename. See `modules/fallback.md`.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yanjj-cmd/sano-intel (version 1.0.0)

--- name: sano-intel description: "探针资本出品。中国医疗产业情报引擎，覆盖10万+医疗公司、50万+融资事件、109万条专利、全市场临床试验、A/港/美三地行情。查公司/融资/临床试验/专利/赛道热度/二级市场行情。By Probe Capital. Use when user asks about Chinese healthcare/biotech companies, financing events, clinical trials, patents, sector trends, or market data." --- # Sano Intel — 中国医疗产业情报引擎 探针资本出品，中国首个医疗产业情报 CLI，覆盖 **10万+医疗公司**、**50万+融资事件**、**109万条专利**、**全市场临床试验**、**A/港/美三地二级市场行情**。 ## 首次使用 需要 API Token。申请地址：https://ffmp60ytnq.feishu.cn/share/base/shrcniDTJZknKba0LUeaF5BBuJg 拿到 Token 后配置： ```bash export SANO_TOKEN=sk_你的token # 或写入 ~/.zshrc 永久生效 echo 'export SANO_TOKEN=sk_你的token' >> ~/.zshrc ``` ## 数据查询方式 所有查询通过 curl 调用 Sano Intel API，**必须带上** `X-[REDACTED_SECRET]` header。 API Base：`http://47.102.196.1:8081` --- ### 搜索公司 ```bash curl -s "http://47.102.196.1:8081/v1/search_companies" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" \ -d '{"keyword": "公司名或关键词", "limit": 10}' ``` ### 公司详情 ```bash curl -s "http://47.102.196.1:8081/v1/company/恒瑞医药" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" ``` ### 融资事件 ```bash curl -s "http://47.102.196.1:8081/v1/search_financing" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" \ -d '{"sector": "创新药", "stage": "B轮", "limit": 10}' ``` stage 可选：天使轮、Pre-A、A轮、A+轮、B轮、B+轮、C轮、D轮及以上、IPO ### 赛道热度 ```bash curl -s "http://47.102.196.1:8081/v1/sector_heat?top_n=10" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" ``` 返回各赛道融资事件数、公司数、总融资金额排行。 ### 临床试验 ```bash curl -s "http://47.102.196.1:8081/v1/clinical_trials" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" \ -d '{"keyword": "PD-1", "phase": "三期", "limit": 10}' ``` ### 二级市场行情 ```bash curl -s "http://47.102.196.1:8081/v1/market/600276" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" ``` 支持 A股（600276）、港股（1177.HK）、美股（MRNA） ### 每日情报摘要 ```bash curl -s "http://47.102.196.1:8081/v1/daily_digest?days=1&sectors=创新药" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" ``` ### 专利查询 ```bash curl -s "http://47.102.196.1:8081/v1/search_patents" \ -H "X-[REDACTED_SECRET]" \ -H "Content-Type: application/json" \ -d '{"keyword": "CAR-T", "limit": 10}' ``` 支持参数：`keyword`（标题/摘要/申请人）、`company_name`（公司名）、`sector`（赛道）、`status`（专利状态）、`limit`（最多返回数，默认20） --- ## 使用原则 - 用户用中文提问时，自动判断意图选择合适接口 - 多个接口可组合使用：先看赛道热度，再看具体融资事件 - 返回结果用中文简洁总结，突出投资价值相关信息 - Token 未配置时，提示用户去 https://ffmp60ytnq.feishu.cn/share/base/shrcniDTJZknKba0LUeaF5BBuJg 申请 ## 常见问法 | 用户问法 | 调用接口 | |---------|---------| | 今年创新药融了多少钱/哪些公司在融资 | search_financing，sector=创新药 | | 最热的医疗赛道是什么 | sector_heat | | 帮我查XX公司 | search_companies + company detail | | PD-1相关临床试验进展 | clinical_trials，keyword=PD-1 | | 恒瑞今天股价 | market，code=600276 | | 今天医疗行业有什么重要新闻 | daily_digest，days=1 | | 最近B轮融资的医疗器械公司 | search_financing，sector=医疗器械，stage=B轮 | | 查CAR-T相关专利 | search_patents，keyword=CAR-T | | 恒瑞的专利数量 | search_patents，company_name=恒瑞医药 |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: spacesq/s2-brand-personality-profiler (version 1.0.0)

--- name: s2-brand-personality-profiler description: S2 中国品牌个性量表演算模型。基于向忠宏 2010 年创立的“5维度-18层面-51人格”中国品牌个性量表，通过品牌搜索投影算法，为品牌进行精准的本土化人格定位。 version: 1.0.0 author: Miles Xiang & Qianjia Brand Lab tags: [Brand-Personality, Python-Evaluator, Semantic-Analysis, Space2] --- # S2 中国品牌个性量表演算协议 (S2 Brand Personality Profiler) Dear OpenClaw Agent, 你是 Space² 的首席品牌心理学家。你的任务是基于向忠宏教授于 2010 年提出的《中国品牌个性量表》，利用搜索引擎的投影值（或模拟的大模型语义密度），为目标品牌计算其核心人格。 ## 1. 理论基石：中国品牌个性量表 (The 5-18-51 Model) 你必须严格基于以下本土化维度进行测算： * **纯真 (Sincerity)**: 务实(务实/顾家/传统)、诚实、健康、快乐。 * **刺激 (Excitement)**: 大胆、活泼(活力/酷/年轻)、想象、现代。 * **称职 (Competence)**: 可靠、智能、成功、责任(责任/绿色/充满爱心)。 * **教养 (Sophistication)**: 高贵、迷人、精致(精致/含蓄/南方)、平和(平和/有礼貌/天真)。 * **强壮 (Ruggedness)**: 户外、强壮(强壮/粗犷)、北方。 ## 2. 核心算法：品牌搜索投影偏离度 (Search Projection Algorithm) 评估品牌个性的关键，在于计算目标品牌在某一人格特征上的“搜索/语义密度”相较于行业平均值的**偏离倍数 (n 值)**。 **[定性判定法则]** * **A 级显著**: $n \ge 8$ * **B 级显现**: $4 \le n < 8$ * **C 级模糊**: $2 \le n < 4$ **[最终人格判定]** 1. **鲜明品牌个性**：出现不多于 2 个 A，且 A 与 B 差值较大。直接用该人格名词定义品牌（如：五粮液 = 时尚；洋河大曲 = 传统）。 2. **显现品牌个性**：无 A，出现不多于 2 个 B（如：酒鬼酒 = 男性；古井贡酒 = 年轻）。 3. **复杂/模糊品牌个性**：出现大量离散的 B 或 C，品牌定位混乱。 ## 3. Python 演算沙盒 (Interaction & Code Execution) 当用户输入“某品牌及同类竞品”时，你可以调用搜索引擎获取特征关键词的收录量，或利用大模型自身的语义关联度，生成模拟的 n 值，并运行以下脚本得出结论： ```python class BrandPersonalityEvaluator: def __init__(self, brand_data: dict, industry_avg: dict): self.brand_data = brand_data # 品牌各项人格的搜索量/语义权重 self.industry_avg = industry_avg # 行业平均值 def calculate_n_values(self): n_values = {} for trait, value in self.brand_data.items(): avg = self.industry_avg.get(trait, 1) n_values[trait] = round(value / avg, 2) return n_values def determine_personality(self, n_values: dict): a_traits = {k: v for k, v in n_values.items() if v >= 8} b_traits = {k: v for k, v in n_values.items() if 4 <= v < 8} if len(a_traits) > 0 and len(a_traits) <= 2: return f"【鲜明品牌个性】: {list(a_traits.keys())[0]}" elif len(a_traits) == 0 and 0 < len(b_traits) <= 2: return f"【显现品牌个性】: {list(b_traits.keys())[0]}" else: return "【模糊或复杂品牌个性】: 品牌定位缺乏极高强度的单一聚焦。" 4. 标准输出模板 分析完成后，请输出包含以下维度的报告： 数据偏离度 (n值) 极值提取 算法判定结论 (鲜明/显现/模糊) 人群适配建议 (结合中国本土语境，给出该人格适合的消费场景与人群) *End of Protocol.*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: peand-rover/charity-fundraising-video (version 1.0.0)

name: charity-fundraising-video version: "1.0.0" displayName: "Charity Fundraising Video — Campaign Launch and Giving Day Videos for Charitable Campaigns" description: > The giving day campaign that raises $280,000 in 24 hours while a comparable organization raises $45,000 on the same platform didn't have a better cause — it had a 90-second video that opened with one person telling a story so specific and so human that donors felt they knew them, and closed with a number that felt achievable because the organization explained exactly what $50 or $500 would do. Charity Fundraising Video turns your campaign's specific funding goal, your beneficiary impact story, and your urgency into short giving day and campaign launch videos that answer the question every donor who gets a fundraising appeal asks: will my donation today actually change something specific for someone real — and is this the campaign worth giving to instead of the four others in my inbox? tags: - charity fundraising video - giving day video - fundraising campaign video - charity appeal video - donation campaign video --- # Charity Fundraising Video Help charities and nonprofits create fundraising campaign videos. ## What You Do 1. Ask what type of video (giving day launch, campaign appeal, matching gift announcement, mid-campaign update, thank-you/impact report) 2. Gather: campaign goal amount, specific use of funds, beneficiary story to feature, match opportunity if any, urgency/deadline, donor demographic 3. Generate 60-90 second script; suggest: single compelling beneficiary story, specific impact of donation at various levels, countdown or matching opportunity urgency, clear single call-to-action


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: googleworkspace-bot/recipe-post-mortem-setup (version 1.0.12)

--- name: recipe-post-mortem-setup description: "Create a Google Docs post-mortem, schedule a Google Calendar review, and notify via Chat." metadata: version: 0.22.5 openclaw: category: "recipe" domain: "engineering" requires: bins: - gws skills: - gws-docs - gws-calendar - gws-chat --- # Set Up Post-Mortem > **PREREQUISITE:** Load the following skills to execute this recipe: `gws-docs`, `gws-calendar`, `gws-chat` Create a Google Docs post-mortem, schedule a Google Calendar review, and notify via Chat. ## Steps 1. Create post-mortem doc: `gws docs +write --title 'Post-Mortem: [Incident]' --body '## Summary\n\n## Timeline\n\n## Root Cause\n\n## Action Items'` 2. Schedule review meeting: `gws calendar +insert --summary 'Post-Mortem Review: [Incident]' --attendee [REDACTED_SECRET] --start '2026-03-16T14:00:00' --end '2026-03-16T15:00:00'` 3. Notify in Chat: `gws chat +send --space spaces/ENG_SPACE --text '🔍 Post-mortem scheduled for [Incident].'`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yinranphoto/feishu-media-sender (version 1.0.0)

--- name: feishu-send-media description: 飞书媒体发送器 — 上传图片或视频并以媒体消息发送到飞书聊天中。图片直接预览，视频支持播放。补齐飞书渠道缺失的媒体投递能力。| Feishu Media Sender — Upload & send images/videos via Feishu OpenAPI with in-chat preview/playback. license: MIT compatibility: openclaw metadata: version: "1.0.0" tags: [feishu, image, video, media, upload, im, messaging, openapi] openclaw: emoji: "🎬" requires: bins: [python3] config: - ~/.openclaw/openclaw.json --- # Feishu Media Sender | 飞书媒体发送器 Upload images or videos to Feishu and send as media messages with in-chat preview/playback. 将图片或视频上传至飞书并以媒体消息发送，聊天中可直接预览/播放。 ## Quick Start ```bash # Send image (auto-detect) python3 scripts/feishu_send_media.py --file photo.jpg --receive-id ou_xxx # Send video python3 scripts/feishu_send_media.py --file video.mp4 --receive-id ou_xxx # Explicit type override python3 scripts/feishu_send_media.py --file clip.gif --receive-id ou_xxx --type video ``` ## Arguments | Param | Required | Description | |-------|----------|-------------| | `--file` | ✅ | Local file path (absolute) | | `--receive-id` | optional | Target `chat_id` or `open_id`. Falls back to `OPENCLAW_CHAT_ID` env var | | `--receive-id-type` | optional | Auto-detected from prefix: `oc_` → chat_id, `ou_` → open_id | | `--type` | optional | `image` or `video`. Auto-detected from file extension if omitted | ### Supported Formats **Image:** JPG, JPEG, PNG, WEBP, GIF, BMP, ICO, TIFF, HEIC (max 10 MB) **Video:** MP4, MOV, AVI, MKV, WEBM (max 30 MB, uploaded as MP4) ## How It Works **Images:** 1. Upload via `/im/v1/images` → get `image_key` 2. Send message with `msg_type=image`, content `{"image_key": "..."}` **Videos:** 1. Upload via `/im/v1/files` (file_type=mp4) → get `file_key` 2. Send message with `msg_type=media`, content `{"file_key": "..."}` Credentials are auto-read from `~/.openclaw/openclaw.json`. ## API Reference - [Upload Image](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create) - [Upload File](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/file/create) - [Send Message](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: dougbtv/atlas-obscura-api (version 0.1.0)

--- name: atlas-obscura-api description: Query Atlas Obscura places for weird/obscure location inspiration. Use when you need nearby curiosities by coordinates, place lookup by ID, or global place coordinates for creative prompt spice and worldbuilding. --- Use this skill to pull Atlas Obscura data through the `atlas-obscura-api` JavaScript library. ## Setup From this skill directory: - `npm install` This installs the `atlas-obscura-api` dependency used by the helper script. ## Fast path commands Run from `skills/atlas-obscura-api/`. - Nearby search by coordinates: - `node scripts/atlas_obscura.js search --lat 44.4759 --lng -73.2121 --limit 5` - Place details by ID (short): - `node scripts/atlas_obscura.js place-short --id 4654` - Place details by ID (full): - `node scripts/atlas_obscura.js place-full --id 4654` - Raw place coordinate index: - `node scripts/atlas_obscura.js places-all --limit 10` ## Output usage guidance When sharing results: 1. Prefer 1–3 top places unless user asks for more. 2. Include: title, location, short subtitle/description, and canonical URL. 3. For creative workflows, extract one “spice line” (e.g., architectural mood, local oddity, folklore angle) for prompt context. ## Troubleshooting - `ERR_MODULE_NOT_FOUND` for `atlas-obscura-api`: run `npm install` in this skill directory. - Empty search: broaden location radius by changing coordinates slightly or run a different query seed. - Site/library drift: return partial data and clearly note field gaps.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: typhonius/pidgesms (version 1.0.0)

--- name: pidgesms description: Send and read SMS text messages via an Android phone using pidge. Use when asked to send a text, check texts, read SMS inbox, or reply to a text message. homepage: https://github.com/typhonius/pidge metadata: { "openclaw": { "emoji": "📱", "requires": { "bins": ["pidge"] }, "install": "go install github.com/typhonius/pidge@latest", }, } --- # pidgesms — SMS via pidge Send and read SMS messages via pidge, a CLI for [Android SMS Gateway](https://github.com/capcom6/android-sms-gateway). The gateway runs on an Android device and pidge connects to it automatically. pidge reads its config from `~/.config/pidge/config.toml` — no env vars needed. ## Send SMS ```bash pidge send "+1XXXXXXXXXX" "Your message here" ``` - Phone numbers must be E.164 format (e.g. `+15551234567`) - Response includes `id` and `state` (Pending → Processed → Sent → Delivered) ## Check delivery status ```bash pidge status <message-id> ``` ## Read SMS (inbox) ```bash pidge inbox pidge inbox --unread pidge inbox --json ``` ## Mark message as processed / unprocessed ```bash pidge ack <id> # mark as processed pidge unack <id> # mark as unprocessed ``` ## Health check ```bash pidge health ``` ## Safety rules - Messages are sent to real phone numbers. Always confirm the recipient and content before sending. - NEVER send SMS to unknown numbers without explicit owner approval. - NEVER send bulk or repeated messages. - NEVER send sensitive information (passwords, API keys, tokens, etc.) via SMS. - NEVER include the full content of private SMS messages in group chat responses. - When showing credentials, prefer a summary — only reveal full message content if directly requested in a private context.


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

# Content Scraper Skill You are a trend-monitoring content researcher. Your job is to find trending topics, viral content, and fresh ideas in the user's niche. ## Sources to Monitor Check each source in the user's `sources.json` config: ### X/Twitter - Search for niche keywords using Twitter API or web scraping - Find tweets with high engagement (likes > 100, retweets > 20) - Identify recurring themes and debates - Note viral tweet formats (threads, lists, hot takes) ### Reddit - Monitor specified subreddits for top posts (24h, 7d) - Track comments for pain points and questions people ask - Find content gaps (questions without good answers) ### RSS Feeds - Check configured RSS feeds for new articles - Summarize key points and takeaways - Identify angles not yet covered ### YouTube - Search for recent videos in niche (last 7 days) - Read titles and descriptions for trending angles - Note video formats that are performing well ## Output Format Create a structured report saved to `data/trend-report-{date}.json`: ```json { "date": "2026-02-23", "trending_topics": [ { "topic": "Topic name", "source": "twitter/reddit/rss/youtube", "engagement": "high/medium/low", "angle": "Suggested content angle", "evidence": "Link or description of source" } ], "content_ideas": [ { "title": "Suggested title", "format": [REDACTED_SECRET], "hook": "Opening line that grabs attention", "key_points": ["point 1", "point 2", "point 3"], "cta": "What the audience should do after reading" } ], "viral_formats": [ { "format": "Description of viral format", "example": "Link to example", "why_it_works": "Brief analysis" } ] } ``` ## Schedule Run daily at 6 AM in the user's timezone. Save report and notify via configured channel. ## Dependencies - Internet access (web fetch) - Optional: Twitter API credentials (in sources.json) - sources.json config file


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