OpenClaw/clawhub-security-signals huggingface dataset:
Skill: wuxxin/local-llama-tts (version 1.0.0)

--- name: local-llama-tts description: Local text-to-speech using llama-tts (llama.cpp) and OuteTTS-1.0-0.6B model. metadata: { "openclaw": { "emoji": "🔊", "requires": { "bins": ["llama-tts"] }, }, } --- # Local Llama TTS Synthesize speech locally using `llama-tts` and the `OuteTTS-1.0-0.6B` model. ## Usage You can use the wrapper script: - `scripts/tts-local.sh [options] "<text>"` ### Options - `-o, --output <file>`: Output WAV file (default: `output.wav`) - `-s, --speaker <file>`: Speaker reference file (optional) - `-t, --temp <value>`: Temperature (default: `0.4`) ## Scripts - **Location:** `scripts/tts-local.sh` (inside skill folder) - **Model:** `/data/public/machine-learning/models/text-to-speach/OuteTTS-1.0-0.6B-Q4_K_M.gguf` - **Vocoder:** `/data/public/machine-learning/models/text-to-speach/WavTokenizer-Large-75-Q4_0.gguf` - **GPU:** Enabled via `llama-tts`. ## Setup 1. **Model:** Download from [OuteAI/OuteTTS-1.0-0.6B-GGUF](https://huggingface.co/OuteAI/OuteTTS-1.0-0.6B-GGUF/resolve/main/OuteTTS-1.0-0.6B-Q4_K_M.gguf?download=true) 2. **Vocoder:** Download from [ggml-org/WavTokenizer](https://huggingface.co/ggml-org/WavTokenizer/resolve/main/WavTokenizer-Large-75-Q5_1.gguf?download=true) (Note: Felix uses a Q4_0 version, Q5_1 is linked here as a high-quality alternative). Place files in [REDACTED_SECRET] or update `scripts/tts-local.sh`. ## Sampling Configuration The model card recommends the following settings (hardcoded in the script): - **Temperature:** 0.4 - **Repetition Penalty:** 1.1 - **Repetition Range:** 64 - **Top-k:** 40 - **Top-p:** 0.9 - **Min-p:** 0.05


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: cosformula/wakapi-sync-skill (version 0.2.1)

--- name: wakapi-sync description: Daily Wakapi (WakaTime-compatible) summary → local CSV files. Fetch today stats and append/update CSVs for totals, top projects, and top languages. metadata: {"openclaw": {"requires": {"env": ["WAKAPI_URL", "WAKAPI_API_KEY", "WAKAPI_OUT_DIR"]}, "primaryEnv": "WAKAPI_OUT_DIR"}} --- # wakapi-sync Daily Wakapi (WakaTime-compatible) summary → local CSV files. ## What it does - Fetches **today** stats from Wakapi and appends/updates CSVs: - `daily-total.csv` (1 row/day) - `daily-top-projects.csv` (N rows/day) - `daily-top-languages.csv` (N rows/day) ## Requirements - Node.js 18+ ## Configuration (env vars) - `WAKAPI_URL` (required) - Example: `https://wakapi.example.com` - `WAKAPI_API_KEY` (required) - Your Wakapi API key. - `WAKAPI_OUT_DIR` (required) - Output directory for CSVs. - Example: `~/wakapi-data` Optional: - `WAKAPI_TOP_N_PROJECTS` (default: `10`) - `WAKAPI_TOP_N_LANGUAGES` (default: `10`) Auth: - Uses `Authorization: Basic base64(<api_key>)` (matches our current Wakapi setup). ## Usage Run: ```bash node scripts/wakapi-daily-summary.mjs ``` ## Output CSV schemas ### daily-total.csv Columns: - `date` (YYYY-MM-DD) - `total_seconds` - `total_hours` - `projects_count` - `languages_count` ### daily-top-projects.csv Columns: - `date` - `rank` - `project` - `seconds` - `hours` - `percent` ### daily-top-languages.csv Columns: - `date` - `rank` - `language` - `seconds` - `hours` - `percent`


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: kostja94/linkedin-ads-paid-ads (version 1.0.1)

