forked from arechen/EapilSkillMarket
Sync third-party and MCP marketplace plugins
Constraint: Public skills are published only by explicit administrator action unless they are tracked third-party market sources. Confidence: high Scope-risk: narrow Directive: Keep private/internal skills out of the public marketplace and preserve normal incremental market Git history. Tested: Marketplace validation passed.
This commit is contained in:
1 parent
cd0f8e2cb2
commit
76b3060a16
18 files changed
+268
-12
No files matched your search
@@ -172,6 +172,18 @@
|
||||
},
|
||||
"category": "Developer Tools"
|
||||
},
|
||||
{
|
||||
"name": "artemis-case-prep",
|
||||
"source": {
|
||||
"source": "local",
|
||||
"path": "./plugins/artemis-case-prep"
|
||||
},
|
||||
"policy": {
|
||||
"installation": "AVAILABLE",
|
||||
"authentication": "ON_INSTALL"
|
||||
},
|
||||
"category": "Developer Tools"
|
||||
},
|
||||
{
|
||||
"name": "caveman",
|
||||
"source": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "artemis-automation",
|
||||
"version": "1.1.1",
|
||||
"version": "1.1.2",
|
||||
"description": "使用 ARTEMIS MCP 完成 Android 自动化测试、批量执行、失败诊断、历史检索和报告交付。",
|
||||
"author": {
|
||||
"name": "chenmingxuan",
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"sourceId": "artemis-automation",
|
||||
"repo": "https://git.playones.com/chenmingxuan/Artemis-Eapil.git",
|
||||
"ref": "v1.1.1",
|
||||
"commit": "8522fa3ca3e341034325bf4844624d0893217e79",
|
||||
"ref": "v1.1.2",
|
||||
"commit": "0e13bb5c2927bb9e858ace4f43ab9f479ba55c61",
|
||||
"adapter": "claude-skill",
|
||||
"sourcePath": "skills/artemis-automation",
|
||||
"syncedAt": "2026-09-24T03:13:04Z"
|
||||
"syncedAt": "2026-09-24T09:40:56Z"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"name": "artemis-case-prep",
|
||||
"version": "1.0.0",
|
||||
"description": "从 Android 原始测试工作簿筛选可由 ARTEMIS 自动化的用例,标记原表副本并生成六列任务表。",
|
||||
"author": {
|
||||
"name": "hejunxian",
|
||||
"url": "https://git.playones.com/hejunxian"
|
||||
},
|
||||
"homepage": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||
"repository": "https://git.playones.com/hejunxian/artemis-case-prep.git",
|
||||
"license": "UNKNOWN",
|
||||
"keywords": [
|
||||
"artemis",
|
||||
"android",
|
||||
"test-case",
|
||||
"workbook",
|
||||
"excel"
|
||||
],
|
||||
"skills": "./skills/",
|
||||
"interface": {
|
||||
"displayName": "artemis-case-prep",
|
||||
"shortDescription": "筛选 Android 用例,生成可追溯的六列 ARTEMIS 任务表。",
|
||||
"longDescription": "识别多工作表 Android 原始用例的适用性与自动化边界,保留原表并标记选择结果,按附带 Excel 模板生成六列 ARTEMIS 任务文档。只准备文档,不运行批次;六列模板目前不兼容 ARTEMIS 1.0.1 的七列原生导入器。",
|
||||
"developerName": "hejunxian",
|
||||
"category": "Developer Tools",
|
||||
"capabilities": [
|
||||
"Interactive",
|
||||
"Read",
|
||||
"Write"
|
||||
],
|
||||
"defaultPrompt": [
|
||||
"使用 artemis-case-prep 检查这份测试用例是否具备转换条件。",
|
||||
"使用 artemis-case-prep 从原始工作簿准备六列任务表。"
|
||||
],
|
||||
"websiteURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||
"privacyPolicyURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||
"termsOfServiceURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||
"brandColor": "#177C80",
|
||||
"screenshots": [],
|
||||
"logo": "./assets/icon.svg",
|
||||
"composerIcon": "./assets/icon.svg"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"sourceId": "artemis-case-prep",
|
||||
"repo": "https://git.playones.com/hejunxian/artemis-case-prep.git",
|
||||
"ref": "v1.0.0",
|
||||
"commit": "94200db05a6b4d046222879b87672d45d791e756",
|
||||
"adapter": "claude-skill",
|
||||
"sourcePath": ".",
|
||||
"syncedAt": "2026-09-24T09:40:56Z"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-labelledby="title">
|
||||
<title id="title">ARTEMIS case prep</title>
|
||||
<rect x="8" y="8" width="112" height="112" rx="25" fill="#177C80"/>
|
||||
<path d="M36 22h43l17 17v61c0 4-3 7-7 7H36c-4 0-7-3-7-7V29c0-4 3-7 7-7Z" fill="#F8FBFA"/>
|
||||
<path d="M79 22v13c0 3 3 6 6 6h11Z" fill="#A6E6D6"/>
|
||||
<rect x="40" y="44" width="26" height="8" rx="4" fill="#FFBF56"/>
|
||||
<rect x="40" y="61" width="34" height="6" rx="3" fill="#B8D7D8"/>
|
||||
<rect x="40" y="74" width="24" height="6" rx="3" fill="#B8D7D8"/>
|
||||
<circle cx="82" cy="80" r="22" fill="#FF6C68"/>
|
||||
<path d="m72 80 7 7 13-15" fill="none" stroke="#FFFFFF" stroke-width="7" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 746 B |
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: artemis-case-prep
|
||||
description: 从多工作表原始 Android 测试用例中筛选适用于目标设备且可由 ARTEMIS 自动执行的用例,标记原表副本并填写六列批量任务模板的 Artemis 提示词。用于准备任务文档,不用于直接运行批次或改造导入器。
|
||||
---
|
||||
|
||||
# ARTEMIS 用例准备
|
||||
|
||||
把原始测试用例工作簿转成两份可追溯的文件:保留原有内容并新增“是否选中作为自动化执行”(`是`/`否`)列的原表副本,以及只包含选中用例的六列任务表。优先使用用户提供的模板;未提供时使用 [六列模板](assets/artemis-tasks.xlsx)。不要覆盖输入文件。
|
||||
|
||||
## 先确认适用性,再判断自动化
|
||||
|
||||
1. 逐页识别真正的用例表、表头、续行、合并单元格及行级适用性;不要以固定列号、`max_row` 或单独的用例编号推断用例。行政清单、报告页和空白格式行不算用例。遇到本项目附件的异构页时,读 [字段与边界](references/workbook-contract.md)。其他原始文档仍须按其实际结构重新识别。
|
||||
2. 适用性由用户在**原始用例**中完成:核对目标设备及每条用例的“是否适用”标记、标题限定或明确的适用说明;不强制另建设备能力清单。若有空白、缺少行级判定而无法由原文明确判定,或目标设备信息与原文范围无法对应,列出缺失的工作表与行号(可压缩连续行段),提醒用户补齐并**暂停正式转换**。不得把空白当作“不适用”,也不得从型号臆测设备能力。适用性明确为“否”的用例在自动化列标“否”。
|
||||
3. 对适用用例逐条判断能否由 ARTEMIS 的 Android UI 操作及其可用 ADB/日志观察建立前置条件、完成动作并取得可核验结果。依赖人工观察、实物遮挡/断电、外部设备或 PC 操作、主观音画质量评价,或者前置条件无法建立的用例标“否”,不交给 ARTEMIS 试跑。不能因为有步骤文字就判“是”。“是”表示适合自动化执行,不表示测试已经通过。
|
||||
原始步骤若有不清晰之处,尤其操作对象、顺序、入口、触发条件或结果判定不明确时,列出来源工作表、行号、原文及具体疑问,向使用者确认后再判定该条用例并定稿 Artemis 提示词。确认前不猜测步骤或界面路径,也不把“否”作为替代澄清的标记;可继续整理其他明确用例,但受影响条目保持待确认,正式任务表待澄清后再交付。
|
||||
4. **确认测试任务之前**,明确目标测试 App 的版本(以用户提供或设备上核实的版本标识为准,不用文档日期或设备固件版本代替);版本缺失时只可准备草稿,不称为已确认的任务。**测试开始之前**另须确认设备 SN、秘钥、设备名称、设备型号。用户已明确这四项设备信息在该工作流中可正常流转;相关用例可直接使用已提供的值,不凭空编造。设备信息缺失时明确待补内容,不称为可执行,也不启动测试;不要把 ARTEMIS 的模型 API Key 与设备秘钥混同。
|
||||
5. 涉及“与某信息一致/匹配/同步”等断言的用例,**测试前**逐项补齐要比较的字段、可信的预期值或独立参照来源,以及适用设备/账号/版本范围。原文没有给足但可补充时,保留其自动化候选判断,在草稿中列出具体待补项;未补齐不得启动该用例。若确实无法取得独立参照,才判为无法自动核验。不能从被测页面自身反推预期,或把“显示正常”当作一致。
|
||||
|
||||
## 生成与核验
|
||||
|
||||
- 在原表**副本**的用例表增加且只增加所要求的自动化标记列(若已有此列则更新,不重复新增);每条用例填 `是` 或 `否`。先核对目标位置不会覆盖既有数据,保留原工作表、原文、图片、合并、格式及非用例页。若所选表格工具不能保真,停止交付并说明损失,不输出貌似完整的副本。遵循可用的 spreadsheet 工作流进行编辑、渲染与导出检查。
|
||||
- 任务表严格沿用 `任务` 页的六列顺序:`用例编号 / 检测项目 / 测试子项 / 测试用例 / 前置约束提取 / Artemis提示词`。只写入适用且自动化列为“是”的用例;其他工作表保持模板原样。编号在任务表内保留原值并附 `〔来源页!行号〕`,以区分重号;原表编号不改。
|
||||
- “前置约束提取”写确认的测试 App 版本及原文实际要求的设备、账号、网络和状态;一致性用例还写明比较字段与独立预期值/来源,草稿中可明确标出待补项,但不把未确认条件写成已满足。“Artemis提示词”**必须以 `【原表显示的用例编号】` 紧接原“测试用例”文本开头**,随后接完整执行说明;例如 `【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程` 后另起执行说明。这里的连接是文本拼接,不写字面 `+`;提示词前缀不附来源页/行号。执行说明写明在确认的 App 版本上操作、起点、操作意图、必要等待/状态转移、可观察的预期及证据要求;一致性断言须明确实际值与哪个预期值比较。直播页的分辨率切换、全屏、声音开启/关闭等目标控件初次未显示时,可先观察画面、轻点直播画面一次并重新观察可能浮现的控件或二级菜单;声音开关仅以可观察的 UI 状态核验,不把需要人工听音的结果判为自动化可核验。卡回看和云回看可将有颜色区域作为有数据的选时线索、空白区域作为无数据线索;选有数据片段时先选择过去且有颜色的区域,再用回放结果核验,不仅凭颜色判通过,也不设计拖动到未来。**仅移动爱家 App** 的卡回放用例可在点击“云回看”后观察是否出现切换入口。以上均是适用场景的条件性提示,不发明 UI 定位器、页面路径、精确坐标或功能。条件不满足、参照信息缺失或实际安装版本不一致时如实报告阻塞,不声称通过。无可用原编号或测试用例文本时列出来源行请用户补齐,不造编号或标题。更多写法见 [字段与边界](references/workbook-contract.md)。
|
||||
- 设置页功能项较多;相关用例在首屏未找到目标时,提示词应允许向上滑动更长距离以查看下方内容,并在每次滑动后重新观察和定位。不要把首屏未见当作功能缺失,也不要规定未经核实的固定坐标、距离或盲滑次数;见 [设置页查找边界](references/workbook-contract.md#提示词与决策)。
|
||||
- 核对原表每条真实用例的标记均为 `是`/`否`,任务表数据行数恰等于“是”的数量;逐行检查提示词的编号和用例文本前缀、App 版本是否与本次确认值一致,并抽查一致性用例有独立参照且比较字段明确;再抽查不同表头布局、重复编号、合并/续行和排除项。确认输入文件未改、两份输出的非目标内容未意外变化,且六列表头、提示词与来源可回溯。
|
||||
|
||||
当前所附 ARTEMIS 1.0.1 的原生 Excel 导入器要求另一套固定七列,**不能声称本六列文件已通过导入**。用户明确要保留六列,后续会改 ARTEMIS 实现;本 skill 不擅自生成第七列、改源码、调用 `mobile_batch` 或启动设备。将来用户要求执行时,先按当时服务版本预览校验并取得执行授权;编写外部可执行测试代码则先用 ARTEMIS 探索实际应用。
|
||||
|
||||
## 执行状态显示取消但之后完成
|
||||
|
||||
ARTEMIS 执行期间,网页或列表可能显示“取消”/“正在取消”,而之后的持久批次或任务记录又显示已完成。不要依据单次界面快照判最终状态,也不要把“已完成”直接等同于测试通过。执行方应按稳定的批次 ID、session/trace ID 重新读取 ARTEMIS 持久状态,确认取消是否只是请求/过渡状态、任务最终状态,以及报告是否已就绪;检查应遵从工具建议并保持低频,避免连续轮询。
|
||||
|
||||
- 最终持久记录为 `completed` 且报告已就绪时,核对 trace/报告中的实际步骤、证据和业务判定,再分别记录通过、失败或未验证。
|
||||
- 最终持久记录为 `cancelled` 时,它是终态;保留取消记录及已产生的部分证据,不得改写成完成,也不要因界面状态不一致而自动重提同一用例。重跑须有明确授权,并作为新的执行记录。
|
||||
- 若批次、session 与网页显示互相矛盾,或报告尚未就绪,记录各自 ID、状态和检查时间,做必要的低频只读核验;矛盾未消除前标记“状态待核实”,不得统计为通过或已完成。
|
||||
|
||||
此规则只用于解释执行记录,不改变本 skill 的职责范围:本 skill 负责准备与核验用例文档,不负责启动、取消、恢复或重跑 ARTEMIS 任务。
|
||||
@@ -0,0 +1,3 @@
|
||||
interface:
|
||||
display_name: "ARTEMIS 用例准备"
|
||||
short_description: "筛选设备适用且可自动化的用例,填写六列任务表"
|
||||
BIN
Binary file not shown.
+46
@@ -0,0 +1,46 @@
|
||||
# 六列任务表与判定边界
|
||||
|
||||
本参考记录用户所附模板与原始用例的非显然结构,供处理这类工作簿时使用。新输入须重新核对表头和适用性,不要把示例页当作通用列号映射。
|
||||
|
||||
## 模板
|
||||
|
||||
`assets/artemis-tasks.xlsx` 来自用户的 `artemis-tasks.xlsx`。`任务!A1:F1` 才是本次约定的输出结构,依次为:
|
||||
|
||||
| 列 | 内容 |
|
||||
| --- | --- |
|
||||
| 用例编号 | 原编号加 `〔来源页!行号〕`;编号本身不可用作唯一键。 |
|
||||
| 检测项目 | 对应原文项目,保留其语义。 |
|
||||
| 测试子项 | 对应原文子项;没有独立子项时不杜撰。 |
|
||||
| 测试用例 | 保留原用例目的与关键动作,必要时压缩冗余但不改变判据。 |
|
||||
| 前置约束提取 | 本次确认的测试 App 版本、设备适用范围、账号/网络/状态、SN/秘钥等前置;一致性用例还需比较字段及独立预期值/来源;区分已知与待建立。 |
|
||||
| Artemis提示词 | 以 `【原表显示的用例编号】` + 原“测试用例”文本开头,再接完整、自包含的执行请求,见下方。 |
|
||||
|
||||
模板的 `填写说明` 页混用了“任务名称、任务目标、预期结果”等七列导入术语,和实际六列表头不一致;它是附件内容,不覆盖用户已确认的六列要求。保留该页,不拿它修改 `任务` 页的列数。
|
||||
|
||||
## 原始用例
|
||||
|
||||
所附“家庭安防多形态终端软件测试用例(移动看家2.0)”有 33 个可见页,不是一个统一表:典型页用 A:G 记录编号、项目、子项、用例、预置条件、步骤、预期;`8告警事件` 表头在第 2 行;`13安全` 的 D:H 才是名称、摘要、前置、步骤、结果;`16 云化AI专项测试-基础包` 用 E:I 记录子项到结果并有重复编号列。页标题还限定白盒、无卡槽、带屏等范围。右侧“新设备/固件变更”之类提测情形不是设备支持声明。`1设备绑定` 的“是否适用”用例行尚为空;设备功能集也未完成真实设备支持信息。因此当前原始文件不满足正式全量转换前置条件。
|
||||
|
||||
识别时从标题、表头和有实际步骤/期望的行建立用例记录;保留原始 `sheet + row + 编号` 键。合并单元格或续行可承接同一用例,但不要把每个格式行计成独立用例。对无法对应到一条用例的条目报告歧义,不悄悄丢弃。将适用性缺失的行集中列出,先请用户完成原始文档,再生成正式输出。
|
||||
|
||||
## 提示词与决策
|
||||
|
||||
对每条“是”,首字符起按 `【原表显示的用例编号】` + 原“测试用例”文本(仅去首尾多余空白)拼接。保留原文已有的 `【】`,不要再给整段用例标题套一层方括号;不要把任务表编号列中的 `〔来源页!行号〕` 带入前缀,也不要写字面 `+`。例如 `1设备绑定!3` 的前缀是 `【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程`。这只是格式示例,该行还需人工复位,不能因此标成自动化“是”。若 Excel 数值编号的显示格式与底层数值不同(如 `1.10`),采用原表显示的编号。
|
||||
|
||||
前缀之后另起完整说明,至少明确:本次确认的测试 App 版本,并在执行时核对实际安装版本;在目标 Android 设备与应用的实际当前状态开始;需要建立的前置条件;依据原文进行的操作;等待**可观察的界面状态**而不是依赖模型思考时间;原文的预期结果及截图/页面文字/日志等可取得的证据;失败、未验证、版本不一致或条件不满足时如实报告。必要的 SN、秘钥、名称、型号可直接写入对应任务,但不能给无关用例灌入这些值。不要把缺失的原文判据补成看似确定的断言。
|
||||
|
||||
直播画面中的分辨率切换、全屏、声音开启/关闭等控件可能在点击画面后才显示,也可能藏在随之出现的二级菜单。仅当用例操作确实位于直播页且初次观察未找到目标元素时,提示 ARTEMIS 先截取/查看当前页面,轻点不覆盖明显按钮的直播画面区域一次,再观察新的控件或菜单并尝试定位目标。菜单若短暂显示,应在其可见时完成后续操作;若仍不存在,记录观察和截图,报告未找到,不反复盲点或编造菜单位置。声音开关可核对界面呈现的开/关状态、图标或可观察反馈;若预期要求确认实际声音质量或是否听得到,不能以图标变化冒充听音验证。此提示不是对当前 App 实际界面的预先验证,不能套用于设置页等其他场景。
|
||||
|
||||
App 设置页往往较长,目标功能可能在首屏下方。整理设置页用例时,如初次观察未见目标,提示 ARTEMIS 在设置列表中向上滑动较长距离(让下方内容出现),每次滑动后重新查看页面并查找目标;若仍未见,可根据页面变化继续滑动,直到可确认已到列表底部,再记录未找到。不要在未查看新页面时连续盲滑,也不要把用户的“多滑一点”写成未验证的固定像素、次数或坐标。
|
||||
|
||||
卡回看和云回看的日期/时间轴上,有颜色的区域通常表示有数据,空白区域通常表示无数据。整理有录像片段的回放用例提示词时,先识别当前选中的回看类型及其有颜色区域,再在已经过去的时间中选取该区域并尝试回放,以实际播放/页面结果验证;不要假设卡与云的有数据区相同,也不要仅凭颜色判定回放成功。若用例本身要检验无数据区域,则按原文选择空白的过去时间并核对无数据反馈,不能拿它作为有录像回放失败的证据。选取回放片段前核对当前设备/App 时间和所选时间的时区及先后,不要求拖到未来时间;不能把未来片段不存在判成回放失败。若原用例专门检验时间轴上界,则观察是否无法选取或播放未来时间,记录界面证据,不假定具体控件反馈。颜色含义是用户提供的一般操作线索,具体 App 界面仍须在执行时观察确认。
|
||||
|
||||
**仅移动爱家 App**:卡回放目标入口未见时,可先点击“云回看”,重新观察是否出现云回看/卡回放切换,再选择卡回放。其他 App 不沿用这条入口提示;切换未出现时记录当前页面并报告未找到,不编造固定按钮位置。此路径是用户提供的操作线索,真正编写可执行测试代码前仍须用 ARTEMIS 在目标 App 验证。
|
||||
|
||||
凡要求信息一致、匹配或同步,执行前核对具体比较字段、独立的预期值或可信来源,以及对应设备、账号、App 版本等范围。比如原用例要求“设备型号和厂商提供的一致”,须先取得厂商提供的目标型号,再将 App 中读到的型号与它比较;不能把 App 显示值同时当成预期和实际。缺少参照信息时列明待补项,该用例不可启动,也不可报告通过。
|
||||
|
||||
例:原文若要求“进入系统设置,修改一个可见开关并确认状态”,提示词应说明识别目标开关、记录初始状态、执行切换、等界面显示目标状态并记录证据;若原文还要求回退,则依原文回退。示例只说明写法,不证明附件中的某条用例具有这些步骤。
|
||||
|
||||
排除边界:PC 管理端、外接 console、实物遮挡/断电、需要人工听音/看画质、无法自主建立的网络或硬件状态,不标“是”。长时或重复的 Android 操作不是单凭次数就排除,但需有可测的时间/次数、可恢复前置状态和明确结果;缺任一关键条件则标“否”。ARTEMIS Pro 可观察 ADB/日志,不代表能代替外部硬件、PC 或人的感官。
|
||||
|
||||
截至附带的 ARTEMIS 1.0.1 源码,`task_import.py` 只接受工作表 `任务` 首行严格七列(任务名称、任务目标、预期结果、目标应用、前置条件、输入参数(JSON)、标签)。本六列任务表是供未来导入改造使用的业务模板,不宣称兼容 1.0.1,也不转换成七列。后续执行前核实服务的真实导入契约。
|
||||
@@ -3,5 +3,5 @@
|
||||
"name": "playwright浏览器自动化操作",
|
||||
"version": "20260605",
|
||||
"keySource": "none",
|
||||
"syncedAt": "2026-09-24T03:15:08Z"
|
||||
"syncedAt": "2026-09-24T09:42:55Z"
|
||||
}
|
||||
@@ -2,8 +2,8 @@
|
||||
"sourceId": "next-skills",
|
||||
"repo": "https://github.com/vercel/next.js.git",
|
||||
"ref": "canary",
|
||||
"commit": "e71848173cf199bb56e88c1c04aa977cdb0a84df",
|
||||
"commit": "76117ccd71fdfaf4d5377b7ed08d238de845321b",
|
||||
"adapter": "skill-collection",
|
||||
"sourcePath": "skills",
|
||||
"syncedAt": "2026-09-24T03:13:04Z"
|
||||
"syncedAt": "2026-09-24T09:40:56Z"
|
||||
}
|
||||
Reference in new issue
Block a user