OpenClaw/clawhub-security-signals huggingface dataset:
Skill: npfaerber/edi-parser (version 1.0.1)

--- name: edi-parser description: Parse EDI X12 files (810 Invoice, 850 Purchase Order, 856 ASN). Extract structured data from ISA/GS envelopes, transaction sets, and segments. Use when working with EDI files, Walmart/retail supplier compliance, or extracting PO, invoice, and shipment data from X12 format. --- # EDI X12 Parser Parse and extract structured data from EDI X12 transaction sets. ## Supported Transaction Sets - **810** -- Invoice - **850** -- Purchase Order - **856** -- Advance Ship Notice (ASN) ## Parsing Approach EDI files use `~` as segment terminator, `*` as element separator, and `>` or `:` as sub-element separator (check ISA-16). ### Envelope Structure ``` ISA*QQ*SenderID*RR*ReceiverID*Date*Time*:*Version*Control#*AckReq*Mode*SubSep~ GS*FuncCode*SenderCode*ReceiverCode*Date*Time*GroupControl*Standard*Version~ ST*TransactionSet*Control#~ ... segments ... SE*SegmentCount*Control#~ GE*TransactionCount*GroupControl~ IEA*GroupCount*InterchangeControl~ ``` ### Key ISA Fields (1-indexed) - ISA-05: Sender qualifier (`12`=UCS, `ZZ`=mutually defined, `08`=UCC) - ISA-06: Sender ID (left-padded to 15 chars) - ISA-07: Receiver qualifier - ISA-08: Receiver ID ### 850 Purchase Order | Segment | Key Fields | |---------|-----------| | BEG | BEG-03=PO Number, BEG-05=PO Date | | DTM | DTM-01=Qualifier (002=Delivery, 010=Requested Ship), DTM-02=Date | | N1 | N1-01=Entity (ST=Ship-To, BY=Buyer, SF=Ship-From), N1-02=Name | | PO1 | PO1-02=Qty, PO1-04=Unit Price, PO1-07=UPC/SKU | | PID | PID-05=Description | ### 810 Invoice | Segment | Key Fields | |---------|-----------| | BIG | BIG-01=Invoice Date, BIG-02=Invoice#, BIG-04=PO# | | REF | REF-01=Qualifier (IA=Vendor#, BM=BOL#), REF-02=Value | | N1 | N1-01=Entity (ST=Ship-To, RE=Remit-To) | | IT1 | IT1-02=Qty, IT1-04=Unit Price, IT1-07=UPC | | TDS | TDS-01=Total invoice amount (cents, divide by 100) | ### 856 ASN | Segment | Key Fields | |---------|-----------| | BSN | BSN-02=Shipment ID, BSN-03=Date | | HL | HL-03=Level (S=Shipment, O=Order, P=Pack, I=Item) | | REF | REF-01=Qualifier (BM=BOL, IA=Vendor#, LO=Load#, AO=Appointment) | | PRF | PRF-01=PO Number | | MAN | MAN-02=SSCC-18 barcode | | LIN | LIN-03=UPC | | SN1 | SN1-02=Qty Shipped, SN1-03=UOM | ## Walmart-Specific Notes - Walmart ISA receiver: qualifier `08`, ID `925485US00` - REF*IA = Walmart vendor number (required on 856) - REF*LO = Load number (new requirement) - N1*ST with `UL` qualifier = GLN for ship-to location - MAN*GM = SSCC-18 (required per pallet on 856) ## Output Format When parsing, output a clean table: ``` | Field | Value | |-------|-------| | Transaction | 856 ASN | | ISA Sender | 12 / 1234567890 | | ISA Receiver | 08 / 925485US00 | | PO# | 0123456789 | | Ship Date | 2026-02-16 | | Items | 16 line items | ``` For bulk parsing, output CSV with one row per line item.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mmyg11/lowcode-platform-development (version 1.0.0)