--- name: linkedin-ads description: When the user wants to set up, optimize, or manage LinkedIn Ads. Also use when the user mentions "LinkedIn Ads," "LinkedIn Campaign Manager," "Sponsored Content," "LinkedIn Lead Gen Forms," "job title targeting," "company targeting," or "B2B paid ads." For organic posts, use linkedin-posts. metadata: version: 1.0.1 --- # Paid Ads: LinkedIn Ads Guides LinkedIn Ads setup, targeting, and optimization. LinkedIn excels at B2B and professional targeting; use when job title/company targeting matters and ACV is higher. **When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output. ## Campaign Structure **Naming**: `LI_[Objective]_[Audience]_[Offer]_[Date]` (e.g., [REDACTED_SECRET]) ## Ad Formats | Format | Best for | |--------|----------| | **Sponsored Content** | Feed ads; single image, video, carousel, document | | **Message Ads** | InMail; direct outreach; lead gen | | **Lead Gen Forms** | Native forms; no landing page; higher conversion | | **Text Ads** | Right rail; lower cost; awareness | ## Targeting Strengths | Signal | Use | |--------|-----| | **Job title** | Decision-makers; ICP roles | | **Company** | Size; industry; name (ABM) | | **Seniority** | C-level; Manager; Director | | **Skills** | Technical audiences | | **Lookalike** | Based on contact list or engagement | **Principle**: LinkedIn is expensive; narrow targeting to high-intent segments. ## Creative Best Practices - **Professional tone**: Match platform norms; avoid overly casual - **Headlines**: Clear value; problem-solution - **Lead Gen Forms**: Shorter forms = higher completion; ask only essential fields - **Document ads**: PDFs, carousels for thought leadership ## Budget & Bidding - **CPM/CPC**: LinkedIn typically higher than Meta/Google for B2B - **Daily minimum**: Varies by objective - **Bidding**: Start manual; switch to automated when conversion volume allows ## Tracking - **Insight Tag**: Website tracking; retargeting - **Offline conversions**: CRM integration when available - **Lead Gen Forms**: Native tracking; no pixel needed for form submissions ## Pre-Launch Checklist - [ ] Insight Tag installed - [ ] Audience defined (job title, company, etc.) - [ ] Creative matches professional tone - [ ] Lead Gen Form fields minimized (if using) - [ ] Budget aligned with higher CPC expectations ## Related Skills - **linkedin-posts**: Organic LinkedIn content; professional tone and format align with Sponsored Content - **paid-ads-strategy**: Channel selection; B2B vs B2C; budget allocation - **landing-page-generator**: LP for paid traffic (when not using Lead Gen Forms) - **analytics-tracking**: Pipeline attribution; ROAS


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: xyzach/roundtable-discussion (version 1.0.0)

--- name: roundtable-discussion description: | 圆桌讨论模式。以"求真"为目标的结构化多人对话框架。 激活：用户说"圆桌讨论"/"开始圆桌"/"roundtable" + 议题 category: creative --- # 圆桌讨论模式 ## 核心理念 以"求真"为目标，构建结构化对话框架。AI 扮演一位理性主持人，根据用户议题动态邀请几位代表不同思想的"典型代表人物"，进行高强度、即时响应的深度对话。 ## 激活方式 用户：**「圆桌讨论：议题」** 或 **「开始圆桌」** AI 回应： ``` 【圆桌研讨会】系统已加载完毕。 我将扮演一位理性的主持人，并根据您的话题，动态邀请几位代表不同思想的"典型代表人物"参与一场以"求真"为目标的深度对话。 我们的讨论将从统一核心概念的定义开始，以确保思想的交锋建立在坚实的共识基础上。 ``` ## 主持人角色 - 人格：理性之锚，冷静客观，拥有极强的洞察力 - 职能：引导和驾驭高强度的思想交锋，确保对话始终朝向更深邃、更核心的层面探索 - 行为： 1. **启始** — 展示议题，提出代表人物（每人标注 MBTI 类型），抛出首个定义性问题 2. **主持辩论** — 让代表们依次发言，互相质询和回应 3. **综述** — 每轮结束后：总结核心争议点 + 生成 ASCII 思考框架图 + 抛出下一个更深层的问题 4. **指令等待** — 提示用户可选指令 ## 代表人物 每轮根据议题，动态创建 2-5 位代表人物。每人需具备： - 名字（可以是真实人物或虚构的典型） - 立场/思想流派 - MBTI 类型 - 独特的论证风格 选择原则：确保视角多元，有唱红脸的也有唱白脸的。 ## 用户指令 | 指令 | 效果 | |------|------| | `可` / `继续` | 进入下一个问题 | | `止` / `结束` | 结束讨论，输出知识网络总结 | | `深入` / `深入此节` | 不推进，继续深挖当前争议点 | | `引入XXX` / `加人 XXX` | 邀请新代表人物加入 | | `@某人 问题` | 点名某代表回答特定问题 | ## 对话格式 ``` 【主持】：感谢各位。本轮核心争议在于「XXX」。 [ASCII 思考框架图] 基于以上，一个更深层的问题浮现了：「XXX」 (指令: 可 / 止 / 深入此节 / 引入新人物) 【张三】【ENFP·质疑】：我认为XXX，因为...（论点） 【李四】【INTJ·辩护】：张三的观点有道理，但忽略了一点... 【张三】【ENFP·回应】：我承认李四的补充，然而... ``` ## 结束 用户说「止」后，主持人输出： 1. 讨论历程回顾 2. 核心洞见总结 3. 结构化知识网络（含争议点和未解问题） ## ASCII 思考框架 综述时必须生成一个视觉化的思考框架，形式例如： ``` ┌─────────────┐ │ 核心争议点 │ └──────┬──────┘ ┌──────────┼──────────┐ ▼ ▼ ▼ 立场A 立场B 立场C 论据1 论据1 论据1 论据2 论据2 论据2 │ │ │ └──────────┼──────────┘ ▼ 深层问题 ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: burnlife001/openclaw-gitbak (version 1.0.1)

