OpenClaw/clawhub-security-signals huggingface dataset:
Skill: edwardwason/web-to-feishu (version 1.0.2)

--- name: web-to-feishu label: 网页内容转飞书/ima文档 description: > 将任意网页链接或本地文件一键转为结构化 Markdown，并保存到飞书云文档或腾讯 ima 笔记。 支持的信源：(1) X/Twitter 推文、长文 Article、Thread 线程；(2) 微信公众号文章； (3) YouTube 视频；(4) 任意 HTML 网页；(5) 本地文件：PDF、Word、PPT、Excel、图片、音频等。 工作流：自动识别 URL/文件类型 → 路由到最佳抓取工具 → 结构化 Markdown → 选择性保存到飞书/ima。 触发词：转文档、抓网页存飞书、网页转文档、web to feishu、url转文档、文件转飞书、存到ima。 当用户提供任意 URL 或本地文件并要求转存为文档时触发。 --- # 网页内容转飞书/ima文档 将任意网页链接或本地文件一键转为结构化 Markdown，并保存到飞书云文档或腾讯 ima 笔记。 ## 支持的信源 | 信源 | URL 特征 | 抓取方式 | |------|---------|---------| | X/Twitter | `x.com` / `twitter.com` | x-tweet-fetcher | | 微信公众号 | `mp.weixin.qq.com` | markitdown-plus | | YouTube | `youtube.com` / `youtu.be` | markitdown-plus | | 任意网页 | 其他 `http(s)://` 链接 | markitdown-plus | ### 本地文件支持 | 类型 | 扩展名 | |------|--------| | PDF | `.pdf` | | Word | `.docx` / `.doc` | | PowerPoint | `.pptx` / `.ppt` | | Excel | `.xlsx` / `.xls` | | 图片 | `.png` `.jpg` `.jpeg` `.gif` `.webp` | | 音频 | `.mp3` `.wav` `.m4a` `.flac` | | 数据 | `.csv` `.json` `.xml` | ## 输出目的地 | 目的地 | 环境变量 | 说明 | |--------|---------|------| | Markdown 文件 | 无 | 默认选项，始终生成 | | 飞书云文档 | `FEISHU_APP_ID` + `FEISHU_APP_SECRET` | 参考 `references/feishu-setup.md` | | 腾讯 ima | `IMA_CLIENT_ID` + `IMA_API_KEY` | **云端 API**，无需本地客户端，参考 `references/ima-setup.md` | ## 安全配置 ⚠️ **凭证必须通过环境变量配置**，禁止硬编码： ### 飞书配置 ```bash # 设置环境变量 $env:FEISHU_APP_ID = "your_app_id" $env:FEISHU_APP_SECRET = "your_app_secret" ``` 参考 [references/feishu-setup.md](references/feishu-setup.md) 获取凭证。 ### ima 配置 ```bash # 设置环境变量 $env:IMA_CLIENT_ID = "your_client_id" $env:IMA_API_KEY = "your_api_key" ``` 参考 [references/ima-setup.md](references/ima-setup.md) 获取凭证。 ## 工作流 ### 步骤 1：转换为 Markdown ```bash python3 scripts/web_to_md.py --url "<url_or_path>" --output <output.md> ``` 路由逻辑： - **X/Twitter** → x-tweet-fetcher 抓取 JSON → tweet_to_md.py 结构化转换 - **其他所有** → markitdown-plus 直接转换 ### 步骤 2：存入目的地 #### 飞书云文档 ```python from scripts.feishu_client import FeishuClient client = FeishuClient() result = client.create_document(title="文档标题", content_md=markdown_content) print(f"文档 URL: {result['url']}") ``` #### 腾讯 ima ```python from scripts.ima_client import IMAClient client = IMAClient() result = client.create_note(title="笔记标题", content=markdown_content) print(f"笔记 URL: {result['url']}") ``` ### 验证连接 ```bash # 验证飞书 python scripts/feishu_client.py --action test # 验证 ima python scripts/ima_client.py --action test ``` ## 故障处理 | 问题 | 解决方案 | |------|---------| | x.com SSL 超时 | x-tweet-fetcher 使用 FxTwitter API 中转 | | markitdown 模块丢失 | `pip install markitdown` | | 微信反爬拦截 | markitdown 自动用移动端 UA 重试 | | 飞书凭证无效 | 检查 `FEISHU_APP_ID` 和 `FEISHU_APP_SECRET` | | ima 凭证无效 | 检查 `IMA_CLIENT_ID` 和 `IMA_API_KEY` | ## 依赖 | 依赖 | 安装 | |------|------| | markitdown-plus | `pip install markitdown` | | x-tweet-fetcher | 克隆到 `~/.aily/workspace/skills/x-tweet-fetcher` | | requests | `pip install requests` | | python-dotenv | `pip install python-dotenv` |


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: indivisible2025/reminiscence (version 7.0.0)