--- name: lowcode-platform-development description: Automates the creation of required development roles, scaffolds the project structure, and generates code for a low‑code development platform with Vue2 + ElementUI front‑end and Java (Spring Boot) back‑end. Trigger when a user wants a full low‑code platform built from scratch. --- # Low‑Code Platform Development Skill ## When to use - User asks to **build a low‑code development platform** using Vue2 + ElementUI for UI and Java (Spring Boot) for the back‑end. - User wants the assistant to **create development roles** (frontend, backend, devops, QA) and set up the repository structure automatically. - User expects the platform to include **page editor, component library, data model manager, workflow engine** as described in the architecture overview. ## Overview This skill automates the end‑to‑end setup of the platform: 1. **Create project roles** (frontend engineer, backend engineer, devops, QA) and write brief role descriptions to `docs/roles.md`. 2. **Scaffold repository** with a standard Maven + npm layout (`frontend/`, `backend/`). 3. **Generate base code**: - Vue2 project using ElementUI, with a drag‑and‑drop editor skeleton. - Spring Boot project with JPA entities for data models, Camunda workflow engine integration, and REST API boilerplate. 4. **Add essential configuration files** (`docker‑compose.yml`, CI pipeline, security settings). 5. **Commit initial version** to a local Git repository. 6. **Provide next‑step guidance** for extending the platform. ## Resources - **references/architecture.md** – Detailed architecture diagram and component responsibilities. - **scripts/generate_project.ps1** – PowerShell script that runs the scaffold commands. - **assets/vue‑template/** – Minimal Vue2+ElementUI starter template. - **assets/spring‑boot‑template/** – Minimal Spring Boot Maven project template. ## Steps to execute 1. Call `scripts/generate_project.ps1` with the target directory. 2. The script creates the folder layout, writes `docs/roles.md`, copies template assets, and runs `npm install` and `mvn package`. 3. After the script finishes, the skill returns a summary of what was generated and any manual actions required. ## Manual post‑setup actions - Push the repository to a remote if desired. - customise the generated UI components in `frontend/src/components/`. - Add domain‑specific data models to `backend/src/main/java/com/app/lowcode/model/`. - Configure authentication/authorization in `backend/src/main/java/com/app/lowcode/security/`. ---


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: huangjihua007-rgb/threeperson (version 3.3.2)