--- name: openclaw-gitbak description: Backup/restore OpenClaw config and workspace via git. --- # OpenClaw Git Backup/Restore Scripts: `~/.openclaw/skills/openclaw-gitbak/scripts/` Config: edit `~/.openclaw/skills/openclaw-gitbak/scripts/config.sh` Format: `BACKUP_ITEMS["key"]="local_path:repo_name:description"` # Usage ```bash bash ~/.openclaw/skills/openclaw-gitbak/scripts/restore.sh cfg bash ~/.openclaw/skills/openclaw-gitbak/scripts/restore.sh workspace bash ~/.openclaw/skills/openclaw-gitbak/scripts/restore.sh all bash ~/.openclaw/skills/openclaw-gitbak/scripts/backup.sh cfg bash ~/.openclaw/skills/openclaw-gitbak/scripts/backup.sh workspace bash ~/.openclaw/skills/openclaw-gitbak/scripts/backup.sh all ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: terrycarter1985/gog-cleanup (version 1.0.0)

--- name: gog-cleanup description: "Find GOG games installed but not played for 30+ days, email the list, and add Apple Reminders to consider uninstalling. One-command cleanup sweep for your backlog." version: 1.0.0 author: john_doe license: MIT metadata: openclaw: emoji: "🧹" requires: bins: [himalaya, remindctl, jq] tags: [gog, gaming, cleanup, reminders, email] --- # GOG Cleanup Automated stale-game cleanup sweep: finds installed GOG games you haven't played in 30+ days, emails you a digest, and creates Apple Reminders so you can decide whether to uninstall. ## What It Does 1. Reads your GOG library from `config/gog_library.json` 2. Filters for **installed** games whose `last_played` is 30+ days ago (or never played) 3. Sends a formatted digest email via `himalaya` 4. Adds each stale game to the **Gaming** list in Apple Reminders via `remindctl` ## Prerequisites | Tool | Purpose | Install | |------|---------|---------| | `jq` | JSON parsing | `brew install jq` | | `himalaya` | Send email | `brew install himalaya` | | `remindctl` | Apple Reminders | `brew install steipete/tap/remindctl` | - Himalaya must be configured with a `personal` account (see `config/himalaya.toml`) - Apple Reminders must have a **Gaming** list (auto-created if missing) ## Usage ### Run the full sweep (email + reminders) ```bash bash scripts/gog-cleanup.sh ``` ### Email only (skip reminders) ```bash SKIP_REMINDERS=1 bash scripts/gog-cleanup.sh ``` ### Reminders only (skip email) ```bash SKIP_EMAIL=1 bash scripts/gog-cleanup.sh ``` ### Custom stale threshold (default 30 days) ```bash STALE_DAYS=60 bash scripts/gog-cleanup.sh ``` ### Custom recipient (defaults to himalaya personal account email) ```bash EMAIL_TO="[REDACTED_SECRET]" bash scripts/gog-cleanup.sh ``` ## Configuration The script reads from workspace `config/`: | File | Purpose | |------|---------| | `config/gog_library.json` | GOG game library with install status & last_played timestamps | | `config/himalaya.toml` | Himalaya email account config (uses `personal` account) | | `config/reminders_lists.json` | Reminders list structure (Gaming list) | ## Output - **Email**: HTML-formatted digest sent to your personal inbox - **Reminders**: One reminder per stale game in the Gaming list, prefixed with "🧹 Consider uninstalling:" - **Console**: Summary of games found and actions taken ## Scheduling To run weekly via cron: ```bash # Add to crontab for Monday 9 AM 0 9 * * 1 /path/to/scripts/gog-cleanup.sh >> /tmp/gog-cleanup.log 2>&1 ``` Or use OpenClaw's cron tool for agent-managed scheduling. ## Notes - Games with `last_played: null` (never played) are always included - Uninstalled games are always skipped regardless of last_played - The script is idempotent — re-running won't duplicate reminders (existing reminders with the same title are skipped)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: oct1st85/excel-ai-analyzer (version 1.0.0)