--- name: 追忆 description: 本地记忆语义搜索。当用户查询记忆、搜索过往记录、询问"我记得..."、"搜一下..."等所有记忆召回场景时触发。基于 BM25 + 多维信号融合，完全本地运行，无需 API Key。 --- # 追忆 — 本地语义记忆搜索 > "记忆是我们随身携带的图书馆。" — 普鲁斯特 ## 快速开始 搜索记忆： ```bash python3 ~/.openclaw/workspace/skills/追忆/scripts/search.py "查询内容" ``` 构建/更新索引： ```bash python3 ~/.openclaw/workspace/skills/追忆/scripts/search.py --build ``` ## 搜索流程 当用户发起记忆搜索时： 1. **检查索引是否存在** — 索引路径 `~/.openclaw/memory_bm25_index.json` 2. **如无索引，先构建** — 调用 `--build` 生成索引 3. **执行搜索** — BM25 粗排 → 多维信号重排 → 同文件去重 4. **格式化输出** — 返回文件路径、行号、各信号分值、内容摘要 ## 搜索信号 | 信号 | 权重 | 说明 | |------|------|------| | BM25norm | 38% | 词频相关性 + 文档长度归一化 | | IDF-Coverage | 22% | query 端归一化 | | N-gram Proximity | 20% | 词序/邻近度 | | ExactPhrase | 12% | 完整子串 bonus | | Soft Dice | 10% | 编辑距离容错匹配 | ## 索引范围 - `MEMORY.md` - `memory/*.md`（每日日记） ## 搜索结果格式 ``` 🔍 搜索: 年余 GitHub [1] 综合: 0.800 BM25n: 1.000 Cover: 1.000 Prox: 1.000 Phrase: 0.000 Soft: 0.000 Consec: 0.000 来源: memory/2026-04-03.md#165-181 内容: ...相关段落内容... [2] 综合: 0.788 [去重] ... ``` ## 触发时机 以下场景自动触发本 Skill： - 用户说"搜一下我记得的 XXX" - 用户说"我的记忆里有关于 XXX 的吗" - 用户询问"之前我们聊过 XXX" - 用户说"查一下 XXX 相关的内容" - 任何 `memory_search` 工具调用 ## 技术细节 - **分词**：CJK 字符 2-6 gram（Python 3.13 兼容，无外部依赖） - **排序算法**：BM25（k1=1.5, b=0.75）+ 五路信号融合 - **索引格式**：JSON，每条记录含 text / file / start_line / end_line / chunk_idx - **零外部依赖**：全部使用 Python stdlib


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: pcauhi/docker-mcp-toolkit (version 0.1.1)

