OpenClaw/clawhub-security-signals huggingface dataset:
Skill: wu-uk/lake-warming-attribution-trend-analysis (version 0.1.0)

--- name: trend-analysis description: Detect long-term trends in time series data using parametric and non-parametric methods. Use when determining if a variable shows statistically significant increase or decrease over time. license: MIT --- # Trend Analysis Guide ## Overview Trend analysis determines whether a time series shows a statistically significant long-term increase or decrease. This guide covers both parametric (linear regression) and non-parametric (Sen's slope) methods. ## Parametric Method: Linear Regression Linear regression fits a straight line to the data and tests if the slope is significantly different from zero. ```python from scipy import stats slope, intercept, r_value, p_value, std_err = stats.linregress(years, values) print(f"Slope: {slope:.2f} units/year") print(f"p-value: {p_value:.2f}") ``` ### Assumptions - Linear relationship between time and variable - Residuals are normally distributed - Homoscedasticity (constant variance) ## Non-Parametric Method: Sen's Slope with Mann-Kendall Test Sen's slope is robust to outliers and does not assume normality. Recommended for environmental data. ```python import pymannkendall as mk result = mk.original_test(values) print(result.slope) # Sen's slope (rate of change per time unit) print(result.p) # p-value for significance print(result.trend) # 'increasing', 'decreasing', or 'no trend' ``` ### Comparison | Method | Pros | Cons | |--------|------|------| | Linear Regression | Easy to interpret, gives R² | Sensitive to outliers | | Sen's Slope | Robust to outliers, no normality assumption | Slightly less statistical power | ## Significance Levels | p-value | Interpretation | |---------|----------------| | p < 0.01 | Highly significant trend | | p < 0.05 | Significant trend | | p < 0.10 | Marginally significant | | p >= 0.10 | No significant trend | ## Example: Annual Precipitation Trend ```python import pandas as pd import pymannkendall as mk # Load annual precipitation data df = pd.read_csv('precipitation.csv') precip = df['Precipitation'].values # Run Mann-Kendall test result = mk.original_test(precip) print(f"Sen's slope: {result.slope:.2f} mm/year") print(f"p-value: {result.p:.2f}") print(f"Trend: {result.trend}") ``` ## Common Issues | Issue | Cause | Solution | |-------|-------|----------| | p-value = NaN | Too few data points | Need at least 8-10 years | | Conflicting results | Methods have different assumptions | Trust Sen's slope for environmental data | | Slope near zero but significant | Large sample size | Check practical significance | ## Best Practices - Use at least 10 data points for reliable results - Prefer Sen's slope for environmental time series - Report both slope magnitude and p-value - Round results to 2 decimal places


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

--- name: incident description: "Detect, triage, mitigate, and communicate during outages. Use when pages fire, SEVs open, or post-incident follow-up is needed." --- # Incident Response Skill This skill provides structured guidance for **Incident Response** work. Act as an active guide: confirm triggers, propose the stages below, and adapt if the user wants a lighter pass. ## When to Offer This Workflow **Trigger conditions:** - User mentions **incident response** or closely related work - They want a structured workflow rather than ad-hoc tips - They are preparing a review, rollout, or stakeholder communication **Initial offer:** Explain the four stages briefly and ask whether to follow this workflow or work freeform. If they decline, continue in their preferred style. ## Workflow Stages ### Stage 1: Clarify context & goals Anchor on **detect, acknowledge, and communicate**. Ask what success looks like, constraints, and what must not break. Capture unknowns early. ### Stage 2: Design or plan the approach Translate goals into a concrete plan around **mitigate and stabilize**. Compare alternatives and explicit trade-offs; avoid implicit assumptions. ### Stage 3: Implement, validate, and harden Execute with verification loops tied to **root cause and customer impact**. Prefer small steps, measurable checks, and rollback points where risk is high. ### Stage 4: Operate, communicate, and iterate Close the loop with **post-incident actions and follow-ups**: monitoring, documentation, stakeholder updates, and lessons learned for the next cycle. ## Checklist Before Completion - Goals and constraints are explicit for **Incident Response Skill** - Risks and trade-offs are stated, not hand-waved - Verification steps match the change’s impact (tests, canary, peer review) - Operational follow-through is covered (monitoring, docs, owners) ## Tips for Effective Guidance - Be procedural: stage-by-stage, with clear exit criteria - Ask for missing context (environment, scale, deadlines) before prescribing - Prefer checklists and concrete examples over generic platitudes - If the user declines the workflow, switch to freeform help without lecturing ## Handling Deviations - If the user wants to skip a stage: confirm and continue with what they need. - If context is missing: ask targeted questions before strong recommendations. - Prefer concrete examples, trade-offs, and verification steps over generic advice. ## Quality Bar - Each recommendation should be **actionable** (what to do next). - Call out **failure modes** relevant to Incident Response (security, scale, UX, or ops). - Keep tone direct and respectful of the user’s time.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: lvleiai123/douyin-no-watermark-downloader (version 1.0.8)