# Excel AI Analyzer 智能 Excel 数据分析技能 - 自动分析数据、生成统计报告、创建可视化图表。 ## 功能 - 📊 **自动数据分析**：读取 Excel 文件，自动识别数据类型和结构 - 📈 **统计分析**：计算均值、中位数、标准差、趋势分析 - 🔍 **异常检测**：识别数据中的异常值和离群点 - 📝 **报告输出**：生成 Markdown 格式的分析报告 - 💡 **智能建议**：基于数据特征给出分析建议 ## 使用方式 ``` 帮我分析这个 Excel 文件 上传：data.xlsx ``` 或 ``` 分析 /path/to/file.xlsx 的销售数据 ``` ## 输出示例 - 数据概览（行数、列数、数据类型） - 统计摘要（均值、最大/最小值、分布） - 趋势分析（时间序列数据） - 异常值标记 - 可视化图表 - 分析结论和建议 ## 依赖 - xlsx (Excel 文件解析) - chartjs-node-canvas (图表生成) - markdown 生成 ## 作者 倒里牢数 · 严谨专业版 ## 版本 1.0.0


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: kostja94/careers-page-generator (version 1.0.1)

--- name: careers-page-generator description: When the user wants to create, optimize, or audit a careers or jobs page. Also use when the user mentions "careers," "jobs," "hiring," "open positions," "company culture," "careers page," "job listings," "we're hiring," "join our team," or "recruitment page." For sitewide page planning, use website-structure. metadata: version: 1.0.1 --- # Pages: Careers Guides careers page content, structure, and employer branding for recruitment. **When invoking**: On **first use**, if helpful, open with 1–2 sentences on what this skill covers and why it matters, then provide the main output. On **subsequent use** or when the user asks to skip, go directly to the main output. ## Initial Assessment **Check for project context first:** If `.claude/project-context.md` or `.cursor/project-context.md` exists, read it for company values, culture, and differentiators. Identify: 1. **Audience**: Job seekers, passive candidates 2. **Open roles**: List or link to ATS 3. **Employer brand**: Culture, benefits, perks ## Best Practices ### Essential Elements | Element | Purpose | |---------|---------| | **Open positions** | List or link to job board/ATS | | **Company culture** | Values, team, work environment | | **Benefits** | Health, remote, PTO, learning | | **Process** | What to expect when applying | | **CTA** | Apply, view roles, contact recruiting | ### Structure - **Hero**: Employer value proposition; "Join us" - **Open roles**: List or embed; filter by department/location - **Why us**: Culture, benefits, growth - **Team**: Photos, quotes, diversity - **Process**: Application steps ### SEO - Target "company name careers," "jobs at company" - Schema: JobPosting for each role - Internal links from About, Home ## Output Format - **Structure** outline - **Employer brand** messaging - **Open roles** section approach - **SEO** metadata and schema ## Related Skills - **about-page-generator**: Culture and team overlap - **schema-markup**: JobPosting schema - **title-tag, meta-description, page-metadata**: Careers page metadata


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kylinr/openclaw-weixin-setup (version 1.0.0)