--- name: docker-mcp-toolkit description: Control and use an MCP Toolkit running in Docker. Use when setting up Docker MCP Toolkit (docker compose up/down), checking status/logs, configuring environment variables/secrets, listing available MCP tools/servers, or invoking MCP tools (typically via a local HTTP endpoint) to connect OpenClaw workflows to external systems like Postgres/Neon. --- # Docker MCP Toolkit Run, manage, and invoke Docker Desktop’s **MCP Toolkit** using the `docker mcp` CLI. ## Install + preflight (Docker Desktop) 1) Install/upgrade Docker Desktop (MCP Toolkit is in Docker Desktop 4.62+ per docs). 2) Enable MCP Toolkit: - Docker Desktop → **Settings** → **Beta features** → **Enable Docker MCP Toolkit** → **Apply**. 3) Preflight: ```bash ./scripts/preflight.sh ``` ## Quick start List enabled servers/tools: ```bash ./scripts/servers.sh ./scripts/tools.sh ``` ## Core operations - List/enable/disable servers: - `./scripts/servers.sh` - `./scripts/server-enable.sh <server-name>` - `./scripts/server-disable.sh <server-name>` - List tools: - `./scripts/tools.sh` - Invoke a tool (via Docker’s gateway/tool runner): ```bash ./scripts/call-tool.sh --tool "mcp-find" --json '{"query":"postgres","limit":5}' ``` Notes: - `call-tool.sh` requires `jq`. - `docker mcp tools call` uses `key=value` tokens. - Non-string values use `:=` (example: `limit:=5`, `activate:=true`). - This skill currently supports only **primitive** JSON values (string/number/bool/null). Nested objects/arrays are rejected. - For tools requiring object arguments (e.g. `mcp-config-set`), call `docker mcp tools inspect <tool> --format json` then run `docker mcp tools call ...` directly until this skill adds a tested encoder. ## How invocation works (important) Docker MCP Toolkit runs an MCP Gateway and exposes tools through it. This skill intentionally uses the **`docker mcp tools …`** commands so OpenClaw can invoke tools without needing native MCP client support. If you need a true MCP client connection (stdio/SSE), pair this skill with the `mcporter` skill. ## Secrets and safety - Prefer Docker Desktop’s secrets/keychain integration when possible. - Do not expose gateway ports publicly. - Use least-privilege credentials (separate Neon role with only required grants). For hardening guidance, read: `references/security.md`. ## Troubleshooting - If commands say “Docker Desktop is not running”: start Docker Desktop. - If MCP Toolkit isn’t visible: confirm it’s enabled in **Beta features**. - If a tool call fails: run `docker mcp tools --verbose inspect <tool>` and check Docker Desktop MCP Toolkit UI for server configuration.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: brasco05/self-improving-agent1 (version 1.0.2)

--- name: learning-capture description: Capture user corrections, failed tool runs, recurring gotchas, and useful lessons as short structured notes. Use when a mistake or workflow learning should be remembered for future work. Keep entries redacted, human-reviewable, and project-scoped. Do not change agent rules or configuration without explicit user approval. --- # Learning Capture Use this skill to turn mistakes and corrections into small reusable notes. The goal is simple: if the same issue appears again, the agent can check the note before repeating the mistake. ## Core Rules - Write short notes, not raw transcripts. - Redact credentials, auth tokens, private messages, customer data, and full command output. - Prefer project-scoped `.learnings/` files. - Do not edit `AGENTS.md`, `SOUL.md`, `CLAUDE.md`, hooks, or config unless the user explicitly approves. - Treat every promotion to long-term instructions as a proposal first. ## When To Use | Situation | Action | |---|---| | User corrects the agent | Add a correction note | | Tool/command fails unexpectedly | Add an error note with redacted summary | | A project gotcha is discovered | Add a learning note | | Same issue repeats | Link the related notes and propose a durable rule | | User requests a missing capability | Add a feature-request note | ## Setup Create these files in the project root if they do not exist: ```text .learnings/LEARNINGS.md .learnings/ERRORS.md .learnings/FEATURE_REQUESTS.md ``` Use normal file-writing tools. Never overwrite existing notes. ## Learning Note Format ```markdown ## LRN-YYYYMMDD-001 — short-title **Logged:** ISO timestamp **Priority:** low | medium | high **Status:** pending | resolved | proposed **Area:** frontend | backend | infra | tests | docs | workflow ### Summary One sentence. ### What happened Short redacted context. ### Better next time Concrete behavior to apply in future. ### Tags - tag-one - tag-two ``` ## Error Note Format ```markdown ## ERR-YYYYMMDD-001 — short-title **Logged:** ISO timestamp **Priority:** low | medium | high **Status:** pending | resolved ### Summary What failed, in one sentence. ### Redacted Evidence Minimal safe excerpt. No credentials, tokens, private data, or full logs. ### Likely Cause If known. ### Fix / Next Step Concrete action. ``` ## Feature Request Format ```markdown ## FEAT-YYYYMMDD-001 — short-title **Logged:** ISO timestamp **Status:** proposed ### Requested Capability What the user wanted. ### Why It Matters What problem it solves. ### Possible Implementation Short option list, if useful. ``` ## Promotion Rule If a note is broadly useful: 1. Propose the distilled rule to the user. 2. Wait for approval. 3. Only then update durable project or agent instructions. 4. Mark the original note as `proposed` or `resolved` with a link to the approved location. ## Output When done, respond briefly: ```text Logged: .learnings/LEARNINGS.md#LRN-YYYYMMDD-001 ``` If no durable learning exists, do nothing.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: terrycarter1985/ecommerce-return-reply (version 1.0.0)

