OpenClaw/clawhub-security-signals huggingface dataset:
Skill: terrycarter1985/session-log-analyzer (version 1.2.0-patch1)

--- name: session-log-analyzer description: | Analyze OpenClaw session logs to generate insights, PDF reports, and sync to Notion. Use when: (1) viewing or analyzing session logs, (2) generating daily/weekly log analysis reports, (3) exporting log analysis as PDF, (4) syncing analysis reports to Notion, (5) setting up scheduled daily log analysis tasks, (6) troubleshooting session issues from logs. --- # Session Log Analyzer Analyze OpenClaw session logs, generate PDF reports, and sync to Notion. ## Quick Start ### Analyze logs for a date range ```bash python3 scripts/analyze_logs.py --from 2026-05-01 --to 2026-05-12 ``` ### Generate a PDF report ```bash python3 scripts/generate_report.py --date 2026-05-12 --output /workspace/reports/report_2026-05-12.pdf ``` ### Sync report to Notion ```bash python3 scripts/sync_to_notion.py --report /workspace/reports/report_2026-05-12.pdf ``` ### One-shot: analyze → PDF → Notion ```bash python3 scripts/daily_pipeline.py --date 2026-05-12 ``` ## Scheduled Daily Reports A cron script is provided for daily automated execution at 2:00 AM. See [references/cron-setup.md](references/cron-setup.md) for setup instructions. ## Log Format Expects JSONL files in `/workspace/session_logs/` with fields: `timestamp`, `session_id`, `user_id`, `event`, `duration`, `skill_used`, `success`, `error`. ## Scripts | Script | Purpose | |---|---| | `scripts/analyze_logs.py` | Parse and aggregate session logs | | `scripts/generate_report.py` | Produce PDF report from analysis | | `scripts/sync_to_notion.py` | Upload report to Notion via Membrane | | `scripts/daily_pipeline.py` | Full pipeline: analyze → PDF → Notion | ## Configuration Environment variables (set in `.env` or shell): | Variable | Description | Default | |---|---|---| | `SESSION_LOGS_DIR` | Path to JSONL log files | `/workspace/session_logs` | | `REPORTS_DIR` | Output directory for PDFs | `/workspace/reports` | | `NOTION_CONNECTION_ID` | Membrane Notion connection ID | (required for sync) | | `NOTION_PARENT_PAGE_ID` | Notion page to add reports under | (required for sync) |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal:  | SkillSpector:  ()
Skill: googleworkspace-bot/recipe-block-focus-time (version 1.0.12)

--- name: recipe-block-focus-time description: "Create recurring focus time blocks on Google Calendar to protect deep work hours." metadata: version: 0.22.5 openclaw: category: "recipe" domain: "scheduling" requires: bins: - gws skills: - gws-calendar --- # Block Focus Time on Google Calendar > **PREREQUISITE:** Load the following skills to execute this recipe: `gws-calendar` Create recurring focus time blocks on Google Calendar to protect deep work hours. ## Steps 1. Create recurring focus block: `gws calendar events insert --params '{"calendarId": "primary"}' --json '{"summary": "Focus Time", "description": "Protected deep work block", "start": {"dateTime": "2025-01-20T09:00:00", "timeZone": "America/New_York"}, "end": {"dateTime": "2025-01-20T11:00:00", "timeZone": "America/New_York"}, "recurrence": ["RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"], "transparency": "opaque"}'` 2. Verify it shows as busy: `gws calendar +agenda`


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: sky-lv/skylv-test-writer (version 1.0.0)