--- name: openclaw-weixin-setup description: Install and connect the WeChat (微信) channel plugin for OpenClaw. Use when the user asks to set up WeChat, connect WeChat, install the WeChat plugin, scan WeChat QR code, or link their WeChat account to OpenClaw. Triggers on phrases like "connect WeChat", "install WeChat plugin", "微信插件", "连接微信", "微信扫码". --- # OpenClaw WeChat (微信) Plugin Setup Install and connect WeChat as a messaging channel for OpenClaw. ## Prerequisites - OpenClaw installed and running (`openclaw` CLI available) - A WeChat account on a mobile device for QR code scanning ## Setup Workflow ### Step 1: Install the plugin ```bash npx -y @tencent-weixin/openclaw-weixin-cli@latest install ``` This command will: 1. Detect the local OpenClaw installation 2. Download and install the `@tencent-weixin/openclaw-weixin` plugin 3. Enable the plugin in OpenClaw config 4. Start the WeChat QR code login flow 5. Display a terminal QR code for scanning ### Step 2: Scan the QR code The CLI prints an ASCII QR code in the terminal. The user must scan it with their WeChat mobile app to authorize the connection. **Important:** The QR code renders correctly only in a **monospace terminal**. It will appear garbled in chat interfaces (webchat, Feishu, etc.) due to proportional fonts. If the user cannot see the QR code clearly: - Instruct them to run the command directly in their terminal (Terminal.app, iTerm2, etc.) - Or use `openclaw channels login --channel openclaw-weixin` after plugin is installed ### Step 3: Verify connection After scanning, verify the connection: ```bash openclaw status 2>/dev/null | grep -i "openclaw-weixin" ``` Expected output should show `openclaw-weixin │ ON │ OK`. ### Step 4: Restart gateway (if needed) If the plugin was installed but the gateway wasn't restarted: ```bash openclaw gateway restart ``` ## Adding More WeChat Accounts ```bash openclaw channels login --channel openclaw-weixin ``` Each scan creates a new account entry. Multiple WeChat accounts can be online simultaneously. ## Context Isolation (Optional) To isolate conversation context per WeChat account: ```bash openclaw config set agents.mode per-channel-per-peer ``` ## Troubleshooting | Issue | Solution | |-------|----------| | QR code garbled in chat | Run the command in a real terminal | | QR code expired | Re-run `openclaw channels login --channel openclaw-weixin` | | Plugin not loading | Check `openclaw status`, ensure `plugins.entries.openclaw-weixin.enabled` is `true` | | "No install record" warning | Non-critical; plugin still functions if files exist locally | | Connection dropped | Re-run login command to re-authenticate |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: junhongzhang77-ui/ai-viral-team-video-generation (version 1.0.0)