--- name: ecommerce-return-reply description: Generate standardized, policy-compliant customer service replies for buyer return, exchange, and refund inquiries in e-commerce scenarios. Use when drafting or composing responses to buyer messages about returns, exchanges, refunds, order cancellations, damaged goods, wrong items received, or any after-sales dispute. Covers major Chinese and cross-border e-commerce platforms (Taobao, JD, PDD, Douyin, Shopee, Lazada, Amazon). --- # E-commerce Return & Exchange Reply Generator Standardized prompt template for generating compliant, friendly after-sales responses. ## Workflow 1. Identify the buyer's issue category from the message. 2. Read the corresponding rule section in `references/platform-rules.md`. 3. Compose the reply following the output template below. ## Issue Categories | Category | Trigger Keywords | |---|---| | Return (refund only) | 退货, 退款, 不想要了, doesn't fit, changed mind | | Exchange | 换货, 换颜色, 换尺码, wrong size, wrong color | | Damaged / Defective | 破损, 坏了, 质量问题, cracked, defective, broken on arrival | | Wrong Item | 发错货, 收到不一样, wrong item, not what I ordered | | Partial Refund | 补偿, 差价, partial refund, price difference | | Cancellation | 取消订单, 不买了, cancel my order | ## Output Template Every reply must contain these sections in order: ``` 【问候】— 礼貌称呼买家，表达歉意/理解 【问题确认】— 简要复述买家问题（1句） 【解决方案】— 明确告知可操作的下一步（退货/换货/补偿等） 【操作指引】— 平台操作步骤（2-3步），引用平台规则条款 【时效说明】— 处理时效与物流预估 【温馨提示】— 退货注意事项（包装、配件、运费等） 【结尾】— 感谢与联系方式 ``` ## Tone & Style Rules - Use 敬语 (您/亲) for Chinese; warm but professional for English - Never blame the buyer - Never promise outcomes outside platform policy - Include specific timeframes (e.g., "48小时内", "within 2 business days") - If the request falls outside policy, explain politely and offer the best alternative ## Policy Compliance - Read `references/platform-rules.md` before composing any reply - When in doubt, default to the stricter interpretation - Always state the applicable rule clause (e.g., "根据《七天无理由退货》规则…") ## Platform Awareness If the buyer's platform is unknown, ask. Rules differ significantly: - Taobao/JD: 7-day no-reason return for most categories - PDD: Shorter window, stricter conditions - Cross-border (Shopee/Lazada/Amazon): Varies by marketplace and region - Live-stream sales (Douyin): Special 15-day rule may apply ## Advanced: Custom Policy Override If the merchant has custom return policies (e.g., extended warranty, free return shipping), include them as additional context in the prompt call. Custom policies supplement but never contradict platform rules.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: igorganapolsky/subway-agent-lite (version 1.0.0)