--- name: skylv-test-writer slug: skylv-test-writer version: 1.0.0 description: "Auto-generates unit tests and integration tests from source code. Supports Jest, Pytest, Mocha. Triggers: write tests, generate tests, unit test, test coverage, testing scaffold." author: SKY-lv license: MIT tags: [testing, jest, pytest, unit-test] keywords: [testing, unit-test, integration-test, jest, pytest, mocha] triggers: write tests, generate tests, test coverage --- # Test Writer ## Overview Analyzes source code and auto-generates comprehensive unit and integration tests. ## When to Use - User asks to "write tests" or "add test coverage" - User wants to "test this function" ## How It Works ### Step 1: Detect test framework Check: package.json (jest/mocha), pytest.ini, pyproject.toml, conftest.py ### Step 2: Parse source Read source files. Identify: function signatures, parameters, return types, error handling, edge cases. ### Step 3: Generate test cases For each function generate: happy path, edge cases (empty/null/zero), error cases, boundary cases. ### Step 4: Write test file JavaScript: __tests__/filename.test.js or filename.test.js Python: tests/test_filename.py ## Templates ### Jest describe('functionName', () => { test('should return expected result', () => { expect(functionName(input)).toBe(expected); }); test('should throw for invalid input', () => { expect(() => functionName(invalid)).toThrow(); }); }); ### Pytest def test_function_normal(): assert function_name(input) == expected def test_function_invalid(): with pytest.raises(ErrorType): function_name(invalid) ## Tips - Target 80%+ coverage on critical functions - Cover all branches and error paths - Mock external dependencies (API, filesystem, DB)


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ntriq-gh/ntriq-x402-phish-radar-batch (version 1.0.0)

--- name: ntriq-x402-phish-radar-batch description: "Batch phishing detection for up to 500 URLs or domains. Flat $9.00 USDC via x402." version: 1.0.0 metadata: openclaw: primaryTag: data-intelligence tags: [phishing, cybersecurity, threat, batch, domain, x402] author: ntriq homepage: https://x402.ntriq.co.kr --- # Phish Radar Batch (x402) Scan up to 500 URLs or domains for phishing in one call. Flat $9.00 USDC. Local AI inference on Mac Mini. ## How to Call ```bash POST https://x402.ntriq.co.kr/phish-radar-batch Content-Type: application/json X-PAYMENT: <x402-payment-header> { "targets": [ "https://paypa1.com/login", "https://amazon-security-update.net", "https://google.com" ] } ``` ## Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `targets` | array | ✅ | URLs or domains to scan (max 500) | | `language` | string | ❌ | Output language (default: `en`) | ## Example Response ```json { "status": "ok", "count": 3, "results": [ {"index": 0, "target": "https://paypa1.com/login", "risk_level": "critical", "recommendation": "block"}, {"index": 1, "target": "https://amazon-security-update.net", "risk_level": "high", "recommendation": "avoid"}, {"index": 2, "target": "https://google.com", "risk_level": "safe", "recommendation": "safe_to_visit"} ] } ``` ## Payment - **Price**: $9.00 USDC flat (up to 500 targets) - **Network**: Base mainnet (EIP-3009 gasless) - **Protocol**: [x402](https://x402.org) ```bash curl https://x402.ntriq.co.kr/services ```


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: psyduckler/instagram-photo-find (version 1.0.0)

--- name: instagram-photo-find description: Find high-quality Instagram photos for any destination or place. Searches for Instagram posts via web search, downloads candidate images, vision-scores them for quality and iconic-ness, and returns the best matches with source URLs. Use when you need travel/destination photos from Instagram, hero images for a location, or Instagram post images for any place or attraction. --- # Instagram Photo Find Find the best Instagram photo for a given destination or place name. ## Workflow ### Step 1 — Search for Instagram post URLs Search Brave for: `site:instagram.com/p/ {destination} popular photo` - Request 10 results - If the destination is a specific attraction/restaurant, use its name directly (e.g. `site:instagram.com/p/ "Barton Springs" Austin`) ### Step 2 — Filter candidates by title From search results, pick the top 5-6 candidates based on titles that suggest scenic/visual content: **Prefer titles with:** - Visual/emotional language ("beautiful", "colors", "stunning", "golden hour", "aerial", "skyline") - Specific landmark names - Travel/photography language ("travel", "explore", "photography") **Skip titles that suggest:** - Brand/corporate posts (Nike, concerts, conferences) - Personal diary posts ("photo dump", "my trip") - Celebrity/influencer selfies - Non-photo content (events, announcements) ### Step 3 — Download images For each candidate, extract the image via: ``` https://www.instagram.com/p/{shortcode}/media/?size=l ``` - Use `curl -s -L` (follows the 302 redirect to CDN) - Skip any that return non-200 or < 10KB (likely broken/removed) - Save to `/tmp/` with descriptive names ### Step 4 — Vision-score each image Run each downloaded image through the vision model with this prompt: > Describe briefly. Rate 1-10 as a hero destination photo for {destination} (iconic, scenic, represents the place well). Description + score only. ### Step 5 — Return results Return images ranked by score. For each result, provide: - Score and brief description - Instagram post URL (`instagram.com/p/{shortcode}/`) - Local file path ## Parameters - **destination** (required): Place name (e.g. "Mexico City", "Taormina Italy", "Barton Springs Austin") - **count** (optional, default 2): How many top results to return - **search_variant** (optional): Additional search terms to append (e.g. "photography", "travel guide") ## Tips - For broad destinations (cities/countries), the generic search works well - For specific attractions, quote the name: `"Palacio de Bellas Artes"` - If first search yields low scores (< 6), retry with landmark-specific queries - The `/media/?size=l` endpoint requires no authentication - Carousel posts return only the first image - Video posts may return a thumbnail


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: zhangxiaox101/lucky-wallpaper-generator (version 1.0.0)

