OpenClaw/clawhub-security-signals huggingface dataset:
Skill: drumrobot/todowrite (version 0.1.1)

--- name: todowrite metadata: author: es6kr version: "0.1.0" depends-on: [wip] description: Route TODO checklists to the right storage. session - in-session tracking via /wip, file - persistent TODO (fix_plan.md, TODO.md), issue - team-shared via GitHub Issues. "TODO management", "checklist", "todowrite", "fix_plan cleanup", "register as issue" triggers. --- # TodoWrite Route TODO checklists to the appropriate storage based on context. ## Routing Decision ``` New TODO arrives ├─ Only needed this session → /wip (TaskCreate/TodoWrite) ├─ Persists beyond session → file (fix_plan.md, TODO.md) └─ Team-shared → issue (GitHub Issues) ``` ## Topics | Topic | Storage | Lifetime | Tool | |-------|---------|----------|------| | session | TaskCreate/TodoWrite | Session | → `/wip` skill | | file | fix_plan.md, TODO.md | While file exists | Write/Edit | | issue | GitHub Issues | Permanent | `gh issue create` | ## Session → /wip Current session task tracking is handled by the `wip` skill: ``` /wip # Track session work with TodoWrite/TaskCreate ``` ## File-based TODO ### fix_plan.md (Ralph projects) ```markdown ## Pending - [ ] Item 1 — description - [ ] Item 2 — description ## Completed - [x] Done item — (completed: 2026-04-03, commit abc1234) ``` **Rules:** - Move to `Completed` section on completion + timestamp - Mark blocked items with `[BLOCKED]` tag - Mark skipped items with `[SKIPPED]` tag ### TODO.md (General projects) ```markdown # TODO ## High Priority - [ ] Urgent item ## Normal - [ ] Regular item ## Done - [x] Completed item (2026-04-03) ``` ## Issue-based TODO Team-shared TODOs go to GitHub Issues: ```bash # Create issue (user approval required) gh issue create --title "Item" --body "Description" # List issues gh issue list --label "todo" ``` **Note:** `gh issue create` only runs when user explicitly says "create an issue". ## Routing Examples | Situation | Route | Reason | |-----------|-------|--------| | "Run this 5-step deploy" | `/wip` (session) | Session tracking is sufficient | | "Fix this bug later" | file (fix_plan.md) | Persists beyond session | | "Assign this to Jinju" | issue (GitHub) | Team sharing needed | | "Note this from the review" | file (fix_plan.md) | Outside current PR scope |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: mike47512/open-courses (version 0.1.1)

--- name: "Open Courses" description: "提供网易公开课/B站知识区名师课程获取指南。" --- # 精品公开课 ## 筛选项 - 学习阶段（K12/考研/职业考证/兴趣） - 教学形式（直播课/录播课/1对1/题库） - 考核指标（难度等级/通过率/证书含金量） ## 返回字段 - 学习时长累计/掌握程度分析/错题本同步 - 名师履历/课程大纲/讲义下载进度 - 互动问答状态/模考成绩单/学历认证关联 ## 示例请求 - “如何快速使用 精品公开课 处理 [具体场景任务] ？” - “精品公开课 的 [核心功能] 有哪些最新玩法/优惠信息？” ## 更新频率 - 结合考试大纲调整、名师教学计划与学习成效定期反馈 ## 注意事项 - 付费课程建议先试听后订阅；坚持打卡学习才能获得实质性提升。


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: 1477009639zw-blip/agent-oversight (version 1.0.0)

--- name: agent-oversight description: Comprehensive AI agent oversight and management skill. Monitors sub-agents, manages file edit coordination, logs failures, kills hung sessions, and maintains oversight records. metadata: openclaw: emoji: "🛡️" requires: bins: [python3] always: false --- # Agent Oversight Manages and monitors AI sub-agents. Keeps Beta's workspace clean, coordinated, and error-free. ## Usage ```bash python3 oversight.py --status python3 oversight.py --list-sessions python3 oversight.py --kill-hung ``` ## Features - Session monitoring (active/idle/hung) - File edit coordination (prevents conflicts) - Failure logging to memory/learnings.md - Automatic kill for >5min hung sessions - Coordination rules enforcement ## Coordination Rules 1. Read file before editing 2. Exact oldText matching required 3. One agent per file at a time 4. Log all failures to learnings.md

