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
b254c49c81
commit
ef6dd4b5f0
14 files changed
+71
-52
No files matched your search
@@ -35,7 +35,7 @@ Codex 插件页的大标题按 marketplace 来源分组,不是按插件 `categ
|
|||||||
|
|
||||||
`artemis-automation` 提供 Android 真机或模拟器的自然语言测试、批量用例、失败诊断、历史检索和报告交付流程。市场只分发 Skill;使用前需单独部署并配置兼容的 ARTEMIS MCP、Android 设备和模型网关。
|
`artemis-automation` 提供 Android 真机或模拟器的自然语言测试、批量用例、失败诊断、历史检索和报告交付流程。市场只分发 Skill;使用前需单独部署并配置兼容的 ARTEMIS MCP、Android 设备和模型网关。
|
||||||
|
|
||||||
`artemis-case-prep` 根据原始 Android 测试工作簿筛选可自动化用例,保留原表副本并生成六列 ARTEMIS 任务表;它只准备文档,不启动测试。附带的六列模板尚不兼容 ARTEMIS 1.0.1 的七列原生导入器。
|
`artemis-case-prep` 根据原始 Android 测试工作簿筛选可自动化用例,保留原表副本并生成七列 ARTEMIS 任务表;它只准备文档,不启动测试。导入前请检查表头与当前 ARTEMIS 版本是否匹配。
|
||||||
|
|
||||||
部分插件依赖特定运行环境。`$updating-gitea-repositories` 面向 Gitea HTTPS、GCM 和 PAT 工作流;`$etunel-role-collaboration` 仅在 Etunel 提供角色、成员、Hook 和任务上下文时使用。安装前应查看插件详情并确认运行前置条件。
|
部分插件依赖特定运行环境。`$updating-gitea-repositories` 面向 Gitea HTTPS、GCM 和 PAT 工作流;`$etunel-role-collaboration` 仅在 Etunel 提供角色、成员、Hook 和任务上下文时使用。安装前应查看插件详情并确认运行前置条件。
|
||||||
|
|
||||||
|
|||||||
@@ -765,7 +765,7 @@
|
|||||||
],
|
],
|
||||||
"brandColor": "#177C80",
|
"brandColor": "#177C80",
|
||||||
"manifestOverrides": {
|
"manifestOverrides": {
|
||||||
"description": "从 Android 原始测试工作簿筛选可由 ARTEMIS 自动化的用例,标记原表副本并生成六列任务表。",
|
"description": "从 Android 原始测试工作簿筛选可由 ARTEMIS 自动化的用例,标记原表副本并生成七列任务表。",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "hejunxian",
|
"name": "hejunxian",
|
||||||
"url": "https://git.playones.com/hejunxian"
|
"url": "https://git.playones.com/hejunxian"
|
||||||
@@ -776,14 +776,14 @@
|
|||||||
"keywords": ["artemis", "android", "test-case", "workbook", "excel"],
|
"keywords": ["artemis", "android", "test-case", "workbook", "excel"],
|
||||||
"interface": {
|
"interface": {
|
||||||
"displayName": "artemis-case-prep",
|
"displayName": "artemis-case-prep",
|
||||||
"shortDescription": "筛选 Android 用例,生成可追溯的六列 ARTEMIS 任务表。",
|
"shortDescription": "筛选 Android 用例,生成可追溯的七列 ARTEMIS 任务表。",
|
||||||
"longDescription": "识别多工作表 Android 原始用例的适用性与自动化边界,保留原表并标记选择结果,按附带 Excel 模板生成六列 ARTEMIS 任务文档。只准备文档,不运行批次;六列模板目前不兼容 ARTEMIS 1.0.1 的七列原生导入器。",
|
"longDescription": "识别多工作表 Android 原始用例的适用性与自动化边界,保留原表并标记选择结果,按附带 Excel 模板生成七列 ARTEMIS 任务文档。只准备文档,不运行批次;导入前请检查表头与当前 ARTEMIS 版本是否匹配。",
|
||||||
"developerName": "hejunxian",
|
"developerName": "hejunxian",
|
||||||
"category": "Developer Tools",
|
"category": "Developer Tools",
|
||||||
"capabilities": ["Interactive", "Read", "Write"],
|
"capabilities": ["Interactive", "Read", "Write"],
|
||||||
"defaultPrompt": [
|
"defaultPrompt": [
|
||||||
"使用 artemis-case-prep 检查这份测试用例是否具备转换条件。",
|
"使用 artemis-case-prep 检查这份测试用例是否具备转换条件。",
|
||||||
"使用 artemis-case-prep 从原始工作簿准备六列任务表。"
|
"使用 artemis-case-prep 从原始工作簿准备七列任务表。"
|
||||||
],
|
],
|
||||||
"websiteURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
"websiteURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||||
"privacyPolicyURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
"privacyPolicyURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||||
|
|||||||
@@ -42,8 +42,8 @@
|
|||||||
"repo": "https://github.com/shadcn-ui/ui.git",
|
"repo": "https://github.com/shadcn-ui/ui.git",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"commit": "98a1fe67b439324ddc857f47fbdce056600a4329",
|
"commit": "984f4351cb3877fc60726ccec8c4d0bc1631bc0d",
|
||||||
"syncedAt": "2026-09-22T16:08:55Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "frontend-slides",
|
"id": "frontend-slides",
|
||||||
@@ -121,19 +121,19 @@
|
|||||||
"id": "artemis-case-prep",
|
"id": "artemis-case-prep",
|
||||||
"pluginName": "artemis-case-prep",
|
"pluginName": "artemis-case-prep",
|
||||||
"repo": "https://git.playones.com/hejunxian/artemis-case-prep.git",
|
"repo": "https://git.playones.com/hejunxian/artemis-case-prep.git",
|
||||||
"ref": "v1.0.0",
|
"ref": "v1.1.0",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"commit": "94200db05a6b4d046222879b87672d45d791e756",
|
"commit": "e1e094513f4b9360231022f6d18a0ebc6a04dc7d",
|
||||||
"syncedAt": "2026-09-24T09:40:56Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "artemis-automation",
|
"id": "artemis-automation",
|
||||||
"pluginName": "artemis-automation",
|
"pluginName": "artemis-automation",
|
||||||
"repo": "https://git.playones.com/chenmingxuan/Artemis-Eapil.git",
|
"repo": "https://git.playones.com/chenmingxuan/Artemis-Eapil.git",
|
||||||
"ref": "v1.2.0",
|
"ref": "v1.2.1",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"commit": "84e183d28de0d759acbd1e61f78acec767739a4c",
|
"commit": "1dc2b0c6867da5a505e558974bb330743e4c30c6",
|
||||||
"syncedAt": "2026-09-25T16:00:00Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "embedded-app-pc-debug",
|
"id": "embedded-app-pc-debug",
|
||||||
@@ -168,8 +168,8 @@
|
|||||||
"repo": "https://github.com/vercel/next.js.git",
|
"repo": "https://github.com/vercel/next.js.git",
|
||||||
"ref": "canary",
|
"ref": "canary",
|
||||||
"adapter": "skill-collection",
|
"adapter": "skill-collection",
|
||||||
"commit": "0423222b7eb3a1373b5bff4c939fd69858928993",
|
"commit": "705a28453296df17c5d269a4248ca36758a6fce2",
|
||||||
"syncedAt": "2026-09-27T16:00:00Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "shuorenhua",
|
"id": "shuorenhua",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "artemis-automation",
|
"name": "artemis-automation",
|
||||||
"version": "1.2.0",
|
"version": "1.2.1",
|
||||||
"description": "使用 ARTEMIS MCP 完成 Android 自动化测试、批量执行、失败诊断、历史检索和报告交付。",
|
"description": "使用 ARTEMIS MCP 完成 Android 自动化测试、批量执行、失败诊断、历史检索和报告交付。",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "chenmingxuan",
|
"name": "chenmingxuan",
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"sourceId": "artemis-automation",
|
"sourceId": "artemis-automation",
|
||||||
"repo": "https://git.playones.com/chenmingxuan/Artemis-Eapil.git",
|
"repo": "https://git.playones.com/chenmingxuan/Artemis-Eapil.git",
|
||||||
"ref": "v1.2.0",
|
"ref": "v1.2.1",
|
||||||
"commit": "84e183d28de0d759acbd1e61f78acec767739a4c",
|
"commit": "1dc2b0c6867da5a505e558974bb330743e4c30c6",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"sourcePath": "skills/artemis-automation",
|
"sourcePath": "skills/artemis-automation",
|
||||||
"syncedAt": "2026-09-25T16:00:00Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "artemis-case-prep",
|
"name": "artemis-case-prep",
|
||||||
"version": "1.0.0",
|
"version": "1.1.0",
|
||||||
"description": "从 Android 原始测试工作簿筛选可由 ARTEMIS 自动化的用例,标记原表副本并生成六列任务表。",
|
"description": "从 Android 原始测试工作簿筛选可由 ARTEMIS 自动化的用例,标记原表副本并生成七列任务表。",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "hejunxian",
|
"name": "hejunxian",
|
||||||
"url": "https://git.playones.com/hejunxian"
|
"url": "https://git.playones.com/hejunxian"
|
||||||
@@ -19,8 +19,8 @@
|
|||||||
"skills": "./skills/",
|
"skills": "./skills/",
|
||||||
"interface": {
|
"interface": {
|
||||||
"displayName": "artemis-case-prep",
|
"displayName": "artemis-case-prep",
|
||||||
"shortDescription": "筛选 Android 用例,生成可追溯的六列 ARTEMIS 任务表。",
|
"shortDescription": "筛选 Android 用例,生成可追溯的七列 ARTEMIS 任务表。",
|
||||||
"longDescription": "识别多工作表 Android 原始用例的适用性与自动化边界,保留原表并标记选择结果,按附带 Excel 模板生成六列 ARTEMIS 任务文档。只准备文档,不运行批次;六列模板目前不兼容 ARTEMIS 1.0.1 的七列原生导入器。",
|
"longDescription": "识别多工作表 Android 原始用例的适用性与自动化边界,保留原表并标记选择结果,按附带 Excel 模板生成七列 ARTEMIS 任务文档。只准备文档,不运行批次;导入前请检查表头与当前 ARTEMIS 版本是否匹配。",
|
||||||
"developerName": "hejunxian",
|
"developerName": "hejunxian",
|
||||||
"category": "Developer Tools",
|
"category": "Developer Tools",
|
||||||
"capabilities": [
|
"capabilities": [
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
],
|
],
|
||||||
"defaultPrompt": [
|
"defaultPrompt": [
|
||||||
"使用 artemis-case-prep 检查这份测试用例是否具备转换条件。",
|
"使用 artemis-case-prep 检查这份测试用例是否具备转换条件。",
|
||||||
"使用 artemis-case-prep 从原始工作簿准备六列任务表。"
|
"使用 artemis-case-prep 从原始工作簿准备七列任务表。"
|
||||||
],
|
],
|
||||||
"websiteURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
"websiteURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||||
"privacyPolicyURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
"privacyPolicyURL": "https://git.playones.com/hejunxian/artemis-case-prep",
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"sourceId": "artemis-case-prep",
|
"sourceId": "artemis-case-prep",
|
||||||
"repo": "https://git.playones.com/hejunxian/artemis-case-prep.git",
|
"repo": "https://git.playones.com/hejunxian/artemis-case-prep.git",
|
||||||
"ref": "v1.0.0",
|
"ref": "v1.1.0",
|
||||||
"commit": "94200db05a6b4d046222879b87672d45d791e756",
|
"commit": "e1e094513f4b9360231022f6d18a0ebc6a04dc7d",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"sourcePath": ".",
|
"sourcePath": ".",
|
||||||
"syncedAt": "2026-09-24T09:40:56Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
---
|
---
|
||||||
name: artemis-case-prep
|
name: artemis-case-prep
|
||||||
description: 从多工作表原始 Android 测试用例中筛选适用于目标设备且可由 ARTEMIS 自动执行的用例,标记原表副本并填写六列批量任务模板的 Artemis 提示词。用于准备任务文档,不用于直接运行批次或改造导入器。
|
description: 从多工作表原始 Android 测试用例中筛选适用于目标设备且可由 ARTEMIS 自动执行的用例,核实测试环境和用例信息后标记原表副本,并填写七列批量任务模板。用于准备任务文档,不用于直接运行批次或改造导入器。
|
||||||
---
|
---
|
||||||
|
|
||||||
# ARTEMIS 用例准备
|
# ARTEMIS 用例准备
|
||||||
|
|
||||||
把原始测试用例工作簿转成两份可追溯的文件:保留原有内容并新增“是否选中作为自动化执行”(`是`/`否`)列的原表副本,以及只包含选中用例的六列任务表。优先使用用户提供的模板;未提供时使用 [六列模板](assets/artemis-tasks.xlsx)。不要覆盖输入文件。
|
把原始测试用例工作簿转成两份可追溯的文件:保留原有内容并新增“是否选中作为自动化执行”(`是`/`否`)列的原表副本,以及只包含选中用例的七列任务表。优先使用用户提供且符合下述七列表头的模板;未提供时使用 [七列模板](assets/artemis-tasks.xlsx)。不要覆盖输入文件。
|
||||||
|
|
||||||
## 先确认适用性,再判断自动化
|
## 先确认适用性,再判断自动化
|
||||||
|
|
||||||
@@ -13,18 +13,26 @@ description: 从多工作表原始 Android 测试用例中筛选适用于目标
|
|||||||
2. 适用性由用户在**原始用例**中完成:核对目标设备及每条用例的“是否适用”标记、标题限定或明确的适用说明;不强制另建设备能力清单。若有空白、缺少行级判定而无法由原文明确判定,或目标设备信息与原文范围无法对应,列出缺失的工作表与行号(可压缩连续行段),提醒用户补齐并**暂停正式转换**。不得把空白当作“不适用”,也不得从型号臆测设备能力。适用性明确为“否”的用例在自动化列标“否”。
|
2. 适用性由用户在**原始用例**中完成:核对目标设备及每条用例的“是否适用”标记、标题限定或明确的适用说明;不强制另建设备能力清单。若有空白、缺少行级判定而无法由原文明确判定,或目标设备信息与原文范围无法对应,列出缺失的工作表与行号(可压缩连续行段),提醒用户补齐并**暂停正式转换**。不得把空白当作“不适用”,也不得从型号臆测设备能力。适用性明确为“否”的用例在自动化列标“否”。
|
||||||
3. 对适用用例逐条判断能否由 ARTEMIS 的 Android UI 操作及其可用 ADB/日志观察建立前置条件、完成动作并取得可核验结果。依赖人工观察、实物遮挡/断电、外部设备或 PC 操作、主观音画质量评价,或者前置条件无法建立的用例标“否”,不交给 ARTEMIS 试跑。不能因为有步骤文字就判“是”。“是”表示适合自动化执行,不表示测试已经通过。
|
3. 对适用用例逐条判断能否由 ARTEMIS 的 Android UI 操作及其可用 ADB/日志观察建立前置条件、完成动作并取得可核验结果。依赖人工观察、实物遮挡/断电、外部设备或 PC 操作、主观音画质量评价,或者前置条件无法建立的用例标“否”,不交给 ARTEMIS 试跑。不能因为有步骤文字就判“是”。“是”表示适合自动化执行,不表示测试已经通过。
|
||||||
原始步骤若有不清晰之处,尤其操作对象、顺序、入口、触发条件或结果判定不明确时,列出来源工作表、行号、原文及具体疑问,向使用者确认后再判定该条用例并定稿 Artemis 提示词。确认前不猜测步骤或界面路径,也不把“否”作为替代澄清的标记;可继续整理其他明确用例,但受影响条目保持待确认,正式任务表待澄清后再交付。
|
原始步骤若有不清晰之处,尤其操作对象、顺序、入口、触发条件或结果判定不明确时,列出来源工作表、行号、原文及具体疑问,向使用者确认后再判定该条用例并定稿 Artemis 提示词。确认前不猜测步骤或界面路径,也不把“否”作为替代澄清的标记;可继续整理其他明确用例,但受影响条目保持待确认,正式任务表待澄清后再交付。
|
||||||
4. **确认测试任务之前**,明确目标测试 App 的版本(以用户提供或设备上核实的版本标识为准,不用文档日期或设备固件版本代替);版本缺失时只可准备草稿,不称为已确认的任务。**测试开始之前**另须确认设备 SN、秘钥、设备名称、设备型号。用户已明确这四项设备信息在该工作流中可正常流转;相关用例可直接使用已提供的值,不凭空编造。设备信息缺失时明确待补内容,不称为可执行,也不启动测试;不要把 ARTEMIS 的模型 API Key 与设备秘钥混同。
|
4. **编写任何 Artemis 提示词之前**,先取得用户提供或明确确认的四项信息:① Android 模拟器名称(不用模拟器时,由用户明确说明“使用真机、不使用模拟器”);②测试 App 名称;③测试 App 版本;④被测设备名称。模拟器是运行 App 的 Android 环境,被测设备是用例操作的设备,两者不可混用;设备型号、固件版本和用例文档日期不能替代 App 版本。已有对话或用户提供的原始资料中有明确值时直接沿用,不重复索取;仍缺任何一项时集中列出缺项并暂停提示词编写,不生成带占位符的草稿提示词。可先分析原表并整理待确认用例。
|
||||||
5. 涉及“与某信息一致/匹配/同步”等断言的用例,**测试前**逐项补齐要比较的字段、可信的预期值或独立参照来源,以及适用设备/账号/版本范围。原文没有给足但可补充时,保留其自动化候选判断,在草稿中列出具体待补项;未补齐不得启动该用例。若确实无法取得独立参照,才判为无法自动核验。不能从被测页面自身反推预期,或把“显示正常”当作一致。
|
5. 逐条检查用例是否足以确定前置条件、操作对象与顺序、触发条件、可观察的预期结果。原文或用户资料不全时,列出来源工作表、行号、原文和具体缺项,请用户补齐后才编写该条提示词;不猜测步骤、界面路径或预期,也不以“否”代替澄清。涉及“一致/匹配/同步”时,还须取得比较字段、独立的预期值或可信参照及适用范围;不能从被测页面自身反推预期。若用户明确无法取得独立参照,才判为无法自动核验。其他信息完整的用例可继续整理,但正式任务表应待全部待确认项处理后交付。
|
||||||
|
6. **测试开始之前**,在目标 Android 环境中统一核验一次实际安装的 App 版本并记录结果;同一轮测试的各条用例沿用该结果,不逐条重新核验。若测试过程中安装版本变化,重新核验。另须确认需要使用的设备 SN、秘钥、设备型号等执行信息。用户已明确这些设备信息可在该工作流中正常流转;相关用例可直接使用已提供的值,不凭空编造。若某项信息本身是用例前置条件或断言所必需,应按第 5 条在编写该条提示词前取得。不要把 ARTEMIS 的模型 API Key 与设备秘钥混同。
|
||||||
|
|
||||||
## 生成与核验
|
## 生成与核验
|
||||||
|
|
||||||
- 在原表**副本**的用例表增加且只增加所要求的自动化标记列(若已有此列则更新,不重复新增);每条用例填 `是` 或 `否`。先核对目标位置不会覆盖既有数据,保留原工作表、原文、图片、合并、格式及非用例页。若所选表格工具不能保真,停止交付并说明损失,不输出貌似完整的副本。遵循可用的 spreadsheet 工作流进行编辑、渲染与导出检查。
|
- 在原表**副本**的用例表增加且只增加所要求的自动化标记列(若已有此列则更新,不重复新增);每条用例填 `是` 或 `否`。先核对目标位置不会覆盖既有数据,保留原工作表、原文、图片、合并、格式及非用例页。若所选表格工具不能保真,停止交付并说明损失,不输出貌似完整的副本。遵循可用的 spreadsheet 工作流进行编辑、渲染与导出检查。
|
||||||
- 任务表严格沿用 `任务` 页的六列顺序:`用例编号 / 检测项目 / 测试子项 / 测试用例 / 前置约束提取 / Artemis提示词`。只写入适用且自动化列为“是”的用例;其他工作表保持模板原样。编号在任务表内保留原值并附 `〔来源页!行号〕`,以区分重号;原表编号不改。
|
- 任务表严格沿用 `任务` 页的七列顺序:`用例编号 / 检测项目 / 测试子项 / 测试用例 / 前置约束提取 / Artemis提示词 / 任务配置(JSON)`。只写入适用且自动化列为“是”、提示词所需信息已补齐的用例;其他工作表保持模板原样。`用例编号` 只填写原表显示的编号,不附 `(Sheet1!2)`、`〔来源页!行号〕` 等工作表/行号后缀;原表编号不改。重复编号保持原样,处理时另以来源工作表和行号定位用例。`Artemis提示词` 是唯一提交给 AI 的任务正文,其他文本列只作元数据,不自动拼入提示词。
|
||||||
- “前置约束提取”写确认的测试 App 版本及原文实际要求的设备、账号、网络和状态;一致性用例还写明比较字段与独立预期值/来源,草稿中可明确标出待补项,但不把未确认条件写成已满足。“Artemis提示词”**必须以 `【原表显示的用例编号】` 紧接原“测试用例”文本开头**,随后接完整执行说明;例如 `【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程` 后另起执行说明。这里的连接是文本拼接,不写字面 `+`;提示词前缀不附来源页/行号。执行说明写明在确认的 App 版本上操作、起点、操作意图、必要等待/状态转移、可观察的预期及证据要求;一致性断言须明确实际值与哪个预期值比较。直播页的分辨率切换、全屏、声音开启/关闭等目标控件初次未显示时,可先观察画面、轻点直播画面一次并重新观察可能浮现的控件或二级菜单;声音开关仅以可观察的 UI 状态核验,不把需要人工听音的结果判为自动化可核验。卡回看和云回看可将有颜色区域作为有数据的选时线索、空白区域作为无数据线索;选有数据片段时先选择过去且有颜色的区域,再用回放结果核验,不仅凭颜色判通过,也不设计拖动到未来。**仅移动爱家 App** 的卡回放用例可在点击“云回看”后观察是否出现切换入口。以上均是适用场景的条件性提示,不发明 UI 定位器、页面路径、精确坐标或功能。条件不满足、参照信息缺失或实际安装版本不一致时如实报告阻塞,不声称通过。无可用原编号或测试用例文本时列出来源行请用户补齐,不造编号或标题。更多写法见 [字段与边界](references/workbook-contract.md)。
|
- `任务配置(JSON)` 可留空,表示继承批次或全局配置;确需逐项覆盖时,只写当前 ARTEMIS 导入器支持的字段和值,使用合法 JSON 对象,不写密钥、占位值或未经确认的设备序列号。模拟器名称和被测设备名称不能当作 `device_serial`;填写前核对实际序列号。字段及导入边界见 [七列契约](references/workbook-contract.md#模板)。
|
||||||
- 设置页功能项较多;相关用例在首屏未找到目标时,提示词应允许向上滑动更长距离以查看下方内容,并在每次滑动后重新观察和定位。不要把首屏未见当作功能缺失,也不要规定未经核实的固定坐标、距离或盲滑次数;见 [设置页查找边界](references/workbook-contract.md#提示词与决策)。
|
- “前置约束提取”写目标测试 App 版本及原文实际要求的设备、账号、网络和状态;一致性用例还写明比较字段与独立预期值/来源,草稿中可明确标出待补项,但不把未确认条件写成已满足。“Artemis提示词”**必须以 `【原表显示的用例编号】` 紧接原“测试用例”文本开头**,随后接完整执行说明;例如 `【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程` 后另起执行说明。这里的连接是文本拼接,不写字面 `+`;提示词前缀不附来源页/行号。执行说明写明沿用测试开始前统一核验的 App 版本,不要求每条用例再次检查;还须写明起点、操作意图、必要等待/状态转移、可观察的预期及判定方式;一致性断言须明确实际值与哪个预期值比较。直播页的分辨率切换、全屏、声音开启/关闭等目标控件初次未显示时,可先观察画面、轻点直播画面一次并重新观察可能浮现的控件或二级菜单;声音开关仅以可观察的 UI 状态核验,不把需要人工听音的结果判为自动化可核验。卡回看和云回看可将有颜色区域作为有数据的选时线索、空白区域作为无数据线索;选有数据片段时先选择过去且有颜色的区域,再用回放结果核验,不仅凭颜色判通过,也不设计拖动到未来。**仅移动爱家 App** 的卡回放用例可在点击“云回看”后观察是否出现切换入口。以上均是适用场景的条件性提示,不发明 UI 定位器、页面路径、精确坐标或功能。无可用原编号或测试用例文本时列出来源行请用户补齐,不造编号或标题。给 Codex 的通用截图、录屏、证据归档及结论要求不写入“Artemis提示词”;更多写法见 [字段与边界](references/workbook-contract.md)。
|
||||||
- 核对原表每条真实用例的标记均为 `是`/`否`,任务表数据行数恰等于“是”的数量;逐行检查提示词的编号和用例文本前缀、App 版本是否与本次确认值一致,并抽查一致性用例有独立参照且比较字段明确;再抽查不同表头布局、重复编号、合并/续行和排除项。确认输入文件未改、两份输出的非目标内容未意外变化,且六列表头、提示词与来源可回溯。
|
- “前置约束提取”及每条正式“Artemis提示词”都要写明已确认的模拟器名称或真机环境、测试 App 名称与版本、被测设备名称。执行说明沿用测试开始前统一核验的安装版本,不要求逐条再查。用例缺失的操作、前置或预期信息只列在单独的待补清单中;补齐前不写该条提示词,也不将占位内容放进任务表。
|
||||||
|
- 每条“Artemis提示词”在完成本用例的操作和结果观察后,要求返回目标 App 内的设备首页并确认首页可见;用例失败或未验证时也应尝试返回。不要把 Android 系统桌面当成设备首页,也不要编造返回路径。若因解绑、页面异常等原因无法返回,说明最终页面和原因。Codex 在开始下一条前核对设备首页已恢复;未恢复时先处理状态问题,避免用例相互干扰。
|
||||||
|
- **移动爱家 App** 点击“设置”进入设置页后,先等待页面刷新出实际设置内容并重新观察,确认目标控件属于刷新后的页面,再进行点击或滑动;不能把刚进入时的空白、占位或旧页面当作最终内容。设置页功能项较多;相关用例在已加载的首屏未找到目标时,提示词应允许向上滑动更长距离以查看下方内容,并在每次滑动后重新观察和定位。不要把首屏未见当作功能缺失,也不要规定未经核实的固定等待时间、坐标、距离或盲滑次数;见 [设置页查找边界](references/workbook-contract.md#提示词与决策)。
|
||||||
|
- 核对原表每条真实用例的标记均为 `是`/`否`,待确认条目全部处理后,任务表数据行数恰等于“是”的数量;逐行检查编号列只含原表显示的编号、提示词的编号和用例文本前缀,且每条提示词都要求结束时返回 App 内设备首页;核对模拟器或真机环境、App 名称与版本、被测设备名称与用户确认值一致,且提示词没有逐条核验版本、通用截图录屏、证据归档或结论指令。第七列应为空或为可解析、仅含受支持字段的 JSON 对象。抽查一致性用例有独立参照且比较字段明确,再抽查不同表头布局、重复编号、合并/续行和排除项。确认输入文件未改、两份输出的非目标内容未意外变化,且七列表头、提示词与来源可回溯。
|
||||||
|
|
||||||
当前所附 ARTEMIS 1.0.1 的原生 Excel 导入器要求另一套固定七列,**不能声称本六列文件已通过导入**。用户明确要保留六列,后续会改 ARTEMIS 实现;本 skill 不擅自生成第七列、改源码、调用 `mobile_batch` 或启动设备。将来用户要求执行时,先按当时服务版本预览校验并取得执行授权;编写外部可执行测试代码则先用 ARTEMIS 探索实际应用。
|
本七列模板与当前查看的 ARTEMIS `task_import.py` 表头一致,但不能仅凭表头声称文件已通过导入。用户将来要求执行时,先用当时服务的预览校验,再按执行授权启动;本 skill 不改导入器、不调用 `mobile_batch`、不启动设备。编写外部可执行测试代码则先用 ARTEMIS 探索实际应用。
|
||||||
|
|
||||||
|
## Codex 执行与证据归档(不写入 Artemis 提示词)
|
||||||
|
|
||||||
|
后续执行测试时,Codex 在关键操作前后截图并保留本任务录屏;记录证据路径,以便归档到工作区“测试佐证”目录。若工具只能保存到 ARTEMIS trace,报告 trace 和证据路径。前置条件不成立、控件未找到或证据不能证明预期时,如实报告阻塞或未验证,不写通过。这些要求由 Codex 处理,不拼入任务表每条“Artemis提示词”。
|
||||||
|
|
||||||
## 执行状态显示取消但之后完成
|
## 执行状态显示取消但之后完成
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
interface:
|
interface:
|
||||||
display_name: "ARTEMIS 用例准备"
|
display_name: "ARTEMIS 用例准备"
|
||||||
short_description: "筛选设备适用且可自动化的用例,填写六列任务表"
|
short_description: "筛选设备适用且可自动化的用例,填写七列任务表"
|
||||||
BIN
Binary file not shown.
+21
-10
@@ -1,21 +1,24 @@
|
|||||||
# 六列任务表与判定边界
|
# 七列任务表与判定边界
|
||||||
|
|
||||||
本参考记录用户所附模板与原始用例的非显然结构,供处理这类工作簿时使用。新输入须重新核对表头和适用性,不要把示例页当作通用列号映射。
|
本参考记录用户所附模板与原始用例的非显然结构,供处理这类工作簿时使用。新输入须重新核对表头和适用性,不要把示例页当作通用列号映射。
|
||||||
|
|
||||||
## 模板
|
## 模板
|
||||||
|
|
||||||
`assets/artemis-tasks.xlsx` 来自用户的 `artemis-tasks.xlsx`。`任务!A1:F1` 才是本次约定的输出结构,依次为:
|
`assets/artemis-tasks.xlsx` 在原有六列后增加 `任务配置(JSON)`,并更新了“填写说明”页。`任务!A1:G1` 是本次约定的输出结构,依次为:
|
||||||
|
|
||||||
| 列 | 内容 |
|
| 列 | 内容 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| 用例编号 | 原编号加 `〔来源页!行号〕`;编号本身不可用作唯一键。 |
|
| 用例编号 | 只填原表显示的编号,不附工作表名、行号等来源后缀;重复编号保持原样。处理时用来源工作表和行号区分记录。 |
|
||||||
| 检测项目 | 对应原文项目,保留其语义。 |
|
| 检测项目 | 对应原文项目,保留其语义。 |
|
||||||
| 测试子项 | 对应原文子项;没有独立子项时不杜撰。 |
|
| 测试子项 | 对应原文子项;没有独立子项时不杜撰。 |
|
||||||
| 测试用例 | 保留原用例目的与关键动作,必要时压缩冗余但不改变判据。 |
|
| 测试用例 | 保留原用例目的与关键动作,必要时压缩冗余但不改变判据。 |
|
||||||
| 前置约束提取 | 本次确认的测试 App 版本、设备适用范围、账号/网络/状态、SN/秘钥等前置;一致性用例还需比较字段及独立预期值/来源;区分已知与待建立。 |
|
| 前置约束提取 | 用户确认的模拟器名称或真机环境、测试 App 名称和版本、被测设备名称,以及原文要求的账号/网络/状态等前置;一致性用例还需比较字段及独立预期值/来源。 |
|
||||||
| Artemis提示词 | 以 `【原表显示的用例编号】` + 原“测试用例”文本开头,再接完整、自包含的执行请求,见下方。 |
|
| Artemis提示词 | 以 `【原表显示的用例编号】` + 原“测试用例”文本开头,再接完整、自包含的执行请求,见下方。 |
|
||||||
|
| 任务配置(JSON) | 可留空;逐项覆盖时填写合法 JSON 对象,只使用当前导入器支持的字段,不放密钥。 |
|
||||||
|
|
||||||
模板的 `填写说明` 页混用了“任务名称、任务目标、预期结果”等七列导入术语,和实际六列表头不一致;它是附件内容,不覆盖用户已确认的六列要求。保留该页,不拿它修改 `任务` 页的列数。
|
当前查看的 ARTEMIS `task_import.py` 使用同一七列表头。只有 `Artemis提示词` 列作为发送给 AI 的任务正文;`前置约束提取` 与其他描述列是元数据,不自动拼接。`任务配置(JSON)` 可留空,空字段继承批次或全局配置;确需覆盖时,当前允许 `profile`、`model`、`reasoning_effort`、`device_serial`、`verification_level`、`explorer_mode`、`locked_app_package`、`record_video`、`analyze_video`、`request_timeout_seconds`、`max_retries`、`retry_interval_seconds`、`timeout_seconds`。具体取值及限制以执行时导入器为准;未知字段、密钥和非对象 JSON 会被拒绝。模拟器名称或被测设备名称不是 Android `device_serial`,没有已确认的序列号就留空该字段。
|
||||||
|
|
||||||
|
不要把新增一列当作导入成功证明。执行前用当时的 `mobile_task_file(action="preview")` 检查文件和逐行错误;本 skill 只准备文档,不启动批次。
|
||||||
|
|
||||||
## 原始用例
|
## 原始用例
|
||||||
|
|
||||||
@@ -25,22 +28,30 @@
|
|||||||
|
|
||||||
## 提示词与决策
|
## 提示词与决策
|
||||||
|
|
||||||
对每条“是”,首字符起按 `【原表显示的用例编号】` + 原“测试用例”文本(仅去首尾多余空白)拼接。保留原文已有的 `【】`,不要再给整段用例标题套一层方括号;不要把任务表编号列中的 `〔来源页!行号〕` 带入前缀,也不要写字面 `+`。例如 `1设备绑定!3` 的前缀是 `【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程`。这只是格式示例,该行还需人工复位,不能因此标成自动化“是”。若 Excel 数值编号的显示格式与底层数值不同(如 `1.10`),采用原表显示的编号。
|
编写任何提示词之前,先取得用户提供或明确确认的模拟器名称(使用真机时由用户明确说明)、测试 App 名称与版本、被测设备名称。逐条核对原始用例的前置、步骤和预期;缺少关键事实时列出来源页、行号和具体待补项,请用户补齐后再写该条提示词。缺少独立比较参照的一致性用例同样先补齐,不用占位符或猜测代替。
|
||||||
|
|
||||||
前缀之后另起完整说明,至少明确:本次确认的测试 App 版本,并在执行时核对实际安装版本;在目标 Android 设备与应用的实际当前状态开始;需要建立的前置条件;依据原文进行的操作;等待**可观察的界面状态**而不是依赖模型思考时间;原文的预期结果及截图/页面文字/日志等可取得的证据;失败、未验证、版本不一致或条件不满足时如实报告。必要的 SN、秘钥、名称、型号可直接写入对应任务,但不能给无关用例灌入这些值。不要把缺失的原文判据补成看似确定的断言。
|
同一轮测试开始前,在目标设备上核验一次实际安装的 App 版本并记录结果。各条用例沿用该结果,提示词不写逐条查询版本的动作;若安装版本变化,再重新核验。
|
||||||
|
|
||||||
|
对每条“是”,首字符起按 `【原表显示的用例编号】` + 原“测试用例”文本(仅去首尾多余空白)拼接。保留原文已有的 `【】`,不要再给整段用例标题套一层方括号;编号列和提示词前缀均不附来源工作表/行号,也不要写字面 `+`。例如来源为 `1设备绑定!3` 的用例,编号列填 `1.1`,提示词前缀是 `【1.1】【声波配网】手动长按重置恢复出厂后首次绑定完成配网流程`。这只是格式示例,该行还需人工复位,不能因此标成自动化“是”。若 Excel 数值编号的显示格式与底层数值不同(如 `1.10`),采用原表显示的编号。
|
||||||
|
|
||||||
|
前缀之后另起完整说明,至少明确:用户确认的模拟器名称或真机环境、测试 App 名称与版本、被测设备名称;沿用测试开始前统一核验过的安装版本,不要求当前用例再次核对;在目标 Android 环境与应用的实际当前状态开始;需要建立的前置条件;依据原文进行的操作;等待**可观察的界面状态**而不是依赖模型思考时间;原文的预期结果和可观察的判定依据。必要的 SN、秘钥、型号可直接写入对应任务,但不能给无关用例灌入这些值。不要把缺失的原文判据补成看似确定的断言。关键操作前后截图、录屏保留、证据路径及“测试佐证”目录归档、阻塞/未验证结论属于 Codex 的执行与报告要求,不写入“Artemis提示词”。
|
||||||
|
|
||||||
|
每条用例完成操作与结果观察后,提示 ARTEMIS 返回目标 App 内的设备首页,重新观察并确认首页已显示;即使用例失败或未验证,也尝试完成这一收尾。此处不是 Android 系统桌面,不预设未经核实的导航入口。若用例使设备首页不可达或返回失败,说明当前页面和原因;Codex 在运行下一条用例前确认设备首页已经恢复,未恢复则先处理该状态。
|
||||||
|
|
||||||
直播画面中的分辨率切换、全屏、声音开启/关闭等控件可能在点击画面后才显示,也可能藏在随之出现的二级菜单。仅当用例操作确实位于直播页且初次观察未找到目标元素时,提示 ARTEMIS 先截取/查看当前页面,轻点不覆盖明显按钮的直播画面区域一次,再观察新的控件或菜单并尝试定位目标。菜单若短暂显示,应在其可见时完成后续操作;若仍不存在,记录观察和截图,报告未找到,不反复盲点或编造菜单位置。声音开关可核对界面呈现的开/关状态、图标或可观察反馈;若预期要求确认实际声音质量或是否听得到,不能以图标变化冒充听音验证。此提示不是对当前 App 实际界面的预先验证,不能套用于设置页等其他场景。
|
直播画面中的分辨率切换、全屏、声音开启/关闭等控件可能在点击画面后才显示,也可能藏在随之出现的二级菜单。仅当用例操作确实位于直播页且初次观察未找到目标元素时,提示 ARTEMIS 先截取/查看当前页面,轻点不覆盖明显按钮的直播画面区域一次,再观察新的控件或菜单并尝试定位目标。菜单若短暂显示,应在其可见时完成后续操作;若仍不存在,记录观察和截图,报告未找到,不反复盲点或编造菜单位置。声音开关可核对界面呈现的开/关状态、图标或可观察反馈;若预期要求确认实际声音质量或是否听得到,不能以图标变化冒充听音验证。此提示不是对当前 App 实际界面的预先验证,不能套用于设置页等其他场景。
|
||||||
|
|
||||||
App 设置页往往较长,目标功能可能在首屏下方。整理设置页用例时,如初次观察未见目标,提示 ARTEMIS 在设置列表中向上滑动较长距离(让下方内容出现),每次滑动后重新查看页面并查找目标;若仍未见,可根据页面变化继续滑动,直到可确认已到列表底部,再记录未找到。不要在未查看新页面时连续盲滑,也不要把用户的“多滑一点”写成未验证的固定像素、次数或坐标。
|
**移动爱家 App** 点击“设置”后,设置页可能先显示空白、占位或尚未刷新的内容。提示词应要求等待并重新观察,以真实设置内容出现、目标区域可辨认为继续操作的条件;在此之前不点击疑似目标控件,也不把未出现的功能判为缺失。若刷新后仍不能确认页面内容,记录页面状态与证据并报告未能定位,不以固定秒数的等待代替确认。
|
||||||
|
|
||||||
|
App 设置页往往较长,目标功能可能在首屏下方。整理设置页用例时,先确认页面已刷新出实际内容;如已加载的首屏未见目标,提示 ARTEMIS 在设置列表中向上滑动较长距离(让下方内容出现),每次滑动后重新查看页面并查找目标;若仍未见,可根据页面变化继续滑动,直到可确认已到列表底部,再记录未找到。不要在未查看新页面时连续盲滑,也不要把用户的“多滑一点”写成未验证的固定像素、次数或坐标。
|
||||||
|
|
||||||
卡回看和云回看的日期/时间轴上,有颜色的区域通常表示有数据,空白区域通常表示无数据。整理有录像片段的回放用例提示词时,先识别当前选中的回看类型及其有颜色区域,再在已经过去的时间中选取该区域并尝试回放,以实际播放/页面结果验证;不要假设卡与云的有数据区相同,也不要仅凭颜色判定回放成功。若用例本身要检验无数据区域,则按原文选择空白的过去时间并核对无数据反馈,不能拿它作为有录像回放失败的证据。选取回放片段前核对当前设备/App 时间和所选时间的时区及先后,不要求拖到未来时间;不能把未来片段不存在判成回放失败。若原用例专门检验时间轴上界,则观察是否无法选取或播放未来时间,记录界面证据,不假定具体控件反馈。颜色含义是用户提供的一般操作线索,具体 App 界面仍须在执行时观察确认。
|
卡回看和云回看的日期/时间轴上,有颜色的区域通常表示有数据,空白区域通常表示无数据。整理有录像片段的回放用例提示词时,先识别当前选中的回看类型及其有颜色区域,再在已经过去的时间中选取该区域并尝试回放,以实际播放/页面结果验证;不要假设卡与云的有数据区相同,也不要仅凭颜色判定回放成功。若用例本身要检验无数据区域,则按原文选择空白的过去时间并核对无数据反馈,不能拿它作为有录像回放失败的证据。选取回放片段前核对当前设备/App 时间和所选时间的时区及先后,不要求拖到未来时间;不能把未来片段不存在判成回放失败。若原用例专门检验时间轴上界,则观察是否无法选取或播放未来时间,记录界面证据,不假定具体控件反馈。颜色含义是用户提供的一般操作线索,具体 App 界面仍须在执行时观察确认。
|
||||||
|
|
||||||
**仅移动爱家 App**:卡回放目标入口未见时,可先点击“云回看”,重新观察是否出现云回看/卡回放切换,再选择卡回放。其他 App 不沿用这条入口提示;切换未出现时记录当前页面并报告未找到,不编造固定按钮位置。此路径是用户提供的操作线索,真正编写可执行测试代码前仍须用 ARTEMIS 在目标 App 验证。
|
**仅移动爱家 App**:卡回放目标入口未见时,可先点击“云回看”,重新观察是否出现云回看/卡回放切换,再选择卡回放。其他 App 不沿用这条入口提示;切换未出现时记录当前页面并报告未找到,不编造固定按钮位置。此路径是用户提供的操作线索,真正编写可执行测试代码前仍须用 ARTEMIS 在目标 App 验证。
|
||||||
|
|
||||||
凡要求信息一致、匹配或同步,执行前核对具体比较字段、独立的预期值或可信来源,以及对应设备、账号、App 版本等范围。比如原用例要求“设备型号和厂商提供的一致”,须先取得厂商提供的目标型号,再将 App 中读到的型号与它比较;不能把 App 显示值同时当成预期和实际。缺少参照信息时列明待补项,该用例不可启动,也不可报告通过。
|
凡要求信息一致、匹配或同步,编写提示词前核对具体比较字段、独立的预期值或可信来源,以及对应设备、账号、App 版本等范围。比如原用例要求“设备型号和厂商提供的一致”,须先取得厂商提供的目标型号,再将 App 中读到的型号与它比较;不能把 App 显示值同时当成预期和实际。缺少参照信息时列明待补项,等待用户补齐后再编写该条提示词。
|
||||||
|
|
||||||
例:原文若要求“进入系统设置,修改一个可见开关并确认状态”,提示词应说明识别目标开关、记录初始状态、执行切换、等界面显示目标状态并记录证据;若原文还要求回退,则依原文回退。示例只说明写法,不证明附件中的某条用例具有这些步骤。
|
例:原文若要求“进入系统设置,修改一个可见开关并确认状态”,提示词应说明识别目标开关、记录初始状态、执行切换、等界面显示目标状态并记录证据;若原文还要求回退,则依原文回退。示例只说明写法,不证明附件中的某条用例具有这些步骤。
|
||||||
|
|
||||||
排除边界:PC 管理端、外接 console、实物遮挡/断电、需要人工听音/看画质、无法自主建立的网络或硬件状态,不标“是”。长时或重复的 Android 操作不是单凭次数就排除,但需有可测的时间/次数、可恢复前置状态和明确结果;缺任一关键条件则标“否”。ARTEMIS Pro 可观察 ADB/日志,不代表能代替外部硬件、PC 或人的感官。
|
排除边界:PC 管理端、外接 console、实物遮挡/断电、需要人工听音/看画质、无法自主建立的网络或硬件状态,不标“是”。长时或重复的 Android 操作不是单凭次数就排除,但需有可测的时间/次数、可恢复前置状态和明确结果;缺任一关键条件则标“否”。ARTEMIS Pro 可观察 ADB/日志,不代表能代替外部硬件、PC 或人的感官。
|
||||||
|
|
||||||
截至附带的 ARTEMIS 1.0.1 源码,`task_import.py` 只接受工作表 `任务` 首行严格七列(任务名称、任务目标、预期结果、目标应用、前置条件、输入参数(JSON)、标签)。本六列任务表是供未来导入改造使用的业务模板,不宣称兼容 1.0.1,也不转换成七列。后续执行前核实服务的真实导入契约。
|
当前查看的 `task_import.py` 要求 `任务` 页首行严格为上述七列,并禁止公式、宏和外部链接;`填写说明` 页不作为任务导入。实际部署的 ARTEMIS 版本可能不同,后续执行前核实服务的真实导入契约与逐行预览结果。
|
||||||
@@ -3,5 +3,5 @@
|
|||||||
"name": "playwright浏览器自动化操作",
|
"name": "playwright浏览器自动化操作",
|
||||||
"version": "20260605",
|
"version": "20260605",
|
||||||
"keySource": "none",
|
"keySource": "none",
|
||||||
"syncedAt": "2026-09-27T16:02:07Z"
|
"syncedAt": "2026-09-28T10:27:38Z"
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
"sourceId": "next-skills",
|
"sourceId": "next-skills",
|
||||||
"repo": "https://github.com/vercel/next.js.git",
|
"repo": "https://github.com/vercel/next.js.git",
|
||||||
"ref": "canary",
|
"ref": "canary",
|
||||||
"commit": "0423222b7eb3a1373b5bff4c939fd69858928993",
|
"commit": "705a28453296df17c5d269a4248ca36758a6fce2",
|
||||||
"adapter": "skill-collection",
|
"adapter": "skill-collection",
|
||||||
"sourcePath": "skills",
|
"sourcePath": "skills",
|
||||||
"syncedAt": "2026-09-27T16:00:00Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
}
|
}
|
||||||
@@ -2,8 +2,8 @@
|
|||||||
"sourceId": "shadcn",
|
"sourceId": "shadcn",
|
||||||
"repo": "https://github.com/shadcn-ui/ui.git",
|
"repo": "https://github.com/shadcn-ui/ui.git",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"commit": "98a1fe67b439324ddc857f47fbdce056600a4329",
|
"commit": "984f4351cb3877fc60726ccec8c4d0bc1631bc0d",
|
||||||
"adapter": "claude-skill",
|
"adapter": "claude-skill",
|
||||||
"sourcePath": "skills/shadcn",
|
"sourcePath": "skills/shadcn",
|
||||||
"syncedAt": "2026-09-22T16:08:55Z"
|
"syncedAt": "2026-09-28T10:12:45Z"
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user