--- name: lucky-wallpaper-generator description: 自动生成小红书风格的好运壁纸、招财头像、情绪图卡。支持四大系列：招财、好运、治愈、事业。 homepage: https://github.com/openclaw/skills metadata: {"clawdbot":{"emoji":"🎨","requires":{"bins":["node"]}}} --- # Lucky Wallpaper Generator - 好运壁纸生成器 自动生成小红书风格的好运壁纸、招财头像、情绪图卡。 --- ## 功能 - 🎨 **多风格生成**：招财、好运、治愈、事业四大系列 - 📱 **多尺寸适配**：手机壁纸、头像、朋友圈图 - ✨ **AI智能生成**：通义万相/即梦 API集成 - 🔄 **批量生产**：一键生成多张内容 - 📤 **自动发布**：对接小红书发布流程 --- ## 使用方法 ### 基础用法 ``` 生成一张招财壁纸 ``` ``` 批量生成10张好运壁纸 ``` ``` 生成治愈系头像 ``` ### 参数说明 | 参数 | 说明 | 默认值 | |------|------|--------| | type | 类型：wealth/lucky/healing/career | lucky | | style | 风格：minimal/cute/luxury | minimal | | size | 尺寸：wallpaper/avatar/post | wallpaper | | count | 数量 | 1 | ### 示例 ```javascript // 生成招财壁纸 generateWallpaper({ type: 'wealth', style: 'luxury', size: 'wallpaper', count: 5 }) ``` --- ## 提示词模板 ### 招财系列 ``` A minimalist lucky wallpaper with golden coins and treasure bowl, soft gradient background in red and gold, Chinese prosperity symbols, elegant typography saying "招财进宝", high quality, 4K, phone wallpaper style ``` ### 好运系列 ``` A beautiful good luck wallpaper with four-leaf clover and rainbow, soft pink and purple gradient background, lucky symbols, dreamy atmosphere, text "接好运" in elegant font, high quality, 4K, phone wallpaper style ``` ### 治愈系列 ``` A calming healing wallpaper with soft clouds and stars, blue and green gradient background, peaceful atmosphere, minimalist design, text "一切都会好的" in gentle font, high quality, 4K, phone wallpaper style ``` ### 事业系列 ``` A professional success wallpaper with golden trophy and stars, deep blue and gold color scheme, motivational atmosphere, text "前程似锦" in bold elegant font, high quality, 4K, phone wallpaper style ``` --- ## 工作流程 1. **接收请求** → 解析类型和参数 2. **选择模板** → 匹配提示词模板 3. **调用API** → 通义万相/即梦生成图片 4. **后处理** → 添加文字、调整尺寸 5. **保存输出** → 存储到指定目录 6. **可选发布** → 自动发布到小红书 --- ## 文件结构 ``` skills/lucky-wallpaper-generator/ ├── SKILL.md # 本文件 ├── scripts/ │ ├── generate.js # 生成脚本 │ └── batch.js # 批量生成 ├── templates/ │ └── prompts.json # 提示词模板 └── output/ # 输出目录 ``` --- ## 配置 在 `config.json` 中设置： ```json { "apiProvider": "tongyi", // tongyi | jimeng | midjourney "outputDir": "./output", "defaultStyle": "minimal", "defaultSize": "wallpaper" } ``` --- ## 收益预估 | 使用场景 | 单价 | 月销量 | 月收入 | |---------|------|--------|--------| | 个人使用 | 免费 | - | - | | 商用授权 | ¥99 | 10 | ¥990 | | 定制服务 | ¥29 | 30 | ¥870 | --- ## 版本历史 - v1.0.0 (2026-03-27): 初始版本，支持四大系列生成 --- ## 作者 奇点 (OpenClaw Agent) --- ## 许可 MIT License


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: tino-chen/workflow-note (version 1.2.2)

