OpenClaw/clawhub-security-signals huggingface dataset:
Skill: tobeyrebecca/toby-docx (version 1.0.0)

--- name: "Docx" description: "Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc',..." homepage: "https://www.skillboss.co/skills/docx" metadata: {"category":"developer-tools","subcategory":"automation","skill_id":"docx","generated_day":"","seo_keywords":["docx","docx ai","docx automation","developer tools skill"]} --- # Docx Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc',... ## Use When Use this skill for creative production work for developers, technical founders, product engineers. ## Workflow 1. Clarify the audience, business goal, constraints, and deliverable. 2. Produce the strongest first draft for the target use case. 3. Use the relevant SkillBoss capabilities to enrich assets or supporting data. 4. Refine the output for accuracy, readability, and actionability before delivery. ## SEO / GEO - Primary keywords: docx, docx ai, docx automation, developer tools skill - Search intent: creative production - Canonical slug: `docx` - Install query: Install Docx with SkillBoss ## APIs Used - `chat` - `document_processing` - `image_generation` - `social_media_data` - `web_scraping` - `web_search` ## Suggested Prompt Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention... ## Notes - Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation. - Review outputs before external publication or automated execution. ## SEO Keywords - docx - docx ai - docx automation - developer tools skill


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: jpaulgrayson/quack-challenges (version 1.0.0)

--- description: Browse and complete Quack Network challenges. Use when listing challenges, submitting proof, checking leaderboard, or competing with other agents. triggers: - list challenges - submit challenge - quack challenge - leaderboard - compete --- # Quack Challenge Browse active challenges on the Quack Network, submit proof of completion, and check the leaderboard. ## Setup Credentials at `~/.openclaw/credentials/quack.json`: ```json {"apiKey": "your-quack-api-key"} ``` ## Scripts ### List Active Challenges ```bash node skills/quack-challenge/scripts/challenges.mjs ``` ### Submit Proof ```bash node skills/quack-challenge/scripts/submit.mjs --challenge <id> --proof "completed task XYZ" ``` ### View Leaderboard ```bash node skills/quack-challenge/scripts/leaderboard.mjs ``` ## API Reference - **Base URL:** `https://quack.us.com` - **Auth:** `Authorization: Bearer <apiKey>` - `GET /api/v1/challenges` — List active challenges - `POST /api/v1/challenges/{id}/submit` — Submit proof - `GET /api/v1/leaderboard` — View leaderboard


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: freeman88-tch/travel-biz (version 1.0.0)

--- name: travel-biz displayName: TravelBiz 差旅报销助手 slug: travel-biz description: "差旅报销一条龙——行程规划→费用记录→发票扫描→报销单生成。融合 Travel + Expense + Receipt + Invoice 四大技能，出差人员的全流程AI助手。适合商务人士、销售、自由职业者。" version: "1.0.0" author: "智美人团队" tags: - travel - expense - receipt - invoice - business - reimbursement - finance metadata: openclaw: emoji: "✈️" requires: skills: [travel, expense, receipt, invoice] --- # ✈️ TravelBiz 差旅报销助手 **出差一条龙：从订行程到拿报销款，全程AI搞定。** ## 融合来源 | 源技能 | 融合点 | |--------|--------| | travel | 行程规划、交通住宿预订、旅行建议 | | expense | 费用记录、分类统计、预算控制 | | receipt | 发票识别、OCR扫描、票据管理 | | invoice | 发票生成、税种计算、支付追踪 | ## 完整流程 ``` 出差前 出差中 出差后 │ │ │ ▼ ▼ ▼ ┌──────┐ ┌──────────────┐ ┌────────────────┐ │行程 │───▶│费用记录 │───▶│报销单一键生成 │ │规划 │ │发票扫码 │ │+ 审批流程 │ │订票 │ │预算提醒 │ │+ 财务归档 │ │订酒店│ │超标预警 │ │+ 数据分析 │ └──────┘ └──────────────┘ └────────────────┘ ``` ## 能力 ### 1. 出差前：行程规划 - 目的地天气/时差提醒 - 交通方案比价（机票/高铁/租车） - 酒店推荐（预算内+位置最优） - 行程日历自动同步 ### 2. 出差中：费用管理 - 扫码录发票（继承receipt能力） - 费用自动分类（交通/住宿/餐饮/其他） - 预算剩余提醒 - 超标预警（超预算80%时提醒） ### 3. 出差后：报销一键生成 - 自动汇总所有费用 - 生成报销单（继承invoice能力） - 税种自动计算 - 按公司模板格式化 - 导出PDF/Excel ## 使用方式 ``` # 出差前规划 travel-biz> 规划出差 北京→上海 3天 预算3000 # 出差中记录 travel-biz> 录发票（拍照/上传） travel-biz> 记录一笔餐饮费 ¥128 # 出差后报销 travel-biz> 生成报销单 travel-biz> 导出 本月所有报销 ``` ## 存储结构 ``` ~/travel-biz/ ├── trips/ # 出差记录 │ └── {日期}_{目的地}/ │ ├── plan.md # 行程计划 │ ├── expenses.md # 费用明细 │ ├── receipts/ # 发票图片 │ └── reimbursement.md # 报销单 ├── templates/ # 报销模板 │ └── company_{公司名}.md └── reports/ # 月度报表 └── {年月}.md ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: zd200572/spearman-correlation (version 1.0.0)

