使用 iwsdk CLI 测试抓取系统的多种交互抓取模式
整体风险较低:该技能材料被标记为 prompt-only,未声明需要密钥或远程端点,且对应仓库为开源可审计。主要需留意的是 README 明确引导本机执行 npm/npx 与启动开发服务器,另外仓库星标、许可证与维护状态信息不足。
材料与客观检查项均显示无需密钥、token 或环境变量,未见凭证收集、回传或滥用描述,凭证面风险较低。
未声明任何远程端点 host,材料主要围绕本地示例与 CLI 测试流程;未见明确将用户数据发送到第三方服务的描述。
该技能本身被标记为 prompt-only,不自带可执行能力;但 README 会引导宿主运行 `npm run fresh:install`、`npm run dev`、`npx iwsdk ...` 等本地命令。作为文档/提示本身属低风险,但若采纳其步骤则会触发本机代码执行与启动进程。
未声明读取或写入超出示例工作区的文件/数据权限;描述集中于 `$IWSDK_REPO_ROOT/examples/grab` 示例目录与测试输出,未见过度数据访问要求。
正面因素是 GitHub 开源、源码可审计;但仓库显示 0 star,许可证未声明,维护状态未知,且 README 依赖 `npm`/`npx` 安装与执行外部包,供应链信号不足,建议审查锁文件与依赖来源后再用。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "test-grab" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/test-grab/SKILL.md 2. 保存为 ~/.claude/skills/test-grab/SKILL.md 3. 装好后重载技能,告诉我可以用了
请使用 test-grab 技能,通过 iwsdk CLI 针对 grab example 依次测试 distance grab、one-hand grab 和 two-hand grab,并总结每种模式是否通过。
返回三种抓取模式的测试结果摘要,并标明通过或失败状态。
请运行 test-grab 测试 grab example;如果某个抓取模式失败,列出失败步骤、可能原因以及建议的排查方向。
输出失败模式的详细诊断信息和后续排查建议。
请使用 test-grab 技能执行完整抓取测试,并生成一份简洁报告,包含测试范围、执行结果和异常项。
一份结构清晰的测试报告,概述测试覆盖内容与发现的问题。
Run 5 test suites covering distance grab, one-hand grab, two-hand grab, system/component registration, and stability.
Configuration:
$IWSDK_REPO_ROOT/examples/grabTool calls: every tool call is npx iwsdk <subcommand> [--input-json '<JSON>'] [--timeout <ms>], run from inside the example workspace (cwd $EXAMPLE_DIR). The CLI auto-discovers the IWSDK app root from cwd, so no path tricks are required. Run npx iwsdk mcp inspect from the example to discover available tools and their CLI subcommands.
<JSON> is a JSON object string. Omit --input-json if no arguments are needed.{ok, workspaceRoot, operation, result}. Parse it to check assertions.--timeout 20000 for operations that may take longer (reload, xr enter, xr animate-to, screenshot).IMPORTANT: Run each Bash command one at a time. Parse the JSON output and verify assertions before moving to the next command. Do NOT chain multiple CLI commands together.
IMPORTANT: When the instructions say "wait N seconds", use sleep N as a separate Bash command.
cd $IWSDK_REPO_ROOT/examples/grab && npm run fresh:install
Wait for this to complete before proceeding.
Start the dev server as a background task using the Bash tool's run_in_background: true parameter:
cd $IWSDK_REPO_ROOT/examples/grab && npm run dev
IMPORTANT: This command MUST be run with run_in_background: true on the Bash tool — do NOT append & to the command itself.
Once the background task is launched, poll the output for Vite's ready message (up to 60s). You can also run npx iwsdk dev status from the example directory until state.running becomes true. You do not need to extract or manage the port yourself; subsequent commands resolve the active runtime through the CLI automatically.
If the server fails to start within 60 seconds, report FAIL for all suites and skip to Step 5.
npx iwsdk ecs systems 2>/dev/null
This must return JSON with a list of systems. If it fails:
Run these commands in order:
npx iwsdk browser reload --timeout 20000 2>/dev/null
Then: sleep 3
npx iwsdk xr enter --timeout 20000 2>/dev/null
Then: sleep 2
npx iwsdk browser logs --input-json '{"count":20,"level":["error","warn"]}' 2>/dev/null
Assert: No error-level logs.
Discover all grab entities dynamically:
npx iwsdk ecs find --input-json '{"withComponents":["DistanceGrabbable"]}' 2>/dev/null
Assert: At least 1 entity. Save first as <distance>.
npx iwsdk ecs find --input-json '{"withComponents":["OneHandGrabbable"]}' 2>/dev/null
Assert: At least 1 entity. Save first as <onehand>.
npx iwsdk ecs find --input-json '{"withComponents":["TwoHandsGrabbable"]}' 2>/dev/null
Assert: At least 1 entity. Save first as <twohand>.
Get entity positions via scene hierarchy:
npx iwsdk scene hierarchy --input-json '{"maxDepth":3}' 2>/dev/null
Find Object3D UUIDs for each grab entity, then query their transforms:
npx iwsdk scene transform --input-json '{"uuid":"<entity-uuid>"}' 2>/dev/null
Save positionRelativeToXROrigin as <distance-pos>, <onehand-pos>, <twohand-pos>.
Verify GrabSystem is active:
npx iwsdk ecs systems 2>/dev/null
Assert: GrabSystem at priority -3.
| Component | Pointer Type | Activation |
|---|
…
帮助开发者高效开发、调试并优化 IWSDK 的 PanelUI 界面面板。
在 XR 场景中定位并点击目标对象,用于验证按钮与交互元素是否正常工作
帮助规划 IWSDK 新功能、系统架构与代码模式,并提供最佳实践建议。
帮助开发者用 iwsdk CLI 测试 XR 交互与面板音频行为是否正常。
用于逐帧调试 WebXR 场景中的物理、动画与实时交互行为。
用于测试 XR 会话生命周期与模式切换,排查进入退出及状态异常问题。
在 WebXR 场景中模拟抓取物体,便于交互测试与搬运操作验证。
使用 iwsdk CLI 对比示例场景,测试滑动、瞬转、传送与跳跃移动系统。
使用 iwsdk CLI 测试 Havok 物理系统的重力与刚体行为表现
指导在 IWSDK 项目中实现物理模拟、交互物体与碰撞调试。
使用 iwsdk CLI 对关卡层级、标签与默认灯光配置进行测试验证。
使用 iwsdk CLI 针对 poke 示例测试 UI 系统行为与兼容性。