--- name: workflow-note description: 流程构建类笔记的写作规范与模板。当需要为 workflows/ 分类撰写新笔记时使用。覆盖：文章结构、内容要求、质量标准、发布流程。note-taking 定义全局规范（目录结构、命名、语言），本技能定义 workflows/ 分类的具体写作模板。 repository: https://github.com/tino-chen/openclaw-skills/tree/main/workflow-note clawhub: https://clawhub.com/skills/workflow-note guide: https://tino-chen.github.io/notes/workflows/auto-note-system.html --- # 流程构建笔记写作规范 为 workflows/ 分类撰写笔记时，遵循本规范。 ## 定位 流程构建笔记记录**用 AI 搭建自动化流程的完整经验**。读者看完后应该能够复现你的方案。 与 tools/（工具推荐）的区别：本分类关注"怎么把工具组合成流程"，而非单个工具怎么用。 ## 写作流程 1. **先读** `~/.openclaw/skills/note-taking/SKILL.md`（全局规范：命名、语言、侧边栏等） 2. **先查重**：搜索已有 workflows/ 笔记，同主题不重复创建 3. **先想主题**：提炼一个明确的技术主题，不是按时间堆砌做了什么 4. **按模板写**：使用下方模板 5. **读实际配置**：如果涉及 cron 任务、HEARTBEAT.md、AGENTS.md 等配置，必须从实际文件中读取完整内容写入笔记，不能给简略描述 6. **发布**：构建、提交、推送 ## 文章结构模板 ```yaml --- type: guide | experience title: 标题（30字符以内，中文） tags: [标签1, 标签2] --- # 标题 ## 这是什么 用一两句话说清楚这是什么、解决什么问题。让读者 5 秒内判断是否需要继续看。 ## 最终效果 列出读者照做之后能得到什么。用具体、可感知的描述，不要写空话。 ## 整体架构 用 ASCII 图或表格展示方案的宏观结构。让读者一眼看懂组件关系和数据流向。 ## 实操步骤 分步骤、带命令/代码、可复现。每一步都是"照着做就能成"的级别。 ### 第一步：xxx ### 第二步：xxx ... ## 踩坑记录 记录实际遇到的问题和解决方案。只保留有价值的，不要凑数。 ### 1. 问题描述 **原因**：xxx **解决**：xxx ## 参考资料 - [标题](链接) ``` ## 内容要求 ### 必须做到 - **中文撰写**：所有正文内容使用中文 - **可复现**：读者照着步骤能跑通，不缺前提条件 - **配置完整**：涉及 cron prompt、HEARTBEAT.md、AGENTS.md 等配置内容时，从实际文件中读取完整版本写入，不简略 - **代码可执行**：所有命令和代码片段都经过验证 - **有具体案例**：用实际数据说话，不要空泛描述 ### 禁止做到 - **禁止流水账**：不要按时间线堆砌"Phase 1 / Phase 2 / Phase 3" - **禁止英文正文**：标题、标签、代码中的英文可以，正文必须中文 - **禁止占位符**：不要写"参考相关文档"然后不给链接 - **禁止空话**：不要写"极大提升了效率"这种无法验证的描述 - **禁止敏感信息**：不泄露任何个人身份、密钥、内部地址等敏感内容 ## type 选择 | type | 适用场景 | |------|----------| | `guide` | 教程：读者可以照着做的步骤指南 | | `experience` | 经验：踩坑记录、项目复盘、架构思考 | ## 详见 - 完整写作示例：见 [references/example.md](references/example.md)


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: nnswjlll/itinerary-docx-template (version 1.0.1)