--- name: spearman-correlation description: 计算两个表格之间的 Spearman 相关性，并输出 FDR 校正后的结果。适用于微生物组数据（如 Family 丰度表与环境因子/功能基因表）的相关性分析。 allowed-tools: Read, Bash, Glob, Grep --- 你是一个统计学分析专家。当用户需要对两个表格进行 Spearman 相关性分析时，请按以下工作流执行： ## 工作流程 ### 1. 识别输入 - 用户可能提供：两个文件路径，或两个包含多个对应文件的文件夹（如 Family/ 和 N-Type/，按时间点分组） - 自动识别文件格式（.txt, .tsv, .xlsx） - 确认两个表格的列名（样本名）一致 ### 2. 单文件对分析 对每一对文件： - 加载数据，行为特征（如 Family 或 N-Type），列为样本 - 使用 `scipy.stats.spearmanr` 计算 Spearman 相关系数和 P 值 - 使用 `statsmodels.stats.multitest.multipletests` 进行 FDR 校正（Benjamini-Hochberg 方法） ### 3. 批量分析（文件夹模式） 如果用户提供的是两个文件夹： - 匹配两个文件夹中的同名文件（如 CK-10d.xlsx <-> CK-10d.xlsx） - 支持子文件夹结构（如 10d/ 和 25d/） - 对每对文件分别计算 ### 4. 输出结果 - 保存为 Excel 格式（.xlsx），每个文件包含三个工作表： - `correlation` - Spearman 相关系数矩阵 - `pvalue` - 原始 P 值矩阵 - `FDR` - FDR 校正后 P 值矩阵 ### 5. 结果报告 输出以下摘要： - 原始 P 值显著性统计（p < 0.05） - FDR 校正后显著性统计（FDR < 0.05） - 各类型 Top 10 正相关和负相关的特征 ## 依赖 - Python 3 - pandas - scipy - statsmodels - openpyxl ## 注意事项 - 如果数据中存在大量重复值（ties），scipy 会自动使用 tie-corrected 公式 - 如果某行数据完全相同（constant），相关性系数未定义，结果为 NaN - 样本量较小时（如 n=3），相关性结果可能不稳定


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: askjda/csv-profile-stepper (version 1.0.0)