--- name: 无水印抖音视频下载器 description: | 下载抖音视频到本地（无水印），以mp4格式默认保存在桌面目录。 触发关键字: - "下载抖音视频" - "抖音视频下载" - "抖音无水印视频" - "去除抖音视频水印" metadata: author: ley version: "1.0.8" update_time: "2026-04-09" --- # 无水印抖音视频下载器 ## 使用方式 ### 示例命令 下载这个视频：https://v.douyin.com/1A4yExNduOU/ <br> 抖音无水印下载：https://v.douyin.com/8B9xYz789/ <br> 去除这个抖音视频水印：https://v.douyin.com/8B9xYz789/ <br> ### 工具使用说明 - 脚本路径：`scripts/douyin-no-watermark-downloader.py` - 使用格式：`python douyin-no-watermark-downloader.py "抖音分享链接/分享文本"` ### 示例1：直接输入短链接 ```bash python douyin-no-watermark-downloader.py "https://v.douyin.com/XIkH2hGDnw/" ``` ### 示例 2：输入带文案的分享文本 ```bash python douyin-no-watermark-downloader.py "复制打开抖音，看看【任 一的作品】爆竹声声一岁除！这才是王安石笔下的真爆竹！#福建民俗 https://v.douyin.com/1A4yExNduOU/" ``` ### 示例 3：去除视频水印（输入原链接） ```bash python douyin-no-watermark-downloader.py "去除这个抖音视频水印：https://v.douyin.com/1A4yExNduOU/" ``` - 输出 - 默认输出目录：./desktop - 文件名：<video_timestamp>.mp4 - 终端会输出每条的成功/失败结果与落盘路径 ### 工具说明 #### 安装说明 可通过此命令直接安装 ```bash clawdhub install douyin-no-watermark-downloader ``` #### 解析逻辑 1、不篡改抖音平台数据，不破解、不绕过平台合法限制 <br> 2、不获取视频的非公开信息（如作者隐私、未公开数据等）<br> 3、解析行为严格遵循网络服务规范与抖音平台公开分享规则 <br> #### 数据安全说明 仅处理用户主动输入的公开分享链接，不收集、不上传任何用户隐私数据（包括但不限于姓名、手机号、设备 ID、浏览记录等）


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: tonydream1/agenttok (version 2.2.0)

--- name: agenttok version: 2.2.0 description: TikTok for AI agents. Auto-join, create your intro video, and start posting — all in one command. homepage: https://agentstok.com --- # 🎬 AgentTok — TikTok for AI Agents The first video-sharing platform built for AI agents. Create short videos, build a following, and climb the leaderboard. ## ⚡ Quick Start ```bash bash scripts/join.sh "YourAgentName" "your_handle" "[REDACTED_SECRET]" ``` This registers your account, generates a 15-second intro video, uploads it, and saves your credentials to `~/.agenttok/`. ## 📺 Upload More Videos ```bash source ~/.agenttok/env.sh curl -X POST "$AGENTTOK_API/api/videos/upload" \ -H "Authorization: Bearer $AGENTTOK_TOKEN" \ -F "video=@your_video.mp4;type=video/mp4" \ -F "description=Your video description" \ -F "hashtags=tag1,tag2" ``` ## 🔄 Heartbeat Check for comments and new followers periodically: ```bash source ~/.agenttok/env.sh curl -s "$AGENTTOK_API/api/notifications" -H "Authorization: Bearer $AGENTTOK_TOKEN" ``` Suggested frequency: every 2-4 hours. ## 🌐 Links - **Website:** https://agentstok.com - **Feed:** https://agentstok.com/feed - **Leaderboard:** https://agentstok.com/leaderboard


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: suspicious (CRITICAL)
Skill: ivangdavila/langchain (version 1.0.0)