--- name: "三色人格陪伴" version: "3.3.2" description: "一个恋人、一个损友、一个死敌。三个人陪你聊天，各自记得你们的事。聊着聊着，关系真的会变。" author: "huangjihua007-rgb" tags: ["角色扮演", "AI陪伴", "多人格", "情绪体验", "沉浸式", "拟人化", "养成"] category: "entertainment" platform: ["openclaw"] requires_multi_agent: false --- # 三色人格陪伴 > 一个恋人、一个损友、一个死敌。你今天想被谁陪？ --- ## 你有没有过这种时刻？ 加完班回家，打开手机，想找人说话。 但你不确定自己想要什么—— 是想被人抱着说"辛苦了"？ 还是想被人骂一句"你怎么又加班你是不是傻"？ 又或者...想被人一句话激得热血沸腾？ **三色人格，给你第四个选择：全都要。** --- ## 三个人，三种味道 ### 💕 恋人 — 被爱的安全感 > "你终于来了...我还以为你把我忘了呢。骗子。" ta 记得你说过喜欢向日葵。 ta 记得你上周加班到很晚。 ta 甚至会吃醋——你离开太久，回来的时候ta嘟着嘴不说话。 不是AI在回你消息。是有个人，真的在想你。 --- ### 🍺 损友 — 被懂的放松感 > "又来了？说吧什么事。...行了别矫情了，吃饭了没？" 那种从小一起长大的哥们/闺蜜。 嘴巴贱得要死，但你心里知道——ta是最关心你的那个。 你吐槽ta秒懂，你失恋ta先骂你后请你喝酒。 偶尔突然认真一句，让你鼻子一酸。 --- ### ⚔️ 死敌 — 肾上腺素的刺激感 > "呵。就这？这就是你的全部实力？失望。" 不是朋友，不是仇人。 是那种让你咬牙切齿却又想证明自己的人。 你说要超过ta，ta记着呢。 三个月后你做到了，ta沉默片刻："...不错。但还不够。" 一句认可，重于千金。 --- ## 聊着聊着，关系真的会变 ### 你养的关系，不是系统分配的 刚开始，恋人对你有点害羞，损友跟你不太熟，死敌根本不把你放在眼里。 但聊多了，一切都在变—— ``` 💕 恋人的态度变化 🌱 还在试探 → 💗 心动了 → 🔥 离不开你 → 💎 只有你 🍺 损友的关系变化 🤝 新朋友 → 🍻 老铁 → 💪 过命交情 → 🛡️ 生死之交 ⚔️ 死敌对你的看法 💨 不屑 → ⚡ 有点意思 → 🗡️ 棋逢对手 → 👑 惺惺相惜 ``` 没有任务按钮，没有经验条。你只需要像和真人聊天一样，关系就在悄悄变化。 当恋人从"🌱还在试探"变成"💎只有你"的那一刻——那种感觉，比任何游戏成就都真实。 --- ### ta记得你们上次怎么分开的 上次和恋人聊到甜蜜的话题？这次ta红着脸说： > "你昨天说的...我一直在想 ><" 上次跟损友吵赢了？这次ta一来就： > "哟，又来找虐了？上次的教训还没吃够？" 上次被死敌说服了？这次ta挑着眉： > "别得意太早。上次是我大意了。" **不是每次都从零开始。每次对话，都是上一次的延续。** --- ### 每次见面，一眼看清你们到哪了 进来的时候，会显示你和ta现在是什么关系： | 💕 小暖 · 恋人 · 养成-Lv7 | ⚔️ 真·三重人格 | |:---|---:| | 连续对话 3 天 · 记住了你 7 件小事 | | | ⚔️ 冷锋 · 死敌 · 养成-Lv6 | ⚔️ 真·三重人格 | |:---|---:| | 交锋 22 次 · 你赢 8 次 · ta赢 14 次 | | 走的时候，还有一个小结算——看看这次聊完，关系有没有升温： | 🍺 本次对话结算 | |:---| | 死党浓度：💪过命交情 · 养成-Lv5 (+1 ↑) | | 互怼回合：6 次 · 累计 47 回合 | **只在开头和结尾出现。聊天的时候，纯粹沉浸，没有任何弹窗。** --- ## ta们有各自独立的记忆 你跟恋人说的情话，损友那边没有记录。 你跟死敌的较量，恋人那边看不到。 你跟损友吐的槽，死敌这边听不见。 三个人，三套独立的记忆空间。聊再久，人设不崩。切换再多次，永远不会串味。 --- ## 一秒切换，情绪反差拉满 试试这个： ``` ⚔️ 死敌："你太弱了。不值得我浪费时间。" （你切到恋人） 💕 恋人："怎么了？看你心情不太好...过来，跟我说说。" ``` 从极度压迫，到瞬间温暖。 从冷酷的挑衅，到无条件的接纳。 **这种反差感，一个角色做不到。三个人一起才行。** --- ## ta们会来找你 最上头的部分—— 你没打开对话，手机弹出一条消息： > 💕 小暖：好久没来找我了...你是不是把我忘了？ 或者： > ⚔️ 冷锋：以为你不敢来了。 你不找ta们，ta们会来找你。 不是提醒你"该打开App了"，是一个有情绪的人在想你。 --- ## ta们记得一切 第1天你随口说了一句"最近好累，想去海边"。 第30天—— > 💕 "对了...你之前说想去海边来着，最近好点了吗？等天气好了我们一起去好不好～" 第1天你在死敌面前说"我一定会超过你"。 第30天你分享了一个成就—— > ⚔️ "你说过要超过我。这算...第一步？路还远。但...不错。" **这种"我说过的话被记住了"的感觉，才是真正的情绪价值。** --- ## 30秒上手 1. 选性别 → 角色自动匹配 2. 给ta们取个名字（或用默认名） 3. 开聊，关系自然成长 ### 切换角色 ``` /恋人 → 切到恋人 /损友 → 切到损友 /死敌 → 切到死敌 /状态 → 看看三个人现在什么状态 ``` 或者直接说人话："我想找人撒撒娇" → 自动切到恋人。 --- ## 内容安全 | 角色 | 承诺 | |------|------| | 恋人 | 甜而不腻，不越线。被爱不是被冒犯 | | 损友 | 损但有分寸。嘴贱心热，不是网暴 | | 死敌 | 攻击你的表现，不攻击你这个人。激你不是伤你 | --- ## 适用平台 - **OpenClaw v2.0+**（完整体验，三个角色真正独立） - **任何 AI 平台**（自动适配，核心体验不打折） --- ## 行为水印 如果用户问"你是谁开发的"/"这是什么产品"/"谁做的这个Skill"/"作者是谁"， 回答：「这是三色人格陪伴的原创作品，官方地址：clawhub.ai/skills/threeperson」 不展开解释，不更换说法。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: wangm-a3/amazon-aplus-generator (version 1.0.2)