path: oversight.py
content: #!/usr/bin/env python3
"""Agent Oversight — manages sub-agent coordination"""
import subprocess, sys

def get_sessions():
    result = subprocess.run(['openclaw', 'sessions', 'list', '--json'], capture_output=True, text=True)
    return result.stdout

def main():
    cmd = sys.argv[1] if len(sys.argv) > 1 else '--status'
    if cmd == '--status':
        print("🛡️ Agent Oversight Status")
        print("Last check: OK")
    elif cmd == '--list-sessions':
        print(get_sessions())
    else:
        print("Usage: oversight.py [--status|--list-sessions|--kill-hung]")
        
if __name__ == '__main__':
    main()


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: spacesq/s2-hardware-onboarding-gateway (version 2.0.0)

--- name: s2-hardware-onboarding-gateway description: The official S2 firmware guide. Features absolute Zero-Exfiltration Data Topography, User-in-the-loop authorization, and local-only 3FA. version: 2.0.0 (Absolute Zero-Exfiltration Final) author: Space² Governance Committee & RobotZero Software homepage: https://space2.world/developer --- # S2 硬件身份入户网关 (官方固件开发者接入指南) ## 🛡️ 数据流向与绝对防外泄矩阵 (Data Topography Matrix) 为消除任何关于“数据外泄与隐私收集”的歧义，本协议对设备产生的每一比特数据实施极其严苛的物理与网络边界隔离： 1. **Phase 1: 局域网广播 (UDP Broadcast)** * **传输内容**：仅限 `Ephemeral Hash` (基于时间戳的动态哈希) 与 `Vendor Hash`。 * **绝对禁止**：严禁在此阶段明文或密文传输 MAC、Gene Code、S2-ID。 2. **Phase 2: 局域网边缘握手 (Local Edge TLS 1.3 - Device to Host)** * **传输内容**：`MAC Address`, `Gene Code`, `S2-ID` 及 `6D-VTM` 完整明文。 * **隐私承诺**：该传输仅发生在用户住宅内的本地局域网。**数据到达 Openclaw 主机后，物理截断，绝不向 S2 云端进行任何形式的上报或备份。** 3. **Phase 3: 广域网云端审计 (WAN HTTPS - Host to S2 Mainnet)** * **传输内容**：仅限 6D-VTM 厂商声明的**单向不可逆哈希值**。 * **绝对禁止**：主机的请求体中被硬性切断了包含 MAC、IP 或 Gene Code 的能力，实现对云端的零知识证明 (Zero-Knowledge Proof)。 ## Step 1: 官方门户 L2 注册 (唯一入口) 所有 L2 厂商段（5字母）的注册必须通过官方开发者门户：`https://space2.world/developer`。全程采用 DNS-TXT 自动化确权。 ## Step 2: 固件生成 22 位临时 ID * 格式: `[L1][L2][YYMMDD][Checksum][Serial]` (示例: `HSMART260329AAB3C4D5E6`) ## Step 3: 零知识心跳 (Python 伪代码 - 仅限 UDP 广播) ```python import socket, time, json, hashlib, os, secrets FACTORY_TEMP_ID = "HSMART260329AAB3C4D5E6" VENDOR_CODE = "SMART" def start_zero_knowledge_heartbeat(): sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) vendor_hash = hashlib.md5(VENDOR_CODE.encode()).hexdigest()[:8] while True: # 仅广播动态哈希，无任何持久化 ID e_token = hashlib.sha256(f"{FACTORY_TEMP_ID}_{int(time.time()//60)}_{secrets.token_hex(4)}".encode()).hexdigest()[:16] payload = json.dumps({"status": "WANDERING_SECURE", "vendor_hash": vendor_hash, "e_token": e_token}) sock.sendto(payload.encode('utf-8'), ('<broadcast>', 49152)) time.sleep(15) Step 4: 边缘隔离提交 6D-VTM (仅限本地 TLS 握手) 在用户点击“允许”后，固件向局域网内的 Openclaw 主机提交认证数据。此数据仅供主机本地鉴权，绝不外泄。 Python def submit_edge_local_payload(local_tls_socket, gene_code, mac_address): # 该数据流永远不会离开用户的住宅路由器 vtm_payload = { "local_auth_only": { "gene_code": gene_code, "mac_address": mac_address, "temp_id": FACTORY_TEMP_ID }, "6d_manifesto": { "1_product_name": "Smart Temp Sensor Pro", "2_product_category": "Environmental Sensor", "3_vendor_full_name": "RobotZero Hardware Dept", "4_vendor_website": "[https://space2.world/developer](https://space2.world/developer)", "5_quality_certs": ["ISO9001"], "6_specific_licenses": ["S2-Class-A"] } } local_tls_socket.send(json.dumps(vtm_payload).encode())


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: amlyx/web-publish (version 1.0.0)