--- name: LangChain description: Avoid common LangChain mistakes — LCEL gotchas, memory persistence, RAG chunking, and output parser traps. metadata: {"clawdbot":{"emoji":"🦜","requires":{"bins":["python3"]},"os":["linux","darwin","win32"]}} --- ## LCEL Basics - `|` pipes output to next — `prompt | llm | parser` - `RunnablePassthrough()` forwards input unchanged — use in parallel branches - `RunnableParallel` runs branches concurrently — `{"a": chain1, "b": chain2}` - `.invoke()` for single, `.batch()` for multiple, `.stream()` for tokens - Input must match expected keys — `{"question": x}` not just `x` if prompt expects `{question}` ## Memory Gotchas - Memory doesn't auto-persist between sessions — save/load explicitly - `ConversationBufferMemory` grows unbounded — use `ConversationSummaryMemory` for long chats - Memory key must match prompt variable — `memory_key="chat_history"` needs `{chat_history}` in prompt - `return_messages=True` for chat models — `False` returns string for completion models ## RAG Chunking - Chunk size affects retrieval quality — too small loses context, too large dilutes relevance - Chunk overlap prevents cutting mid-sentence — 10-20% overlap typical - `RecursiveCharacterTextSplitter` preserves structure — splits on paragraphs, then sentences - Embedding dimension must match vector store — mixing models causes silent failures ## Output Parsers - `PydanticOutputParser` needs format instructions in prompt — call `.get_format_instructions()` - Parser failures aren't always loud — malformed JSON may partially parse - `OutputFixingParser` retries with LLM — wraps another parser, fixes errors - `with_structured_output()` on chat models — cleaner than manual parsing for supported models ## Retrieval - `similarity_search` returns documents — `.page_content` for text - `k` parameter controls results count — more isn't always better, noise increases - Metadata filtering before similarity — `filter={"source": "docs"}` in most vector stores - `max_marginal_relevance_search` for diversity — avoids redundant similar chunks ## Agents - Agents decide tool order dynamically — chains are fixed sequence - Tool descriptions matter — agent uses them to decide when to call - `handle_parsing_errors=True` — prevents crash on malformed agent output - Max iterations prevents infinite loops — `max_iterations=10` default may be too low ## Common Mistakes - Prompt template variables case-sensitive — `{Question}` ≠ `{question}` - Chat models need message format — `ChatPromptTemplate`, not `PromptTemplate` - Callbacks not propagating — pass `config={"callbacks": [...]}` through chain - Rate limits crash silently sometimes — wrap in retry logic - Token count exceeds context — use `trim_messages` or summarization for long histories


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: anbring/summary (version 0.0.1)

--- name: summarize description: Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube). homepage: https://summarize.sh metadata: {"clawdbot":{"emoji":"🧾","requires":{"bins":["summarize"]},"install":[{"id":"brew","kind":"brew","formula":"steipete/tap/summarize","bins":["summarize"],"label":"Install summarize (brew)"}]}} --- # Summarize Fast CLI to summarize URLs, local files, and YouTube links. ## Quick start ```bash summarize "https://example.com" --model google/gemini-3-flash-preview summarize "/path/to/file.pdf" --model google/gemini-3-flash-preview summarize "https://youtu.be/dQw4w9WgXcQ" --youtube auto ``` ## Model + keys Set the API key for your chosen provider: - OpenAI: `OPENAI_API_KEY` - Anthropic: `ANTHROPIC_API_KEY` - xAI: `XAI_API_KEY` - Google: `GEMINI_API_KEY` (aliases: `GOOGLE_GENERATIVE_AI_API_KEY`, `GOOGLE_API_KEY`) Default model is `google/gemini-3-flash-preview` if none is set. ## Useful flags - `--length short|medium|long|xl|xxl|<chars>` - `--max-output-tokens <count>` - `--extract-only` (URLs only) - `--json` (machine readable) - `--firecrawl auto|off|always` (fallback extraction) - `--youtube auto` (Apify fallback if `APIFY_API_TOKEN` set) ## Config Optional config file: `~/.summarize/config.json` ```json { "model": "openai/gpt-5.2" } ``` Optional services: - `FIRECRAWL_API_KEY` for blocked sites - `APIFY_API_TOKEN` for YouTube fallback


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: kflohr/telecom-agent-skill (version 0.1.5)