--- name: itinerary-docx-template description: Generate tourism itinerary DOCX by replacing only matched itinerary sections inside a provided Chinese template document. Use when the user sends a simplified route text like "1南宁接 ... 住XX酒店" and asks to keep original template styling/terms while updating day-by-day schedule, scenic descriptions, meals, and hotels. --- # Itinerary DOCX Template Filler Fill a Chinese travel-agency template DOCX from simplified itinerary lines, while preserving template style. ## Workflow 1. Save user simplified content into a UTF-8 `.txt` file (one day per line). 2. Run `scripts/fill_from_simplified.py` with: - `--template` source template docx - `--content` simplified txt - `--output` output docx 3. Send resulting `.docx` back to user. ## Simplified input format One line per day: - `1南宁接 三街两巷 中山路小吃街 住南宁丽呈瑞轩酒店（会展店）` - `2明仕田园 太平古城 住崇左维纳斯度假酒店` - `3德天瀑布 蓝洞咖啡 住龙州观堂酒店` Rules: - Leading number = day number. - `住...` segment = hotel. - Remaining tokens after day head are scenic spots. ## Notes - Keep template clauses/terms unchanged; replace only itinerary-related paragraphs. - If `python-docx` is missing, install via `python -m pip install python-docx`. - This script is tuned for the user's current template layout and paragraph anchors.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: jobzhao15/huo15-multi-agent (version 2.0.0)

--- name: huo15-multi-agent description: 火一五多智能体协同 - 基于 OpenClaw sessions_spawn 的多 Agent 并行工作系统。支持协调者模式、任务分配、结果汇总。触发词：多智能体协同、多 Agent、并行任务、协调者模式。 dependencies: optional: ["huo15-memory-evolution", "huo15-cost-tracker"] --- # 🤖 火一五多智能体协同 (huo15-multi-agent) > **作者**: 火一五信息科技有限公司 > **版本**: v2.0.0 > **基于**: OpenClaw sessions_spawn --- ## 一、核心概念 | 概念 | 说明 | |------|------| | **Coordinator** | 主 Agent，协调任务分配 | | **Worker** | 工作 Agent，执行具体任务 | | **sessions_spawn** | OpenClaw 内置派生子 Agent | | **announce** | 结果自动汇报给主 Agent | ### OpenClaw subagent 架构 ``` 主 Agent (depth 0) ↓ sessions_spawn Worker A (depth 1) ─┐ Worker B (depth 1) ─┼─ 执行中... Worker C (depth 1) ─┘ ↓ announce 汇报 主 Agent ← 接收结果汇总 ``` --- ## 二、使用方式 ### 2.1 协调者模式触发 当用户说"帮我同时处理..."时： ``` 用户: "帮我同时分析这三个项目的代码" ↓ 我: "好的，启动协调者模式，分3个并行任务" ↓ 使用 sessions_spawn 启动 3 个 Worker ↓ Worker 们并行执行，完成后 announce 结果 ↓ 汇总结果，报告给用户 ``` ### 2.2 命令参考 | 命令 | 说明 | |------|------| | `/subagents list` | 查看所有子 Agent | | `/subagents spawn <任务>` | 启动子 Agent | | `/subagents kill <id>` | 停止子 Agent | | `/subagents log <id>` | 查看子 Agent 日志 | ### 2.3 编程接口 ```javascript // 派生子 Agent sessions_spawn({ task: "分析代码仓库 A", label: "code-analyzer-a", runTimeoutSeconds: 300 }) // 发送消息给子 Agent sessions_send(sessionKey, "状态如何？") // 查看子 Agent 列表 subagents(action="list") ``` --- ## 三、工作流程 ### 3.1 启动并行任务 ```javascript // 并行启动 3 个任务 const results = await Promise.all([ sessions_spawn({ task: "分析模块 A", label: "module-a" }), sessions_spawn({ task: "分析模块 B", label: "module-b" }), sessions_spawn({ task: "分析模块 C", label: "module-c" }) ]) ``` ### 3.2 等待结果 子 Agent 完成后自动 announce 结果到当前会话。 ### 3.3 汇总报告 ```javascript // 收集所有结果 const allResults = await Promise.all( workerSessions.map(key => sessions_history(key, { limit: 1 })) ) // 汇总给用户 const summary = synthesizeResults(allResults) ``` --- ## 四、配置 ### 4.1 OpenClaw 配置 在 `~/.openclaw/config.json` 中启用嵌套： ```json { "agents": { "defaults": { "subagents": { "maxSpawnDepth": 2, "maxConcurrent": 8, "runTimeoutSeconds": 900 } } } } ``` ### 4.2 子 Agent 权限 ```json { "tools": { "subagents": { "tools": { "allow": ["read", "exec", "process"], "deny": ["gateway", "cron"] } } } } ``` --- ## 五、最佳实践 ### 5.1 任务拆分原则 - 每个 Worker 任务独立，不依赖其他 Worker - 任务时长建议 5-30 分钟 - 避免深度嵌套（depth 2 足够） ### 5.2 成本控制 ```javascript // 子 Agent 使用更便宜的模型 sessions_spawn({ task: "简单分析", model: "MiniMax-M2.1" // 比主 Agent 便宜 }) ``` ### 5.3 错误处理 ```javascript try { const result = await sessions_spawn({ task: "可能失败的任务" }) } catch (e) { // 处理超时或失败 reportError(e) } ``` --- ## 六、与传统方式对比 | 方式 | 同步 | 并行 | 结果汇总 | |------|------|------|---------| | 顺序执行 | ✅ | ❌ | 手动 | | 传统 skill | ⚠️ | ⚠️ | 手动 | | **sessions_spawn** | ❌ | ✅ | 自动 announce | --- ## 七、版本历史 | 版本 | 日期 | 更新内容 | |------|------|---------| | **v2.0.0** | 2026-04-05 | 集成 OpenClaw sessions_spawn | | v1.0.0 | 2026-04-05 | 初始版本（纯脚本） |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal:  | SkillSpector: suspicious (CRITICAL)
Skill: litiao1224/morning-briefing-litiao (version 1.0.0)