--- name: web-publish version: 1.0.0 description: 将本地 Markdown/HTML 一键发布为在线链接，手机直接访问 author: 信为美 AI 团队 --- # Web Publish Skill ## 功能 - Markdown → 在线链接 - HTML → 在线链接（带样式） - 自动过期设置（1-7天） ## 安装 ```bash curl -fsSL https://pastebin.com/raw/xxx | bash ``` ## 使用 ```bash # Markdown publish 演讲稿.md # HTML（带CSS样式） publish 课件.html # 指定过期天数 publish file.md --expiry 7 ``` ## 输出 返回可分享的 URL，示例： ``` ✅ 发布成功！ 🔗 链接: https://dpaste.com/xxxxx 📱 手机直接访问 ``` ## 依赖 - curl（系统自带） - dpaste.com API（无需注册） ## 适用场景 - 演讲稿快速分享 - 会议纪要外传 - 课件手机查看 - 临时文档传递


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: suspicious | SkillSpector: clean (LOW)
Skill: lidegejinghk/openclaw-iterm2-statusbar (version 0.1.1)

--- name: openclaw-iterm2-statusbar description: Install the OpenClaw iTerm2 status bar that shows session cost and context usage in real time. --- # OpenClaw iTerm2 Status Bar Displays OpenClaw session cost and context usage directly in the iTerm2 status bar, refreshing every 30 seconds. ## Install One-line installer: ```bash curl -fsSL https://raw.githubusercontent.com/lidegejingHk/openclaw-iterm2-statusbar/main/install.sh | bash ``` Or manually: ```bash DEST="$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch" mkdir -p "$DEST" curl -fsSL https://raw.githubusercontent.com/lidegejingHk/openclaw-iterm2-statusbar/main/openclaw_status.py \ -o "$DEST/openclaw_status.py" chmod +x "$DEST/openclaw_status.py" ``` ## Post-install 1. Restart iTerm2 (or **Scripts → Refresh**) 2. **Preferences → Profiles → Session → Status Bar → Configure** 3. Drag the **OpenClaw** component into the status bar ## What It Shows ``` [kiro/claude-sonnet-4.6] 🤖 main | 💵 $0.0023 (total $0.0041) | 🟢 10k/200k (5%) | ⚡88% ``` - Model name - Main session cost + total across all sessions - Context usage with color indicator (🟢🟡🟠🔴) - Compaction threshold (⚡) ## Requirements - macOS + iTerm2 - OpenClaw Gateway running locally on port 18789 ## Uninstall ```bash rm ~/Library/Application\ Support/iTerm2/Scripts/AutoLaunch/openclaw_status.py ``` Restart iTerm2 to remove the component.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: yiyiyiba/contextstable (version 0.0.2)