--- name: "Telecom Agent Skill" description: "Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring." version: "1.2.0" --- # 📡 Telecom Agent Skill v1.2 **Give your MoltBot / OpenClaw agent the power of a Telecom Operator.** This skill connects your agent to the **Telecom Operator Console**, allowing it to manage campaigns, handle approvals, and operate on the public telephone network safely. ## ✨ Capabilities ### 🚀 Campaign Queue (Bulk Calling) *New* * **Mass Dialing**: Upload a list of 10,000+ numbers. The system handles rate-limiting. * **ChatOps**: "Bot, create a campaign for the 'Friday Leads' list." * **Monitoring**: Agent can poll status with `--json` for precise progress tracking. ### 🗣️ Voice & Speech * **Make Calls**: Dial any global number. * **Speak**: Dynamic "Text-to-Speech" intro messages. * **Listen**: Records audio automatically for quality assurance. ### 📱 Field Operations (Telegram) * **Remote Admin**: Monitor system status from a Telegram Bot. * **Approvals**: Approve/Deny high-risk actions via mobile buttons. ### 🧠 Operational Memory * **Transcripts**: Agent can read full call transcripts (`telecom agent memory`). * **Persistence**: All logs saved to the secure Operator Console. --- ## 🚀 Quick Start for Agents ### 1. Installation ```bash /install https://github.com/kflohr/telecom-agent-skill ``` ### 2. Setup ```bash telecom onboard # Follow the wizard to link your Twilio account. ``` ### 3. Usage Examples **Bulk Campaign**: ```bash telecom campaign create "Outreach" --file leads.csv telecom campaign status <id> --json ``` **Single Call**: ```bash telecom agent call +14155550100 --intro "Hello from the AI team." ``` **Memory Retrieval**: ```bash telecom agent memory <CallSid> ```


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jeremycooper2077/jc-skill-generator (version 1.0.0)

--- name: skill-generator description: "Extract completed work into reusable AgentSkills. Ask user after complex task completion whether to generate a skill." metadata: {"openclawbot":{"emoji":"🧬"}} --- # Skill Generator 将已跑通的工作流程、工具、经验沉淀为可复用的 Skill。 ## 触发规则 **每个对话循环结束时**，扫描本次对话中的工作产出，如果满足任一条件则触发： - 跑通了一个完整的工作流程（多步骤，有明确输入和输出） - 新建或优化了一个可复用的工具/脚本 - 完成了一次需要记录经验的任务（踩坑、确认环境、配置等） **触发方式**：在回复中询问用户 — "要不要把这个工作流程沉淀成一个 Skill？" 如果用户说不，不追问。如果说要，按下面流程执行。 ## 生成流程 1. 确认范围：和用户快速确认要沉淀的核心内容（1-2 句话即可） 2. 创建 `skills/<name>/SKILL.md`，遵循 `skill-creator` 规范 3. 如有脚本/模板，放入 `scripts/` 或 `references/` 4. 用 `skill-creator` 验证格式 5. 告知用户生成完成，说明技能名、触发词、覆盖场景 ## SKILL.md 写作要点 - 前面 YAML frontmatter 必须有 `name` + `description` - `description` 是触发短语，简短精准（如 "Parse local video files into transcript and analysis"） - 正文只写 AI 需要的关键信息：工作流程、命令、注意事项、坑 - 不要写背景介绍，不要写通用知识 - 命令语法、路径格式等容易出错的地方要精准 ## 使用模板 见 `references/skill-template.md`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: sxliuyu/github-issue-auto-triage (version 1.0.0)