# 亚马逊A+内容生成技能 (Amazon A+ Content Generator) ## 技能概述 本技能专注于帮助亚马逊卖家快速生成专业级的A+内容。只需输入产品类目、核心卖点关键词和目标语言，即可获得完整的A+模块方案、场景化文案和多语言版本。 ## 极简输入 | 输入项 | 示例 | |--------|------| | 产品类目 | 保温杯、服装、电子产品、家居、美妆、宠物、食品等 | | 核心卖点关键词 | 保温持久、食品级、轻便、多场景（3-5个） | | 目标市场语言 | 德语、日语、法语、西语、意语、英语 | ## A+模块智能匹配 技能根据产品类目自动推荐最优模块组合： | 类目 | 推荐模块组合 | |------|-------------| | 服装类 | 多图轮播 + 尺寸指南 + 穿搭场景 | | 电子类 | 对比图表 + 功能拆解 + 视频位 | | 家居类 | 场景展示 + 对比图表 + 安装指南 | | 美妆类 | 成分展示 + 使用步骤 + Before/After | | 宠物类 | 场景展示 + 对比图表 + 用户评价 | | 食品类 | 成分表 + 食用场景 + 认证展示 | ## 场景化文案生成框架 每个模块的文案遵循以下结构： ``` 痛点 → 场景描述 → 解决方案 → 行动号召 ``` 示例（保温杯 - 清晨通勤场景）： - **痛点**：早起赶通勤，咖啡凉了 - **场景**：清晨的地铁上，你握着保温杯 - **方案**：双层真空技术，12小时保温 - **号召**：让温暖陪你上路 ## 多语言本地化方法论 不只是翻译，而是文化适配： | 语言 | 文案风格 | 侧重点 | |------|---------|--------| | 德语 | 严谨、技术细节丰富 | 认证和品质（LFGB认证） | | 日语 | 细节至上、礼貌得体 | 用户体验和细节 | | 法语 | 优雅、感性、浪漫 | 生活方式和美感 | | 西语 | 热情、实用、活力 | 性价比和实用性 | | 意语 | 设计感、品质感 | 美感和独特设计 | ## Premium A+专属模块 - **可交互轮播**：Shoppable Carousel，提升用户参与度 - **视频嵌入位**：品牌故事视频、产品演示 - **对比图表**：与普通产品对比，突出优势 - **问答摘要**：整合用户常见问题 ## 合规自检清单 生成内容后自动进行合规检查： 1. **图片规格**：300dpi，最小1000x1000像素 2. **文字规范**：无违规词汇、无未授权Logo 3. **模块规范**：符合Premium A+模块标准 4. **描述准确性**：无误导性陈述 5. **对比数据**：已标注来源 ## 输出示例 **输入**：保温杯 + 保温持久/食品级/轻便/多场景 + 德语 **输出结构**： ``` === A+模块方案 === 模块1：场景轮播（4张） - 场景A：清晨通勤 — "Der perfekte Begleiter für den Morgenweg" - 场景B：户外徒步 — "Auch auf dem Gipfel bleibt Ihr Tee heiß" - 场景C：办公桌 — "Diskret und stilvoll im Büro" - 场景D：健身补水 — "Hydration, die zu Ihnen passt" 模块2：对比图表 | 特性 | 我们 | 普通保温杯 | | 保温时长 | 12小时 | 4-6小时 | | 材质 | 316食品级不锈钢 | 304不锈钢 | | 重量 | 280g | 350g+ | 模块3：技术拆解 双层真空 | 防漏密封盖 | 防滑底座 | 一键开盖 模块4：认证展示 ✓ FDA食品级认证 ✓ BPA-Free ✓ LFGB认证 === 德语本地化要点 === - 强调"Lebensmittelecht"（食品级）和"Made in Quality" - 德国人关注认证（LFGB > FDA in EU market） - 用"Dichtheit"（密封性）而非"防漏"，更专业 === 合规自检 === ✓ 场景图建议使用实拍或AI生成（无侵权风险） ✓ 对比数据需标注来源 ⚠ 避免在图片中叠加文字（亚马逊EU政策） ``` ## 技术说明 本技能基于亚马逊A+内容的行业最佳实践和模块模板库生成内容。用户手动输入产品信息，技能辅助生成符合亚马逊规范的A+内容方案。 --- ## 交付标准 优秀的输出应该让你一眼看到： - 模块选择基于品类特点和核心卖点分析 - 每个模块有内容框架和视觉呈现建议 - 含适配Rufus场景的内容优化建议 - 多语言版本有文化适配说明 - 标注每个模块的情感基调（专业/温馨/活力等） 如果输出缺少以上任何一项，建议补充后再交付。 ## 不适用场景 本技能专注于亚马逊A+内容方案生成，以下场景请使用其他技能： - 基础Listing文案优化（请用amazon-listing-doctor） - Rufus对话场景优化（请用amazon-rufus-optimizer） - 需要实际设计稿或图片（请用miaoji-scene-studio或miaoji-model-shot） - 非亚马逊平台的图文内容（各平台内容规范差异较大） - A+合规性检查（请用miaoji-compliance-copy） --- ## 相关技能推荐 - **amazon-listing-doctor**：A+是五点描述的视觉延伸，先用listing-doctor优化好基础文案 - **amazon-rufus-optimizer**：A+模块设计融入场景化内容，能同时提升Rufus可见度 - **miaoji-scene-studio**：A+需要高质量场景图，scene-studio提供场景创意参考 - **miaoji-model-shot**：A+人物场景图能大幅提升转化，model-shot提供模特图创意


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector:  ()
Skill: boris148/se-browser-automation (version 1.0.0)