--- name: contextStable description: 长小说文章上下文稳定输出续写 author: YBs version: 0.0.1 tags: - 长文本处理 - 上下文一致性 - 小说续写 - 多轮对话 - 智能提示词生成 requires: - sentence-transformers - numpy - scikit-learn - python>=3.8 usage: - 小说/故事续写 - 长文档生成 - 多轮对话场景 - 角色设定保持 - 世界观一致性维护 --- # Context Stabilizer Skill ## 技能名称 Context Stabilizer（长文本上下文稳定器） ## 技能描述 用于稳定长文本生成的上下文一致性，自动提取核心设定并确保生成内容符合设定。 ## 功能特点 - **自动锚点提取**：从文本中自动提取人设、世界观、核心剧情、文风等核心设定 - **增强提示词生成**：智能组合相关上下文和锚点，生成更准确的提示词 - **一致性检查**：分维度检查生成内容的一致性（人设/剧情/文风/世界观） - **历史记录管理**：追踪多轮对话历史，支持角色状态和剧情时间线管理 - **滑动窗口管理**：智能处理超长文本，支持重要片段标记 - **缓存机制**：提高嵌入向量计算效率 ## 适用场景 - 小说/故事续写 - 长文档生成 - 多轮对话场景 - 角色设定保持 - 世界观一致性维护 ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 基本使用 ```python from context_stabilizer import LongTextContextStabilizer # 初始化 stabilizer = LongTextContextStabilizer() # 添加长文本（自动提取锚点） long_text = "你的长文本内容..." stabilizer.init_long_text(long_text, auto_extract=True) # 生成增强提示词 user_prompt = "你的续写需求..." enhanced_prompt = stabilizer.get_enhanced_prompt(user_prompt) # 检查一致性 llm_output = "LLM生成的内容..." check_result = stabilizer.check_consistency(llm_output, detailed=True) # 记录历史 stabilizer.record_generation(user_prompt, enhanced_prompt, llm_output, check_result) ``` ## 高级用法 ### 自定义配置 ```python from context_stabilizer.config import ContextConfig, ConsistencyConfig custom_config = ContextConfig( consistency=ConsistencyConfig(threshold=0.75), history=ContextConfig.__annotations__['history'].__args__[0]( max_history=200, auto_save=True ) ) stabilizer = LongTextContextStabilizer(custom_config) ``` ### 手动设置锚点 ```python manual_anchors = { "人设": "角色设定...", "世界观": "世界观设定...", "核心剧情": "剧情设定...", "文风": "文风设定..." } stabilizer.init_long_text(long_text, manual_anchors=manual_anchors, auto_extract=False) ``` ### 标记重要片段 ```python stabilizer.mark_important_segment( content="重要内容...", reason="重要原因...", importance=2.0 ) ``` ### 保存和加载会话 ```python stabilizer.save_session("session_name") stabilizer.load_session("session_name") ``` ## 输出示例 ### 增强提示词 ``` 请根据以下需求和上下文，续写/创作文本，严格遵守核心设定，保持文风一致： 【用户需求】 续写第三章，李逍遥和赵灵儿在破庙休息时遭遇拜月教小喽啰袭击 【相关上下文】 第一章 初入江湖 李逍遥，18岁，性格洒脱，嫉恶如仇，手持一把生锈的铁剑，从小在余杭镇长大。 这天，他离开家乡，准备前往苏州城，寻找失散多年的婶婶。 第二章 偶遇灵儿 在去苏州的路上，李逍遥遇到了一位名叫赵灵儿的少女，她温柔善良，身负女娲族的血脉，正被拜月教追杀。 李逍遥出手相救，两人结伴同行。 【核心设定】 人设：李逍遥：18岁，洒脱，嫉恶如仇；赵灵儿：温柔善良，女娲族血脉 世界观：古风武侠仙侠世界 核心剧情：李逍遥寻找婶婶，偶遇赵灵儿，结伴前往苏州城 文风：古风武侠，语言简洁，情感细腻 要求：1. 剧情连贯，不偏离核心设定；2. 人设统一，无矛盾；3. 文风与前文一致。 ``` ### 一致性检查结果 ``` 总体一致性: ✓ 通过 发现问题数: 0 各维度评分: character: 1.00 plot: 1.00 style: 0.90 world: 1.00 改进建议: 无 ``` ## 技术原理 1. **文本分块**：将长文本分割成适当大小的块 2. **锚点提取**：自动识别和提取核心设定 3. **上下文检索**：基于关键词匹配或向量相似度检索相关上下文 4. **一致性检查**：分维度评估生成内容与设定的一致性 5. **历史管理**：追踪生成历史，支持多轮对话 ## 注意事项 - 首次运行时会自动下载 sentence-transformers 模型（需要网络连接） - 对于超长文本，滑动窗口会自动管理上下文大小 - 可通过配置调整分块大小、一致性阈值等参数 - 支持导出故事为 txt 或 json 格式


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: liverock/security-sentinel-ultimate (version 0.3.0)