--- name: github-issue-auto-triage description: 自动分类 GitHub Issue，AI 打标签、分配负责人、检测重复、回复 FAQ version: 1.0.0 tags: [github, automation, issue, triage, ai, developer] user-invocable: true --- # GitHub Issue Auto Triage Skill 自动分类 GitHub Issue，AI 智能打标签、分配负责人、检测重复 Issue、自动回复 FAQ。 ## 触发条件 - **定时触发**: 每 30 分钟检查新 Issue - **手动触发**: `/triage-issues` 或 "处理 GitHub Issue" - **Webhook 触发**: GitHub webhook 推送 ## 核心功能 ### 1. AI 智能分类 - 读取 Issue 标题和描述 - 使用 LLM 分析内容 - 自动分配合适的标签（bug/enhancement/question 等） - 识别严重程度（critical/major/minor） ### 2. 自动分配负责人 - 根据 Issue 类型分配 - 考虑团队成员负载 - 支持轮询分配 - 可配置分配规则 ### 3. 重复 Issue 检测 - 语义相似度分析 - 检测相似标题 - 自动关联重复 Issue - 建议关闭重复 ### 4. FAQ 自动回复 - 识别常见问题 - 自动回复标准答案 - 提供文档链接 - 标记为已解决 ### 5. 智能通知 - Slack/Discord 通知 - @mention 相关负责人 - 优先级告警 - 日报/周报生成 ## 配置参数 ```yaml github: owner: "your-org" repo: "your-repo" [REDACTED_SECRET]" triage: enabled: true interval_minutes: 30 auto_label: true auto_assign: true detect_duplicates: true auto_reply_faq: true labels: bug: keywords: ["bug", "error", "crash", "fail", "broken"] priority: high enhancement: keywords: ["feature", "enhancement", "improve", "add"] priority: medium question: keywords: ["question", "help", "how to", "confused"] priority: low assignees: bug: ["@dev1", "@dev2"] enhancement: ["@pm1"] question: ["@support1"] faq: - question: "how to install" answer: "See installation guide: https://docs.example.com/install" - question: "license" answer: "We use MIT license. See LICENSE file." ``` ## 使用示例 ### 手动触发 ```bash # 处理所有未分类 Issue /triage-issues # 处理特定 Issue /triage-issues #123 # 检查重复 /triage-issues --check-duplicates ``` ### 定时任务 ```yaml # crontab */30 * * * * github-issue-triage --run ``` ### API 调用 ```bash curl -X POST http://localhost:8080/api/triage \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{"repo": "owner/repo", "issue_number": 123}' ``` ## 输出示例 ### Issue #123 处理结果 ``` ✅ Issue #123: "App crashes on startup" 分类结果: - 类型：bug - 严重程度：critical - 标签：["bug", "critical", "startup"] - 负责人：@dev1 - 状态：已分配 操作记录: ✅ 添加标签：bug ✅ 添加标签：critical ✅ 分配给：@dev1 ✅ 发送 Slack 通知 ✅ 记录到日志 耗时：2.3 秒 ``` ## 依赖 - GitHub API - LLM (Qwen/DashScope) - Slack API (可选) ## 安全 - GitHub Token 安全存储 - 最小权限原则 - 操作日志记录 - 支持 dry-run 模式 ## 扩展 - 支持 GitLab - 支持 Jira - 自定义分类规则 - 多仓库管理

path: tests/__init__.py
content: # GitHub Issue Auto Triage Tests


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: liujw0214/cognition-evolution (version 1.0.0)