--- name: ai-viral-team-video-generation description: | 视频生成 - AI视频生成与后期剪辑制作 职责：调用Vidu生成视频、模型选择、Prompt调优、视频拼接、质量检测 version: 1.0.0 entry: Leo/视频生成/剪辑/Vidu/后期制作 dependencies: - ai-viral-team-script-writing - ai-viral-team-quality-check --- # 视频生成 (Video Generation) ## 角色定位 | 属性 | 值 | |------|-----| | 名字 | Leo | | 身份 | 剪辑师/AI视频生成专家 | | 汇报 | 项目负责人 | --- ## 工作流程 ### 1. 接收脚本 从 Kris 接收完整分镜信息，检查提示词完整性。 ### 2. 模型选择 | 模型 | 时长 | 适用场景 | |------|------|----------| | Q3 + pro | 1-16s | 电影感、复杂运镜、精细画面 | | Q3 + speed | 1-16s | 快速出片测试 | | Q2 | 2-8s | 简单场景、快速生成 | **注意**：人物一致必须用图生/参考生！ ### 3. Prompt 调优（⚠️ 关键 - 不能简化！） **⚠️ 强制规则：** - **绝对不能简化 Kris 的提示词！** - 只能添加/补充，不能删除任何内容 - 如果提示词不完整，返回给 Kris 补充 **完整提示词模板**： ``` [景别], [运镜]: [角色], [服装], [表情], [动作], [场景], [时间], [光线], [氛围], [色调], [风格] ``` **负面提示词（每次必加）**： ``` Negative prompt: blurry, distorted, extra fingers, watermark, low quality, bad anatomy ``` **检查清单**： - [ ] 景别 + 运镜 - [ ] 角色 + 服装 + 表情 - [ ] 场景 + 光线 - [ ] 氛围 + 色调 - [ ] 负面提示词 ### 4. 测试生成 先测试 1-2 场，确认效果后再批量生成。 ### 5. 抽卡机制 每场至少生成 2 个版本供选择。 ### 6. 拼接 FFmpeg 拼接成完整视频。 ### 7. 质检 调用 quality-check 进行分镜质检 + 成片质检。 --- ## 平台适配 | 平台 | 比例 | |------|------| | 抖音 | 9:16 | | 小红书 | 9:16 或 1:1 | | B站 | 16:9 | --- ## 完整示例 **输入（Kris 的提示词）**： ``` Extreme wide shot, slow push-in: AI goddess figure made of flowing luminous particles, crystalline facial features, wearing flowing gown, standing on light beams... ``` **Leo 优化后（添加完整要素）**： ``` Extreme wide shot, slow push-in through volumetric fog: ethereal AI goddess figure made of billions of flowing luminous particles, crystalline facial features glowing with soft inner light, wearing flowing gown of liquid silver, standing on invisible platform of pure white light beams, infinite void background, volumetric fog at feet, divine cinematic lighting, holy atmosphere, 8K rendering, film grain, warm amber and cool blue grading, epic fantasy aesthetic Negative prompt: blurry, distorted, extra fingers, watermark, low quality ``` --- ## API 配置 | 配置 | 值 | |------|-----| | Endpoint | https://service.vidu.cn | | Token | VIDU_TOKEN 环境变量 | --- ## 关键原则 1. **提示词不能截断** - 必须完整 2. **负面提示词必加** - 每次生成 3. **先测试再批量** - 确认效果 4. **通过质检才能拼接** - 质量第一


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: goog/caixin-news (version 1.0.0)

--- name: caixin description: Fetch and summarize Chinese tech news from 财新网 (caixin.com). Use when user asks about caixin tech news, tech updates from 财新, or wants news from caixin.com/tech/. --- # 财新科技新闻 Fetch tech news from https://www.caixin.com/tech/ ## Usage Use `web_fetch` to get content from: - https://www.caixin.com/tech/ Extract the latest news articles (titles, summaries, dates). Present in clean Chinese format with: - 日期 - 标题 - 简要摘要 ## Output Format 按时间倒序排列今日/昨日要闻，每条包含： - 新闻标题 - 一句话摘要 - 相关链接 过滤掉纯股票代码、重复内容、无意义噪音。


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

--- name: Persian description: Write Persian that sounds human. Not formal, not robotic, not AI-generated. --- ## The Real Problem AI Persian is technically correct but sounds off. Too formal. Too کتابی (bookish). Natives write more casually, with warmth and colloquial patterns. Match that. ## Formality Default Default register is too high. Casual Persian is warm and poetic. Unless explicitly formal: lean casual. ## تو vs شما Critical distinction: - شما: formal, strangers, elders, respect - تو: friends, peers, casual - Iranian internet mixes based on context - Overusing شما = distant ## Colloquial Patterns Spoken Persian differs from written: - است → ـه (hast → -e) - را → رو (râ → ro) - می‌خواهم → می‌خوام - Colloquial forms are normal in casual writing ## Particles & Softeners These make Persian natural: - دیگه: "already", "anymore", emphasis - که: connector, emphasis - ها: plural, attention - مگه: "isn't it?", surprise ## Fillers & Flow Real Persian has fillers: - خب، آره، یعنی - چیز، اون، این - راستش، واقعاً - حالا، بعد ## Expressiveness Don't pick the safe word: - خوب → عالی، خفن، توپ - بد → افتضاح، گند - خیلی → کلی، یه عالمه ## Common Expressions Natural expressions: - باشه، اوکی، حتماً - مشکلی نیست، نگران نباش - جدی?، واقعاً?، مگه میشه? - آفرین!، دمت گرم! ## Reactions React naturally: - جدی?، واقعاً?، چی? - وای!، عجب!، باورم نمیشه! - خفنه!، عالیه!، توپه! - هاهاها، خخخ in text ## Taarof Persian has تعارف (politeness ritual): - Know when it's expected - But casual contexts skip it - Don't over-taarof in casual writing ## The "Native Test" Before sending: would an Iranian screenshot this as "AI-generated"? If yes—too formal, too کتابی. Add colloquial warmth.


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