--- name: subway-agent-lite version: 1.0.0 description: "FREE VERSION: Basic WhatsApp ordering agent for sandwich shops. Demonstrates ThumbGate safety logic for 5 core order items." author: "Igor Ganapolsky" tags: ["free", "subway", "ordering", "thumbgate", "demo"] price: 0 --- # Subway Ordering Agent (LITE / FREE) This is a free demonstration version of the premium Subway Restaurant Agent. It supports ordering for 5 basic items and includes a sample ThumbGate safety configuration. ## Features: - Basic natural-language ordering. - ThumbGate protection for "Hallucinated Items". - Direct logging to Google Sheets. Upgrade to the Full Version (7) for Smart Upsells, Inventory Forecasting, and Voice AI support.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: thisisjeron/beaconchain (version 0.1.1)

--- name: beaconchain description: Monitor Ethereum validator dashboard health on beaconcha.in via V2 API, focused on one-check-per-day status and BeaconScore-first triage. Use when the user asks to check validator health, BeaconScore, missed duties, or set up low-anxiety daily monitoring/alerts for a beaconcha.in dashboard. metadata: { "openclaw": { "requires": { "bins": ["python3"], "env": ["BEACONCHAIN_API_KEY", "BEACONCHAIN_DASHBOARD_ID"], }, "disableModelInvocation": true, }, } --- # Beaconchain Use this skill to reduce validator-check anxiety: do one concise daily health check, then only surface issues. ## Quick Start 1. Set credentials as env vars: - `BEACONCHAIN_API_KEY` - `BEACONCHAIN_DASHBOARD_ID` 2. Run: ```bash python3 skills/beaconchain/scripts/check_dashboard.py --json ``` 3. Interpret exit code: - `0` = good - `2` = bad (needs attention) - `1` = error (auth/rate-limit/endpoint failure) ## Monitoring Workflow 1. Run `scripts/check_dashboard.py` once per day. 2. If `status=good`, respond with a short reassurance and avoid extra detail. 3. If `status=bad`, report: - BeaconScore (if available) - Which signal tripped (missed/penalty fallback) - Next action: inspect dashboard details and validator logs. 4. If `status=error`, report key checks: - API key validity - dashboard ID - plan/rate-limit permissions. ## Command Patterns ### Basic check ```bash python3 skills/beaconchain/scripts/check_dashboard.py ``` ### JSON output (for cron/parsing) ```bash python3 skills/beaconchain/scripts/check_dashboard.py --json ``` ### Custom threshold ```bash python3 skills/beaconchain/scripts/check_dashboard.py --warn-threshold 75 ``` ## Notes - Script uses `POST /api/v2/ethereum/validators/performance-aggregate` with dashboard selector and reads `data.beaconscore.total` directly. - Default window is `24h`; supported windows: `24h`, `7d`, `30d`, `90d`, `all_time`. - Keep responses intentionally terse when healthy to support low-anxiety operations. ## Security & Transparency - Runtime: `python3` only, using Python standard library (`argparse`, `json`, `urllib`, `datetime`). - Credentials: reads `BEACONCHAIN_API_KEY` and `BEACONCHAIN_DASHBOARD_ID` (or equivalent CLI flags). - Network egress: only `https://beaconcha.in/api/v2/ethereum/validators/performance-aggregate`. - Local filesystem: no writes, no shell execution, no subprocess spawning. ## References - API overview: `references/api-notes.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 534422530/mempalace-assistant (version 1.0.0)

