Test level hierarchy, tags, and lighting setup with the iwsdk CLI.
The material indicates this is essentially a prompt-only skill that guides local test commands, with no declared secrets or fixed remote endpoints. Overall risk is low, but the README explicitly involves npm/npx, local dependency installation, and starting a dev server, so normal local-execution and supply-chain caution still applies.
The material explicitly states that no keys or environment variables are required, and the README does not request API tokens, account credentials, or other sensitive authentication data; there is no direct sign of credential collection or misuse.
The system metadata declares no remote endpoint, but the README includes steps such as `npm run fresh:install`, `npx iwsdk`, and starting a dev server, which commonly involve access to npm or development-related network resources; there is no evidence of user data being exfiltrated to unknown third parties, so this is standard network usage that warrants caution.
The README explicitly instructs running local shell/npm/npx commands and starting a background dev server with CLI subcommands; this implies normal local code execution and process-spawning capability, but there is no sign of unusual system privilege requests beyond its testing purpose.
The material shows operations centered on the `$IWSDK_REPO_ROOT/examples/poke` workspace, including reading logs, checking system state, installing dependencies, and running tests; this typically involves read/write access to local project files, but there is no indication of excessive access beyond the project scope.
Positive factors are that it is marked open-source and hosted on GitHub, allowing some auditability; however, the repository has 0 stars, no declared license, unknown maintenance status, and the README relies on `npm`/`npx` to install and execute external packages, creating normal supply-chain uncertainty, so caution is appropriate rather than a high-risk rating.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "test-level" skill from askskill: 1. Download https://raw.githubusercontent.com/facebook/immersive-web-sdk/main/.claude/skills/test-level/SKILL.md 2. Save it as ~/.claude/skills/test-level/SKILL.md 3. Reload skills and tell me it's ready
Use the iwsdk CLI to test test-level against the poke example. Check whether LevelRoot, LevelTag, default lighting, and scene hierarchy are configured correctly, and report any issues found.
A test summary showing which checks passed and listing any structural or configuration errors.
Compare the level system configuration of test-level with the poke example. Identify differences in LevelRoot, LevelTag, lighting setup, and hierarchy structure, and suggest fixes.
A comparison report with mismatches and recommended fixes for each issue.
Based on the test-level description, generate a level system testing checklist for the iwsdk CLI covering LevelRoot, LevelTag, default lighting, and scene hierarchy checks.
An actionable checklist that helps developers verify the level system configuration step by step.
Run 5 test suites covering LevelRoot, LevelTag membership, default lighting, scene hierarchy, 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 '{"count":20,"level":["error","warn"]}' 2>/dev/null
Assert: No error-level logs.
Test 1.1: Find LevelRoot Entity
npx iwsdk ecs find --input-json '{"withComponents":["LevelRoot"]}' 2>/dev/null
Assert: Exactly 1 entity. Save its entityIndex as <root>.
Entity should have name "LevelRoot".
Entity should also have: Transform, LevelTag, DomeGradient, IBLGradient.
Test 1.2: LevelRoot Transform at Identity
npx iwsdk ecs query --input-json '{"entityIndex":<root>,"components":["Transform"]}' 2>/dev/null
Assert:
[0, 0, 0] (approximately)[0, 0, 0, 1][1, 1, 1]The LevelSystem enforces identity transform on the level root every frame.
Test 2.1: All Level Entities Tagged
npx iwsdk ecs find --input-json '{"withComponents":["LevelTag"]}' 2>/dev/null
Assert: Multiple entities — all entities except entity 0 (scene root, which is persistent).
Test 2.2: LevelTag ID Matches
Pick any tagged entity from the results above:
npx iwsdk ecs query --input-json '{"entityIndex":<any-tagged>,"components":["LevelTag"]}' 2>/dev/null
Assert: id = "level:default"
All tagged entities should have the same id value ("level:default" for the initial level).
Test 2.3: Persistent Entities Excluded
…
Implement depth sensing occlusion in IWSDK and troubleshoot rendering issues.
Simulate grabbing objects in WebXR scenes for interaction testing and movement validation.
Test Havok physics behaviors with the iwsdk CLI against example scenes.
Test audio loading, playback, stop, and spatial audio via iwsdk CLI.
Test ECS core behaviors and example runtime via the iwsdk CLI.
Test environment settings and component schemas with iwsdk CLI against poke.
Test slide, snap turn, teleport, and jump locomotion with iwsdk CLI.
Test UI system behavior and compatibility against the poke example with iwsdk CLI.
Test XR interactions, panels, and audio behavior with the iwsdk CLI.
Test multiple grab interaction modes with the iwsdk CLI.
Plan IWSDK features, architecture, and code patterns with best-practice guidance.
Debug WebXR real-time behavior frame by frame with pause, snapshots, and diffs.