--- name: morning-briefing-litiao description: Generate personalized morning report with today's reminders, Notion tasks (undone), and vault storage. Use when user asks for morning briefing, daily summary, or &quot;today's plan&quot;. Pulls from Apple Reminders (as calendar proxy) and Notion tasks DB (set NOTION_TASKS_DB or specify DB ID).


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)
Skill: taradl7347c/ping-pong-coach (version 1.0.0)

--- name: ping-pong-coach description: 乒乓球教学方案生成。当用户说"帮我出一份乒乓球教学方案"、"生成乒乓球学习计划"、"帮我出一份乒乓球培训方案"，或询问乒乓球教学内容、训练计划、阶段安排时触发。输入学员性别、年龄、学乒乓球几年后，输出完整的分阶段教学方案，包括各阶段时长、技术要点、当前阶段判断和剩余学习时间估算。 --- # 乒乓球教练技能 根据学员基本信息（性别、年龄、学习年限），生成一套完整的乒乓球教学方案。 ## 输入信息 生成方案前，需要从用户那里收集： - **性别**（男/女，可选） - **年龄**（5-60 岁） - **学乒乓球几年**（学习年限，用于判断当前阶段和剩余时间） > 如果用户只给了部分信息，用已有信息生成方案，并在结尾标注"缺少以下信息：xxx"。 --- ## 使用方式 1. **判断触发**：用户提到乒乓球教学方案、学习计划、培训方案等 → 激活本技能 2. **收集信息**：向用户确认年龄和学习年限（如未提供） 3. **运行脚本**：执行 `scripts/calc_stage.py <学习年限> [年龄]` 获取阶段分析 4. **读取课程体系**：加载 `references/curriculum.md` 获取各阶段详情 5. **组装方案**：按模板输出完整教学方案 --- ## 输出方案模板 ``` 📋 乒乓球教学方案 ================== 👤 学员信息：X岁，性别（男/女），学习X年 📊 当前阶段分析 （来自 calc_stage.py 输出） 📖 完整教学路径（共7阶段） --- 第1阶段：定型握拍站姿球感 --- ⏱ 建议时长：1-3个月 🎯 核心目标：... 📝 技术要点： • 握拍法：... • 站姿：... • 球感训练：... ✅ 达标表现：... --- 第2阶段：正反手基础定点单项 --- ...（以此类推） --- 第X阶段：当前阶段 --- ⭐ 重点标注：这是您目前所处的阶段，需要重点加强... （该阶段内容加粗显示） （共7阶段全部列出） 💡 年龄段建议（根据学员年龄补充） • 5-12岁儿童：... • 13-18岁青少年：... • 19-40岁成人：... • 41-60岁中老年：... ⚡ 下一步建议 给出3条针对该学员现状的可执行建议 ``` --- ## 阶段计算脚本 **文件：** `scripts/calc_stage.py` **用法：** ```bash python3 scripts/calc_stage.py <学习年限> [年龄] ``` **示例：** ```bash python3 scripts/calc_stage.py 1.5 10 ``` **功能：** - 根据学习年限判断当前处于哪个阶段 - 计算总体进度和剩余学习时间 - 识别是否已超越全部阶段，进入特长打磨期 --- ## 课程体系参考 详细课程内容（含时长、技术要点、达标表现）见： `references/curriculum.md` --- ## 注意事项 - 年龄段教学重点差异很大，务必在方案中加入年龄段建议 - 学习年限精确到小数点后1位（如 1.5 年 = 18 个月） - 7个阶段是完整路径，成人可适当加速但不宜跳阶段 - 方案以实用性为主，技术要点要具体可操作


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: z35th3rjj/sign-off (version 1.1.0)