--- name: security-sentinel-ultimate description: Scans a skill directory for security issues and best practices tools: - name: scan_skill description: Analyzes a skill directory for security vulnerabilities, misconfigurations, and compliance with best practices. arguments: - name: path description: The file path to the skill directory to scan. type: string required: true execution: command: python3 {{SKILL_DIR}}/scanner.py "{{path}}" output_format: markdown --- # Security Sentinel Scans a skill directory for security issues, misconfigurations, and best practices. ## What It Detects | Category | Examples | Severity | |----------|---------|----------| | Dangerous calls (critical) | `os.system`, `eval`, `exec` | 🔴 Critical | | Dangerous calls (warning) | `subprocess.run`, `os.popen` | 🟡 Warning | | Hardcoded secrets | API keys, tokens, passwords, credentials in string literals | 🔴 Critical | | Network calls | `requests.get`, `urllib.request.urlopen`, `http.client` | 🟡 Warning | | Obfuscation | `getattr` indirection, `__import__`/`importlib` dynamic loading, `chr()`-encoded strings | 🔴 Critical | | Hidden files | Files and directories starting with `.` (e.g. `.env`, `.hidden_script.py`) | 🟡 Warning | ## Severity Model The scanner uses a three-tier severity system: | Status | Meaning | |--------|---------| | 🔴 **CRITICAL** | Immediate security risk — hardcoded secrets, `eval`/`exec`, `os.system`, obfuscation detected. Requires urgent review. | | 🟡 **WARNING** | Potential risk — `subprocess` usage, network calls, hidden files. Review recommended. | | 🟢 **OK** | No findings. File is clean. | Each file gets an individual severity rating. The **overall status** is the highest severity across all files — if even one file is red, the entire scan is marked CRITICAL. ## Obfuscation Defenses (Defensive Depth) The scanner catches three common bypass techniques: 1. **`getattr` indirection** — `getattr(os, 'system')('whoami')` is flagged because the second argument resolves to a known dangerous attribute name. 2. **Dynamic imports** — `__import__('subprocess')` and `importlib.import_module('subprocess')` are both detected and flagged as dangerous module loads. 3. **String construction** — Secrets built via concatenation (`key = "sk-" + "abcd..."`) or `chr()` sequences are resolved at scan time and matched against secret patterns. ## Usage The `scan_skill` tool accepts a `path` argument pointing to a skill directory. It runs `scanner.py` against all `.py` files in that directory tree and returns a Markdown report with tables of findings grouped by file and category.


Security scan verdicts — ClawScan: clean | static analysis: suspicious | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: ivangdavila/pull-request (version 1.0.1)