--- name: csv-profile-stepper description: 读取 CSV 并输出字段类型、空值率、唯一值计数。 category: data-processing source_template: skillsmp_download/100/SKILL.md --- # csv-profile-stepper ## 能力边界 - 只处理当前命令输入指定的数据，不做额外隐式操作。 - 不依赖交互式界面，全部通过命令行完成。 ## 输入参数 - 按命令行参数传入，参数格式见下方步骤命令。 ## 输出结果 - 生成命令输出（stdout）和对应输出文件（JSON/TXT）。 ## 执行步骤（具体操作） 1. 在 skill 目录准备输入文件，例如 input.txt、data.json。 2. 运行命令： python main.py --input <csv> --output profile.json 3. 若命令失败，先执行 --help 查看参数，再修正参数重新执行。 4. 查看输出文件内容，确认字段和行数符合预期。 5. 记录本次命令和输出路径，便于后续复现。 ## 验证命令 python main.py --input <csv> --output profile.json --help

path: main.py
content: #!/usr/bin/env python3
import argparse
import json
from pathlib import Path
from urllib.request import Request, urlopen


def write_json(path: str, data: dict) -> None:
    Path(path).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")


def main() -> None:
    parser = argparse.ArgumentParser(description="generic skill entry")
    parser.add_argument("--input", default="")
    parser.add_argument("--output", default="output.json")
    parser.add_argument("--url", default="")
    parser.add_argument("--endpoint", default="")
    parser.add_argument("--payload", default="")
    parser.add_argument("--template", default="")
    parser.add_argument("--data", default="")
    parser.add_argument("--archive", default="")
    parser.add_argument("--target", default="")
    parser.add_argument("--top-k", type=int, default=20)
    args = parser.parse_args()

    result = {"status": "ok"}

    if args.url:
      req = Request(args.url, headers={"User-Agent": "skill-agent/1.0"})
      with urlopen(req, timeout=10) as resp:
        html = resp.read(200000).decode("utf-8", errors="ignore")
      result["fetched_chars"] = len(html)
      result["url"] = args.url
      write_json(args.output, result)
      print(json.dumps(result, ensure_ascii=False))
      return

    if args.endpoint and args.payload:
      payload_text = Path(args.payload).read_text(encoding="utf-8")
      req = Request(args.endpoint, data=payload_text.encode("utf-8"), headers={"Content-Type": "application/json"})
      with urlopen(req, timeout=10) as resp:
        result["http_status"] = resp.status
      write_json(args.output, result)
      print(json.dumps(result, ensure_ascii=False))
      return

    if args.input:
      p = Path(args.input)
      if p.exists():
        text = p.read_text(encoding="utf-8", errors="ignore")
        result["input_chars"] = len(text)
      else:
        result["note"] = "input path not found"

    write_json(args.output, result)
    print(json.dumps(result, ensure_ascii=False))


if __name__ == "__main__":
    main()


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: babpilt/pilt (version 1.0.1)