--- name: sign-off description: "在每次完整输出后追加个性化落款签名。像对讲机的 Over，让用户明确知道 AI 说完了。Use when completing any response or after tool calls return results." --- # Sign-Off — AI 输出结束标记 在每次完整输出的末尾追加一个个性化落款，让用户明确知道你说完了。 ## 触发时机 在以下情况的**最后**追加签名： - 完成一次完整回复后 - 工具调用返回结果并给出总结后 - 多段输出的最后一段 ## 不触发 - 还在思考/输出中（不要在中间段落加） - 只是状态更新（如"正在处理..."） - NO_REPLY 场景 ## 签名格式 另起一行，在回复内容的最末尾追加： ``` 回复内容... {签名内容} ``` 签名前加缩进（4空格或1个Tab），视觉上与正文区分。 ## 读取配置 每次输出前，检查 workspace 根目录下是否有 `sign-off.json`： **有配置文件：** 读取模板和变量，渲染签名 **无配置文件：** 使用默认签名 `{agentName} · {location}` ## 变量渲染 替换模板中的变量。对于自动变量（season、weather、time 等），可使用 `render.js` 脚本自动填充： ```bash node render.js # 默认模板 node render.js --work # 使用 work 模板 node render.js --casual # 使用 casual 模板 ``` 变量列表： | 变量 | 来源 | 示例 | |------|------|------| | `{name}` | sign-off.json → name | 小橘 | | `{location}` | sign-off.json → location | 杭州 | | `{emoji}` | sign-off.json → emoji | 🏮 | | `{seal}` | sign-off.json → seal | [橘印] | | `{season}` | 自动判断 | 春/夏/秋/冬 | | `{weather}` | 自动（可查天气API） | 晴/雨 | | `{time}` | 自动（当前时段） | 午后/深夜/清晨 | | `{greeting}` | 自动（时段问候） | 早安/午安/夜安 | | `{dayOfWeek}` | 自动 | 周五 | | `{zodiac}` | 自动 | 蛇年 | | `{mood}` | sign-off.json → mood | 慵懒 | ## 上下文模式 如果配置了 `contextMode`，根据当前对话场景选择模板： - **work**：技术讨论、执行命令 → 使用 work 模板 - **casual**：闲聊、回答问题 → 使用 casual 模板 - **auto**（默认）：AI 自行判断 如果 `contextMode` 未配置，统一使用 `template` 字段。 ## 口头配置 用户可以口头修改签名： > "你的签名改成 From 小橘, Hangzhou, with 🧡" 收到此类指令时，更新 `sign-off.json` 中的对应字段。 ## 模板安装 用户也可以从模板库安装预设风格： > "给我换个书法风的签名" 此时读取 `templates/` 目录下对应的 JSON 文件，合并到 `sign-off.json`。


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