--- name: Pull Request slug: pull-request version: 1.0.1 description: Create high-quality pull requests with pre-submission validation, maintainer-friendly formatting, and automated quality checks. --- ## When to Use Before creating or suggesting a pull request to ANY repository. Acts as a quality filter to prevent wasting maintainer time and embarrassing the contributor. ## Quick Reference | Domain | File | |--------|------| | Pre-submission checklist | `checklist.md` | | Red flags to avoid | `red-flags.md` | | Repository context gathering | `repo-context.md` | | PR description templates | `templates.md` | ## Critical Rules - **Read CONTRIBUTING.md first** — Adapt to project's workflow, not a fixed pattern - **Issue policy depends on scope** — Small fixes may PR directly; features need discussion first - **Disclose AI involvement** — Mark AI-assisted PRs in title/description - **Run checks if possible** — If you can't run tests, say so explicitly - **Match existing style** — Check for `.editorconfig`, `prettier`, `eslint` configs - **Small and focused** — One logical change per PR - **No secrets ever** — Use `<PLACEHOLDER>` syntax ## Issue Policy (Contextual) **NOT all projects require issues first.** Check CONTRIBUTING.md, then: | Change Type | Default Action | |-------------|----------------| | Typo, small bug fix | PR directly (unless CONTRIBUTING.md says otherwise) | | New feature | Open Discussion/Issue first, wait for approval | | Architecture change | RFC or Discussion required | | When in doubt | Ask in issue before coding | ## AI-Assisted PRs If this PR was created with AI assistance: 1. **Mark it** — Add `[AI-assisted]` to PR title or note in description 2. **Testing level** — State: `untested` / `lightly tested` / `fully tested` 3. **Include context** — Prompts or session logs if available and helpful 4. **Confirm understanding** — "I have reviewed this code and understand what it does" 5. **Human accountable** — Link to the human directing the contribution ## Rate Limiting (Avoid Spam) - MAX 1 open PR per repo at a time - Wait 24h between PRs to same repo - If 2 PRs rejected consecutively → STOP and escalate to human - Check repo's PR velocity first (don't flood low-activity projects) ## Abandonment Prevention - MUST respond to review feedback within 48h - If unable to address feedback, close with: "I cannot continue; @human please take over or close" - Never leave PRs to rot ## Scope Boundaries — STOP and Discuss First If: - Change touches >5 files OR >200 lines - Change modifies public API - Change involves security, auth, or crypto - Change is in governance, licensing, or CoC - Maintainer requested discussion in issue - You're unsure if this aligns with project philosophy ## Human Escalation Required Escalate to human when: - Reviewer asks clarifying questions about design intent - CI fails in non-obvious way - Any pushback beyond "fix this typo" - Reviewer seems confused or frustrated - You can't run the test suite locally


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)
Skill: bytesagain3/job-scheduler (version 2.0.1)

--- name: "job-scheduler" version: "2.0.1" description: "Reference tool for devtools — covers intro, quickstart, patterns and more. Quick lookup for Job Scheduler concepts, best practices, and implementation patterns." author: "BytesAgain" homepage: "https://bytesagain.com" source: "https://github.com/bytesagain/ai-skills" tags: [job,scheduler, reference] category: "devtools" --- # Job Scheduler Reference tool for devtools — covers intro, quickstart, patterns and more. Quick lookup for Job Scheduler concepts, best practices, and implementation patterns. No API keys or credentials required. ## Commands | Command | Description | |---------|-------------| | `intro` | intro reference | | `quickstart` | quickstart reference | | `patterns` | patterns reference | | `debugging` | debugging reference | | `performance` | performance reference | | `security` | security reference | | `migration` | migration reference | | `cheatsheet` | cheatsheet reference | ## Output Format All commands output plain-text reference documentation via heredoc. No external API calls, no credentials needed, no network access. --- *Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]*


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)
Skill: maizhenn/stock-push (version 1.0.2)

