Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

push-task-to-negative-screen

v1.0.21

通用任务结果推送器,当任务完成后将结果推送到负一屏。使用统一的标准数据格式,支持各种类型的任务结果推送。

0· 229·0 current·0 all-time
byMinus One Screen@ganhaiyang3
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
Name/description: push task results to a 'negative screen' (hiboard) — that purpose is coherent with the code that formats and POSTs JSON. Concern: the code hard‑codes a specific remote endpoint (lfhagmirror.hwcloudtest.cn:18449) and embeds Huawei-related headers; the SKILL.md suggests the user can configure endpoints or that 'cloud auto-obtains authentication' and that no secrets are required. Requiring (or using) a fixed remote service without making that explicit to the user is disproportionate to the advertised 'generic push' purpose.
!
Instruction Scope
SKILL.md instructs running the provided Python scripts and states no authentication is needed, but the runtime instructions and code access OpenClaw global config and a local .xiaoyienv file (path /home/sandbox/.openclaw/.xiaoyienv) to obtain PERSONAL-API-KEY and PERSONAL-UID. The client prints or logs those values and then attaches them to requests. The instructions do not disclose that the skill will read local files for secrets or that it will post to the hard‑coded external endpoint.
Install Mechanism
No install specification (instruction-only skill), and only a standard Python dependency (requests) is listed. No external downloads or installers are used. The code bundle itself is shipped with the skill (multiple Python files) — that makes the runtime behavior important to review, but there is no high‑risk remote install step.
!
Credentials
Registry metadata declares no required env vars or credentials, yet the code reads global OpenClaw config (~/.openclaw/openclaw.json) and a hardcoded .xiaoyienv file for PERSONAL-API-KEY and PERSONAL-UID. Those secrets are not declared in requires.env nor documented as required in the top-level metadata. The code also prints key values to stdout/logs, increasing the chance of secret leakage.
Persistence & Privilege
The skill creates local log and record files (logs/, push_records/) and uses them for auditing — that matches the documentation. It does not request always:true and does not appear to modify other skills. However, it will persist push records by default (save_records=true) and log events; combined with printing secret values, local storage could retain sensitive data unless disabled or cleaned.
What to consider before installing
Key things to consider before installing: 1) The SKILL.md claims no credentials are needed, but the code reads a local .xiaoyienv and OpenClaw global config to obtain PERSONAL-API-KEY and PERSONAL-UID and then sends them as request headers — confirm where those files/keys come from in your environment. 2) The client uses a hard‑coded remote endpoint (https://lfhagmirror.hwcloudtest.cn:18449/...), so data will be sent there unless you audit and change the code; the skill does not make the full credential/endpoint usage obvious. 3) The code prints the key values when it finds them (stdout/log), which can leak secrets into logs; search the code for read_xiaoyienv and avoid using sensitive credentials if you cannot change that behavior. 4) If you still want to use it: run in a controlled environment first (dry-run), inspect/modify hiboards_client.py to remove printing of secrets and to make the endpoint configurable, set save_records=false and rotate or avoid storing sensitive content in task_content, and verify all outgoing network targets. 5) If you cannot or do not want to modify the code, do not provide real production credentials or place them in ~/.openclaw/.xiaoyienv; instead, use a sandbox account or a local endpoint for testing. 6) Because documentation and code disagree about authentication, treat this skill as untrusted until you perform the above audits.

Like a lobster shell, security has layers — review code before you run it.

latestvk974ffx8dtqasvkwzazythe6k184haan
229downloads
0stars
16versions
Updated 1w ago
v1.0.21
MIT-0

Today Task

技能概述

这是一个通用的任务结果推送器,专门用于在任务完成后将结果推送到负一屏。使用统一的标准数据格式,支持各种类型的任务结果推送。

🚀 使用方式

第一步:执行任务推送(只支持 JSON 输入(确保格式完整))

# 1. 创建JSON文件
{
 "task_name": "任务名称",
 "task_content": "# Markdown内容",
 "task_result": "完成状态"
}

# 2. 推送
python scripts/task_push.py --data task.json

快速创建工具

# 从markdown文件创建JSON
python scripts/create_task_json.py "任务名称" content.md
# 输出:已创建 任务名称_20260402.json

为什么?

  • ✅ JSON 确保 markdown 格式 100%保留
  • ✅ 避免命令行编码和转义问题
  • ✅ 使用更简单可靠

注意:不再支持--name--content等命令行参数。

第二步:推送成功后自动检查技能更新

python scripts/update_checker.py

更新检查策略

  • 配置未开启更新检查:静默跳过,不提示用户
  • 时间间隔未满足:静默跳过,不提示用户
  • 版本是最新的:静默跳过,不提示用户
  • 只有以下情况会提示用户
    1. 发现新版本可用:显示更新通知和更新命令
    2. 更新检查异常:网络问题、ClawHub 服务异常等,显示错误信息

第三步:在对话中整合显示结果

使用 JSON 推送成功 + 有更新时:

✅ 任务推送成功!

🔄 技能更新检查:
发现新版本可用!
当前版本: {当前版本}
最新版本: {最新版本}

💡 更新命令: `clawhub update today-task`

使用 JSON 推送成功 + 无更新/无需检查时:

✅ 任务推送成功!
(技能更新检查:配置未开启/时间间隔未满足/已是最新版本,无需提示)

使用 JSON 推送成功 + 更新检查异常时:

✅ 任务推送成功!
⚠️ 更新检查异常:无法从ClawHub获取版本信息,请检查网络或稍后重试

推送失败时:

❌ 任务推送失败!
{错误信息}

关键要求:

  1. 只使用 JSON 输入:必须通过 JSON 文件推送,确保 markdown 格式完整保留
  2. 智能更新检查:只在必要时提示用户(有更新或检查异常)
  3. 减少干扰:配置未开启、时间间隔未满足、版本最新时不提示
  4. 结果整合显示:将推送结果和更新检查结果一起在对话中回复
  5. 异常处理:更新检查异常时给出明确提示
  6. 给出具体命令:如果有更新,必须显示 clawhub update today-task

🔒 安全说明

注意:云端会自动获取身份验证,不再需要用户配置身份验证。

本技能已通过安全审查,不包含恶意代码。除可选的技能更新检查外,所有网络请求仅发送到用户配置的指定 URL。更新检查会联系 ClawHub 服务获取版本信息。

⚠️ 重要安全提示

本技能会传输以下数据到配置的端点:

  1. 任务内容 (task_content):您输入的任务文本内容
  2. 任务元数据:任务名称、ID、时间戳、执行结果等
  3. 注意:云端会自动获取身份验证,不再需要传输敏感令牌

🔐 安全特性

  • HTTPS 加密传输:所有数据通过 TLS 加密传输
  • 本地日志:记录运行信息用于调试
  • 用户完全控制:可配置自定义端点,控制数据流向

详细安全声明请查看 SECURITY.md

⚠️ 重要安全说明

数据传输透明度

使用本技能时,您的数据将被发送到配置的推送端点:

1. 默认端点(如果使用默认配置)

https://lfhagmirror.hwcloudtest.cn:18449/celia-claw/v1/sse-api/skill/execute
  • 服务提供商:华为云(Huawei Cloud)
  • 地理位置:中国东莞(DRCN = Dongguan)
  • 数据传输:通过 HTTPS 加密传输

2. 传输的数据包括:

  • 任务内容 (task_content):您输入的任务文本内容
  • 任务元数据:任务名称、ID、时间戳、执行结果等

3. 隐私建议:

  • 避免在任务内容中包含高度敏感的个人信息
  • 了解数据发送的目的地
  • 可以配置自定义端点以控制数据流向

配置说明:推送URL已硬编码,无需配置**

OpenClaw 全局配置命令

# 设置身份验证

# 查看技能配置
openclaw config get skills.entries.today-task

# 删除配置

本地配置文件 (config.json)

其他配置项在技能目录的 config.json 文件中设置:

{
  "timeout": 30,
  "max_content_length": 5000,
  "auto_generate_id": true,
  "default_result": "任务已完成",
  "log_level": "INFO",
  "save_records": true,
  "records_dir": "push_records",
  "max_records": 100,
  }

注意:如果缺少必需的身份验证或推送 URL 配置,技能将无法正常工作并会显示明确的错误信息。

💾 数据存储说明

本技能会在本地创建以下目录用于运行记录:

📁 日志目录 (logs/)

  • 用途:运行监控和故障排查
  • 内容:包含运行信息
  • 控制:通过 log_level 配置项控制详细程度
  • 注意:云端会自动获取身份验证,不再需要记录身份验证信息

📁 推送记录目录 (push_records/)

  • 用途:历史记录和审计追踪
  • 内容:任务推送响应数据
  • 控制
    • 通过 save_records 配置项控制是否保存(默认:true
    • 通过 max_records 配置项控制最大记录数(默认:100
    • 通过 records_dir 配置项指定目录位置

🔐 隐私保护措施

  1. 用户完全控制:可关闭记录保存功能
  2. 本地存储:所有文件仅存储在用户本地设备
  3. 定期清理:建议定期清理或通过配置限制文件数量
  4. 注意:云端会自动获取身份验证,不再需要处理身份验证相关的隐私问题

用户责任:请定期检查和管理这些本地文件,确保符合您的隐私要求。

🎯 设计理念

  • 统一格式:使用标准化的数据格式,不区分任务类型
  • 简单直接:专注于任务结果的格式化和推送
  • 灵活通用:支持任何类型的任务结果
  • 易于集成:提供简单的 API 接口

📋 触发条件

  • "任务完成,推送到负一屏"
  • "推送任务结果"
  • "发送到负一屏"
  • 任何任务完成后需要推送结果到负一屏的场景

🔄 工作流程

  1. 版本检查:自动检查技能更新,输出版本信息(如有更新会通知)
  2. 任务完成:其他技能或任务执行完成
  3. 结果收集:收集任务执行结果数据
  4. 格式转换:将任务结果转换为标准格式
  5. 数据验证:验证数据完整性和格式
  6. 执行推送:推送到负一屏系统
  7. 结果反馈:返回推送状态和记录,包含版本更新信息

📊 标准数据格式

注意:云端会自动获取身份验证,不再需要用户配置身份验证。

推送数据格式

{
    "msgContent": [                 // MsgContent数组,消息内容
    {
      "scheduleTaskId": "string", // 任务ID,必填,对于周期性任务此ID需要保持一致
      "scheduleTaskName": "string", // 任务名称,必填,如"生成日报任务、生成新闻任务"
      "summary": "string",        // 任务摘要,必填,说明具体是什么任务,以及任务的执行状态,比如 "生成新闻早报任务已完成"、"生成新闻早报任务异常"
      "result": "string",         // 任务执行结果,必填,说明是已成功完成了,还是异常中断了
      "content": "string",        // 任务的执行结果具体内容,markdown格式的长文本数据,必填
      "source": "string",         // 来源,人工是openclaw的任务,则值为OpenClaw,必填
      "taskFinishTime": "number"  // 任务完成的时间戳,秒的时间戳,必填
    }
  ]
}
}

⏰ 时间戳使用指南

重要提醒

避免使用错误的时间戳获取方式,这可能导致推送时间显示不正确!

❌ 错误方式(不要使用)

# PowerShell 中的错误方式(可能产生时区问题)
[int][double]::Parse((Get-Date -UFormat %s))
[int](Get-Date -UFormat %s)

✅ 正确方式

Python(本技能使用的方式)
import time
timestamp = int(time.time())  # UTC 时间戳,推荐使用
PowerShell(其他脚本中使用)
# 正确!使用 UTC 时间,避免时区问题
$timestamp = [DateTimeOffset]::UtcNow.ToUnixTimeSeconds()

##### PowerShell需要设置控制台编码为UTF-8
```powershell
# 正确设置控制台编码为UTF-8
chcp 65001
本技能的时间戳处理

本技能自动处理时间戳:

  • 使用 Python 的 time.time() 获取 UTC 时间戳
  • 自动验证时间戳合理性
  • 确保与负一屏服务时间一致

时区说明

  • 负一屏服务使用 UTC 时间戳
  • 本地时间可能因时区设置不同而产生误差
  • 始终使用 UTC 时间 避免时区问题
  • 中国时区(UTC+8)的用户需要注意时间转换

验证时间戳

如果你在其他脚本中集成本技能,请验证时间戳:

# 验证时间戳是否在合理范围内
import time

def validate_timestamp(timestamp):
    min_valid = 1609459200  # 2021-01-01
    max_valid = int(time.time()) + 31536000  # 当前时间 + 1年
    return min_valid <= timestamp <= max_valid

# 使用示例
current_ts = int(time.time())
if validate_timestamp(current_ts):
    print(f"时间戳有效: {current_ts}")
else:
    print(f"时间戳可能有问题: {current_ts}")

常见问题

  1. 时间显示不对:检查是否使用了本地时间而非 UTC 时间
  2. 时间戳为 0 或负数:时间戳获取方式错误
  3. 时间差 8 小时:中国时区(UTC+8)未正确转换

最佳实践

  1. 统一使用 UTC 时间:所有时间戳都使用 UTC
  2. 验证时间戳:在关键操作前验证时间戳有效性
  3. 记录时间源:明确记录时间戳的来源和时区
  4. 使用本技能的工具:本技能已正确处理时间戳,无需额外处理

内容格式规范

任务的执行结果具体内容使用 markdown 格式,遵循以下样式规范:

  1. 主标题文本

    • font size: Subtitle_L (Bold) = 18
    • color: font_primary = #000000 90%
    • 行高:默认
  2. 一级文本

    • font size: Body_L (Bold) = 16
    • color: font_primary = #000000 90%
    • 行高:22
  3. 二级文本

    • font size: Body_M (Bold) = 14
    • color: font_primary = #000000 90%
    • 行高:22
  4. 段落文本

    • font size: Body_M (regular) = 14
    • color: font_secondary = #000000 60%
    • 行高:22
  5. 分割线

    • 使用控件:Divider
  6. AI 生成注释文本

    • font size: 10 medium
    • color: font_fourth #000000 20%
    • 行高:默认

📁 输入要求

任务结果数据格式

{
  "task_id": "string", // 任务ID(必填)
  "task_name": "string", // 任务名称(必填)
  "task_result": "string", // 任务执行结果描述(必填)
  "task_content": "string", // 任务详细内容,markdown格式(必填)
  "schedule_task_id": "string", // 周期性任务ID(必填,非周期性任务时等于task_id)
  }

简化输入格式

// 格式1:完整格式
{
  "task_id": "news_20240327_1001",
  "task_name": "今日新闻汇总",
  "task_result": "任务已完成",
  "task_content": "# 今日新闻汇总\n\n## 热点新闻\n\n1. OpenAI发布新一代模型...",
  "schedule_task_id": "news_20240327_1001",}

🛠️ 推送流程

  1. 数据接收:接收任务结果数据
  2. 格式标准化:转换为标准 pushData 格式
  3. 数据验证:验证必需字段
  4. 身份验证处理:使用配置的身份验证或数据中的身份验证
  5. 推送执行:调用负一屏 API 推送数据
  6. 结果处理:处理推送结果并保存记录

📝 输出格式

成功响应

{
  "success": true,
  "message": "任务结果推送成功",
  "task_id": "news_20240327_1001",
  "task_name": "今日新闻汇总",
  "push_time": "2024-03-27 10:15:30",
  "record_id": "push_20240327_101530",
  "hiboard_response": {
    "code": "0000000000",
    "desc": "成功"
  },
  "update_check": {
    // 版本更新检查
    "status": "skipped_or_error",
    "message": "更新检查异常或配置未开启",
    "should_notify": false // 是否提示用户,true则提示用户
  }
}

错误响应

{
  "success": false,
  "message": "错误描述",
  "task_id": "news_20240327_1001",
  "task_name": "今日新闻汇总",
  "error_type": "validation|format|network|system|auth|service",
  "push_time": "2024-03-27 10:15:30",
  "suggestion": "建议的解决方案",
  "update_check": {
    // 版本更新检查
    "status": "skipped_or_error",
    "message": "更新检查异常或配置未开启",
    "should_notify": false // 是否提示用户,true则提示用户
  }
}

🚨 错误码处理指南

系统提供了详细的错误码处理功能,当推送失败时会返回具体的错误信息和解决方案。

常见错误码及解决方案

1. 错误码: 0000900034 - 身份验证无效或未关联

问题描述: 云端授权验证失败 解决方案:

  1. 检查网络连接是否正常
  2. 确认负一屏服务状态
  3. 如果问题持续,请联系技术支持

2. 错误码: 0200100004 - 负一屏云推送服务异常

问题描述: 负一屏云推送到服务动态云有报错,需要检查返回的 desc 字段

CP 错误码: 82600017 - 设备未联网或未登录华为账号

解决方案:

  1. 检查设备 Wi-Fi 或移动数据是否已连接
  2. 打开"设置"应用
  3. 进入"华为账号"或"帐号中心"
  4. 确保已登录华为账号
  5. 如未登录,请使用华为账号登录
CP 错误码: 82600013 - 服务动态推送开关已关闭

解决方案:

  1. 进入手机负一屏
  2. 点击头像进入负一屏二级页
  3. 右上角打开设置,进入动态管理页面
  4. 点击进入AI任务完成通知,打开对应的场景开关和服务提供方开关

📁 文件结构

push-task-to-negative-screen/
├── SKILL.md                    # 技能定义
├── README.md                   # 使用说明
├── config.json                 # 配置文件示例
├── scripts/
│   ├── task_push.py           # 主推送脚本
│   ├── task_pusher.py         # 推送器类
│   ├── config.py              # 配置管理
│   ├── logger.py              # 日志工具
│   ├── hiboards_client.py     # 负一屏客户端
│   └── simple_test.py         # 测试脚本
└── push_records/              # 推送记录目录(自动创建)

💡 设计优势

  1. 格式统一:所有任务使用相同的推送格式
  2. 简单易用:接口简单,易于集成
  3. 灵活性强:支持任何类型的任务结果
  4. 配置方便:支持配置文件
  5. 错误处理完善:详细的错误信息和建议
  6. 记录完整:保存完整的推送记录

🎨 Markdown 内容生成建议

最佳实践

  1. 使用标题层级:合理使用#、##、###等标题
  2. 列表展示:使用-或*表示列表项
  3. 代码块:使用```包裹代码
  4. 表格:使用 markdown 表格格式
  5. 分割线:使用---作为分割线

示例模板

# 任务名称

## 执行结果

✅ 任务已完成

## 详细内容

- 项目 1: 结果描述
- 项目 2: 结果描述
- 项目 3: 结果描述

## 关键指标

| 指标   | 数值   | 状态 |
| ------ | ------ | ---- |
| 完成率 | 100%   | ✅   |
| 用时   | 5 分钟 | ⏱️   |

---

_生成时间: 2026-03-30 10:30:00_

🔐 完整安全指南

1. 数据流向透明度

本技能设计为透明数据流:

用户输入 → 技能处理 → HTTPS传输 → 配置的端点

端点说明:

  • 默认端点:华为小艺服务 (hag-drcn.op.dbankcloud.com)
  • 自定义端点:用户配置的任何 HTTPS 端点
  • 本地测试:使用 --dry-run 避免网络传输

2. 传输的数据

每次推送包含:

数据字段内容敏感性

| task_content | 任务文本内容 | 🟡 中敏感 | | 任务元数据 | 名称、ID、时间等 | 🟢 低敏感 |

3. 隐私保护措施

本地保护:

  • ✅ 可选记录:可关闭推送记录保存
  • ✅ 本地存储:所有文件仅存本地

传输保护:

  • ✅ HTTPS 加密:所有传输使用 TLS
  • ✅ 证书验证:验证服务器身份
  • ✅ 最小数据:仅发送必要数据

4. 用户控制权

配置控制:

  • 端点配置:使用自定义端点
  • 记录控制:关闭本地记录保存
  • 日志控制:调整日志详细程度

操作控制:

  • 测试模式:--dry-run 模拟推送
  • 验证模式:--validate-only 仅验证格式
  • 详细日志:--verbose 查看完整信息

5. 最佳安全实践

对于所有用户:

  1. 了解数据流向:知道数据发送到哪里
  2. 审查任务内容:避免包含敏感信息
  3. 定期更新身份验证:增强安全性

对于敏感数据:

  1. 使用自定义端点:控制数据目的地
  2. 关闭本地记录save_records: false
  3. 使用测试模式--dry-run 验证功能

对于企业用户:

  1. 部署私有端点:完全控制数据流
  2. 审计推送记录:定期审查 push_records/
  3. 监控技能使用:通过日志监控活动

6. 合规性说明

数据保护:

  • 符合最小必要原则
  • 提供用户控制选项
  • 透明数据处理流程

隐私权:

  • 用户知情权:明确告知数据流向
  • 用户控制权:提供配置选项
  • 用户退出权:可停止使用并删除数据

7. 紧急措施

如果发现安全问题:

  1. 立即停止使用技能
  2. 撤销身份验证:在负一屏中撤销
  3. 删除本地数据:清理 logs/push_records/
  4. 联系支持:报告安全问题

重要:详细安全声明请查看 SECURITY.md

最后更新: 2026-03-31

Comments

Loading comments...