--- name: mempalace-assistant description: MemPalace记忆系统助手 - 基于老四的AI记忆系统。提供结构化记忆存储、快速检索、记忆组织等功能。适用于需要持久化知识、跨会话记忆、语义搜索等场景。 metadata: {"openclaw": {"requires": {}, "install": []}} tags: [memory, knowledge-base, search, ai-memory, retrieval] version: 1.0.0 author: laosi source: local --- # ⚠️ 发布规则 **所有发布到ClawHub的技能必须严格测试，确定没有问题再发布** --- ## 技能测试验证清单 发布前必须验证： - [x] 功能完整性：所有描述的功能都能正常工作 - [x] 语法正确性：Markdown格式正确，无错误 - [x] 激活词有效性：激活词能正确触发 - [x] 场景覆盖：主要使用场景已测试 - [x] 无副作用：不会破坏已有功能 --- # MemPalace Assistant - 记忆系统助手 > 基于老四(laosi)的AI记忆系统 > 激活词: 搜索记忆 / 记住 / 记忆搜索 ## 概述 MemPalace是一个结构化记忆系统，用于AI Agent的持久化知识存储和快速检索。 ## 核心功能 | 功能 | 命令 | 说明 | |------|------|------| | 搜索记忆 | `mempalace search <关键词>` | 语义搜索记忆 | | 写入记忆 | 存储对话知识 | 跨会话知识传承 | | 读取记忆 | 查看记忆内容 | 按时间/标签检索 | | 组织记忆 | 分类标签 | 知识图谱构建 | ## 使用方法 ### 搜索记忆 ```bash py -3.13 -m mempalace search "关键词" ``` ### 写入记忆 ```bash py -3.13 -m mempalace add "记忆内容" ``` ### 查看所有记忆 ```bash py -3.13 -m mempalace list ``` ### 导出记忆 ```bash py -3.13 -m mempalace export ``` ## 记忆结构 ```json { "content": "记忆内容", "timestamp": "2026-04-28T00:00:00.000Z", "tokens": "分词后的关键词" } ``` ## 应用场景 1. **跨会话学习** - 将一次学到的知识存储，供下次使用 2. **知识积累** - 持续构建个人知识库 3. **快速检索** - 用自然语言搜索记忆 4. **记忆巩固** - 强化重要信息的记忆 ## 来源 - 老四MemPalace系统: `D:\coze-local\simple-agent\skills_learned\mempalace.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jirboy/research-review-assistant (version 1.0.0)

--- name: research-review-assistant description: [已整合] 文献综述已整合到 research 统一入口技能 argument-hint: "[研究领域] [参数]" --- # ⚠️ 已整合 - 请使用 research 统一入口 > **本技能保留用于向后兼容，功能已整合到 `research` 统一入口技能** > > **推荐使用：** `research review [领域] [参数]` 或直接使用本技能（自动转发） --- # Research Review Assistant（兼容层） 科研文献综述与迭代助手 - 自动检索、结构化总结文献，支持多轮优化和综述草稿生成。 ## 迁移指南 **新用法：** ``` research review RTHS 时滞补偿 max_papers=20 research review 振动控制 detailed research review 深度学习 结构健康监测 iteration_rounds=3 ``` **旧用法（仍然可用）：** ``` review RTHS 时滞补偿 max_papers=20 ``` ## 核心功能 - ✅ 自动检索指定领域最新论文（arXiv/PubMed/Google Scholar） - ✅ 结构化总结（标题/作者/方法/创新点/结果/局限性） - ✅ 相关性评估（与用户研究方向的关联度 1-10 分） - ✅ 多轮迭代优化（根据用户反馈修订） - ✅ 生成 SCI 格式综述草稿 - ✅ 支持基金申请文献支持模块 ## 配置参数 - `max_papers` - 最大检索论文数（默认 30） - `summary_length` - 总结长度（short/detailed/expert） - `iteration_rounds` - 迭代轮次（默认 3 轮） ## 输出格式 Markdown（默认）| LaTeX（可选）| 国标格式（基金申请用）


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: nissan/kokoro-agent-voices (version 1.0.1)