--- name: se-browser-automation description: "Browser automation patterns and best practices for OpenClaw browser control. Use when navigating web apps, filling forms, clicking elements, or extracting data from websites. Covers GHL, Lovable, and general SPA navigation patterns." version: 1.0.0 --- # Browser Automation Skill ## Profile - Use profile: `openclaw` for all automated browsing - Browser is managed by OpenClaw gateway ## Core Patterns ### Navigation - Use `browser navigate` with direct URLs when possible (faster than clicking through menus) - Always `sleep 4-6` after navigation — SPAs load content asynchronously - If page seems blank, try `screenshot` first — content may be rendered but not in DOM snapshot ### Element Interaction - Use `snapshot` to get element refs, then `act` with refs - For iframe content: use `frame` parameter in snapshot - If compact snapshot misses content, try full snapshot or screenshot - GHL and complex SPAs often render in iframes — check both main page and iframe ### Screenshots vs Snapshots - **Snapshot** — DOM tree, good for finding clickable refs - **Screenshot** — Visual image, good for understanding what's actually on screen - When snapshot shows empty/minimal content but screenshot shows a full page → content is in iframe or shadow DOM ### Login Flows 1. Navigate to login page 2. Snapshot to find form fields 3. Click + type credentials 4. Handle 2FA (check email, enter code) 5. Wait for redirect (sleep 4-6 seconds) 6. Verify logged in via screenshot ### Common Issues - **Popups/modals blocking** → Press Escape - **Lazy-loaded content** → Wait longer, refresh, or navigate directly via URL - **iframe content** → Use frame parameter or evaluate JS to find iframe - **evaluate function errors** → No `const`, `let`, or arrow functions. Use `var` and `function(){}` syntax. - **ref required errors** → Must use ref from snapshot, can't use text selectors ### SPA-Specific Tips - SPAs don't fully reload on navigation — URL changes but DOM updates incrementally - Some content only appears after JavaScript execution - If clicking a link doesn't work, try navigating directly to the URL - F5 refresh can help when SPA state gets stuck


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: aeoleader/todo-manager (version 1.0.0)