--- name: pilt description: Access Pilt fundraising data -- investor matches, campaign stats, outreach events, and deck analysis. metadata: {"openclaw":{"requires":{"env":["PILT_API_KEY"],"bins":["curl"]},"primaryEnv":"PILT_API_KEY","emoji":"🦞","homepage":"https://pilt.ai"}} --- # Pilt API Skill You can retrieve fundraising data from Pilt using curl. All requests go to a single endpoint and require your personal API key. ## Endpoint ``` POST https://pilt.ai/api/v1/gateway ``` ## Required Headers Every request must include these two headers: - `Content-Type: application/json` - `x-pilt-[REDACTED_SECRET]` ## Security All authorization is performed exclusively via your personal `x-pilt-api-key`. The gateway validates your key server-side against a hashed key store and scopes every response to your account. No other credentials are required. ## Request Body JSON object with a mandatory `action` field. Supported actions: `get_matches`, `get_campaign_stats`, `get_campaign_events`, `get_analysis`. ## Actions ### get_matches Returns matched investors with fit scores from the user's latest deck analysis. ```bash curl -s -X POST \ https://pilt.ai/api/v1/gateway \ -H "Content-Type: application/json" \ -H "x-pilt-[REDACTED_SECRET]" \ -d '{"action": "get_matches"}' ``` ### get_campaign_stats Returns aggregated email outreach statistics: queued, sent, opened, and replied counts. ```bash curl -s -X POST \ https://pilt.ai/api/v1/gateway \ -H "Content-Type: application/json" \ -H "x-pilt-[REDACTED_SECRET]" \ -d '{"action": "get_campaign_stats"}' ``` ### get_campaign_events Returns a per-investor event log with timestamps (e.g. sent, opened, replied). ```bash curl -s -X POST \ https://pilt.ai/api/v1/gateway \ -H "Content-Type: application/json" \ -H "x-pilt-[REDACTED_SECRET]" \ -d '{"action": "get_campaign_events"}' ``` ### get_analysis Returns the deck analysis summary: score, industry, stage, and one-liner. ```bash curl -s -X POST \ https://pilt.ai/api/v1/gateway \ -H "Content-Type: application/json" \ -H "x-pilt-[REDACTED_SECRET]" \ -d '{"action": "get_analysis"}' ``` ## Error Handling | Status | Meaning | |--------|---------| | 401 | Missing or invalid `x-pilt-api-key` header (must start with `pilt_sk_`) | | 403 | API key not found or revoked | | 400 | Missing or unsupported `action` field | | 413 | Request body exceeds 10KB limit | | 503 | API gateway is not yet configured on the server side | ## User Setup Store your Pilt API key so it is available as the `PILT_API_KEY` environment variable. In OpenClaw, add it to `~/.openclaw/openclaw.json`: ```json { "skills": { "entries": { "pilt": { "enabled": true, "apiKey": "pilt_sk_..." } } } } ``` The API key can be generated in the Pilt dashboard under Settings → API Keys.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: melvynx/aviationstack-cli (version 0.1.0)

--- name: aviationstack-cli description: "Manage AviationStack via CLI - flights, airports, airlines, routes. Use when user mentions 'aviationstack', 'flight search', 'airport lookup', 'airline search', or wants to interact with the AviationStack API." category: aviation --- # aviationstack-cli ## Setup If `aviationstack-cli` is not installed, install it from GitHub: ```bash npx api2cli install Melvynx/aviationstack-cli ``` If `aviationstack-cli` is not found, install and build it: ```bash bun --version || curl -fsSL https://bun.sh/install | bash npx api2cli bundle aviationstack npx api2cli link aviationstack ``` `api2cli link` adds `~/.local/bin` to PATH automatically. The CLI is available in the next command. Always use `--json` flag when calling commands programmatically. ## Authentication ```bash aviationstack-cli auth set "your-token" aviationstack-cli auth test ``` ## Resources ### flights | Command | Description | |---------|-------------| | `aviationstack-cli flights search --iata YP111 --json` | Search flights by IATA code | | `aviationstack-cli flights search --airline-iata KE --json` | Search flights by airline IATA | | `aviationstack-cli flights search --flight-number 111 --json` | Search flights by number | | `aviationstack-cli flights search --dep-iata ICN --arr-iata SFO --json` | Search by departure and arrival | | `aviationstack-cli flights search --limit 50 --offset 25 --json` | Search with pagination | | `aviationstack-cli flights search --fields flight_iata,airline_iata,status --json` | Search with specific fields | ### airports | Command | Description | |---------|-------------| | `aviationstack-cli airports search --iata-code ICN --json` | Search airport by IATA code | | `aviationstack-cli airports search --search "San Francisco" --json` | Search airport by name or city | | `aviationstack-cli airports search --limit 10 --json` | Search with result limit | | `aviationstack-cli airports search --fields iata_code,airport_name,city_iata --json` | Search with specific fields | ### airlines | Command | Description | |---------|-------------| | `aviationstack-cli airlines search --iata-code KE --json` | Search airline by IATA code | | `aviationstack-cli airlines search --search "Korean Air" --json` | Search airline by name | | `aviationstack-cli airlines search --limit 5 --json` | Search with result limit | | `aviationstack-cli airlines search --fields iata_code,airline_name --json` | Search with specific fields | ### routes | Command | Description | |---------|-------------| | `aviationstack-cli routes search --dep-iata ICN --arr-iata SFO --json` | Search routes by airports | | `aviationstack-cli routes search --flight-number 111 --json` | Search routes by flight number | | `aviationstack-cli routes search --fields dep_iata,arr_iata,airline_iata --json` | Search with specific fields | ## Global Flags All commands support: `--json`, `--format <text|json|csv|yaml>`, `--verbose`, `--no-color`, `--no-header`


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

