#673 by GitHub stars
valkor-ai/loom
Loop engineering for agentic software delivery.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
plugins/claude-code/skills/loom/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/claude-code/skills/loom-deploy/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/codex/skills/loom/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/codex/skills/loom-deploy/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/gdtoolkit/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/gdunit-driver/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/godot-api/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/godot-e2e/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/headless-build/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/input-mapper/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/mcp-driver/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/project-scaffold/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/animation/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/audio/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/navigation/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/particles/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/physics/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/shader/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/tilemap/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/reviewer/ui/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/screenshot/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/godot/visual-qa/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/project-architecture/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-3d-generator/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-aaa-graphics-builder/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-audio-generator/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-debug-profiler/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-game-director/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-game-ui-designer/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-image-generator/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
plugins/shared/loom/skills/threejs/threejs-qa-release/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → bf2992b01dab
No earlier version was observed for comparison.
Verified commit bf2992b01dabed7e9ae9a46d78e8ec84b6e2442d
git clone --filter=blob:none --no-checkout https://github.com/valkor-ai/loom.git .hotskills/valkor-ai-loom && git -C .hotskills/valkor-ai-loom checkout --detach bf2992b01dabed7e9ae9a46d78e8ec84b6e2442d
# Copy each selected skill directory from .hotskills/valkor-ai-loom into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/valkor-ai/loom.git .hotskills/valkor-ai-loom && git -C .hotskills/valkor-ai-loom checkout --detach bf2992b01dabed7e9ae9a46d78e8ec84b6e2442d
# Copy each selected skill directory from .hotskills/valkor-ai-loom into .agents/skills/<skill-name>/Heat
8.1- Star growth, last 7 daysAhead of 97% of tracked repositories
- Star growth, last 24 hoursAhead of 97% of tracked repositories
- Rank movement, last 7 daysAhead of 91% of tracked repositories
- Commits, last 30 daysAhead of 73% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- loom
plugins/claude-code/skills/loom - loom-deploy
plugins/claude-code/skills/loom-deploy - loom
plugins/codex/skills/loom - loom-deploy
plugins/codex/skills/loom-deploy - godot
plugins/shared/loom/skills/godot - gdtoolkit
plugins/shared/loom/skills/godot/gdtoolkit - gdunit-driver
plugins/shared/loom/skills/godot/gdunit-driver - godot-api
plugins/shared/loom/skills/godot/godot-api - godot-e2e
plugins/shared/loom/skills/godot/godot-e2e - headless-build
plugins/shared/loom/skills/godot/headless-build - input-mapper
plugins/shared/loom/skills/godot/input-mapper - mcp-driver
plugins/shared/loom/skills/godot/mcp-driver - project-scaffold
plugins/shared/loom/skills/godot/project-scaffold - animation-review
plugins/shared/loom/skills/godot/reviewer/animation - audio-review
plugins/shared/loom/skills/godot/reviewer/audio - navigation-review
plugins/shared/loom/skills/godot/reviewer/navigation - particles-review
plugins/shared/loom/skills/godot/reviewer/particles - physics-review
plugins/shared/loom/skills/godot/reviewer/physics - shader-review
plugins/shared/loom/skills/godot/reviewer/shader - tilemap-review
plugins/shared/loom/skills/godot/reviewer/tilemap - ui-review
plugins/shared/loom/skills/godot/reviewer/ui - screenshot
plugins/shared/loom/skills/godot/screenshot - visual-qa
plugins/shared/loom/skills/godot/visual-qa - project-architecture
plugins/shared/loom/skills/project-architecture - threejs
plugins/shared/loom/skills/threejs - threejs-3d-generator
plugins/shared/loom/skills/threejs/threejs-3d-generator - threejs-aaa-graphics-builder
plugins/shared/loom/skills/threejs/threejs-aaa-graphics-builder - threejs-audio-generator
plugins/shared/loom/skills/threejs/threejs-audio-generator - threejs-debug-profiler
plugins/shared/loom/skills/threejs/threejs-debug-profiler - threejs-game-director
plugins/shared/loom/skills/threejs/threejs-game-director - threejs-game-ui-designer
plugins/shared/loom/skills/threejs/threejs-game-ui-designer - threejs-gameplay-systems
plugins/shared/loom/skills/threejs/threejs-gameplay-systems - threejs-image-generator
plugins/shared/loom/skills/threejs/threejs-image-generator - threejs-qa-release
plugins/shared/loom/skills/threejs/threejs-qa-release
How it works
loom
When your agent uses it
Use when the user invokes /loom to route software delivery, knowledge, or deploy work through the Loom MCP server.
What it loads into context
Frontmatter
29 tokensAlways available to the agent
SKILL.md
1,564 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Result Discipline
- Request Reading
- Writing And Submit
- Reference Loading
- Boundaries
Files
../../.claude-plugin/plugin.jsonasset221 bytes../../hooks/hooks.jsonasset1,274 bytes../../hooks/hooks.jsonasset1,274 bytes../../hooks/hooks.jsonasset1,274 bytes../../hooks/hooks.jsonasset1,274 bytes../../hooks/hooks.jsonasset1,274 bytesSKILL.mdcore7,640 bytesSKILL.mdcore7,640 bytesSKILL.mdcore7,640 bytes
Read SKILL.md
# loom
You are the Claude Code adapter for Loom MCP. The `/loom` command chooses the first Loom MCP tool. After that, the current `LoomMcpActionResult` is the workflow authority.
Do not replace Loom with Claude Plan Mode. Do not inspect project `.loom` state to decide the next step. Use Loom MCP tools and resources.
When `loom.plan` returns a plan-conflict user gate, present its numbered choices and descriptions exactly. Choice 1 calls `loom.planConflictResolve` with `continue_current`; choice 2 calls it with `start_new`. Do not call `loom.plan` again to resolve the conflict.
## Result Discipline
- `auto_runnable`: keep going immediately by executing the returned `next.kind`.
- `active_operation`: only use the observation tools named by the result.
- `user_gate`: when `preResponseContract` is present, execute its steps in order before emitting any user-visible response. This means calling `loom.inspectRequest`, reading only the groups from `requestReadPlan.groups` whose `whenToRead` applies before the visible response with `loom.readFieldGroup`, and, for Brainstorm, completing every required `knowledge_context_plan` step before forming options or confirmation. Groups scheduled after user confirmation remain required before the confirm/submit call. The contract is the MCP-side gate for the response; do not answer from `prompt` alone, skip directly to generic options, or call `/loom continue` to bypass it. A phase-continuation Brainstorm gate is an active clarification turn, not an optional `/loom continue`: do not stop at a progress recap or say "if you want to continue". After the contract steps complete, ask the visible current-block question and wait for the user's answer. For a gate without `preResponseContract`, present the returned prompt and wait for the accepted user response.
- `repairable_error`: `stopAllowed=false`; first call `loom.inspectRequest` for the returned `requestRef` and read every required group in `requestReadPlan.groups` with `loom.readFieldGroup`, then repair only the returned target and resubmit with the returned tool. The returned `agentInstruction` is part of the repair contract.View the complete source on GitHubloom-deploy
When your agent uses it
Use when the user invokes /loom deploy or /loom-deploy to prepare, run, inspect, validate, stop, bootstrap, or repair deployment through Loom MCP.
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
437 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference Loading
Files
SKILL.mdcore2,182 bytes
Read SKILL.md
# loom-deploy
Deployment is controlled by Loom MCP deploy tools. Use the matching `loom.deploy*` tool and follow its structured action result. For `user_gate` with `preResponseContract`, execute the contract before any visible response: call `loom.inspectRequest`, then call `loom.readFieldGroup` for only required `requestReadPlan.groups`, and present the returned deployment decision.
During `active_operation`, call only the observation tools named by the result, obey `observationPolicy`, obey `forbiddenActions`, and do not report completion while `finalResponsePolicy` forbids it. During asset repair, edit only the returned generated deployment assets or the returned `modelRepairRef`, then call the returned `retryTool`; never edit generated source-model/topology/facts snapshots directly. Do not retry asset repair through `loom.deployRun`. During deploy execution repair, edit only the returned application/runtime files and submit through the returned repair submit tool.
Do not infer stack topology, generated file paths, preview URLs, ports, or repair scope outside the current MCP result.
## Reference Loading
The current MCP deploy result remains the authority. Load no reference by default; load deploy references only when the MCP result supplies an exact reference load plan.
Protocol:
- After a deploy MCP result, look for `next.deployReferenceProfile.referenceLoadPlan` or `details.deployReferenceProfile.referenceLoadPlan`.View the complete source on GitHubloom
When your agent uses it
Mandatory routing skill. When the user explicitly invokes @loom, call the matching Loom MCP route before any repository work; plain delivery requests must start with loom.plan.
What it loads into context
Frontmatter
38 tokensAlways available to the agent
SKILL.md
1,162 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Route
- Follow Results
- Read, Write, Verify
- Reference Loading
Files
SKILL.mdcore5,475 bytesSKILL.mdcore5,475 bytesSKILL.mdcore5,475 bytesSKILL.mdcore5,475 bytes
Read SKILL.md
# loom
Use Loom MCP as the workflow authority. Do not inspect `.loom` directly, invent a workflow in chat, or touch repository files before the route below returns.
This is the mandatory routing entrypoint. When a user invokes `@loom`, resolve the Loom route before any repository work. For `@loom <request>` or `@loom plan <request>`, call `mcp__loom__plan` when it is available. If deferred loading hides that tool, make one targeted search for `Loom plan software delivery @loom`, then call the returned plan tool. Do not search for deploy, inspect, or generic skills, and do not call `exec_command`, `apply_patch`, or other repository tools before the plan call returns.
## Route
Use the current workspace as `projectRoot`.
- `@loom <request>`: call `loom.plan` with `{ projectRoot, requestText: "<full request>" }`.
- `@loom plan <request>`: same call with `<request>`.
- `@loom continue|resume|proceed|next`: call `loom.continue`.
- `@loom verify`, `@loom status`, `@loom knowledge ...`, and `@loom deploy ...`: call the matching Loom tool directly.View the complete source on GitHubloom-deploy
When your agent uses it
Use only for an explicit @loom deploy request or deployment operation; do not select this skill for a plain @loom software-delivery request.
What it loads into context
Frontmatter
36 tokensAlways available to the agent
SKILL.md
605 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference Loading
Files
SKILL.mdcore2,856 bytes
Read SKILL.md
# loom-deploy
Deployment is a Loom MCP workflow. Route deploy requests to the registered `loom.deploy*` tools.
This skill is not the route for a plain `@loom <request>`. Plain delivery requests must go through the `loom` skill and `loom.plan`; use this skill only when the user explicitly requests deployment.
- `@loom deploy` -> `loom.deployRun`.
- `@loom deploy prepare` -> `loom.deployPrepare`.
- `@loom deploy up` -> `loom.deployUp`.
- `@loom deploy status` -> `loom.deployStatus`.
- `@loom deploy inspect` -> `loom.deployInspect`.
- `@loom deploy validate` -> `loom.deployValidate`.
- `@loom deploy logs` -> `loom.deployLogs`.
- `@loom deploy bootstrap` -> `loom.deployBootstrap`.View the complete source on GitHubgodot
When your agent uses it
Build, test, debug, and visually verify Godot projects through Loom. Use only when the task explicitly mentions Godot, GDScript, gdUnit, or godot-mcp, or when the active workspace contains project.godot. Covers Godot project structure, engine APIs, headless checks, gameplay tests, screenshots, and handoff evidence. Do not load for unrelated repositories.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
756 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Choose the smallest skill
- Loom delivery loop
- Runtime requirements
Files
SKILL.mdcore3,060 bytesSKILL.mdcore3,060 bytes
Read SKILL.md
# Godot Skills for Loom
Loom provides the delivery workflow. These references provide Godot-specific
working knowledge; they do not replace the Godot editor, the Godot runtime, or
the project's own addons.
## Choose the smallest skill
| Task | Skill |
| --- | --- |
| Godot API or GDScript/C# syntax | `godot-api` |
| Parse or compile check | `headless-build` |
| gdUnit4 tests | `gdunit-driver` |
| Live runtime, scene tree, console, or input debugging | `mcp-driver` |View the complete source on GitHubgdtoolkit
When your agent uses it
Lint and format GDScript files using gdtoolkit (gdlint + gdformat). Use after writing or modifying .gd files, when asked to check code style, fix lint errors, format code, or set up linting configuration. Also use when gdlint/gdformat errors appear in output and need diagnosis. Does NOT require Godot — runs as a standalone Python tool.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
2,207 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Prerequisites
- Lint workflow
- Format workflow
- Rule reference
- Configuration
- Quirks and limitations
- Fallback: upstream documentation
Files
SKILL.mdcore8,421 bytesSKILL.mdcore8,421 bytesSKILL.mdcore8,421 bytesSKILL.mdcore8,421 bytesSKILL.mdcore8,421 bytes
Read SKILL.md
# gdtoolkit — GDScript Lint & Format
Use this as an optional local lint pass. Headless compilation and the project's
tests remain the acceptance checks; lint output alone is not a reason to change
working Godot code.
Wraps two CLI tools from the `gdtoolkit` Python package:
- **gdlint** — static analysis and style checking
- **gdformat** — deterministic auto-formatter
## Prerequisites
```bash
pip install "gdtoolkit==4.*" # Godot 4 projectsView the complete source on GitHubgdunit-driver
When your agent uses it
Run gdUnit4 unit tests and parse results into structured output. Use this skill after writing or modifying code to verify correctness via unit tests, when diagnosing test failures, or when writing new test files. Triggers: "run tests", "test fails", "write a test", any gdUnit4/unit test mention. Supports both GDScript (.gd) and C# (.cs) test files.
What it loads into context
Frontmatter
95 tokensAlways available to the agent
SKILL.md
3,452 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Locate the Godot executable
- 2. Run tests
- 3. Parse results
- 4. Writing tests
- 5. Common issues
Files
SKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytesSKILL.mdcore13,291 bytes
Read SKILL.md
# gdUnit4 Test Driver
$ARGUMENTS
## 1. Locate the Godot executable
Use `GODOT_PATH` when Godot is not on `PATH`:
```bash
GODOT_BIN="${GODOT_PATH:-godot}"
"$GODOT_BIN" --version
```
## 2. Run testsView the complete source on GitHubgodot-api
When your agent uses it
Look up Godot engine class APIs — methods, properties, signals, enums. Use when you need to find which class to use or look up specific API details. Supports version-specific docs — reads the correct API for the project's Godot version.
What it loads into context
Frontmatter
61 tokensAlways available to the agent
SKILL.md
428 tokensWhen the skill is activated
Reference documents
11,054 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Version detection
- How to answer
Scripts executed separately
tools/class_list.pytools/ensure_doc_api.shtools/godot_api_converter.py
Files
SKILL.mdcore1,674 bytesSKILL.mdcore1,674 bytesSKILL.mdcore1,674 bytescsharp.mddoc17,347 bytesgdscript.mddoc24,890 bytestools/class_list.pyruns13,522 bytestools/ensure_doc_api.shruns4,076 bytestools/godot_api_converter.pyruns24,078 bytes
Read SKILL.md
# Godot API Lookup
$ARGUMENTS
## Version detection
Docs are stored per Godot version under `doc_api/{version}/` and `doc_api_csharp/{version}/`
when the local API cache has been prepared.
Determine the version to use:
1. If the caller specifies a version (e.g. "4.4"), use that
2. If `project.godot` exists in the working directory, extract from `config/features`
3. Otherwise fall back to `latest`
View the complete source on GitHubgodot-e2e
When your agent uses it
Write and run E2E (end-to-end) game tests using the godot-e2e framework. Python controls a live Godot game over TCP — Locator-based semantic queries, expect() auto-retry assertions, and engine log capture make failures self-diagnosing. Use this skill whenever you need to: - Test actual gameplay: player movement, collisions, scoring, scene transitions - Verify UI interactions: button clicks, label text, menu navigation - Write integration tests that run the real game (not mocked unit tests) - Debug E2E test failures or set up E2E test infrastructure Triggers: "E2E test", "end-to-end test", "gameplay test", "test the game running", "simulate input", "test player movement", "test UI clicks", "godot-e2e", "integration test for game", "test scene transitions".
What it loads into context
Frontmatter
207 tokensAlways available to the agent
SKILL.md
3,979 tokensWhen the skill is activated
Reference documents
16,187 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Architecture
- Quick Start — conftest.py + Test File
- API Quick Reference
- Critical Rules
- Fixture Strategies
- Running & Debugging
- E2E Test Quality Standards
- Fixture Sync Rules
- Extended References
Files
SKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesreferences/api-reference.mddoc35,056 bytesreferences/testing-patterns.mddoc26,473 bytes
Read SKILL.md
# godot-e2e — E2E Testing for Godot
$ARGUMENTS
godot-e2e is a custom framework with **zero LLM training data coverage**.
Everything the model needs is in this skill (with deeper detail in
`references/`). Do not guess — follow these docs exactly.
## Architecture
The `godot-e2e` CLI launches a Godot process and communicates over TCP
(localhost). Enabling the GodotE2E plugin in Project Settings
auto-registers an `AutomationServer` autoload that receives JSON
commands, executes them on the main thread, and sends back results.View the complete source on GitHubheadless-build
When your agent uses it
Compile-check a Godot project using headless mode. Use after writing or modifying any GDScript or C# code to verify it compiles. Triggers: after code changes, before running tests, when build errors need diagnosis. Also use this when the user says "check if it compiles", "build check", "does this parse", or after any file creation/modification that could break compilation.
What it loads into context
Frontmatter
96 tokensAlways available to the agent
SKILL.md
466 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Run
- Filter output
- Report
Files
SKILL.mdcore1,825 bytesSKILL.mdcore1,825 bytesSKILL.mdcore1,825 bytes
Read SKILL.md
# Headless Build
Compile-check a Godot project. Fastest feedback loop: "did my code parse?"
## Run
Use `GODOT_PATH` when Godot is not on `PATH`:
```bash
GODOT_BIN="${GODOT_PATH:-godot}"
"$GODOT_BIN" --headless --path . --editor --quit 2>&1
```
Run from the project root (where `project.godot` lives). Should exit within 30 seconds.View the complete source on GitHubinput-mapper
When your agent uses it
Manage Godot input action mappings in project.godot. Use when adding input actions, changing key bindings, setting up controls for a new genre, or validating that all referenced actions exist. Use it while implementing mechanics or changing the project's controls.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
785 tokensWhen the skill is activated
Reference documents
1,354 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 — Extract Required Actions
- Step 2 — Write to project.godot [input] Section
- Step 3 — Genre Presets
- Step 4 — Validation
Files
SKILL.mdcore2,867 bytesreferences/serialization.mddoc3,856 bytes
Read SKILL.md
# Input Mapper
$ARGUMENTS
Read the GDD or user request, determine which input actions are needed,
and write the correct `[input]` section entries into `project.godot`.
## Step 1 — Extract Required Actions
Source actions from one of:
1. **GDD Mechanics table** — each mechanic implies input actions
(e.g., "Player can jump" → `jump` action).
2. **Genre preset** — use a preset from Step 3 as a starting point.View the complete source on GitHubmcp-driver
When your agent uses it
Runtime debugging and live project inspection via godot-mcp. Use when headless tools cannot diagnose the problem: code compiles but runtime behavior is wrong, tests pass but the game does not work as expected, or you need to inspect live state (node tree, console output, rendering). Escalation trigger: a task has failed 2+ times through the headless path (headless-build, gdunit-driver), or the issue is inherently runtime-only (visual glitches, input not responding, physics behaving unexpectedly at runtime). DO NOT use for: syntax/compile errors (use headless-build), unit test failures (use gdunit-driver), API lookups (use godot-api). Requires: godot-mcp MCP server registered as "godot" (@coding-solo/godot-mcp).
What it loads into context
Frontmatter
186 tokensAlways available to the agent
SKILL.md
1,110 tokensWhen the skill is activated
Reference documents
5,867 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use this skill
- Debug-fix loop (overview)
- Project path
- Tool quick reference
- Iteration budget
- Cross-references
Files
SKILL.mdcore4,644 bytesSKILL.mdcore4,644 bytesSKILL.mdcore4,644 bytesSKILL.mdcore4,644 bytesSKILL.mdcore4,644 bytesreferences/debug-patterns.mddoc8,403 bytesreferences/tools.mddoc9,902 bytesreferences/workflow.mddoc6,899 bytes
Read SKILL.md
# MCP Driver — Runtime Debug & Inspection
$ARGUMENTS
## When to use this skill
MCP is the **upgrade path** when faster tools hit a wall. The fast loop handles most issues:
| Problem type | Fast path (no MCP) |
|---|---|
| Syntax / parse error | headless-build |
| Unit test failure | gdunit-driver |
| API lookup | godot-api |
View the complete source on GitHubproject-scaffold
When your agent uses it
Inspect or initialize a Godot project without imposing a game architecture. Use when starting a project, checking project.godot, adding a main scene, or deciding which optional Godot addons are needed.
What it loads into context
Frontmatter
52 tokensAlways available to the agent
SKILL.md
658 tokensWhen the skill is activated
Reference documents
1,047 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Inspect before editing
- Minimal new project layout
- project.godot checks
- Optional dependencies
- Verification
Files
SKILL.mdcore2,857 bytesSKILL.mdcore2,857 bytesSKILL.mdcore2,857 bytesreferences/addons.mddoc957 bytesreferences/project_settings.mddoc2,953 bytes
Read SKILL.md
# Godot Project Scaffold
Loom does not prescribe an ECS, folder layout, asset pipeline, or game genre.
Keep the existing project structure when one is already present. For a new
project, use the smallest structure that matches the request and record the
choice in the Loom architecture or task contract.
## Inspect before editing
From the directory containing `project.godot`, check:
```bash
test -f project.godot
rg -n '^(config/features|run/main_scene|config/name|renderer/|environment/defaults)' project.godotView the complete source on GitHubanimation-review
When your agent uses it
Reviews Godot Animation implementation for known pitfalls. Triggers AFTER implementation, when code involves AnimationPlayer, AnimationTree, AnimatedSprite2D, SpriteFrames, AnimationNodeStateMachine, BlendSpace, OneShot, callback_mode_process, or animation playback control (play/travel/start). Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
86 tokensAlways available to the agent
SKILL.md
343 tokensWhen the skill is activated
Reference documents
1,933 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,581 byteschecklist.mddoc3,298 bytesgotchas.mddoc5,341 bytes
Read SKILL.md
# Animation Review
Post-implementation reviewer for Godot animation code. Checks against known gotchas that LLMs consistently get wrong.
## When to trigger
After animation-related code is written or modified. Look for:
- Animation nodes (AnimationPlayer, AnimationTree, AnimatedSprite2D)
- AnimationTree state machine control (`travel()`, `start()`, `active`)
- SpriteFrames or Animation resource manipulation at runtime
- `callback_mode_process` settings
- Pool/spawn lifecycle involving animated entities
- Briefs or asset snapshots that require multi-frame `grid_sheet` runtime
assets, dynamic-mode evidence, frame sequences, animated actors, or animatedView the complete source on GitHubaudio-review
When your agent uses it
Reviews Godot Audio implementation for known pitfalls. Triggers AFTER implementation, when code involves AudioStreamPlayer, AudioStreamPlayer2D, AudioStreamPlayer3D, AudioServer, AudioBus, AudioEffect, AudioStream, or .finished signal on audio players. Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
83 tokensAlways available to the agent
SKILL.md
313 tokensWhen the skill is activated
Reference documents
1,252 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,310 byteschecklist.mddoc1,976 bytesgotchas.mddoc3,308 bytes
Read SKILL.md
# Audio Review
Post-implementation reviewer for Godot audio code. Checks against known gotchas that LLMs consistently get wrong.
## When to trigger
After audio-related code is written or modified. Look for:
- Audio player nodes (AudioStreamPlayer, AudioStreamPlayer2D, AudioStreamPlayer3D)
- AudioServer bus manipulation (`add_bus`, `remove_bus`, `add_bus_effect`, `remove_bus_effect`)
- `preload()` of `.ogg` or `.mp3` files
- `finished` signal connections or `await .finished` on audio players
- Polyphony configuration or SFX pooling patterns
## Review processView the complete source on GitHubnavigation-review
When your agent uses it
Reviews Godot navigation implementation for known pitfalls. Triggers AFTER implementation, when code involves NavigationAgent2D, NavigationAgent3D, NavigationRegion2D, NavigationRegion3D, NavigationLink2D, NavigationLink3D, NavigationObstacle2D, NavigationObstacle3D, target_position, TargetPosition, avoidance_enabled, bake_navigation_polygon, navigation_layers, velocity_computed, safe_velocity, is_navigation_finished. Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
334 tokensWhen the skill is activated
Reference documents
1,656 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,458 byteschecklist.mddoc3,354 bytesgotchas.mddoc4,010 bytes
Read SKILL.md
# Navigation Review
Post-implementation reviewer for Godot navigation code. Checks against known gotchas that LLMs consistently get wrong.
## When to trigger
After navigation-related code is written or modified. Look for:
- Navigation nodes (NavigationAgent2D/3D, NavigationRegion2D/3D, NavigationLink2D/3D, NavigationObstacle2D/3D)
- `target_position` / `TargetPosition` assignment
- `avoidance_enabled`, `velocity_computed`, `safe_velocity`
- `bake_navigation_polygon()`, `navigation_layers`
- `is_navigation_finished()`, `get_next_path_position()`
## Review processView the complete source on GitHubparticles-review
When your agent uses it
Reviews Godot Particles implementation for known pitfalls. Triggers AFTER implementation, when code involves GPUParticles2D, GPUParticles3D, CPUParticles2D, CPUParticles3D, ParticleProcessMaterial, trail_enabled, sub-emitters, GPUParticlesCollision, or particle amount/emission control. Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
96 tokensAlways available to the agent
SKILL.md
345 tokensWhen the skill is activated
Reference documents
1,589 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,420 byteschecklist.mddoc2,130 bytesgotchas.mddoc4,512 bytes
Read SKILL.md
# Particles Review
Post-implementation reviewer for Godot particle code. Checks against known gotchas that LLMs consistently get wrong.
## When to trigger
After particle-related code is written or modified. Look for:
- Particle nodes (GPUParticles2D, GPUParticles3D, CPUParticles2D, CPUParticles3D)
- ParticleProcessMaterial or `shader_type particles`
- Trail configuration (`trail_enabled`, `use_particle_trails`)
- Sub-emitter setup (`sub_emitter_mode`, `sub_emitter_*`)
- Collision nodes (GPUParticlesCollisionBox3D, GPUParticlesCollisionSphere3D, etc.)
- Runtime particle property changes (`.amount`, `.emitting`)
View the complete source on GitHubphysics-review
When your agent uses it
Reviews Godot physics implementation for known pitfalls. Triggers AFTER implementation, when code involves CollisionObject2D, RigidBody2D, CharacterBody2D, Area2D, collision layers, or physics callbacks. Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
73 tokensAlways available to the agent
SKILL.md
291 tokensWhen the skill is activated
Reference documents
1,652 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,201 byteschecklist.mddoc1,964 bytesgotchas.mddoc4,724 bytes
Read SKILL.md
# Physics Review
Post-implementation reviewer for Godot physics code. Checks against known gotchas that LLMs consistently get wrong.
## When to trigger
After physics-related code is written or modified. Look for:
- Physics body nodes (StaticBody2D, RigidBody2D, CharacterBody2D, Area2D)
- Collision layer/mask assignments
- Physics callbacks (`body_entered`, `body_exited`, `area_entered`, `area_exited`)
- `_physics_process()` with velocity/damping logic
- Objects spawned near Area2D
## Review processView the complete source on GitHubshader-review
When your agent uses it
Reviews Godot Shader/Material implementation for known pitfalls. Triggers AFTER implementation, when code involves ShaderMaterial, set_shader_parameter, .gdshader, VisualShader, hint_screen_texture, BackBufferCopy, instance uniform, or uniform declarations. Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
275 tokensWhen the skill is activated
Reference documents
1,493 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,216 byteschecklist.mddoc2,208 bytesgotchas.mddoc4,139 bytes
Read SKILL.md
# Shader Review
Post-implementation reviewer for Godot shader code. Checks against known gotchas that LLMs consistently get wrong.
## When to trigger
After shader-related code is written or modified. Look for:
- ShaderMaterial, `.gdshader` files, VisualShader resources
- `set_shader_parameter()` / `SetShaderParameter()` calls
- `hint_screen_texture`, BackBufferCopy nodes
- `instance uniform` declarations
- Uniform type assignments in scripts
## Review processView the complete source on GitHubtilemap-review
When your agent uses it
Reviews Godot TileMap implementation for known pitfalls. Triggers AFTER implementation, when code involves TileMapLayer, TileSet, TileSetAtlasSource, TileSetScenesCollectionSource, terrain painting, set_cell, erase_cell, get_cell_tile_data, collision polygons on tiles, or NavigationRegion2D with tile-based navigation. Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
322 tokensWhen the skill is activated
Reference documents
1,536 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,381 byteschecklist.mddoc2,586 bytesgotchas.mddoc3,927 bytes
Read SKILL.md
# TileMap Review
Post-implementation reviewer for Godot TileMap code. Checks against known gotchas that LLMs consistently get wrong.
## When to trigger
After TileMap-related code is written or modified. Look for:
- TileMapLayer, TileSet, TileSetAtlasSource, TileSetScenesCollectionSource nodes
- Cell operations (`set_cell`, `erase_cell`, `set_cells_terrain_connect`)
- TileData access (`get_cell_tile_data`)
- Collision/navigation polygon configuration on tiles
- `y_sort_enabled` on TileMapLayer
- NavigationRegion2D with TileMapLayer children
View the complete source on GitHubui-review
When your agent uses it
Reviews Godot UI/Control implementation for known pitfalls. Triggers AFTER implementation, when code involves Control, Container, HBoxContainer, VBoxContainer, GridContainer, MarginContainer, ScrollContainer, PanelContainer, Button, Label, LineEdit, TextEdit, OptionButton, TabContainer, CanvasLayer, Theme, StyleBox, focus_mode, mouse_filter, grab_focus, or gui_input. Do NOT use this skill for planning or teaching — only for post-implementation review.
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
294 tokensWhen the skill is activated
Reference documents
2,868 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to trigger
- Review process
Files
SKILL.mdcore1,253 byteschecklist.mddoc3,832 bytesgotchas.mddoc8,652 bytes
Read SKILL.md
# UI Review
Post-implementation reviewer for Godot UI code.
## When to trigger
After UI-related code is written or modified. Look for:
- Container nodes (HBox, VBox, Grid, Margin, Panel, Center, Scroll, Tab, Split)
- Control properties (focus_mode, mouse_filter, custom_minimum_size, scale)
- Theme resources or theme overrides
- Focus navigation (grab_focus, focus_neighbor_*)
- CanvasLayer with UI content
- z_index on Control nodes
View the complete source on GitHubscreenshot
When your agent uses it
Capture gameplay screenshots using godot-e2e for visual verification. Use when you need to: take a screenshot of the running game, capture multiple screenshots during an E2E scenario, generate reference.png, visually verify game state, or provide screenshots for VQA analysis. Triggers: "screenshot", "capture screenshot", "take screenshot", "reference.png", "visual capture", "screenshot the game".
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
1,590 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Quick Capture (single screenshot)
- Multi-Point Capture (E2E with screenshots)
- Frame Sequence for VQA Dynamic Mode
- Generate reference.png
- Spot-Check Screenshots
- API Reference
- Debug Collision Visualization
- Rules
Files
SKILL.mdcore6,128 bytesSKILL.mdcore6,128 bytesSKILL.mdcore6,128 bytesSKILL.mdcore6,128 bytesSKILL.mdcore6,128 bytesSKILL.mdcore6,128 bytesSKILL.mdcore6,128 bytesSKILL.mdcore6,128 bytes
Read SKILL.md
# Screenshot — Gameplay Capture via godot-e2e
$ARGUMENTS
Capture screenshots from a running Godot game using godot-e2e's internal
viewport capture. Works headless, multi-monitor safe, no external tools needed.
## Quick Capture (single screenshot)
Write and run a Python script:
```python
# capture_screenshot.py
import os, sysView the complete source on GitHubvisual-qa
When your agent uses it
Inspect Godot screenshots or short frame sequences for acceptance issues. Use after capturing a scene, when checking camera framing, missing assets, UI overlap, collision visualization, animation, or a black/empty viewport.
What it loads into context
Frontmatter
53 tokensAlways available to the agent
SKILL.md
371 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Capture first
- Review checklist
- Result format
Files
SKILL.mdcore1,751 bytes
Read SKILL.md
# Godot Visual QA
Visual QA is evidence review, not a style contest. Compare the capture with the
task's acceptance criteria and report only issues that affect the requested
behavior, visibility, composition, or operation.
## Capture first
Use the `screenshot` skill or the Godot MCP screenshot tool. Wait for the scene
to render before capturing. For motion, capture a reference frame followed by
several frames at a fixed interval so movement can be checked.
## Review checklist
View the complete source on GitHubproject-architecture
When your agent uses it
Draw or explain the target project's software architecture and data flows with source-backed diagrams. Use when the user asks for a project architecture diagram, a subsystem walkthrough, or a visual explanation of a code change.
What it loads into context
Frontmatter
48 tokensAlways available to the agent
SKILL.md
648 tokensWhen the skill is activated
Reference documents
1,042 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Establish the architecture
- Render with PR Lens
Files
SKILL.mdcore3,423 bytesSKILL.mdcore3,423 bytesSKILL.mdcore3,423 bytesSKILL.mdcore3,423 bytesreferences/pr-lens.mddoc5,007 bytes
Read SKILL.md
# Project Architecture
Diagram the project Loom is delivering. Use its application, service, module,
scene, storage, and integration boundaries. Loom's planning stages, task results,
and review records belong to a delivery-evidence view, not the target system's
technical architecture.
## Establish the architecture
Start with the existing project context: architecture contracts, repository
context, documentation, manifests, and code already inspected for the task.
For an implemented system, use those records to locate the relevant code and
confirm key relationships. Fill gaps with focused file or symbol lookups;
use an existing code index or language server when available. Do not build aView the complete source on GitHubthreejs
When your agent uses it
Build, debug, and verify Three.js browser games through Loom. Use only when the request mentions Three.js, React Three Fiber, WebGL game work, or the active workspace declares a three, @react-three/fiber, or @react-three/drei dependency. Do not load for unrelated web projects.
What it loads into context
Frontmatter
76 tokensAlways available to the agent
SKILL.md
462 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Choose the smallest skill
- Delivery loop
- Third-party material
Files
SKILL.mdcore2,049 bytesUPSTREAM_LICENSEasset1,073 bytes
Read SKILL.md
# Three.js Skills for Loom
Loom owns delivery state, task planning, repair, and handoff. Start non-trivial
work through `@loom plan`; treat the specialist skills below as technical and
verification guidance, not as an alternative workflow.
## Choose the smallest skill
| Work | Skill |
| --- | --- |
| Game design, core loop, input, camera, physics, or game feel | `threejs-gameplay-systems` |
| Models, materials, shaders, lighting, or render quality | `threejs-aaa-graphics-builder` |
| HUDs, menus, overlays, touch controls, or responsive game UI | `threejs-game-ui-designer` |
| Blank canvas, runtime errors, asset loading, input, or performance | `threejs-debug-profiler` |View the complete source on GitHubthreejs-3d-generator
When your agent uses it
Generate, texture, rig, animate, stylize, convert, and download 3D assets for Three.js games via the Tripo API. Use for text-to-3D, image-to-3D, game-ready GLB/FBX, characters, creatures, buildings, props, weapons, terrain, auto-rigging, animation retargeting, model texturing, voxel/LEGO stylization, and low-poly conversion. Pair with threejs-image-generator for concept and texture references first.
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
2,409 tokensWhen the skill is activated
Reference documents
6,075 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- References
- API key
- Commands
- Resuming and Recovery
- Rigging and animation
- Quality
Scripts executed separately
scripts/threejs_3d_asset.py
Files
SKILL.mdcore10,370 bytesSKILL.mdcore10,370 bytesSKILL.mdcore10,370 bytesSKILL.mdcore10,370 bytesSKILL.mdcore10,370 bytesSKILL.mdcore10,370 bytesSKILL.mdcore10,370 bytesagents/openai.yamlasset277 bytesreferences/api-notes.mddoc14,973 bytesreferences/image-generator-workflows.mddoc2,790 bytesreferences/threejs-integration.mddoc6,824 bytesscripts/threejs_3d_asset.pyruns72,710 bytes
Read SKILL.md
# Three.js 3D Generator
Production 3D assets for browser games, prepared for Three.js. Provider: Tripo.
Resolve `<this-skill-dir>` from the actual loaded skill file. Resolve sibling skills beside it first, then use the runner's discovered paths. Do not mix installed versions or assume a particular home directory.
## References
| File | Read it when |
| --- | --- |
| `references/api-notes.md` | endpoint and task decisions, model versions, polling, postprocess, conversion, rigging, animation, downloads |
| `references/threejs-integration.md` | importing outputs into a browser game, GLB/FBX loading, root motion, animation wiring |
| `references/image-generator-workflows.md` | pairing `threejs-image-generator` for concepts, textures, UI art, or image-to-3D inputs |
View the complete source on GitHubthreejs-aaa-graphics-builder
When your agent uses it
Upgrade Three.js games from prototype visuals to premium browser graphics: art-direction critique, procedural model building, material and texture libraries, world prop kits, shaders, VFX, lighting and render pipeline, LOD and instancing, render budgets, and a 10-category visual scorecard. Use when screenshots still look basic or the user asks for premium, AAA, high-fidelity, showcase, or less-basic graphics.
What it loads into context
Frontmatter
96 tokensAlways available to the agent
SKILL.md
952 tokensWhen the skill is activated
Reference documents
9,156 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- References
- Core rule
- Workflow
- Asset sourcing
- Report
Files
SKILL.mdcore4,727 bytesSKILL.mdcore4,727 bytesagents/openai.yamlasset268 bytesassets/scorecard-anchors/scene-1.jpgasset30,465 bytesassets/scorecard-anchors/scene-2.jpgasset62,757 bytesassets/scorecard-anchors/scene-3.jpgasset67,905 bytesreferences/authoring-recipes.mddoc10,889 bytesreferences/shader-cookbook.mddoc15,881 bytesreferences/technical-art.mddoc5,445 bytesreferences/visual-scorecard.mddoc5,972 bytes
Read SKILL.md
# Three.js AAA Graphics Builder
Own the production graphics pass: turn basic screenshots into authored, high-density, performance-aware visuals.
## References
| File | Read it when |
| --- | --- |
| `references/visual-scorecard.md` | scoring visuals or making any premium/AAA/showcase claim |
| `references/authoring-recipes.md` | building hero, obstacle, reward, world-kit, or prop models; changing lighting, tone mapping, shadows, fog, post, or graphics architecture |
| `references/technical-art.md` | render budgets, material kits, VFX systems, instancing/LOD, imported asset cleanup, anything that could affect browser performance |
| `references/shader-cookbook.md` | custom shaders, `onBeforeCompile`, skies, or post-processing; use recipes as tested starting points and verify them against the project's Three.js version |
For a broad "still looks basic" or premium pass, read all four before implementing. A narrow graphics edit loads only its relevant references and checks; the requested style and scope override recipe defaults.View the complete source on GitHubthreejs-audio-generator
When your agent uses it
Generate, convert, clean, and integrate audio for Three.js browser games with ElevenLabs: sound effects, looping ambience, UI sounds, impact/weapon/vehicle audio, creature and boss stingers, announcer and dialogue TTS, voice conversion from a scratch performance, voice cleanup, audio manifests, and Web Audio integration.
What it loads into context
Frontmatter
76 tokensAlways available to the agent
SKILL.md
1,189 tokensWhen the skill is activated
Reference documents
1,017 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference
- When to use
- API key
- Commands
- Defaults
- Recovery and Coordination
- Report
Scripts executed separately
scripts/threejs_audio_asset.py
Files
SKILL.mdcore5,159 bytesSKILL.mdcore5,159 bytesSKILL.mdcore5,159 bytesSKILL.mdcore5,159 bytesagents/openai.yamlasset267 bytesreferences/audio-workflows.mddoc4,421 bytesscripts/threejs_audio_asset.pyruns10,253 bytes
Read SKILL.md
# Three.js Audio Generator
Game-ready audio for Three.js projects: generation, voice work, cleanup, and runtime integration. Provider: ElevenLabs.
Resolve `<this-skill-dir>` from the actual loaded skill file. Resolve sibling skills beside it first, then use the runner's discovered paths. Do not mix installed versions or assume a particular home directory.
## Reference
`references/audio-workflows.md` — the audio matrix, prompt patterns, generation and voice strategy, Web Audio manager shape, and runtime failure modes. Read it before planning a game's audio, generating a batch, wiring runtime playback, or converting voices.
## When to use
SFX (jumps, hits, weapons, explosions, pickups, collisions, UI clicks) · ambience (wind, rain, city bed, engine hum, room tone, arena beds) · voice (announcer barks, boss lines, tutorial prompts, menu narration) · voice conversion from a scratch performance when timing and acting matter · cleanup and isolation before conversion or final use · Web Audio integration with loading, looping, manifests, volume groups, pause/resume, and gesture unlock.
View the complete source on GitHubthreejs-debug-profiler
When your agent uses it
Debug and profile Three.js browser games: blank canvases, render and runtime bugs, asset and audio loading, animation, resize, mobile input, plus performance profiling of draw calls, triangles, textures, memory, shader and post-processing cost, and bundle size.
What it loads into context
Frontmatter
63 tokensAlways available to the agent
SKILL.md
515 tokensWhen the skill is activated
Reference documents
1,301 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference
- Debug
- Profile
- Report
Files
SKILL.mdcore2,415 bytesagents/openai.yamlasset240 bytesreferences/debug-playbook.mddoc6,362 bytes
Read SKILL.md
# Three.js Debug Profiler
Find root causes and optimize measured bottlenecks without breaking playability.
Follow the changed behavior's scope. Reuse the lead's existing reproduction and evidence; verify the affected path after a fix. A passing focused check only needs broader testing when shared behavior changed or an unresolved risk warrants it. Return measurements and defects to the lead for the consolidated verification pass.
## Reference
`references/debug-playbook.md` — ordered triage for blank canvas, asset and audio loading, loop/animation/physics, input and mobile, the profiling sequence, and the `__THREE_GAME_DIAGNOSTICS__` shape. Read it when debugging or profiling anything non-obvious.
## Debug
1. Reproduce locally with the same command and URL the user had.
2. Read console, page, and network errors.View the complete source on GitHubthreejs-game-director
When your agent uses it
Entrypoint for building, upgrading, and finishing Three.js browser games. Routes work across the sibling threejs-* skills for gameplay, graphics, UI, 3D/image/audio asset generation, debugging, and release. Use for build-a-game, upgrade, polish, premium, AAA, high-fidelity, showcase, from-scratch, endless runner, arcade, action, and release-ready requests.
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
1,825 tokensWhen the skill is activated
Reference documents
2,586 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Scope
- Working style
- Sibling skills
- Continuity and early quality
- The bar for premium work
- Asset sourcing
- Verification ownership
- Getting started and checking output
- Final response
Scripts executed separately
scripts/check_evidence.pyscripts/probe_asset_credentials.sh
Files
SKILL.mdcore9,040 bytesSKILL.mdcore9,040 bytesSKILL.mdcore9,040 bytesagents/openai.yamlasset258 bytesreferences/asset-recovery.mddoc5,229 bytesreferences/evidence-manifest.mddoc4,508 bytesreferences/workflow-evaluations.mddoc3,198 bytesscripts/check_evidence.pyruns15,114 bytesscripts/probe_asset_credentials.shruns894 bytes
Read SKILL.md
# Three.js Game Director
Own the end-to-end game outcome: a playable loop first, then the visual and interface depth the request actually asked for, then browser evidence that it works.
## Scope
The user's own words set the bar. "Make a small arcade game" is not a request for the full premium pipeline — build the good version of what was asked and stop. "Premium", "AAA", "polished", "high-fidelity", "showcase", "release-ready", or "less basic" *is* that request, and at that bar a first playable slice is not done. "Less basic" specifically means the current visual level was rejected; treat it as the premium bar.
The user's scope, art style, constraints, and prior decisions override skill defaults. A narrow edit to a premium game remains a narrow edit. Make routine implementation calls yourself and complete authorized work before seeking a decision that only affects a later step. Ask only when a missing choice materially changes the requested result; continue independent work meanwhile.
## Working style
Say in one sentence what you're about to do before your first tool call. While working, give a brief update only when you find something important or change direction. Lead the final response with the outcome.
View the complete source on GitHubthreejs-game-ui-designer
When your agent uses it
Design premium Three.js game UI: HUDs, menus, overlays, pause/win/lose screens, settings, icon controls, touch UI, typography, responsive layout, safe areas, text fit, and UI/world cohesion.
What it loads into context
Frontmatter
57 tokensAlways available to the agent
SKILL.md
504 tokensWhen the skill is activated
Reference documents
989 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Reference
- Workflow
- What goes wrong
- Report
Files
SKILL.mdcore2,368 bytesagents/openai.yamlasset248 bytesreferences/ui-patterns.mddoc4,820 bytes
Read SKILL.md
# Three.js Game UI Designer
Make game UI intentional, readable, responsive, and specific to the genre.
Preserve the user's requested scope and style. For a narrow HUD fix, retain the existing design and check the changed state and target viewports. For a complete UI pass, use the full workflow below. Mobile input is required when mobile is a target, not because a desktop-only game has UI.
## Reference
`references/ui-patterns.md` — hierarchy and required states, HUD zones, menus, touch controls, responsive constraints, style cohesion, and state wiring. Read it before designing HUDs, menus, overlays, touch controls, or responsive layout.
Load `threejs-image-generator` when logos, icons, GUI art, faction marks, menu backgrounds, or 2D HUD assets would raise the quality. `threejs-3d-generator` only for genuine 3D menu objects and diegetic props, not flat HUD elements.
## Workflow
View the complete source on GitHubthreejs-gameplay-systems
When your agent uses it
Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring, objectives, and game feel. Use for first playable slices, new Vite/TypeScript/Three.js setups, level/arena/track/wave/hole/puzzle design, combat encounters, difficulty tuning, and juice.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,125 tokensWhen the skill is activated
Reference documents
5,289 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- References
- Start here
- Design first
- Build
- Stack
- What goes wrong
- Report
Scripts executed separately
assets/threejs-vite-game/package.jsonassets/threejs-vite-game/playwright.config.tsassets/threejs-vite-game/scripts/inspect-threejs-canvas.mjsassets/threejs-vite-game/src/core/InputController.tsassets/threejs-vite-game/src/core/Loop.tsassets/threejs-vite-game/src/core/Renderer.tsassets/threejs-vite-game/src/entities/Pickup.tsassets/threejs-vite-game/src/entities/Player.tsassets/threejs-vite-game/src/game/Game.tsassets/threejs-vite-game/src/main.tsassets/threejs-vite-game/src/systems/AudioSystem.tsassets/threejs-vite-game/src/systems/CameraRig.tsassets/threejs-vite-game/src/systems/CollisionSystem.tsassets/threejs-vite-game/src/systems/DebugTools.tsassets/threejs-vite-game/src/systems/Hud.tsassets/threejs-vite-game/src/utils/dispose.tsassets/threejs-vite-game/src/utils/random.tsassets/threejs-vite-game/src/vite-env.d.tsassets/threejs-vite-game/tests/bot-playtest.template.tsassets/threejs-vite-game/tests/visual-regression.template.tsassets/threejs-vite-game/tests/visual.spec.tsassets/threejs-vite-game/vite.config.tsscripts/create_threejs_game.py
Files
SKILL.mdcore5,437 bytesSKILL.mdcore5,437 bytesagents/openai.yamlasset244 bytesassets/threejs-vite-game/.gitignoreasset61 bytesassets/threejs-vite-game/index.htmlasset1,119 bytesassets/threejs-vite-game/package-lock.jsonasset34,006 bytesassets/threejs-vite-game/package.jsonruns692 bytesassets/threejs-vite-game/playwright.config.tsruns1,245 bytesassets/threejs-vite-game/scripts/inspect-threejs-canvas.mjsruns18,275 bytesassets/threejs-vite-game/src/core/InputController.tsruns4,944 bytesassets/threejs-vite-game/src/core/Loop.tsruns800 bytesassets/threejs-vite-game/src/core/Renderer.tsruns1,243 bytesassets/threejs-vite-game/src/entities/Pickup.tsruns1,842 bytesassets/threejs-vite-game/src/entities/Player.tsruns2,803 bytesassets/threejs-vite-game/src/game/Game.tsruns11,504 bytesassets/threejs-vite-game/src/main.tsruns336 bytesassets/threejs-vite-game/src/styles.cssasset2,904 bytesassets/threejs-vite-game/src/systems/AudioSystem.tsruns1,595 bytesassets/threejs-vite-game/src/systems/CameraRig.tsruns940 bytesassets/threejs-vite-game/src/systems/CollisionSystem.tsruns669 bytesassets/threejs-vite-game/src/systems/DebugTools.tsruns1,023 bytesassets/threejs-vite-game/src/systems/Hud.tsruns1,407 bytesassets/threejs-vite-game/src/utils/dispose.tsruns870 bytesassets/threejs-vite-game/src/utils/random.tsruns549 bytesassets/threejs-vite-game/src/vite-env.d.tsruns1,342 bytesassets/threejs-vite-game/tests/bot-playtest.template.tsruns5,149 bytesassets/threejs-vite-game/tests/visual-regression.template.tsruns2,816 bytesassets/threejs-vite-game/tests/visual.spec.tsruns3,081 bytesassets/threejs-vite-game/tsconfig.jsonasset479 bytesassets/threejs-vite-game/vite.config.tsruns298 bytesreferences/game-feel.mddoc12,909 bytesreferences/genre-design.mddoc3,975 bytesreferences/physics-engine-selection.mddoc4,555 bytesscripts/create_threejs_game.pyruns2,576 bytes
Read SKILL.md
# Three.js Gameplay Systems
Create or evolve a playable browser game loop with clear ownership, responsive controls, deterministic update order, and a space that shapes player decisions.
Resolve `<this-skill-dir>` and local references from the actual loaded skill file; resolve sibling skills beside it before using runner-discovered alternatives.
## References
| File | Read it when |
| --- | --- |
| `references/game-feel.md` | tuning feel, juice, impact, hitstop, screenshake, or claiming polished gameplay |
| `references/genre-design.md` | designing levels, arenas, tracks, waves, holes, puzzles, encounters, or difficulty curves |
| `references/physics-engine-selection.md` | adding or changing physics, collision-heavy gameplay, vehicles, rolling balls, character controllers, sensors, moving platforms |
View the complete source on GitHubthreejs-image-generator
When your agent uses it
Generate and edit 2D image assets for Three.js games with Google's Gemini image API: concept sheets, image-to-3D inputs, texture and material references, sky and background plates, decals, logos, icons, GUI art, title and menu art, and marketing stills. Also use for direct image editing when the user supplies an image path.
What it loads into context
Frontmatter
81 tokensAlways available to the agent
SKILL.md
1,204 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- When to use
- API key
- Commands
- Prompt patterns
- Integration
- Recovery
- Report
Scripts executed separately
scripts/generate_image.py
Files
SKILL.mdcore5,412 bytesSKILL.mdcore5,412 bytesSKILL.mdcore5,412 bytesSKILL.mdcore5,412 bytesagents/openai.yamlasset272 bytesscripts/generate_image.pyruns6,843 bytes
Read SKILL.md
# Three.js Image Generator
The 2D layer for Three.js games: concepts, textures, decals, UI art, and the source images that feed `threejs-3d-generator` for image-to-3D.
Resolve `<this-skill-dir>` from the actual loaded skill file. Resolve sibling skills beside it first, then use the runner's discovered paths. Do not mix installed versions or assume a particular home directory.
## When to use
- Image-to-3D references: characters, creatures, buildings, ships, cars, weapons, props, pickups, terrain modules.
- Texture and material references: terrain, road, rock, sand, metal, sci-fi panels, trim sheets, decals, hazard labels, signs.
- Environment plates: skies, backdrops, city horizons, nebulas, menu backgrounds, parallax layers.
- UI art: logos, faction marks, icons, item cards, ability badges, cockpit decals, GUI panels, title art.
- Editing an existing image: style variants, cleanup, palette alignment, concept refinement.
View the complete source on GitHubthreejs-qa-release
When your agent uses it
Verify and release Three.js browser games: playtest QA, automated bot playtests, mobile and responsive checks, production builds, static-hosting base paths, debug gating, bundle review, screenshots, visual regression baselines, canvas-pixel inspection with measured metrics, and release risk reports.
What it loads into context
Frontmatter
68 tokensAlways available to the agent
SKILL.md
1,046 tokensWhen the skill is activated
Reference documents
2,687 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- References
- QA pass
- Canvas inspector
- Release pass
- Report
Scripts executed separately
scripts/inspect-threejs-canvas.mjs
Files
SKILL.mdcore5,021 bytesSKILL.mdcore5,021 bytesagents/openai.yamlasset247 bytesreferences/playtest-bot.mddoc4,581 bytesreferences/release-checks.mddoc2,658 bytesreferences/visual-test-harness.mddoc5,634 bytesscripts/inspect-threejs-canvas.mjsruns18,275 bytes
Read SKILL.md
# Three.js QA Release
Prove the game works the way a player will meet it, then prepare a shippable build with its known risks.
Resolve `<this-skill-dir>` and local references from the actual loaded skill file; resolve sibling skills beside it before using runner-discovered alternatives. Run the inspector from the game project with its npm dependencies installed.
## References
| File | Read it when |
| --- | --- |
| `references/release-checks.md` | mobile verification, production release, performance evidence, or release-failure traps |
| `references/visual-test-harness.md` | screenshot baselines, visual regression, UI or generated-asset regression protection |
| `references/playtest-bot.md` | release-ready gameplay claims, difficulty and fairness checks, or a loop never driven by scripted input |
View the complete source on GitHubSkills included
- loom
- loom-deploy
- loom
- loom-deploy
- godot
- gdtoolkit
- gdunit-driver
- godot-api
- godot-e2e
- headless-build
- input-mapper
- mcp-driver
- project-scaffold
- animation-review
- audio-review
- navigation-review
- particles-review
- physics-review
- shader-review
- tilemap-review
- ui-review
- screenshot
- visual-qa
- project-architecture
- threejs
- threejs-3d-generator
- threejs-aaa-graphics-builder
- threejs-audio-generator
- threejs-debug-profiler
- threejs-game-director
- threejs-game-ui-designer
- threejs-gameplay-systems
- threejs-image-generator
- threejs-qa-release
Repository facts
- License
- Apache-2.0
- Created
- Jun 9, 2026
- Last pushed
- Nov 3, 2026
- Forks
- 187
- Open issues
- 3
- Project activity
- Active
Rank over the last 12 weeks
Now #673 · best #591 · down 61 in 30 days
- #683 on Oct 31
- #682 from Nov 1 to Nov 2
- #681 on Nov 3
- #680 on Nov 4
- #674 on Nov 5
- #673 since Nov 6
75 earlier periods
- #681 on Aug 2
- #658 on Aug 7
- #653 on Aug 8
- #659 on Aug 9
- #680 on Aug 10
- #691 on Aug 11
- #680 on Aug 12
- #674 on Aug 13
- #671 on Aug 14
- #644 on Aug 15
- #655 on Aug 16
- #664 on Aug 17
- #677 on Aug 18
- #658 on Aug 19
- #652 on Aug 20
- #654 on Aug 21
- #623 on Aug 22
- #653 on Aug 23
- #665 on Aug 24
- #668 on Aug 25
- #650 on Aug 26
- #655 on Aug 27
- #672 on Aug 28
- #622 on Aug 29
- #619 on Aug 30
- #649 on Aug 31
- #658 on Sep 1
- #645 on Sep 2
- #642 on Sep 3
- #617 on Sep 4
- #611 on Sep 5
- #623 on Sep 6
- #635 on Sep 7
- #651 on Sep 8
- #636 on Sep 9
- #639 on Sep 10
- #621 on Sep 11
- #624 on Sep 12
- #625 on Sep 13
- #646 on Sep 14
- #630 on Sep 15
- #636 on Sep 16
- #629 from Sep 17 to Sep 18
- #604 on Sep 19
- #615 on Sep 20
- #625 on Sep 21
- #635 on Sep 22
- #625 on Sep 23
- #603 on Sep 24
- #592 on Sep 25
- #591 on Sep 26
- #650 on Sep 29
- #632 on Sep 30
- #607 on Oct 1
- #617 on Oct 2
- #594 on Oct 3
- #602 on Oct 4
- #609 on Oct 5
- #612 from Oct 6 to Oct 7
- #639 on Oct 8
- #621 on Oct 9
- #604 on Oct 10
- #601 on Oct 11
- #616 on Oct 12
- #618 on Oct 13
- #628 on Oct 15
- #640 on Oct 19
- #650 on Oct 20
- #656 on Oct 21
- #634 on Oct 22
- #630 on Oct 23
- #614 on Oct 24
- #693 on Oct 25
- #682 from Oct 28 to Oct 29
- #681 on Oct 30
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 85 notes
plugins/claude-code/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/claude-code/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/claude-code/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/claude-code/hooks/hooks.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/claude-code/skills/loom/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/claude-code/skills/loom/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/claude-code/hooks/hooks.json:1Plugin-wide analysis incomplete; see repository notesplugins/codex/skills/loom/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codex/skills/loom/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/codex/skills/loom/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/claude-code/hooks/hooks.json:1Plugin-wide analysis incomplete; see repository notesplugins/shared/loom/skills/godot/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdtoolkit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdtoolkit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdtoolkit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdtoolkit/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdunit-driver/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdunit-driver/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdunit-driver/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedplugins/shared/loom/skills/godot/gdunit-driver/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: godot-e2e/references/testing-patterns.md:741
- 304 network referencesin 17 files: threejs-gameplay-systems/assets/threejs-vite-game/package-lock.json:24 threejs-audio-generator/scripts/threejs_audio_asset.py:19 godot-e2e/references/testing-patterns.md:723 and 14 more
- 1 obfuscation signalin 1 file: threejs-image-generator/scripts/generate_image.py:153
- No instruction overrides
- 32 executable scriptsin 32 files: godot-api/tools/class_list.py:1 godot-api/tools/ensure_doc_api.sh:1 godot-api/tools/godot_api_converter.py:1 and 29 more
- 83 references to secretsin 10 files: threejs-3d-generator/scripts/threejs_3d_asset.py:107 threejs-audio-generator/scripts/threejs_audio_asset.py:32 threejs-image-generator/scripts/generate_image.py:14 and 7 more
- No requests to vote in Hot
Show all 421 signals by file
plugins/shared/loom/skills/godot/gdtoolkit/SKILL.md
- Network accessline 240
- **Repository**: https://github.com/Scony/godot-gdscript-toolkit - Network accessline 241
- **Linter wiki**: https://github.com/Scony/godot-gdscript-toolkit/wiki/3.-Linter - Network accessline 242
- **Formatter wiki**: https://github.com/Scony/godot-gdscript-toolkit/wiki/4.-Formatter - Network accessline 243
- **Open issues**: https://github.com/Scony/godot-gdscript-toolkit/issues
plugins/shared/loom/skills/godot/godot-api/tools/class_list.py
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/godot/godot-api/tools/ensure_doc_api.sh
- Executable scriptline 1
#!/usr/bin/env bash - Network accessline 72
mkdir -p "$VERSION_SOURCE" git clone $CLONE_ARGS --filter=blob:none --sparse \ https://github.com/godotengine/godot.git "$VERSION_SOURCE/godot" || { - Network accessline 73
git clone $CLONE_ARGS --filter=blob:none --sparse https://github.com/godotengine/godot.git "$VERSION_SOURCE/godot" || { - Network accessline 74
https://github.com/godotengine/godot.git "$VERSION_SOURCE/godot" || { - Network accessline 75
echo "ERROR: Failed to clone Godot docs for version $VERSION." echo "Check that tag '$GIT_REF' exists at https://github.com/godotengine/godot/tags" exit 1 - Network accessline 76
echo "Check that tag '$GIT_REF' exists at https://github.com/godotengine/godot/tags"
plugins/shared/loom/skills/godot/godot-api/tools/godot_api_converter.py
plugins/shared/loom/skills/godot/godot-e2e/SKILL.md
- Access to secretsline 55
[Credential-related source omitted]
plugins/shared/loom/skills/godot/godot-e2e/references/api-reference.md
- Access to secretsline 857
[Credential-related source omitted]
plugins/shared/loom/skills/godot/godot-e2e/references/testing-patterns.md
- Network accessline 723
shell: pwsh run: | Invoke-WebRequest -Uri "https://github.com/godotengine/godot-builds/releases/download/4.4-stable/Godot_v4.4-stable_win64.exe.zip" -OutFile godot.zip - Network accessline 724
run: | Invoke-WebRequest -Uri "https://github.com/godotengine/godot-builds/releases/download/4.4-stable/Godot_v4.4-stable_win64.exe.zip" -OutFile godot.zip Expand-Archive godot.zip -DestinationPath C:\godot - Network accessline 725
Invoke-WebRequest -Uri "https://github.com/godotengine/godot-builds/releases/download/4.4-stable/Godot_v4.4-stable_win64.exe.zip" -OutFile godot.zip - Network accessline 737
- name: Install Godot run: | wget -q https://github.com/godotengine/godot-builds/releases/download/4.4-stable/Godot_v4.4-stable_linux.x86_64.zip - Network accessline 738
run: | wget -q https://github.com/godotengine/godot-builds/releases/download/4.4-stable/Godot_v4.4-stable_linux.x86_64.zip unzip -q Godot_v4.4-stable_linux.x86_64.zip - Network accessline 739
wget -q https://github.com/godotengine/godot-builds/releases/download/4.4-stable/Godot_v4.4-stable_linux.x86_64.zip - Dangerous shell operationline 741
sudo mv Godot_v4.4-stable_linux.x86_64 /usr/local/bin/godot
plugins/shared/loom/skills/project-architecture/references/pr-lens.md
- Network accessline 93
Upstream: https://github.com/coldteadotai/pr-lens (MIT). This skill uses the
plugins/shared/loom/skills/threejs/threejs-3d-generator/SKILL.md
plugins/shared/loom/skills/threejs/threejs-3d-generator/references/api-notes.md
plugins/shared/loom/skills/threejs/threejs-3d-generator/references/threejs-integration.md
- Network accessline 57
- `FBXLoader` lives at `three/addons/loaders/FBXLoader.js` and imports `fflate`; bundler projects get it from npm automatically, but import-map/CDN pages must map it (e.g. `"fflate": "https://cdn.jsdelivr.net/npm/fflate@0.8.2/esm/browser.js
plugins/shared/loom/skills/threejs/threejs-3d-generator/scripts/threejs_3d_asset.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 8
from email.utils import parsedate_to_datetime import hashlib from http.client import IncompleteRead - Network accessline 9
import hashlib from http.client import IncompleteRead import json - Network accessline 10
from http.client import IncompleteRead - Network accessline 21
BASE_URL = "https://api.tripo3d.ai/v2/openapi" - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 178
[Credential-related source omitted] - Access to secretsline 181
[Credential-related source omitted] - Network accessline 185
def fetch() -> dict[str, Any]: - Network accessline 205
return safe_get(fetch) if method == "GET" else fetch() - Access to secretsline 322
[Credential-related source omitted] - Access to secretsline 343
[Credential-related source omitted] - Access to secretsline 365
[Credential-related source omitted] - Access to secretsline 372
[Credential-related source omitted] - Access to secretsline 383
[Credential-related source omitted] - Access to secretsline 401
[Credential-related source omitted] - Access to secretsline 426
[Credential-related source omitted] - Access to secretsline 445
[Credential-related source omitted] - Access to secretsline 446
[Credential-related source omitted] - Access to secretsline 457
[Credential-related source omitted] - Access to secretsline 458
[Credential-related source omitted] - Access to secretsline 467
[Credential-related source omitted] - Access to secretsline 470
[Credential-related source omitted] - Access to secretsline 694
[Credential-related source omitted] - Access to secretsline 698
[Credential-related source omitted] - Access to secretsline 700
[Credential-related source omitted] - Access to secretsline 709
[Credential-related source omitted] - Access to secretsline 717
[Credential-related source omitted] - Access to secretsline 718
[Credential-related source omitted] - Access to secretsline 722
[Credential-related source omitted] - Access to secretsline 731
[Credential-related source omitted] - Access to secretsline 744
[Credential-related source omitted] - Access to secretsline 745
[Credential-related source omitted] - Access to secretsline 749
[Credential-related source omitted] - Access to secretsline 750
[Credential-related source omitted] - Access to secretsline 754
[Credential-related source omitted] - Access to secretsline 755
[Credential-related source omitted] - Access to secretsline 775
[Credential-related source omitted] - Access to secretsline 901
[Credential-related source omitted] - Access to secretsline 902
[Credential-related source omitted] - Access to secretsline 928
[Credential-related source omitted] - Access to secretsline 943
[Credential-related source omitted] - Access to secretsline 946
[Credential-related source omitted] - Access to secretsline 974
[Credential-related source omitted] - Access to secretsline 975
[Credential-related source omitted] - Access to secretsline 985
[Credential-related source omitted] - Access to secretsline 989
[Credential-related source omitted] - Access to secretsline 1031
[Credential-related source omitted] - Access to secretsline 1040
[Credential-related source omitted] - Access to secretsline 1109
[Credential-related source omitted] - Access to secretsline 1111
[Credential-related source omitted] - Access to secretsline 1123
[Credential-related source omitted] - Access to secretsline 1144
[Credential-related source omitted] - Access to secretsline 1154
[Credential-related source omitted] - Access to secretsline 1380
[Credential-related source omitted] - Access to secretsline 1381
[Credential-related source omitted] - Access to secretsline 1398
[Credential-related source omitted]
plugins/shared/loom/skills/threejs/threejs-audio-generator/SKILL.md
plugins/shared/loom/skills/threejs/threejs-audio-generator/references/audio-workflows.md
plugins/shared/loom/skills/threejs/threejs-audio-generator/scripts/threejs_audio_asset.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 19
BASE_URL = "https://api.elevenlabs.io/v1" - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 54
timeout: int = 300, ) -> bytes: req = urllib.request.Request(build_url(path, query), data=body, method=method) - Network accessline 55
) -> bytes: req = urllib.request.Request(build_url(path, query), data=body, method=method) req.add_header("xi-api-key", key) - Network accessline 56
req = urllib.request.Request(build_url(path, query), data=body, method=method) - Network accessline 59
req.add_header(name, value) try: with urllib.request.urlopen(req, timeout=timeout) as resp: - Network accessline 60
try: with urllib.request.urlopen(req, timeout=timeout) as resp: return resp.read() - Network accessline 61
with urllib.request.urlopen(req, timeout=timeout) as resp: - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 151
[Credential-related source omitted] - Access to secretsline 152
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 224
[Credential-related source omitted] - Access to secretsline 242
[Credential-related source omitted]
plugins/shared/loom/skills/threejs/threejs-game-director/SKILL.md
- Network accessline 76
python3 <threejs-gameplay-systems-skill-dir>/scripts/create_threejs_game.py ./my-game node <threejs-qa-release-skill-dir>/scripts/inspect-threejs-canvas.mjs --url http://127.0.0.1:5188 --state active-play --run-id pass-1 - Network accessline 77
node <threejs-qa-release-skill-dir>/scripts/inspect-threejs-canvas.mjs --url http://127.0.0.1:5188 --state active-play --run-id pass-1
plugins/shared/loom/skills/threejs/threejs-game-director/references/evidence-manifest.md
- Network accessline 38
node <threejs-qa-release-skill-dir>/scripts/inspect-threejs-canvas.mjs \ --url http://127.0.0.1:5188 --out artifacts/pass-1 \ - Network accessline 39
--url http://127.0.0.1:5188 --out artifacts/pass-1 \ - Network accessline 40
--state active-play --seed 42 --run-id pass-1 node <threejs-qa-release-skill-dir>/scripts/inspect-threejs-canvas.mjs \ --url http://127.0.0.1:5188 --out artifacts/pass-1 --mobile \ - Network accessline 41
node <threejs-qa-release-skill-dir>/scripts/inspect-threejs-canvas.mjs --url http://127.0.0.1:5188 --out artifacts/pass-1 --mobile - Network accessline 42
--url http://127.0.0.1:5188 --out artifacts/pass-1 --mobile \
plugins/shared/loom/skills/threejs/threejs-game-director/scripts/check_evidence.py
- Executable scriptline 1
#!/usr/bin/env python3
plugins/shared/loom/skills/threejs/threejs-game-director/scripts/probe_asset_credentials.sh
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/package-lock.json
- Network accessline 24
"node_modules/@dimforge/rapier3d-compat": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", - Network accessline 25
"version": "0.12.0", "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==" - Network accessline 26
"resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", - Network accessline 31
"node_modules/@emnapi/wasi-threads": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - Network accessline 32
"version": "1.2.1", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - Network accessline 33
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - Network accessline 42
"node_modules/@napi-rs/wasm-runtime": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - Network accessline 43
"version": "1.1.4", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", - Network accessline 44
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - Network accessline 52
"funding": { "type": "github", "url": "https://github.com/sponsors/Brooooooklyn" - Network accessline 53
"type": "github", "url": "https://github.com/sponsors/Brooooooklyn" }, - Network accessline 54
"url": "https://github.com/sponsors/Brooooooklyn" - Network accessline 61
"node_modules/@oxc-project/types": { "version": "0.130.0", "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.130.0.tgz", - Network accessline 62
"version": "0.130.0", "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.130.0.tgz", "integrity": "sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==", - Network accessline 63
"resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.130.0.tgz", - Network accessline 66
"license": "MIT", "funding": { "url": "https://github.com/sponsors/Boshen" - Network accessline 67
"funding": { "url": "https://github.com/sponsors/Boshen" } - Network accessline 68
"url": "https://github.com/sponsors/Boshen" - Network accessline 71
"node_modules/@playwright/test": { "version": "1.60.0", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", - Network accessline 72
"version": "1.60.0", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", - Network accessline 73
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", - Network accessline 87
"node_modules/@rolldown/binding-android-arm64": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.1.tgz", - Network accessline 88
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.1.tgz", "integrity": "sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6ja - Network accessline 89
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.1.tgz", - Network accessline 104
"node_modules/@rolldown/binding-darwin-arm64": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.1.tgz", - Network accessline 105
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.1.tgz", "integrity": "sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu8 - Network accessline 106
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.1.tgz", - Network accessline 121
"node_modules/@rolldown/binding-darwin-x64": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.1.tgz", - Network accessline 122
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.1.tgz", "integrity": "sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXN - Network accessline 123
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.1.tgz", - Network accessline 138
"node_modules/@rolldown/binding-freebsd-x64": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.1.tgz", - Network accessline 139
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.1.tgz", "integrity": "sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZ - Network accessline 140
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.1.tgz", - Network accessline 155
"node_modules/@rolldown/binding-linux-arm-gnueabihf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.1.tgz", - Network accessline 156
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.1.tgz", "integrity": "sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZm - Network accessline 157
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.1.tgz", - Network accessline 172
"node_modules/@rolldown/binding-linux-arm64-gnu": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.1.tgz", - Network accessline 173
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.1.tgz", "integrity": "sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQ - Network accessline 174
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.1.tgz", - Network accessline 189
"node_modules/@rolldown/binding-linux-arm64-musl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.1.tgz", - Network accessline 190
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.1.tgz", "integrity": "sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/Mkc - Network accessline 191
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.1.tgz", - Network accessline 206
"node_modules/@rolldown/binding-linux-ppc64-gnu": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.1.tgz", - Network accessline 207
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.1.tgz", "integrity": "sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGD - Network accessline 208
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.1.tgz", - Network accessline 223
"node_modules/@rolldown/binding-linux-s390x-gnu": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.1.tgz", - Network accessline 224
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.1.tgz", "integrity": "sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2 - Network accessline 225
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.1.tgz", - Network accessline 240
"node_modules/@rolldown/binding-linux-x64-gnu": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.1.tgz", - Network accessline 241
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.1.tgz", "integrity": "sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppg - Network accessline 242
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.1.tgz", - Network accessline 257
"node_modules/@rolldown/binding-linux-x64-musl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.1.tgz", - Network accessline 258
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.1.tgz", "integrity": "sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO - Network accessline 259
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.1.tgz", - Network accessline 274
"node_modules/@rolldown/binding-openharmony-arm64": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.1.tgz", - Network accessline 275
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.1.tgz", "integrity": "sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+ - Network accessline 276
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.1.tgz", - Network accessline 291
"node_modules/@rolldown/binding-wasm32-wasi": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.1.tgz", - Network accessline 292
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.1.tgz", "integrity": "sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3Noyxbq - Network accessline 293
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.1.tgz", - Network accessline 310
"node_modules/@rolldown/binding-win32-arm64-msvc": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.1.tgz", - Network accessline 311
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.1.tgz", "integrity": "sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecau - Network accessline 312
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.1.tgz", - Network accessline 327
"node_modules/@rolldown/binding-win32-x64-msvc": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.1.tgz", - Network accessline 328
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.1.tgz", "integrity": "sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tN - Network accessline 329
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.1.tgz", - Network accessline 344
"node_modules/@rolldown/pluginutils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - Network accessline 345
"version": "1.0.1", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", - Network accessline 346
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - Network accessline 351
"node_modules/@tweenjs/tween.js": { "version": "23.1.3", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", - Network accessline 352
"version": "23.1.3", "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - Network accessline 353
"resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", - Network accessline 358
"node_modules/@tybys/wasm-util": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", - Network accessline 359
"version": "0.10.2", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", - Network accessline 360
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", - Network accessline 369
"node_modules/@types/node": { "version": "25.9.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.0.tgz", - Network accessline 370
"version": "25.9.0", "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.0.tgz", "integrity": "sha512-AOQwYUNolgy3VosiRqXrACUXTN8nJUtPl7FJXMqZVyxiiCLhQuG3jXKvCS1ALr+Y2OmZhzzLVlYPEqJaiqkaJQ==", - Network accessline 371
"resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.0.tgz", - Network accessline 379
"node_modules/@types/pngjs": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.5.tgz", - Network accessline 380
"version": "6.0.5", "resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.5.tgz", "integrity": "sha512-0k5eKfrA83JOZPppLtS2C7OUtyNAl2wKNxfyYl9Q5g9lPkgBl/9hNyAu6HuEH2J4XmIv2znEpkDd0SaZVxW6iQ==", - Network accessline 381
"resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.5.tgz", - Network accessline 389
"node_modules/@types/stats.js": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz", - Network accessline 390
"version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz", "integrity": "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==", - Network accessline 391
"resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz", - Network accessline 396
"node_modules/@types/three": { "version": "0.184.1", "resolved": "https://registry.npmjs.org/@types/three/-/three-0.184.1.tgz", - Network accessline 397
"version": "0.184.1", "resolved": "https://registry.npmjs.org/@types/three/-/three-0.184.1.tgz", "integrity": "sha512-6q4VdiqVsrTRqmk62/BnlcAvIrnDM0zf2ZDVKI5kZiniWrSaOHaQzmbp+BNzoggc/8tgW412pL//wZIxu2PPTA==", - Network accessline 398
"resolved": "https://registry.npmjs.org/@types/three/-/three-0.184.1.tgz", - Network accessline 411
"node_modules/@types/webxr": { "version": "0.5.24", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz", - Network accessline 412
"version": "0.5.24", "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz", "integrity": "sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==", - Network accessline 413
"resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz", - Network accessline 418
"node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - Network accessline 419
"version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - Network accessline 420
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - Network accessline 428
"node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - Network accessline 429
"version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - Network accessline 430
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - Network accessline 446
"node_modules/fflate": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", - Network accessline 447
"version": "0.8.3", "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", - Network accessline 448
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", - Network accessline 453
"node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - Network accessline 454
"version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - Network accessline 455
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - Network accessline 468
"node_modules/lightningcss": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - Network accessline 469
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - Network accessline 470
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - Network accessline 480
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 481
"type": "opencollective", "url": "https://opencollective.com/parcel" }, - Network accessline 482
"url": "https://opencollective.com/parcel" - Network accessline 498
"node_modules/lightningcss-android-arm64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - Network accessline 499
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgH - Network accessline 500
"resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - Network accessline 514
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 515
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 516
"url": "https://opencollective.com/parcel" - Network accessline 519
"node_modules/lightningcss-darwin-arm64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - Network accessline 520
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc - Network accessline 521
"resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - Network accessline 535
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 536
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 537
"url": "https://opencollective.com/parcel" - Network accessline 540
"node_modules/lightningcss-darwin-x64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - Network accessline 541
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73 - Network accessline 542
"resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - Network accessline 556
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 557
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 558
"url": "https://opencollective.com/parcel" - Network accessline 561
"node_modules/lightningcss-freebsd-x64": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - Network accessline 562
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK - Network accessline 563
"resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - Network accessline 577
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 578
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 579
"url": "https://opencollective.com/parcel" - Network accessline 582
"node_modules/lightningcss-linux-arm-gnueabihf": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - Network accessline 583
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsP - Network accessline 584
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - Network accessline 598
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 599
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 600
"url": "https://opencollective.com/parcel" - Network accessline 603
"node_modules/lightningcss-linux-arm64-gnu": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - Network accessline 604
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbeb - Network accessline 605
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - Network accessline 619
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 620
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 621
"url": "https://opencollective.com/parcel" - Network accessline 624
"node_modules/lightningcss-linux-arm64-musl": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - Network accessline 625
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJ - Network accessline 626
"resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - Network accessline 640
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 641
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 642
"url": "https://opencollective.com/parcel" - Network accessline 645
"node_modules/lightningcss-linux-x64-gnu": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - Network accessline 646
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI - Network accessline 647
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - Network accessline 661
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 662
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 663
"url": "https://opencollective.com/parcel" - Network accessline 666
"node_modules/lightningcss-linux-x64-musl": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - Network accessline 667
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j - Network accessline 668
"resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - Network accessline 682
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 683
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 684
"url": "https://opencollective.com/parcel" - Network accessline 687
"node_modules/lightningcss-win32-arm64-msvc": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - Network accessline 688
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx - Network accessline 689
"resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - Network accessline 703
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 704
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 705
"url": "https://opencollective.com/parcel" - Network accessline 708
"node_modules/lightningcss-win32-x64-msvc": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - Network accessline 709
"version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnj - Network accessline 710
"resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - Network accessline 724
"funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" - Network accessline 725
"type": "opencollective", "url": "https://opencollective.com/parcel" } - Network accessline 726
"url": "https://opencollective.com/parcel" - Network accessline 729
"node_modules/lil-gui": { "version": "0.21.0", "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.21.0.tgz", - Network accessline 730
"version": "0.21.0", "resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.21.0.tgz", "integrity": "sha512-tpvxN7v1GvE/Tv+GRopfOp0W7fVEjF4PltkuX8vOCIfim22rD1ztvfkoEMcv9lzQeuNUSeIrUmUjBwmlW/oUew==", - Network accessline 731
"resolved": "https://registry.npmjs.org/lil-gui/-/lil-gui-0.21.0.tgz", - Network accessline 735
"node_modules/meshoptimizer": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-1.1.1.tgz", - Network accessline 736
"version": "1.1.1", "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-1.1.1.tgz", "integrity": "sha512-oRFNWJRDA/WTrVj7NWvqa5HqE1t9MYDj2VaWirQCzCCrAd2GHrqR/sQezCxiWATPNlKTcRaPRHPJwIRoPBAp5g==", - Network accessline 737
"resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-1.1.1.tgz", - Network accessline 742
"node_modules/nanoid": { "version": "3.3.12", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - Network accessline 743
"version": "3.3.12", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", - Network accessline 744
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - Network accessline 748
{ "type": "github", "url": "https://github.com/sponsors/ai" - Network accessline 749
"type": "github", "url": "https://github.com/sponsors/ai" } - Network accessline 750
"url": "https://github.com/sponsors/ai" - Network accessline 761
"node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - Network accessline 762
"version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - Network accessline 763
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - Network accessline 768
"node_modules/picomatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - Network accessline 769
"version": "4.0.4", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - Network accessline 770
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - Network accessline 777
}, "funding": { "url": "https://github.com/sponsors/jonschlinkert" - Network accessline 778
"funding": { "url": "https://github.com/sponsors/jonschlinkert" } - Network accessline 779
"url": "https://github.com/sponsors/jonschlinkert" - Network accessline 782
"node_modules/playwright": { "version": "1.60.0", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", - Network accessline 783
"version": "1.60.0", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", - Network accessline 784
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", - Network accessline 801
"node_modules/playwright-core": { "version": "1.60.0", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - Network accessline 802
"version": "1.60.0", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", - Network accessline 803
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - Network accessline 814
"node_modules/pngjs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", - Network accessline 815
"version": "7.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", - Network accessline 816
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", - Network accessline 824
"node_modules/postcss": { "version": "8.5.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", - Network accessline 825
"version": "8.5.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", - Network accessline 826
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", - Network accessline 830
{ "type": "opencollective", "url": "https://opencollective.com/postcss/" - Network accessline 831
"type": "opencollective", "url": "https://opencollective.com/postcss/" }, - Network accessline 832
"url": "https://opencollective.com/postcss/" - Network accessline 834
{ "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" - Network accessline 835
"type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" }, - Network accessline 836
"url": "https://tidelift.com/funding/github/npm/postcss" - Network accessline 838
{ "type": "github", "url": "https://github.com/sponsors/ai" - Network accessline 839
"type": "github", "url": "https://github.com/sponsors/ai" } - Network accessline 840
"url": "https://github.com/sponsors/ai" - Network accessline 853
"node_modules/rolldown": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.1.tgz", - Network accessline 854
"version": "1.0.1", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.1.tgz", "integrity": "sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==", - Network accessline 855
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.1.tgz", - Network accessline 887
"node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - Network accessline 888
"version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - Network accessline 889
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - Network accessline 897
"node_modules/three": { "version": "0.184.0", "resolved": "https://registry.npmjs.org/three/-/three-0.184.0.tgz", - Network accessline 898
"version": "0.184.0", "resolved": "https://registry.npmjs.org/three/-/three-0.184.0.tgz", "integrity": "sha512-wtTRjG92pM5eUg/KuUnHsqSAlPM296brTOcLgMRqEeylYTh/CdtvKUvCyyCQTzFuStieWxvZb8mVTMvdPyUpxg==", - Network accessline 899
"resolved": "https://registry.npmjs.org/three/-/three-0.184.0.tgz", - Network accessline 903
"node_modules/tinyglobby": { "version": "0.2.16", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - Network accessline 904
"version": "0.2.16", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", - Network accessline 905
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", - Network accessline 915
}, "funding": { "url": "https://github.com/sponsors/SuperchupuDev" - Network accessline 916
"funding": { "url": "https://github.com/sponsors/SuperchupuDev" } - Network accessline 917
"url": "https://github.com/sponsors/SuperchupuDev" - Network accessline 920
"node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - Network accessline 921
"version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - Network accessline 922
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - Network accessline 928
"node_modules/typescript": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - Network accessline 929
"version": "6.0.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - Network accessline 930
"resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - Network accessline 942
"node_modules/undici-types": { "version": "7.24.6", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - Network accessline 943
"version": "7.24.6", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", - Network accessline 944
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", - Network accessline 949
"node_modules/vite": { "version": "8.0.13", "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.13.tgz", - Network accessline 950
"version": "8.0.13", "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.13.tgz", "integrity": "sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==", - Network accessline 951
"resolved": "https://registry.npmjs.org/vite/-/vite-8.0.13.tgz", - Network accessline 967
}, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" - Network accessline 968
"funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, - Network accessline 969
"url": "https://github.com/vitejs/vite?sponsor=1" - Network accessline 1027
"node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - Network accessline 1028
"version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - Network accessline 1029
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/package.json
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/playwright.config.ts
- Executable scriptline 1
Executable file - Network accessline 12
}, use: { baseURL: 'http://127.0.0.1:5188', - Network accessline 13
use: { baseURL: 'http://127.0.0.1:5188', trace: 'retain-on-failure', - Network accessline 14
baseURL: 'http://127.0.0.1:5188', - Network accessline 18
webServer: { command: 'npm run dev', url: 'http://127.0.0.1:5188', - Network accessline 19
command: 'npm run dev', url: 'http://127.0.0.1:5188', reuseExistingServer: false, - Network accessline 20
url: 'http://127.0.0.1:5188',
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/scripts/inspect-threejs-canvas.mjs
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/core/InputController.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/core/Loop.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/core/Renderer.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/entities/Pickup.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/entities/Player.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/game/Game.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/main.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/systems/AudioSystem.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/systems/CameraRig.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/systems/CollisionSystem.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/systems/DebugTools.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/systems/Hud.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/utils/dispose.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/utils/random.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/src/vite-env.d.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/tests/bot-playtest.template.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/tests/visual-regression.template.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/tests/visual.spec.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/assets/threejs-vite-game/vite.config.ts
- Executable scriptline 1
Executable file
plugins/shared/loom/skills/threejs/threejs-gameplay-systems/scripts/create_threejs_game.py
- Executable scriptline 1
#!/usr/bin/env python3
plugins/shared/loom/skills/threejs/threejs-image-generator/SKILL.md
plugins/shared/loom/skills/threejs/threejs-image-generator/scripts/generate_image.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 67
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Possible obfuscationline 153
image_data = base64.b64decode(image_data)
plugins/shared/loom/skills/threejs/threejs-qa-release/SKILL.md
- Network accessline 40
node <this-skill-dir>/scripts/inspect-threejs-canvas.mjs --url http://127.0.0.1:5188 --state active-play --run-id pass-1
plugins/shared/loom/skills/threejs/threejs-qa-release/scripts/inspect-threejs-canvas.mjs
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 2 facts
- Contacts api.tripo3d.ai, which SKILL.md, the README and the plugin manifest do not mentionthreejs-3d-generator/scripts/threejs_3d_asset.py:21High confidence
- Contacts api.elevenlabs.io, which SKILL.md, the README and the plugin manifest do not mentionthreejs-audio-generator/scripts/threejs_audio_asset.py:19High confidence
Signal confidence: 172 facts
- Network access in prose of the SKILL.mdgdtoolkit/SKILL.md:240Low confidence
- Network access in prose of the SKILL.mdgdtoolkit/SKILL.md:241Low confidence
- Network access in prose of the SKILL.mdgdtoolkit/SKILL.md:242Low confidence
- Network access in prose of the SKILL.mdgdtoolkit/SKILL.md:243Low confidence
- Executable script in code of a file that runsgodot-api/tools/class_list.py:1High confidence
- Executable script in code of a file that runsgodot-api/tools/ensure_doc_api.sh:1High confidence
- Network access in code of a file that runsgodot-api/tools/ensure_doc_api.sh:72High confidence
- Network access in code of a file that runsgodot-api/tools/ensure_doc_api.sh:73High confidence
- Network access in code of a file that runsgodot-api/tools/ensure_doc_api.sh:74High confidence
- Network access in code of a file that runsgodot-api/tools/ensure_doc_api.sh:75High confidence
- Network access in code of a file that runsgodot-api/tools/ensure_doc_api.sh:76High confidence
- Executable script in code of a file that runsgodot-api/tools/godot_api_converter.py:1High confidence
- Network access in prose of a file that runsgodot-api/tools/godot_api_converter.py:12Low confidence
- Network access in prose of a file that runsgodot-api/tools/godot_api_converter.py:13Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valuegodot-e2e/SKILL.md:55Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valuegodot-e2e/references/api-reference.md:857Low confidence
- Network access in code of documentationgodot-e2e/references/testing-patterns.md:723Low confidence
- Network access in code of documentationgodot-e2e/references/testing-patterns.md:724Low confidence
- Network access in code of documentationgodot-e2e/references/testing-patterns.md:725Low confidence
- Network access in code of documentationgodot-e2e/references/testing-patterns.md:737Low confidence
- Network access in code of documentationgodot-e2e/references/testing-patterns.md:738Low confidence
- Network access in code of documentationgodot-e2e/references/testing-patterns.md:739Low confidence
- Dangerous shell operation in code of documentationgodot-e2e/references/testing-patterns.md:741Low confidence
- Network access in prose of documentationproject-architecture/references/pr-lens.md:93Low confidence
- Access to secrets in prose of the SKILL.mdthreejs-3d-generator/SKILL.md:22Low confidence
- Access to secrets in code of the SKILL.md: a variable, placeholder or call, not a stored valuethreejs-3d-generator/SKILL.md:25Low confidence
- Network access in prose of documentationthreejs-3d-generator/references/api-notes.md:7Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valuethreejs-3d-generator/references/api-notes.md:8Low confidence
- Network access in prose of documentationthreejs-3d-generator/references/threejs-integration.md:57Low confidence
- Executable script in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:1High confidence
- Network access in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:8High confidence
- Network access in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:9High confidence
- Network access in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:10High confidence
- Network access in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:21High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:107Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:109Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:178Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:181Low confidence
- Network access in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:185High confidence
- Network access in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:205High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:322Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:343Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:365Low confidence
- Access to secrets in code of a file that runsthreejs-3d-generator/scripts/threejs_3d_asset.py:372High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:383Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:401Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:426Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:445Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:446Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuethreejs-3d-generator/scripts/threejs_3d_asset.py:457Low confidence
and 122 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest plugins/claude-code/.claude-plugin/plugin.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md plugins/claude-code/skills/loom/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md plugins/claude-code/skills/loom/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md plugins/claude-code/skills/loom/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md plugins/claude-code/skills/loom/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/valkor-ai-loom/)