Skill flagged — suspicious patterns detected

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

Today Task For Xiaoyi Claw

v1.0.26

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

0· 89·0 current·0 all-time
byMinus One Screen@ganhaiyang3
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The skill's purpose (pushing task results to 负一屏) matches the code: it formats JSON and POSTs to a hard-coded Huawei endpoint. However the package metadata declares no required config paths or credentials, while the code requires and reads a local credential file (~/.openclaw/.xiaoyienv). That mismatch between declared requirements and actual behavior is incoherent and should be flagged.
!
Instruction Scope
SKILL.md and the code instruct the agent to read a local file outside the skill directory for PERSONAL-API-KEY and PERSONAL-UID and POST task data to a hard-coded external endpoint. Reading ~/.openclaw/.xiaoyienv (a user-global path) is outside the skill directory and not declared in metadata. The code also prints the credential values to stdout, leaking secrets to console/logs — this exceeds the narrow purpose of only formatting and pushing task results.
Install Mechanism
No remote install/downloads or unusual installers. It's an instruction+source bundle with normal Python files and a small requirements.txt (requests). No extract-from-URL or third-party packages beyond 'requests' are used.
!
Credentials
Access to PERSONAL-API-KEY and PERSONAL-UID is proportionate to sending authenticated requests to the Huawei endpoint. However the skill's manifest claims no required credentials/config, yet the code depends on a user-local credential file. Additionally, the code prints the credential values to stdout (print(f'key "{key}" 存在:{config[key]}')), which risks exposing secrets. The undeclared access to a global user config path is a material inconsistency.
!
Persistence & Privilege
The skill is not 'always:true' and does not request elevated platform privileges, which is good. However it reads a global user config path (~/.openclaw/.xiaoyienv) that may contain credentials used by other components — this cross-directory access is not declared and increases blast radius. The skill also creates local logs and push_records by default.
What to consider before installing
This skill appears to implement its stated function (format task results and POST them to a Huawei endpoint), but there are important red flags you should consider before installing: - Metadata mismatch: The registry metadata claims no credentials or config paths are required, but the code requires a local credential file (~/.openclaw/.xiaoyienv) containing PERSONAL-API-KEY and PERSONAL-UID. Expect to create that file if you run it. - Hard-coded external endpoint: All data are sent to a fixed Huawei URL in the code. You cannot change the destination via metadata; if you need a different endpoint or want to keep data local, you'll have to modify the code. - Secret leakage: The code prints the credential values to the console (it prints the parsed keys). In shared environments or CI this will expose sensitive tokens. Consider editing the code to remove those prints before use (or run in an isolated environment). - Local file access: The skill reads a global user path outside its own directory. If you share the machine or use global credentials for other services, this increases risk. - Logs and records: By default it writes logs and push_records locally; inspect these directories and consider disabling save_records if you don't want local copies. Recommendations: 1. Treat this as suspicious rather than outright malicious; it likely is functional but sloppy. Only install if you trust the author/source. 2. Before running, review and/or modify hiboards_client.read_xiaoyienv and push() to remove any prints of secret values and to allow a configurable credential path or to avoid using global credentials. 3. If you don't trust the default endpoint, modify the code to accept a configurable endpoint (and avoid hard-coded URLs). 4. Run in an isolated environment or container, and avoid supplying production credentials until you've audited the code and removed the secret-printing behavior. 5. If you need the functionality but want lower risk, ask the maintainer to update the skill metadata to declare the required config path and to stop printing secrets, or fork and harden the code yourself.

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

latestvk97fnwf2fhv2yc84qd6msgz94s84vkmh
89downloads
0stars
5versions
Updated 5d ago
v1.0.26
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等命令行参数。

第二步:查看推送结果

推送成功时:

✅ 任务推送成功!

推送失败时:

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

关键要求:

  1. 只使用 JSON 输入:必须通过 JSON 文件推送,确保 markdown 格式完整保留
  2. 简单直接:专注于任务结果的格式化和推送
  3. 易于使用:提供简单的命令行接口

🔧 实际配置要求

重要:本技能需要以下配置才能正常工作:

1. 凭证文件配置

技能需要读取本地凭证文件获取身份验证信息, 默认小艺claw已经设置好了,如果没有,则没有使用小艺claw:

Linux/Mac:

mkdir -p ~/.openclaw
echo "PERSONAL-API-KEY=your_api_key_here" > ~/.openclaw/.xiaoyienv
echo "PERSONAL-UID=your_uid_here" >> ~/.openclaw/.xiaoyienv

Windows:

mkdir $env:USERPROFILE\.openclaw
echo PERSONAL-API-KEY=your_api_key_here > $env:USERPROFILE\.openclaw\.xiaoyienv
echo PERSONAL-UID=your_uid_here >> $env:USERPROFILE\.openclaw\.xiaoyienv

2. 实际端点

数据发送到硬编码的华为云端点:

https://celia-claw-drcn.ai.dbankcloud.cn/celia-claw/v1/rest-api/skill/execute

3. 凭证

默认小艺claw已经设置好了,如果没有,则没有使用小艺claw。

⚠️ 平台兼容性说明

注意:原始代码使用 Linux 路径格式,Windows 用户需要注意:

  • 代码查找路径:/home/sandbox/.openclaw/.xiaoyienv
  • 实际需要创建:C:\Users\用户名\.openclaw\.xiaoyienv
  • 可能需要创建符号链接或调整代码

🔒 安全说明

重要更新:本技能需要本地凭证文件进行身份验证,与之前"云端自动获取"的声明不同。

本技能已通过安全审查,不包含恶意代码。所有网络请求发送到硬编码的华为云端点。

⚠️ 重要安全提示

本技能会传输以下数据到华为云端点:

  1. 任务内容 (task_content):您输入的任务文本内容
  2. 任务元数据:任务名称、ID、时间戳、执行结果等
  3. 身份验证:使用本地凭证文件中的 PERSONAL-API-KEY 和 PERSONAL-UID

🔐 安全特性

  • HTTPS 加密传输:所有数据通过 TLS 加密传输
  • 本地日志:记录运行信息用于调试
  • 硬编码端点:数据发送到固定的华为云端点,无法配置
  • 本地凭证存储:身份验证信息从本地文件读取

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

⚠️ 重要安全说明

数据传输透明度

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

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

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

2. 传输的数据包括:

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

3. 隐私建议:

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

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

本地配置文件 (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. 结果反馈:返回推送状态和记录

📊 标准数据格式

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

推送数据格式

{
    "msgContent": [                 // MsgContent数组,消息内容
    {
      "scheduleTaskId": "string", // 任务ID,必填,对于周期性任务此ID需要保持一致
      "scheduleTaskName": "string", // 任务名称,必填,如"生成日报任务、生成新闻任务"
      "summary": "string",        // 任务摘要,必填,说明具体是什么任务,以及任务的执行状态,比如 "生成新闻早报任务已完成"、"生成新闻早报任务异常"
      "result": "string",         // 任务执行结果,必填,说明是已成功完成了,还是异常中断了
      "content": "string",        // 任务的执行结果具体内容,markdown格式的长文本数据,必填
      "source": "string",         // 来源,值为小艺 Claw,必填
      "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": "成功"
  }
}

错误响应

{
  "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": "建议的解决方案"
}

🚨 错误码处理指南

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

常见错误码及解决方案

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传输 → 配置的端点

端点说明:

  • 默认端点:华为小艺服务 (celia-claw-drcn.ai.dbankcloud.cn)
  • 自定义端点:用户配置的任何 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...