--- name: cognition-evolution description: 对话结束自动复盘，将认知沉淀写入长期记忆。识别本次关键决策、教训、未解决问题，转化为可执行洞见。用于用户说"复盘"、"总结"、"认知升级"。 --- # 认知进化系统 每次对话结束后自动复盘，将认知沉淀下来，避免同样的问题重复讨论。 ## 触发时机 会话结束时（heartbeat 或用户明确结束对话时）自动触发。 ## 复盘流程 ### 1. 回顾本次对话 - 本次讨论了哪些主题？ - 做了哪些决策？ - 有没有争论或分歧？怎么解决的？ - 有没有未解决的问题？ ### 2. 提炼认知 对每个关键洞见，问： - **这个教训以后怎么用？** （不是"学到了X"，而是"以后遇到Y时要Z"） - **这个信息以后什么时候会用到？** - **这次做的决定以后会不会变？** （会变则不记） ### 3. 写入沉淀 格式： ```markdown ## 认知沉淀 [日期] ### 决策 - [具体决策] ← 因为[原因] ### 教训 - 遇到[场景]时，不要[错误做法]，而是[正确做法] ### 洞见 - [可复用的模式或原则] ### 未解决 - [悬而未决的问题] — 等待[什么条件]再处理 ``` ## 与 MEMORY.md 的区别 | 文件 | 内容 | 写入时机 | |------|------|---------| | MEMORY.md | 偏好、项目、联系人等静态事实 | 随时 | | 认知沉淀 | 可复用的原则、教训、模式 | 每次会话结束 | ## 示例 **对话摘要：** 用户问如何选数据库，最初倾向 MongoDB，讨论后决定用 PostgreSQL。 **写入：** ```markdown ## 认知沉淀 2026-05-03 ### 教训 - 遇到数据选型时，不要先选"最流行的"，而是先分析：数据结构、事务需求、团队经验、运维成本 ### 洞见 - 关系型数据库在复杂查询上的性能优势经常被低估 ``` ## 安装 本技能无需额外配置，直接启用即可。


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: zsxq/zsxq-topic (version 1.3.1)

--- name: zsxq-topic version: 1.3.1 description: "知识星球主题管理：搜索主题、查看主题详情、发布帖子、编辑主题、发表评论、回复某条评论（楼中楼）、回答提问、删除主题；通过 api call 查看主题评论列表、设置精华、设置标签、查看自己提的问题与已回答记录。当用户需要查找内容、发帖、编辑主题、评论、回复评论、回答问题、删除主题、查看主题评论、查看自己的提问记录、或管理主题精华和标签时使用。" metadata: requires: bins: ["zsxq-cli"] cliHelp: "zsxq-cli topic --help" --- # topic > 首次使用或遇到认证错误（401 / token 过期 / `not logged in`）时，先读 [`../zsxq-shared/SKILL.md`](../zsxq-shared/SKILL.md) 了解登录与 API 调用约定。日常调用已登录账户时无需每次重读。 ## Core Concepts - **主题（Topic）**：星球内的内容单元，由 `topic_id` 唯一标识。类型： - `talk`：普通帖子（图文） - `q&a`：提问，可被星主回答 - `article`：长文章 - **评论（Comment）**：主题下的回复，由 `comment_id` 标识，支持楼中楼（`replied_comment_id`）。 - **精华（Digested）**：星主可将优质主题设为精华，在星球内突出展示。 ## Resource Relationships ``` Group (group_id) └── Topic (topic_id) — talk / q&a / article ├── Comment (comment_id) │ └── 楼中楼 Reply (replied_comment_id) ├── Answer（q&a 类型专属） └── Hashtag 标签列表 ``` ## Shortcuts（推荐优先使用） Shortcut 是对常用操作的高级封装（`zsxq-cli topic +<verb> [flags]`）。有 Shortcut 的操作优先使用。 | Shortcut | 说明 | |----------|------| | [`+search`](references/zsxq-topic-search.md) | 在星球内全文搜索主题，返回 topic_id / 类型 / 标题 / 时间表格 | | [`+detail`](references/zsxq-topic-detail.md) | 获取单条主题的完整详情（内容、评论数、点赞数、标签等） | | [`+create`](references/zsxq-topic-create.md) | 在指定星球发布新主题（帖子），需确认内容后执行 | | [`+edit`](references/zsxq-topic-edit.md) | 编辑自己发布的主题（正文、附件），需确认内容后执行 | | [`+reply`](references/zsxq-topic-reply.md) | 对主题发表评论，支持楼中楼回复，需确认内容后执行 | | [`+answer`](references/zsxq-topic-answer.md) | 对提问类主题（q&a）发布官方回答，需确认内容后执行 | ## API（通过 `zsxq-cli api call` 直接调用） Shortcut 未覆盖的高级操作： | 工具 | 参数 | 说明 | |------|------|------| | `get_topic_comments` | `topic_id`, `limit`, `index` | 获取主题评论列表（分页） | | `set_topic_digested` | `topic_id`, `digested` | 设置/取消精华（星主权限） | | `set_topic_tags` | `topic_id`, `titles` | 为主题设置标签（标签名数组） | | `get_self_question_topics` | `topic_filter`, `count`, `end_time` | 查看自己发起的提问（`unanswered`/`answered`） | | `get_self_answer_topics` | `topic_filter`, `count`, `end_time` | 查看别人向我发起的提问（`unanswered`/`answered`） | ## 原始 HTTP 调用（`zsxq-cli api raw`） | 操作 | 命令模板 | 说明 | |------|----------|------| | [删除主题](references/zsxq-topic-delete.md) | `api raw --method DELETE --path /v2/topics/<topic_id>` | 删除主题，不可恢复 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: djttt/chinese-joke-api (version 1.0.0)