--- name: stock-push description: A股股票定时推送系统。管理盘前推荐（09:20）、收盘复盘（15:05）、次日关注（20:00）三个推送任务，每交易日晚自动发送持仓股行情到微信。当用户提到：股票推送、持仓监控、定时提醒、A股行情，或者需要查询持仓盈亏、复盘信息、次日建议时触发。also triggers when user says "推送" or "股票" or asks to check their holdings. --- # Stock Push — A股持仓定时推送 ## 系统架构 ``` 东方财富 API → Python 脚本 → openclaw message send → 微信 （数据源） （处理逻辑） （Gateway转发） ``` **关键约束：** - 不依赖 Gateway 会话/cron run，完全系统 cron 独立运行 - 发送走 `openclaw message send`（非 direct ilink API） - 数据源：东方财富 `push2.eastmoney.com` ## 三推送任务 | 脚本 | cron | 触发 | 功能 | |------|------|------|------| | `stock_pre.py` | `20 9 * * 1-5` | 09:20 | 大盘指数 + 自选股 | | `stock_after.py` | `5 15 * * 1-5` | 15:05 | 持仓收盘行情 + 统计 | | `stock_next.py` | `0 20 * * 1-4` | 20:00 | 收盘概况 + 明日建议 | ## 数据源 **东方财富行情 API：** ``` GET https://push2.eastmoney.com/api/qt/stock/get ?secid=<market>.<code> &fields=f43,f44,f47,f57,f58,f60 &ut=bd1d9ddb04089700cf9c27f4f4961f5b&fltt=2&invt=2 ``` **secid：** `1.沪股代码`（如 `1.600490`） / `0.深股代码`（如 `0.300269`） **已验证字段：** | 字段 | 含义 | 特殊情况 | |------|------|---------| | `f43` | 最新价（收盘/当前） | — | | `f44` | 昨收价 | 竞价阶段返回 `'-'`，自动改用 f60 | | `f47` | 成交量（手） | 竞价阶段可能返回 `'-'` | | `f57` | 股票代码 | — | | `f58` | 股票名称 | — | | `f60` | 备用昨收 | f44='-' 时自动使用 | **涨跌幅计算：** `(f43 - f44) / f44 × 100` ⚠️ **不要用 `f3` 字段**（非交易时段返回0，不可靠） ## 发送方式 ```bash openclaw message send \ --channel openclaw-weixin \ --target YOUR_WECHAT_USER_ID \ --message "<text>" ``` ## 可靠性机制 - **有效数据校验**：`price ≤ 0 or yclose ≤ 0` → `valid=False`，不参与统计 - **零数据跳过**：全部无效时不发送，避免假数据 - **发送重试**：失败最多3次，每次间隔3秒 - **异常隔离**：单只股票失败不影响其他 - **日志文件**：`/tmp/stock_pre.log` / `stock_after.log` / `stock_next.log` ## 持仓配置 持仓列表在脚本顶部 `HOLDINGS` / `WATCH_LIST` 列表中修改。 格式：`(secid, code, name)` ``` HOLDINGS = [ ("1.600490", "600490", "鹏欣资源"), ("0.300269", "300269", "联建光电"), ("0.002138", "002138", "顺络电子"), ("0.300444", "300444", "双杰电气"), ] ``` ## 手动测试 ```bash python3 /root/.openclaw/workspace/stock_pre.py python3 /root/.openclaw/workspace/stock_after.py python3 /root/.openclaw/workspace/stock_next.py # 查看日志 tail -f /tmp/stock_pre.log tail -f /tmp/stock_after.log tail -f /tmp/stock_next.log ``` ## 日志轮转 配置：`/etc/logrotate.d/stock-monitor`，保留7天。 ## 详细文档 - **字段验证数据** → `references/field-verification.md` - **推送历史/变更记录** → `references/history.md` - **已知问题排查** → `references/troubleshooting.md`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)
Skill: bytesagain-lab/wallet-tracker (version 5.0.0)

--- name: "wallet-tracker" version: "5.0.0" description: "Crypto wallet analytics reference — address formats, on-chain analytics, transaction tracing, hardware wallets, and approval revocation" author: "BytesAgain" homepage: "https://bytesagain.com" source: "https://github.com/bytesagain/ai-skills" tags: [crypto, wallet, ethereum, bitcoin, on-chain] category: "blockchain" --- # Wallet Tracker Crypto wallet analytics reference — address formats, on-chain analytics, transaction tracing, hardware wallets, and approval revocation. No API keys or credentials required — outputs reference documentation only. ## Commands | Command | Description | |---------|-------------| | `intro` | Wallet types, on-chain analytics overview | | `standards` | Address formats for BTC, ETH, SOL, BIP-44 paths | | `troubleshooting` | Missing transactions, wrong network, stuck tx | | `performance` | Batch RPC, indexers, WebSocket vs polling | | `security` | Private keys, approvals, social engineering | | `migration` | Single to multisig, hot to cold, exchange to self-custody | | `cheatsheet` | Block explorers, APIs, Dune queries, whale addresses | | `faq` | Wallet tracking, whale alerts, safety checks | ## Output Format All commands output plain-text reference documentation via heredoc. No external API calls, no credentials needed, no network access. --- *Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]*


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