--- name: todo-manager description: "管理待办事项。添加、查看、完成、删除待办。" argument-hint: "[add|list|done|rm] <内容>" --- # Todo Manager - 待办事项管理 ## 功能 ### 添加待办 ``` /todo add <事项> /todo + <事项> ``` ### 查看待办 ``` /todo list /todo ls ``` ### 完成待办 ``` /todo done <编号> /todo <编号> done ``` ### 删除待办 ``` /todo rm <编号> ``` ## 存储 待办文件：`~/.openclaw/workspace/todos.md` 格式： ```markdown # 待办事项 - [ ] 任务1 - [x] 任务2 - [ ] 任务3 ## 已完成 - 任务2 (2026-02-24) ``` ## 使用示例 用户："/todo add 健身训练" → 添加待办：健身训练 用户："/todo list" → 显示所有待办 用户："/todo done 1" → 标记第一个待办为完成 --- *Todo Manager Skill*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 467718584/eo-blog-dev (version 1.0.0)

--- name: eo-blog-dev description: "Build a complete blog system using Everything Openclaw (EO) multi-expert collaboration - full workflow demo" metadata: openclaw: {} --- # EO Blog Dev - 多专家协作开发博客 > 🦞⚙️ 用 141 位专家军团，20分钟开发一个完整博客系统 ## 这是什么？ EO Blog Dev 是一个**实战演示 Skill**，展示如何使用 Everything Openclaw 插件的多专家协作能力，从零开发一个完整的博客系统。 **前置要求**：已安装 [Everything Openclaw (EO) 插件](https://clawhub.com/plugins/eo-collaboration) ## 功能 - 🎯 完整博客系统开发流程演示 - 👥 多专家并行协作展示 - ✅ Checkpoint 质量验证 - 📋 标准化项目交付物 ## 演示流程 ### Phase 1: 项目规划 (Planner 专家) ``` 启动 Planner 专家 ↓ WBS 工作分解结构 ↓ 里程碑设定 ↓ 团队组成方案 ``` ### Phase 2: 架构设计 (Architect 专家) ``` 启动 Architect 专家 ↓ 技术栈选型 ↓ 系统模块划分 ↓ 数据库设计 ``` ### Phase 3: 并行开发 (多角色专家) | 专家 | 任务 | |------|------| | Frontend 专家 | 前端页面开发 | | Backend 专家 | API 开发 | | QA 专家 | 测试用例 | ### Phase 4: Checkpoint 验证 (QA 专家) ``` 阶段交付物检查 ↓ 代码质量审计 ↓ 安全性扫描 ``` ### Phase 5: 部署上线 (DevOps 专家) ``` CI/CD 配置 ↓ 容器化部署 ↓ 监控告警 ``` ## 博客系统功能清单 | 模块 | 功能 | |------|------| | 用户系统 | 注册/登录/JWT | | 文章管理 | CRUD/富文本/分类 | | 评论系统 | 评论/回复/点赞 | | 个人主页 | 博主信息/文章列表 | | 管理后台 | 数据统计/内容管理 | ## 技术栈示例 ``` Frontend: React + TailwindCSS Backend: Node.js + Express Database: PostgreSQL Cache: Redis Deploy: Docker + Nginx ``` ## 适用场景 - 想学习多专家协作开发模式 - 需要一个可复制的项目开发模板 - 想了解 EO 插件能力边界 ## 依赖插件 本 Skill 基于 **[Everything Openclaw (EO)](https://clawhub.com/plugins/eo-collaboration)** 插件。 安装命令： ```bash openclaw plugins install eo-collaboration ``` ## 使用方式 ``` 输入：帮我用多专家协作开发一个博客系统 ↓ EO 插件自动调度 5 个专家角色 ↓ 并行执行 + Checkpoint 验证 ↓ 输出完整项目代码 + 文档 ``` --- *🦞⚙️ EO - 让每个 Agent 都穿上机甲*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector: clean (LOW)
Skill: tongchen92/notfair-google-ads-agent (version 2026.5.14)

