通过 iwsdk CLI 验证 ECS 核心功能与示例运行状态,辅助快速测试排障。
该技能材料显示其为开源的纯提示/测试流程说明,本身未声明需要密钥或固定远程端点,整体风险较低。需注意 README 明确指导通过 npx、npm 和本地开发服务器执行命令,因此若按说明实际运行,将涉及本机代码执行、依赖安装及对示例工程数据的访问,属于常规需留意项。
材料声明不需要密钥或环境变量,未见要求提供 API token、账号凭证或其他敏感认证信息,凭证泄露面较小。
系统检查项标注无远程端点,但 README 要求执行 npm run fresh:install、npx iwsdk 等命令;这些通常会访问 npm/依赖源或本地开发服务。材料未显示将用户数据发送到不明第三方端点,现有证据不足以定为高风险。
README 明确要求在本机执行 shell 命令、安装依赖、启动开发服务器并运行 CLI 子命令;这属于典型本地代码执行/起进程能力。该能力与其测试示例工程的声明用途一致,未见额外系统级越权迹象。
材料要求在 $IWSDK_REPO_ROOT/examples/poke 工作区内运行,并读取 CLI/浏览器日志、系统列表、快照等测试数据;这意味着会访问该示例目录及运行时输出。未见申请超出该工作区的广泛文件权限,但实际命令执行后依赖脚本可能读取更多本地数据,需按最小权限隔离。
正面因素是已标注 open-source 且来源为 GitHub,可一定程度审计;但仓库链接与技能名称/描述的对应关系不够清晰,许可证未声明,社区采用为 0 star,维护状态未知。再加上 README 依赖 npx/npm 拉取和执行外部包,供应链透明度一般,建议谨慎验证版本与来源。
复制安装指令,让 AI 自动完成配置 · 推荐新手
请帮我安装 askskill 上的 "test-ecs-core" 技能: 1. 下载 https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/test-ecs-core/SKILL.md 2. 保存为 ~/.claude/skills/test-ecs-core/SKILL.md 3. 装好后重载技能,告诉我可以用了
请使用 test-ecs-core 技能,针对 poke 示例检查 ECS 核心功能是否正常,包括 system 注册、组件处理、Transform 同步、暂停/单步/恢复、system 开关、实体发现与快照,并输出测试结果摘要。
一份包含各项检查结果、通过失败状态与总体结论的测试摘要。
请运行 test-ecs-core,重点测试 poke 示例中的 pause、step、resume 行为是否符合预期;如果发现异常,请指出可能出错的系统或状态切换环节。
关于暂停、单步和恢复流程的专项诊断结果,以及可能问题点说明。
请用 test-ecs-core 检查 poke 示例里的实体发现与快照功能,确认系统切换前后实体状态、组件数据和快照内容是否一致,并列出差异。
一份一致性检查报告,说明实体、组件与快照是否匹配,并列出发现的差异。
Run 8 test suites covering ECS system registration, component schemas, Transform sync, pause/step/resume, system toggle, entity discovery, snapshot/diff, and stability.
Configuration:
$IWSDK_REPO_ROOT/examples/pokeTool 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, 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/poke && 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/poke && 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 '{"level":["error","warn"]}' 2>/dev/null
Assert: result should be empty or have no errors/warnings
Test 1.1: List All Systems
npx iwsdk ecs systems 2>/dev/null
Assert these framework systems are present with correct priorities:
| System | Priority |
|---|---|
LocomotionSystem | -5 |
InputSystem | -4 |
GrabSystem | -3 |
TransformSystem | 0 |
VisibilitySystem | 0 |
EnvironmentSystem | 0 |
LevelSystem | 0 |
AudioSystem | 0 |
PanelUISystem | 0 |
Also verify entity counts:
rayInteractables >= 1, pokeInteractables >= 1transform >= 5levelEntities >= 4Test 2.1: List All Components
npx iwsdk ecs components 2>/dev/null
Assert these components are present:
Transform with fields: position (Vec3), orientation (Vec4), scale (Vec3), parent (Entity)Visibility with field: isVisible (Boolean, default: true)LevelRoot (no fields — marker)LevelTag with field: id (String)PanelUI with fields: config (String), maxWidth (Float32), maxHeight (Float32)…
帮助规划 IWSDK 新功能、系统架构与代码模式,并提供最佳实践建议。
帮助开发者用 iwsdk CLI 测试 XR 交互与面板音频行为是否正常。
用于逐帧调试 WebXR 场景中的物理、动画与实时交互行为。
指导你在 IWSDK 项目中实现深度感知遮挡并排查显示异常问题
使用 iwsdk CLI 测试 Havok 物理系统的重力与刚体行为表现
在 XR 场景中定位并点击目标对象,用于验证按钮与交互元素是否正常工作
使用 iwsdk CLI 对比示例场景,测试滑动、瞬转、传送与跳跃移动系统。
使用 iwsdk CLI 针对 poke 示例验证环境系统与组件配置是否正常
使用 iwsdk CLI 对关卡层级、标签与默认灯光配置进行测试验证。
使用 iwsdk CLI 针对 poke 示例测试 UI 系统行为与兼容性。
使用 iwsdk CLI 测试音频示例的加载、播放状态、停止与空间音频功能。
使用 iwsdk CLI 测试抓取系统的多种交互抓取模式