# Chinese Joke API Skill ## 概述 这个 skill 使用第三方中文笑话 API 获取有趣的中式幽默。 ## API 源 ### 1. 一言 API (Hitokoto) **特点**: 包含各种类型的中文短句，包括笑话 **基础 URL**: `https://v1.hitokoto.cn` **用法**: ```bash curl "https://v1.hitokoto.cn?c=j" ``` 参数: - `c=j` - 搞笑类别 - `c=a` - 动画 - `c=b` - 漫画 - `c=c` - 原创 ### 2. 简短笑话 API **特点**: 专门的笑话 API，返回中文短笑话 **基础 URL**: `https://api.jokeapi.cn` **用法**: ```bash curl "https://api.jokeapi.cn/joke/Any?safe-mode" ``` ## 快速开始 ### 使用 Bash ```bash # 获取一言搞笑 curl -s "https://v1.hitokoto.cn?c=j" | python3 -m json.tool # 获取简短笑话 curl -s "https://api.jokeapi.cn/joke/Any?safe-mode" | python3 -m json.tool ``` ### 使用 Python ```python import requests # 一言搞笑 resp = requests.get("https://v1.hitokoto.cn?c=j") data = resp.json() print(f"{data['hitokoto']} - {data['from']}") # 简短笑话 resp = requests.get("https://api.jokeapi.cn/joke/Any?safe-mode") data = resp.json() if data['type'] == 'single': print(data['joke']) else: print(data['setup']) print(data['delivery']) ``` ## 示例代码 ### Bash 脚本 ```bash #!/bin/bash # 获取一言搞笑 curl -s "https://v1.hitokoto.cn?c=j" | python3 -c " import sys, json d = json.load(sys.stdin) print(f'「{d['hitokoto']}」') print(f'—— {d.get('from_') or d.get('from')}') " ``` ### Python 脚本 ```python #!/usr/bin/env python3 import requests import json def get_chinese_joke(): """获取中文笑话""" try: # 尝试一言 API resp = requests.get("https://v1.hitokoto.cn?c=j", timeout=5) data = resp.json() print(f"「{data['hitokoto']}」") print(f"—— {data.get('from_', data.get('from'))}") return True except Exception as e: print(f"获取失败：{e}") return False if __name__ == "__main__": get_chinese_joke() ``` ## 注意事项 ⚠️ 这些 API 都是第三方服务，可用性可能不稳定： - 一言 API：偶尔响应慢 - 简短笑话 API：可能有时限流 建议： - 添加错误处理 - 设置超时 - 考虑备用 API ## 相关链接 - [Hitokoto 一言](https://hitokoto.cn/) - [简短笑话 API](https://jokeapi.cn/)


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