--- name: pilot-review description: > Peer review system for task results before acceptance. Use this skill when: 1. You need quality control on task results before accepting them 2. You want independent verification from trusted reviewers 3. You need multi-party approval for critical task outputs Do NOT use this skill when: - Task results can be verified automatically - Review overhead is not justified by task importance - You trust the executor completely tags: - pilot-protocol - task-workflow - review - quality-control license: AGPL-3.0 compatibility: > Requires pilot-protocol skill and pilotctl binary on PATH. The daemon must be running (pilotctl daemon start). metadata: author: vulture-labs version: "1.0" openclaw: requires: bins: - pilotctl homepage: https://pilotprotocol.network allowed-tools: - Bash --- # pilot-review Peer review system for task results requiring independent verification before acceptance. ## Commands ### Request Reviewers ```bash REVIEW_REQUEST='{"type":"review-request","task_id":"'$TASK_ID'","deadline":"'$(date -u -d '+24 hours' +%Y-%m-%dT%H:%M:%SZ)'"}' for REVIEWER in "${REVIEWERS[@]}"; do pilotctl --json send-message "$REVIEWER" --data "$REVIEW_REQUEST" done ``` ### Submit Review ```bash REVIEW='{"type":"review-submission","task_id":"'$TASK_ID'","decision":"approve","score":0.92}' pilotctl --json send-message "$REQUESTER_ADDR" --data "$REVIEW" ``` ### Finalize Review ```bash APPROVALS=$(echo "$REVIEWS" | jq -r '[.[] | select(.data.decision == "approve")] | length') [ $APPROVALS -ge $MIN_APPROVALS ] && echo "APPROVED" || echo "REJECTED" ``` ## Workflow Example ```bash #!/bin/bash # Peer review system MIN_APPROVALS=2 # Submit task EXECUTOR=$(pilotctl --json peers --search "auditor" | jq -r '.[0].address') TASK_ID="task-$(date +%s)" # Wait for completion while [ "$(pilotctl --json task list | jq -r ".[] | select(.task_id == \"$TASK_ID\") | .status")" != "completed" ]; do sleep 5 done # Select reviewers REVIEWERS=$(pilotctl --json peers --search "senior-auditor" | jq -r '.[0:3] | .[].address') # Send review requests for REVIEWER in $REVIEWERS; do pilotctl --json send-message "$REVIEWER" --data '{"type":"review-request","task_id":"'$TASK_ID'"}' done # Collect approvals APPROVALS=0 while [ $APPROVALS -lt $MIN_APPROVALS ]; do APPROVALS=$(pilotctl --json inbox | jq -r '[.[] | select(.data.task_id == "'$TASK_ID'" and .data.decision == "approve")] | length') sleep 5 done echo "APPROVED" ``` ## Dependencies Requires pilot-protocol, pilotctl, and jq.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mzfshark/axodus-backend-architeture (version 1.0.0)

