Initialize Unicom screenshot Skill v1.0.0
Preserve the confirmed screenshot workflow and publish version metadata with installation and validation notes.
This commit is contained in:
commit
263aea6255
3 files changed
+100
No files matched your search
@@ -0,0 +1,3 @@
|
|||||||
|
*.md text eol=lf
|
||||||
|
*.yaml text eol=lf
|
||||||
|
*.png binary
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# 联通智家长稳截图 v1.0.0
|
||||||
|
|
||||||
|
首次发布 `unicom-zhijia-daily-screenshots`。保留移动爱家截图 Skill 的配置确认、逐项采集、证据整理、钉钉通知和用户确认后的每日计划流程,并按联通智家的真实页面入口适配 ARTEMIS 提示词。
|
||||||
|
|
||||||
|
## 功能
|
||||||
|
|
||||||
|
- 采集直播基准、语音通话连接与挂断、条件云台、告警片段播放截图。
|
||||||
|
- 从“监控回看”分别进入卡回看和云回看,采集目标回溯日期的 12:00 及执行前一自然日的 00:00、09:00。
|
||||||
|
- 根据联通页面的完整日期行、上午/下午和小时格核对日期时间,保存关联证据;逐项记录失败、无数据和无法验证的状态,并继续其余可执行项目。
|
||||||
|
- 每轮执行前取得用户对天数、日期时间、设备、逐台云台能力及通知方式的答复;按确认方式通过钉钉私聊发送截图并发送文字 DING。
|
||||||
|
- 支持用户明确确认的每日计划,默认使用北京时间(Asia/Shanghai,UTC+08:00),每轮触发后仍需人工答复。
|
||||||
|
|
||||||
|
## 运行条件
|
||||||
|
|
||||||
|
- 已启动并可访问的 ARTEMIS、可唯一对应的 Android 模拟器,以及已登录的联通智家 App。执行前核实真实包名,不固定参考图中的设备配置。
|
||||||
|
- 已安装的 `artemis-use` Skill 和当前工具契约;使用 Flash,单任务执行超时为 3600 秒。
|
||||||
|
- 通知需要已认证可用的 DWS CLI 和对应钉钉 Skills;每日计划需要可用的宿主调度工具。
|
||||||
|
- 安装包包含 Skill、ARTEMIS 提示词和三张页面参考图;ARTEMIS、App、DWS 和调度工具需另行具备。
|
||||||
|
|
||||||
|
## 安装
|
||||||
|
|
||||||
|
解压 `unicom-zhijia-daily-screenshots-1.0.0.zip`,将其中整个 `unicom-zhijia-daily-screenshots` 文件夹放入 `$CODEX_HOME/skills`;未设置 `CODEX_HOME` 时使用 `~/.codex/skills`。确认 `SKILL.md` 直接位于该文件夹内。已有同名 Skill 时先在技能目录之外备份旧版本,再替换。重新加载技能或新开会话后,用 `$unicom-zhijia-daily-screenshots` 调用。
|
||||||
|
|
||||||
|
## 校验与已知限制
|
||||||
|
|
||||||
|
已检查 Skill 基础格式、YAML 版本及界面元数据、相对引用、PNG 可读取性、ZIP 完整性和逐文件 SHA-256。发布文本统一为 UTF-8、LF 换行和单个末尾换行,并验证与已安装源文件的文本等价。
|
||||||
|
|
||||||
|
此前单轮试运行取得了截图证据,但 ARTEMIS 最终判定为 `failed`:4 小时时间轴主刻度未验证,部分午夜回看的时间或指针证据存在不一致。Skill 要求保留并报告这些缺项;本版本发布不代表设备功能或长稳测试全部通过。云台仅在用户明确确认设备具备功能且当前 ARTEMIS 能力支持时执行。
|
||||||
|
|
||||||
|
本次仅打包发布,未重新运行设备测试。
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
---
|
||||||
|
name: unicom-zhijia-daily-screenshots
|
||||||
|
description: 为联通智家 App 的指定设备采集直播、语音通话、条件云台、告警片段及卡回看和云回看截图;保留每轮配置确认、钉钉私聊截图加文字 DING 和用户确认的每日计划流程。用于联通智家长稳截图及相关 ARTEMIS 提示词维护,不用于移动爱家或其他 App 的通用测试。
|
||||||
|
metadata:
|
||||||
|
version: "1.0.0"
|
||||||
|
---
|
||||||
|
|
||||||
|
# 联通智家长稳截图
|
||||||
|
|
||||||
|
固定应用:联通智家。用户提供的页面图不包含包名;执行前通过已授权的只读应用信息或 ARTEMIS 返回的真实应用信息核实包名,再作为本轮参数填入 `locked_app_package` 和任务提示词。无法可靠核实时向用户确认,不猜包名、不沿用其他 App 的包名。通过已启动的 ARTEMIS 操作用户指定的 Android 模拟器;App 中的摄像头/设备与 Android 模拟器是不同对象。使用已安装的 `artemis-use` Skill 及其单任务执行参考;调用前查看当前 MCP 工具契约。不要重装、清数据、重置设备或修改全局配置。
|
||||||
|
|
||||||
|
## 联通智家页面适配
|
||||||
|
|
||||||
|
执行前读取 [ARTEMIS 任务提示词](references/artemis-task-prompt.md)。其中的页面锚点来自用户提供的三张截图;[页面参考图](references/ui-screenshots.md)仅供辨认布局,截图里的设备、日期和状态不代替本轮确认。目标设备完全由用户本轮指定,不把示例 `中兴ZXHN K757P1E` 固定为默认设备,也不从型号或页面缺少方向盘推断云台能力。
|
||||||
|
|
||||||
|
- 直播入口是底部“直播画面”;对讲入口是“语音通话”,不能用“播放录音”代替。
|
||||||
|
- 告警录像入口是底部“告警片段”;“声光报警”是主动报警操作,不是告警列表入口,本用例不点击。
|
||||||
|
- 回看入口是底部“监控回看”,再选“卡回看”或“云回看”,以当前选中状态核对存储类型。直播页“云存储回看”卡片不作为两种回看的统一入口,也不据“使用中/未订购”等卡片状态推断录像是否可用。
|
||||||
|
- 回看播放器下方左侧的日期时间和三角是时间选择入口;展开后有完整日期行及右箭头、“上午/下午”和小时格。12:00 选“下午”,00:00、09:00 选“上午”;日期行是进一步选择目标日期的候选入口,实际弹层必须现场核实。不要硬套移动爱家的日历图标或固定坐标。
|
||||||
|
- 播放器的 `1.0` 和“视频快放”中的 `8.0` 不作为时间轴缩放证据。回看时间轴的缩放方式、主刻度、云台和通话弹层均以本轮真实界面及 ARTEMIS 能力为准;参考图没有证明这些具体操作。缩放无法完成时记录缺项,继续采集可定位的时段。
|
||||||
|
|
||||||
|
## 先确认配置
|
||||||
|
|
||||||
|
每轮截图执行前,无论是单次执行还是定时触发,都必须主动询问并取得用户本轮回复,确认以下全部事项:①计划连续执行的天数、起始日期,以及每天执行的具体时间点;②待截图的 App 内设备名称及每台是否有云台(有/无);③通过钉钉私聊将截图发给本人,并发送应用内文字 DING 通知本人。可把之前的配置或计划参数列为待确认选项,但历史答复、默认值和计划配置均不能代替本轮提问及答复。单次立即执行也要询问天数和时间点;用户可明确答复执行 1 天、现在执行,不得自行假设。钉钉本人身份和组织须通过对应 Skill 核实;用户之后若明确指定其他受支持的收件人或方式,按本轮明确要求处理。钉钉身份解析、通道及外部发送遵循对应 Skill 与 Runtime 的实际要求,不读取、输出或保存认证凭据。
|
||||||
|
|
||||||
|
执行前还要核对目标回看日期及模拟器 serial;多个模拟器且目标不明确时向用户确认。逐台确认云台功能,不凭型号或页面猜测。区分计划连续执行天数与每轮回看天数,不能混为一谈:除非用户另行指定,回看默认取执行日期的前一自然日;原有 12:00 回放和新增 00:00、09:00 均须核对实际页面日期。直播基准截图每台每次一张,其他截图见单次用例。
|
||||||
|
|
||||||
|
创建每日计划前,将上述事项连同模拟器名称及可唯一对应的 Android serial 一起收集并让用户确认;核对计划起止日期和每天各执行时间点。用户确认回溯 N 天则为前 N 个自然日,分别采集各日原有的 12:00 截图;执行日期前一日的 00:00、09:00 另行采集,不随回溯天数重复。用户要求连续执行 N 天时,在最后一天结束后停用计划。所有时间按北京时间(Asia/Shanghai,UTC+08:00),除非用户之后明确改用其他时区。只有用户明确要求定时且确认完整计划后才创建调度,询问天数和时间本身不自动授权建立计划。
|
||||||
|
|
||||||
|
每次触发后都须重新主动询问天数、每天时间点、设备、逐台云台功能及本人私聊截图加 DING 通知,并取得本轮答复;计划配置只能用于提示。若用户要求更改计划,应先核对变更和调度器实际下一次触发时间。缺少必要答复、设备无法唯一对应、云台功能未确认或无法询问时,本轮不启动截图;报告阻塞原因。若本轮已确认通知对象及方式,但 ARTEMIS、设备或 App 等不可用导致阻塞,仍在最终处理阶段按已确认的渠道尝试发送阻塞结果。每轮结束后,无论成功、部分完成、失败或阻塞,均按本轮确认的接收人和方式尝试发送结果,不得臆测或静默沿用旧接收人。
|
||||||
|
|
||||||
|
## 指定设备单次截图用例
|
||||||
|
|
||||||
|
以用户本轮确认的联通智家 App 内设备为目标,逐台执行同一组用例。按以下顺序采集,详细操作见任务提示词:
|
||||||
|
|
||||||
|
1. **直播及对讲**:直播加载后先保存一张基准截图。点击“语音通话”,核对实际连接/通话状态并截图;使用当前通话界面的挂断/结束控件,核对已挂断并截图。截图验证页面状态,不单凭截图断言双向音频正常。若连接失败或无法确认已挂断,保存提示和现状,记录该项缺失及实际通话状态,然后继续后续可执行用例;不把未知状态说成已挂断。
|
||||||
|
2. **云台(仅用户确认有此功能时)**:先重新保存一张操作云台前的直播截图;向左转动 1 秒并松开,截图;再向右转动 1 秒并松开,截图。通过 ARTEMIS 的实际受保护操作控制方向、时长及松开;无法执行或核实时如实记录,不用若干次点按冒充 1 秒,也不声称左右等时操作必然恢复原位。用户确认无云台时标记“不适用”。
|
||||||
|
3. **告警**:点击底部“告警片段”,查看目标设备的告警列表,选择一条可播放的告警,播放后截图并记录该条告警的设备和时间;不点击“声光报警”。无消息、无可播放录像或播放失败时保存列表空态/提示,记录缺项并继续回看。
|
||||||
|
4. **原有回看**:卡回看和云回看各按下方截图执行流程达到用例约定的全天尺度,选择每个目标回溯日期的 12:00 并截图,默认日期为执行当地时间的前一天。
|
||||||
|
5. **新增夜视时段截图**:在每种回看中保留原有 12:00 截图后,展开左侧日期时间下拉,通过完整日期行核对并选择执行日期前一日,选择“上午”的 00:00 并截图;再次展开日期时间下拉,核对同一前一日,选择“上午”的 09:00 并截图。两种回看均执行这一顺序,默认回溯 1 天时,12:00、00:00、09:00 均属于同一个前一日。每次切换后重新核对日期、时间、存储类型和缩放;依据实际画面或状态记录夜视表现,不仅凭时刻判定夜视切换成功。无录像或无法选择时保留实际提示,不擅自换成其他日期或时刻。
|
||||||
|
|
||||||
|
任何用例受阻、失败、无数据或无法验证时,保存现状和页面提示,逐项记录实际状态、缺项及原因,结束受阻项后继续执行后续可执行用例和其他设备;不因单项受阻停止整台设备或整轮任务。云台无法核实停止时记录状态,不重复方向动作,继续其他可执行用例;对讲状态不明时如实记录,继续后续可执行用例。设备离线、App不可达或ARTEMIS服务不可用等使后续操作实际无法进行时,记录受影响项目及原因,不伪称已执行;不绕过安全校验。当次接受现状不代表以后无数据自动通过。报告各截图真实路径及缺项原因,截图仅记录执行事实,不自行判断长稳是否通过。
|
||||||
|
|
||||||
|
这是供 Codex 后续长稳调度的单次用例。每次运行都必须将完整用例及当次设备、日期要求传入 ARTEMIS,由 ARTEMIS 执行全部 App 操作和截图;Codex 负责调度、提交、跟踪、读取与整理 ARTEMIS 证据,并按本轮确认的接收人发送结果通知。不得由 Codex 通过 ADB、电脑操作工具或其他直接控制方式代替 ARTEMIS 执行用例,也不得在 ARTEMIS 不可用或执行失败时切换到 Codex 直接操作;应报告阻塞或失败原因。不自行循环或创建定时任务,只有用户明确要求时才执行对应操作。仅要求整理或修改用例/Skill 时不启动设备任务或发送截图结果通知。
|
||||||
|
|
||||||
|
## 截图执行
|
||||||
|
|
||||||
|
1. 用 `mobile_workspace` 核对模拟器 serial、队列和在线状态;服务离线按 `artemis-use` 诊断并报告,不自行启动 ARTEMIS 主程序。选择用户确认的目标,单一模拟器上的任务串行。
|
||||||
|
2. 用 `mobile_run_task` 提交实际任务,设置 `model="Flash"`,并通过单任务 `runtime_overrides={"timeout_seconds":3600}` 设置 1 小时执行超时(不含排队和暂停);指定 `device_serial` 和已核实的联通智家 `locked_app_package`,为每次提交生成唯一 `request_id`。不修改 ARTEMIS 全局配置;其他确需的临时覆盖项合并进同一个 `runtime_overrides`。提交结果不确定时用原 request_id 查询,不能重新生成 ID 重复提交。读取并按当次已核实的包名、设备及云台功能、执行日期、前一日日期、回溯日期、时刻和存储类型填充 [ARTEMIS 任务提示词](references/artemis-task-prompt.md),把完整内容传入任务;根据实际页面识别控件,不假设坐标、登录状态或设备顺序。
|
||||||
|
|
||||||
|
当前 Flash 契约没有执行前安全网、持久化计划或 Pro notes;`expected_output_desc` 与 `verification_level` 对 Flash 无效。不得声称已启用这些能力。需要受保护动作的项目,仅在当前 Flash 实际契约提供并能核实所需保护时执行;否则记录缺项并继续其他可执行项目,不用无保护动作代替。通过任务状态、最终 `test_result`、步骤、原生截图及导出报告整理证据,不依赖 Pro notes。
|
||||||
|
3. 直播、语音通话、条件云台、告警片段及卡回看和云回看按任务提示词执行。时间轴缩放方式须现场识别,不照搬移动爱家的放大镜/减号,也不把 `1.0`、`8.0` 或“视频快放”当作缩放。沿用原用例的 4 小时相邻主刻度作为约定的全天尺度目标;联通智家参考图没有证明该刻度受支持,未达到或无法核实则记“用例尺度未验证”,仍继续可定位的日期时段截图。观察到目标刻度即停止缩小,但不能据此断言控件物理下限或已显示完整 00:00–24:00;物理下限另需明确端点等证据。
|
||||||
|
|
||||||
|
短时弹层若存在,优先按当前 `artemis-use` 单任务参考及实际工具契约使用原生 `action_sequence` 的 `ensure_visible` 配合 `click`/`drag`,以本轮观察到的真实 resource_id 和实时可见性检查定位。不能把这种局部检查称作 Flash 的 Pro 执行前安全网;无真实 ID 或无可验证动作时记录限制,不猜 ID、不盲点、不以 ADB 或外部控制代替。最多在重新观察后重试一次;连续两次拦截、目标不明或动作结果不确定就保存现状并停止该项,继续其他截图。核对每轮动作前后的刻度、可见范围和实际时间;日期、12:00/00:00/09:00、设备和存储类型无法同屏显示时保存关联补充证据,无录像不得推断全天无录像。
|
||||||
|
4. 从 ARTEMIS 实际步骤及截图证据核对页面、设备、对讲状态、云台方向与时长及松开、告警播放状态、回看日期与时刻、缩放与指针;导出实际截图并确认文件存在、可读取,按设备、日期、用例和存储类型整理。每设备每轮预期:直播基准 1 张、对讲 2 张、告警播放 1 张、每个回溯日期的卡存和云存 12:00 各 1 张、执行日期前一日的卡存和云存 00:00/09:00 共 4 张;有云台另加操作前/左转后/右转后 3 张。回溯 D 天时,无云台为 8 + 2D 张,有云台为 11 + 2D 张;默认回溯 1 天分别为 10/13 张,补充证据另计。无云台属不适用;用户确认有云台但不可操作、其他缺项、页面不可达、设备离线、无权限、状态/时长/时间/缩放无法验证都记入逐项结果。`completed` 只是任务结束,不能替代截图证据。实际失败也尽量继续处理其他设备,不能将部分完成报告为全部成功。
|
||||||
|
|
||||||
|
## 钉钉通知与结果
|
||||||
|
|
||||||
|
每轮执行无论成功、部分完成、失败或阻塞,都必须在最终处理阶段尝试向本轮已确认的钉钉接收人发送结果通知:写明执行时间、设备、目标日期、实际状态、缺项及失败或阻塞原因;有截图时通过钉钉私聊发送给本人,再发送应用内文字 DING 说明图片发送状态和结果。保留真实业务回执,投递未知或失败不得说已送达;遇到认证、权限、Runtime 确认或接口故障时分别记录并向用户报告,不能保证实际送达。读取 `dingtalk-misc` 的 DING 指引并使用同一 profile,本人身份通过 `dingtalk-contact` 核实,其他人员按 `dingtalk-aisearch` 和 DING 指引解析,使用真实 `openDingTalkId`,不猜 ID、不选不明确的同名人员。当前 `dws ding message send-personal` 只提供文字内容,没有直接附图参数;每次按实际当前契约确认能力,不伪称 DING 包含图片。尚未取得本轮接收人答复时不能发送,应向用户报告该轮因接收人未确认而阻塞。
|
||||||
|
|
||||||
|
用 `dingtalk-chat` 的图片发送指引把真实截图发给本轮已确认的接收人,再发 DING 标明图片发送状态;按实际回执或任务状态确认,禁止用本地文件路径冒充可访问附件。截图部分成功时可发送已取得的截图并在 DING 列明缺项及原因;没有截图时发送文字结果及原因。聊天或 DING 任一失败均分别记录并报告,不能静默切换接收人或通道。若用户只接受 DING 内附图且现有接口不支持,在执行或创建自动化前说明能力限制并等待明确选择;若执行中才发现限制,仍尝试发送说明失败原因的文字 DING。外部发送遵循当前工具 Runtime 的确认要求;若定时运行遇到无法无人值守通过的确认或认证,记录阻塞并向用户报告,不能声称通知已完成。
|
||||||
|
|
||||||
|
## 定时配置
|
||||||
|
|
||||||
|
只有用户明确要求定时且已确认以上参数、发送方式及计划范围后,使用宿主的 automation 工具创建每日任务,采用确认的时区和时间;提示词包含使用 Flash 和单任务执行超时 3600 秒、拟定天数与每天时间点、设备配置及逐台云台功能、调用本 Skill、每轮触发后截图前重新询问并取得全部本轮配置及本人私聊截图加 DING 的答复、每次重新计算执行日期、前一日及回溯日期、原有 12:00 及前一日 00:00/09:00 截图、每轮无论结果均按确认接收人发送通知和终止条件,不包含密钥。计划触发不等于已开始截图:必需配置未答复或无法询问时该轮阻塞,不使用历史配置代替;在创建计划前向用户说明每轮需要人工答复,不能承诺无人值守自动截图和发送。Skill 本身不是调度器。若用户只要求创建或修改 Skill,则不启动测试、创建计划或发送截图结果通知。运行前检查 ARTEMIS 和钉钉可用性;不能保证电脑关机、服务离线、认证失效或调度器不可用时仍能执行或发出通知。最终分别报告截图和通知的实际结果及可恢复的证据位置。
|
||||||
|
|
||||||
|
严格按用户确认的日期和时间设置,统一使用北京时间(Asia/Shanghai,UTC+08:00),除非用户之后明确改用其他时区;不得擅自改变执行时间。创建或修改计划后,核对调度器实际排定的下一次触发时间,并确认计划最后一天包含在内;检查时区转换及调度器可能加入的随机偏移。不要假设规则中的小时字段一定按当地时区解释,具体行为以当前宿主的实际结果为准。优先使用宿主支持且可核验的精确触发方式;如果无法按指定时间排定或无法核实,应如实告知,不能声称已准确设置。计划触发时间与实际开始时间可能不同,若因电脑、服务或会话状态等原因延迟或未执行,应记录实际情况并报告。
|
||||||
Reference in new issue
Block a user