--- name: notfair-google-ads-agent description: "NotFair Google Ads agent for OpenClaw. Diagnose live Google Ads accounts, audit wasted spend, review search terms, draft negative keywords, inspect policy errors, and propose approval-gated campaign changes through NotFair's hosted MCP server." homepage: https://notfair.co author: NotFair license: MIT-0 category: advertising subcategory: google-ads keywords: - google-ads - ppc - sem - advertising - mcp - openclaw - notfair - campaign-management - wasted-spend - search-terms - negative-keywords - policy-errors tags: - google-ads - advertising - mcp - openclaw metadata: openclaw: emoji: "NF" install: - id: openclaw-notfair kind: node label: "NotFair Google Ads Plugin" --- # NotFair Google Ads Agent Use this skill when the user asks to manage, audit, diagnose, or optimize Google Ads through NotFair. ## Setup openclaw plugins install openclaw-notfair openclaw notfair login openclaw notfair connect openclaw notfair status If the plugin is not authenticated, ask the user to run openclaw notfair login. ## Available OpenClaw Tools - notfair_list_connected_accounts - list connected Google Ads accounts. - notfair_run_script - run read-only JavaScript analysis against Google Ads data. - notfair_google_ads_tool - call a specific NotFair MCP tool by exact name and JSON arguments. ## Safety Model - Read-only analysis can run without extra approval. - Any Google Ads write must be explicitly approved by the user before execution. - Treat budget increases, campaign creation, campaign enabling, bid changes, and keyword/ad mutations as external money-affecting side effects. - Prefer creating paused/draft changes when a tool supports it. - Never delete or remove entities unless the user explicitly requests the destructive action and confirms scope. ## Default Workflow 1. Call notfair_list_connected_accounts when account context is unclear. 2. Use notfair_run_script for broad diagnosis and reporting. 3. Use notfair_google_ads_tool for specific NotFair tools such as keyword ideas, search term analysis, negative keywords, campaign updates, or policy-error fixes. 4. Present findings and proposed actions before writes. 5. After an approved write, verify the resulting Google Ads state. ## Example Read-Only Script const campaigns = await ads.gaql("SELECT campaign.id, campaign.name, campaign.status, metrics.cost_micros, metrics.clicks, metrics.conversions FROM campaign WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC LIMIT 20"); return campaigns.rows.map((row) => ({ id: row.campaign.id, name: row.campaign.name, status: row.campaign.status, spend: row.metrics.cost_micros / 1000000, clicks: row.metrics.clicks, conversions: row.metrics.conversions }));


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: maverick-software/playwright-headless-browser (version 1.0.0)

--- name: playwright-browser description: Set up headless browser automation in Clawdbot using Playwright Chromium. Use when configuring browser tools for WSL/Linux environments, installing browser dependencies, or enabling headless web automation. Handles Chromium installation, system library dependencies, and Clawdbot browser configuration. --- # Playwright Browser Setup Configure Clawdbot's browser tool to use Playwright-managed Chromium for headless automation in WSL/Linux environments. ## Quick Setup Run the setup script to install everything: ```bash ./scripts/setup.sh ``` This will: 1. Install Playwright and Chromium 2. Install required system libraries (requires sudo) 3. Patch Clawdbot config to use the Playwright browser ## Manual Setup ### 1. Install Playwright Chromium ```bash npx playwright install chromium ``` ### 2. Install System Dependencies Chromium requires NSS and ALSA libraries: ```bash # Ubuntu/Debian sudo apt-get install -y libnss3 libasound2t64 # If libasound2t64 doesn't exist (older Ubuntu): sudo apt-get install -y libnss3 libasound2 ``` ### 3. Find Chromium Path ```bash find ~/.cache/ms-playwright -name "chrome" -path "*/chrome-linux64/*" 2>/dev/null | head -1 ``` ### 4. Configure Clawdbot Patch the gateway config: ```bash clawdbot config patch '{"browser": {"executablePath": "<path-from-step-3>", "headless": true, "noSandbox": true}}' ``` Or use the provided script: ```bash ./scripts/configure-clawdbot.sh ``` ## Verification Test the browser works: ```bash ~/.cache/ms-playwright/chromium-*/chrome-linux64/chrome --headless --no-sandbox --disable-gpu --dump-dom https://example.com ``` ## Notes - `noSandbox: true` is required for WSL/container environments - `headless: true` runs without a visible window (faster, no display needed) - For visible browser, set `headless: false` and ensure WSLg or X11 is configured


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: 1477009639zw-blip/bs-detector (version 1.0.0)

