Test ECS core behaviors and example runtime via the iwsdk CLI.
The material indicates an open-source, prompt-only testing skill with no declared secrets or fixed remote endpoints, so overall risk is low. However, the README explicitly instructs use of npx, npm, and a local dev server; if actually followed, it would involve local code execution, dependency installation, and access to example-project data, which are normal caution points.
The material declares no required secrets or environment variables, and it does not request API tokens, account credentials, or other sensitive authentication data, so credential exposure risk is low.
The system flags no remote endpoint, but the README instructs commands such as npm run fresh:install and npx iwsdk, which commonly reach npm/package sources or a local dev service. The material does not show user data being sent to unknown third-party endpoints, so there is insufficient evidence for a high-risk rating.
The README explicitly requires running shell commands locally, installing dependencies, starting a dev server, and invoking CLI subcommands; this is standard local code execution and process-spawning behavior. It is consistent with the stated purpose of testing an example project, and no extra system-level overreach is evident from the material.
The material instructs operation inside $IWSDK_REPO_ROOT/examples/poke and reading CLI/browser logs, system lists, snapshots, and similar test data; this implies access to that example workspace and runtime output. There is no explicit request for broad file permissions beyond the workspace, but once commands run, dependency scripts could read additional local data, so least-privilege isolation is advisable.
A positive factor is that it is marked open-source and hosted on GitHub, which improves auditability. However, the repository linkage to the skill name/description is not very clear, the license is unspecified, community adoption is 0 stars, and maintenance status is unknown. In addition, the README relies on npx/npm to fetch and execute external packages, so supply-chain transparency is only moderate and version/source verification is recommended.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "test-ecs-core" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/test-ecs-core/SKILL.md 2. Save it as ~/.claude/skills/test-ecs-core/SKILL.md 3. Reload skills and tell me it's ready
Use the test-ecs-core skill to verify ECS core functionality against the poke example, including system registration, component handling, Transform sync, pause/step/resume, system toggling, entity discovery, and snapshots, then return a test summary.
A test summary with check results, pass/fail status, and an overall conclusion.
Run test-ecs-core with focus on whether pause, step, and resume behave as expected in the poke example; if issues appear, identify the likely faulty system or state transition point.
A focused diagnostic report for pause, step, and resume, including likely problem areas.
Use test-ecs-core to inspect entity discovery and snapshot behavior in the poke example, confirming whether entity state, component data, and snapshots remain consistent before and after system toggling, and list any differences.
A consistency report showing whether entities, components, and snapshots match, plus any detected differences.
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)…
Test XR session lifecycle and mode transitions to verify behavior and debug state issues.
Build, debug, and refine IWSDK PanelUI panels more efficiently.
Test multiple grab interaction modes with the iwsdk CLI.
Test XR interactions, panels, and audio behavior with the iwsdk CLI.
Debug WebXR real-time behavior frame by frame with pause, snapshots, and diffs.
Plan IWSDK features, architecture, and code patterns with best-practice guidance.
Test slide, snap turn, teleport, and jump locomotion with iwsdk CLI.
Test environment settings and component schemas with iwsdk CLI against poke.
Test level hierarchy, tags, and lighting setup with the iwsdk CLI.
Test UI system behavior and compatibility against the poke example with iwsdk CLI.
Test Havok physics behaviors with the iwsdk CLI against example scenes.
Test audio loading, playback, stop, and spatial audio via iwsdk CLI.