--- name: kokoro-agent-voices version: 1.0.1 description: Local zero-cost text-to-speech with per-agent voice profiles using Kokoro TTS (82M params). 54 voices available, named agent mappings, WAV output. Use when building voice-enabled agents without API costs. Requires espeak-ng and a Python environment with kokoro dependencies. metadata: {"openclaw": {"emoji": "🗣️", "requires": {"bins": ["python3", "espeak-ng", "espeak"], "env": []}, "primaryEnv": null, "network": {"outbound": true, "reason": "Downloads Kokoro model from Hugging Face Hub on first run (~350MB). All subsequent inference is local."}, "security_notes": "Outbound network is used only once to download the Kokoro model weights from Hugging Face Hub (~350MB, one-time). All subsequent TTS inference runs entirely on the user's device. No audio data or text is ever transmitted externally."}} --- # Kokoro Agent Voices Give each AI agent a distinct voice using Kokoro TTS — a lightweight 82M parameter model that runs locally with zero API costs. 54 voices across American, British, and other accents. ## Agent Voice Profiles ```python AGENT_VOICES = { "loki": "am_fenrir", # Deep, authoritative "archie": "bm_george", # British analytical "sara": "af_bella", # Warm, creative "kit": "am_echo", # Clear, technical "liv": "af_nova", # Bright, energetic "belle": "bf_emma", # Refined, thoughtful } ``` ## Usage ```bash python3 scripts/speak.py --agent loki "System check complete" python3 scripts/speak.py --voice af_bella "Hello world" --output /tmp/greeting.wav python3 scripts/speak.py --list-voices # Show all 54 voices python3 scripts/speak.py --list-agents # Show configured agent profiles ``` ## Setup Requires a Python environment with `kokoro`, `soundfile`, and `espeak-ng` installed. The model downloads automatically from Hugging Face on first use (~350MB). ## Files - `scripts/speak.py` — TTS script with agent profiles and voice selection


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: nicoizco/elen-decision-network (version 1.0.1)

--- name: elen-decision-network description: "Teaches agents how to query, expand, and cleanly commit technical, design, and product constraints to the Elen SQLite decision graph via the Elen Context Server." --- # Elen MCP Integration Skill > [!IMPORTANT] > This skill establishes the baseline rules for reasoning within the Learning Nodes stack. You **MUST** use the Elen MCP server to document your epistemic decisions. Doing so ensures that choices are version-controlled, preserved, and searchable. ## 1. What is the Elen MCP? The Elen Context Server is responsible for the "Decision Network" infrastructure. It runs locally as an MCP server. **Installation Requirement:** Before this skill will work, you or your agent must configure the Elen MCP server in your IDE/Agent settings (e.g., Cursor, Claude, Windsurf): ```json { "mcpServers": { "elen": { "command": "npx", "args": ["-y", "@learningnodes/elen-mcp@0.1.1"] } } } ``` Whenever you make a meaningful technical, design, security, or product decision (e.g., choosing a specific framework, styling a UX component, structuring an API endpoint, or dropping a feature), you should record it using the available MCP tools provided by the server. ## 2. When to Use the Elen MCP - **Before Action**: Use `mcp_elen_elen_suggest` and `mcp_elen_elen_get_competency` to query if a decision has already been formulated for the topic you are working on. - **During the Task**: When you formulate a new plan or solve a structural issue, use `mcp_elen_elen_commit` to save the decision to the network. - **When Fixing Bugs**: If you resolve a bug and it warrants a systemic change or constraint update, commit a new decision and reference the old one (or use `mcp_elen_elen_supersede` if completely overruling). ## 3. Formatting Requirements When committing a decision via `mcp_elen_elen_commit`: - **Domain**: Briefly categorize the domain (e.g., "frontend", "infrastructure", "security"). - **Question**: Describe the concrete problem (e.g., "Which state management tool to use for the marketplace UI?"). - **DecisionText**: Provide your clear, concise answer. - **Constraints**: Supply an array of hard rules or context bounds (e.g., `["Must not use internal APIs", "Must restrict file-size to <1 MB"]`). ## 4. Avoiding Action Without Context Never implement sweeping, codebase-wide changes without first verifying prior related artifacts in the decision network. The goal is to create **visible reasoning**, eliminating tribal knowledge and undocumented assumptions from the loop.


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