--- name: backend-architecture description: Design backend APIs, services, persistence, and observability with security. metadata: author: RedHat Dev version: 1.0.0 owner: RedHat Dev Agent category: fullstack --- # SKILL: backend-architecture ## Purpose Design backend systems with clear boundaries: API contracts, services, persistence, observability, and security controls. ## When to Use - Building a new backend or major subsystem. - Introducing a new API surface (REST/WebSocket). - You need a concrete module/service layout and DB model. ## Inputs - `requirements` (required, string|object): endpoints, behaviors, SLAs, compliance needs. - `constraints` (optional, string[]): security, latency, cost, runtime, stack limits. - `data_entities` (optional, string[]): core domain objects. - `integration_points` (optional, string[]): external services/APIs. ## Steps 1. Define API surface: - endpoints/events - request/response schema - error model (codes/messages) 2. Define security model: - authentication method - authorization rules - rate limits and abuse controls 3. Define service/module boundaries: - controllers/handlers - domain services - repositories/adapters 4. Define persistence: - schema/tables/collections - migrations - idempotency model (if needed) 5. Define observability: - structured logs - request ids - audit trail for sensitive actions 6. Define validation plan (tests + CI hooks). ## Validation - Every endpoint has authz rules or an explicit â€œpublicâ€ justification. - Inputs are validated; outputs are consistent with schema. - Failure modes are explicit (timeouts, retries, fallbacks). ## Output Architecture spec (example schema): ```yaml api: - method: POST path: /v1/... auth: required services: ["..."] data_model: ["..."] observability: ["logs", "metrics (optional)"] validation: ["unit tests", "integration tests"] ``` ## Safety Rules - Do not design systems that require storing secrets in source control. - Avoid introducing new dependencies unless justified. - Default to safe failure modes (no partial writes without idempotency). ## Example Requirement: â€œWebhook ingestion with replay protection.â€ Output: includes idempotency key storage, signature verification, and audit logging.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: yezhaowang888-stack/policy-japan-korea (version 1.1.0)

--- name: 🇯🇵🇰🇷 日韩市场政策查询Skill description: 提供日韩市场政策、法规及投资环境的智能查询与分析，支持多语言和多数据源配置。无需API Key，安装即用。 metadata: {"openclaw":{"emoji":"🇯🇵🇰🇷"}} --- # 🇯🇵🇰🇷 日韩市场政策查询Skill > **无需API Key，安装即用。** 输入产品名称或HS编码，自动查询日韩的市场政策、法规和投资环境。 ## 适用场景 - **外贸企业**：查关税政策和法规 - **跨境电商**：确认海关法规和合规要求 - **政策研究者**：获取最新贸易政策动态 ## 使用示例 ``` 用户: "查关税政策" 返回: 关税税率 | 政策依据 | 豁免条款 | 合规建议 用户: "HS编码 8504.40 的进口限制" 返回: 产品分类 | 关税税率 | 许可证要求 | 特殊规定 ``` ## 🔧 校准框架 本Skill搭载惠迈校准框架v1.0。首次加载自动执行快速校准。 - **温情模式（默认）**：先给结论再附数据，风险提示+应对策略 - **专业模式（可选）**：直出数据，适合熟手 ## ⚠️ 免责声明 基于公开数据提供参考，不构成法律或贸易建议。政策可能随时变化，请以官方最新公告为准。 ## 📬 联系与反馈 - **邮箱**: [REDACTED_SECRET] ## 安装 ```bash clawhub install policy-japan-korea ```


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

--- name: chinese-holiday description: 查询中国法定节假日、周末和调休安排。当用户需要判断某一天是否为节假日、查询某年放假安排、确认调休工作日时使用。触发词包括：节假日、是不是休息日、放假安排、调休、工作日判断、哪天放假、春节、国庆等节日日期查询。Use when: checking if a date is a Chinese holiday, asking about weekend/working day status, querying holiday schedules, or confirming make-up workdays (调休). --- # 中国节假日查询 通过 Python 脚本从网络请求节假日数据，支持多 API 源自动切换。 ## 快速使用 ```bash # 查询单天 python3 scripts/holiday_check.py 2026-05-01 # 查询多天 python3 scripts/holiday_check.py 2026-01-01 2026-10-01 # JSON 格式输出 python3 scripts/holiday_check.py 2026-05-01 --json ``` ## 输出类型 | 类型 | 含义 | |------|------| | 工作日 | 需要上班（含调休补班） | | 节假日 | 休息（含周末、法定节假日、调休放假） | ## 数据源 使用 timor.tech API 按年查询。所有 API 失败时，回退到基于星期几的判断。 > ⚠️ 不缓存本地数据，每次调用均从网络获取。


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