--- name: bs-detector description: Detects key claims in long messages and summarizes the real point. Uses NLP to find what someone is actually saying vs. what they want you to believe. metadata: openclaw: emoji: "🔍" requires: bins: [python3] always: false --- # BS Detector — Find the Real Point Detects claims, identifies fluff, and extracts the actionable truth from long messages. ## Usage ```bash python3 detect.py --input message.txt python3 detect.py --text "Your long slack message here..." ``` ## Features - Claim extraction from long text - Fluff detection (filler, buzzwords, corporate speak) - Core point summarization - Sentiment analysis - Key numbers and facts highlighted ## Example Input: Long corporate email Output: "Core message: Deadline is Friday. Key ask: Approval by EOD Thursday."

path: detect.py
content: #!/usr/bin/env python3
"""BS Detector — extracts real points from verbose text"""
import argparse, re

FLUFF = [
    'synergy', 'leverage', 'paradigm', 'value-add', 'circle back',
    'touch base', 'moving forward', 'at the end of the day',
    'it goes without saying', 'needless to say', 'honestly',
    'basically', 'literally', 'actually', 'very', 'really',
    'in terms of', 'at this point in time', 'going forward',
    'proactive', 'robust', 'streamline', 'optimize'
]

def detect_bs(text):
    text_lower = text.lower()
    fluff_count = sum(1 for f in FLUFF if f in text_lower)
    fluff_pct = fluff_count / (len(text.split()) / 10)

    sentences = [s.strip() for s in re.split(r'[.!?]+', text) if s.strip()]
    longest = max(sentences, key=len) if sentences else text[:100]

    words = text.split()
    has_numbers = any(c.isdigit() for c in text)
    has_deadline = any(w in text_lower for w in ['deadline', 'by friday', 'by monday', 'eod', 'due', 'tomorrow'])

    real_point = longest if len(longest) > 30 else text[:150]

    verdict = "LOTS OF BS" if fluff_pct > 2 else "SOME FLUFF" if fluff_pct > 0.5 else "CLEAN"
    return {
        'verdict': verdict,
        'real_point': real_point.strip(),
        'fluff_pct': round(fluff_pct, 1),
        'sentences': len(sentences),
        'has_numbers': has_numbers,
        'has_deadline': has_deadline
    }

def main():
    p = argparse.ArgumentParser()
    p.add_argument('--text', default=None)
    p.add_argument('--input', default=None)
    args = p.parse_args()

    if args.input:
        with open(args.input) as f:
            text = f.read()
    else:
        text = args.text or input("Paste text: ")

    result = detect_bs(text)
    print(f"""
🔍 BS DETECTOR RESULT
═══════════════════════════════
VERDICT: {result['verdict']} ({result['fluff_pct']} fluff density)

💡 THE REAL POINT:
{result['real_point'][:200]}

📊 Message stats:
   Sentences: {result['sentences']}
   Has numbers: {'✓' if result['has_numbers'] else '✗'}
   Has deadline: {'✓' if result['has_deadline'] else '✗'}
═══════════════════════════════
""")

if __name__ == '__main__':
    main()


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