Agent skill

Author Rhai Tool

by LunCoSim in LunCoSim/lunco-sim

Create, extend, register, or debug a reusable LunCoSim Rhai tool library for live USD authoring, component linting, inspection, or test support.

Apache-2.0Auto-check passedDevelopment

Install Author Rhai Tool

skills CLI
$ npx skills add LunCoSim/lunco-sim --skill author-rhai-tool -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install LunCoSim/lunco-sim author-rhai-tool --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/LunCoSim/lunco-sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/author-rhai-tool .claude/skills/author-rhai-tool && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
author-rhai-tool
GitHub stars
107
Token cost
~5.2k tokens
SKILL.md length
2,626 words
Files
2 (incl. references)
Skills in repo
40
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create, extend, register, or debug a reusable LunCoSim Rhai tool library for live USD authoring, component linting, inspection, or test support.

  • Works in 4 steps: Plan — pure calculation of a typed… → Apply — the caller sends the reviewed… → Inspect/lint — read-only queries over… → …
  • A task needs a new name::function(...) tool
  • SKILL.md covers Choose the tool's home, Separate the four…, Use an existing tool first and Register and call a tool, plus 2 more sections
  • Calls kind

What it does

Author Rhai Tool is an agent skill from LunCoSim/lunco-sim. Create, extend, register, or debug a reusable LunCoSim Rhai tool library for live USD authoring, component linting, inspection, or test support. Use when a task needs a new name::function(...) tool, a typed USD plan builder, a read-only requirement report, or a same-session tool registration. Use author-scenario for mission policy and edit-usd-assembly for the assembly workflow that consumes these tools.

Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/tool-authoring-contract.md`).

It sits in Development, covering Linting and formatting. The repository describes itself as: Collaborative Multiphysics Cosimulator For Space Missions 🌎🚀🌚. The licence is Apache-2.0.

When your agent uses it

  • A task needs a new name::function(...) tool
  • A typed USD plan builder
  • A read-only requirement report
  • A same-session tool registration

Example prompts

  • “/author-rhai-tool”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Plan — pure calculation of a typed operation list from explicit inputs.
  2. Apply — the caller sends the reviewed plan to the existing document
  3. Inspect/lint — read-only queries over composed USD or live runtime state.
  4. Test — an authored Rhai observer that samples the live model and emits

What it can do on your machine

Read from SKILL.md and the folder at commit 4c48dd0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • kind

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Author Rhai Tool loads about 5.2k tokens when it runs, and up to ~6.9k if it reads all its reference files. Until then it costs about 107 tokens; SKILL.md has 2,626 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~107
When it runs · the whole SKILL.md, loaded when a task matches
~5.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from LunCoSim/lunco-sim at commit 4c48dd0, republished under its Apache-2.0 licence (© LunCoSim). 2,626 words, ~5,178 tokens.

Download SKILL.mdSave it as .claude/skills/author-rhai-tool/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
author-rhai-tool
description
Create, extend, register, or debug a reusable LunCoSim Rhai tool library for live USD authoring, component linting, inspection, or test support. Use when a task needs a new `name::function(...)` tool, a typed USD plan builder, a read-only requirement report, or a same-session tool registration. Use author-scenario for mission policy and edit-usd-assembly for the assembly workflow that consumes these tools.

Author a reusable Rhai tool library

A tool library is named, reusable Rhai policy. It is not a second simulator core, a hidden USD writer, or a vehicle-specific Rust feature. A good tool turns a repeated authoring or inspection decision into a deterministic, discoverable function while leaving USD, the document journal, projection, physics, and solver ownership in their existing typed owners.

Read the focused contract when implementing one: references/tool-authoring-contract.md. For queued pointer/menu calls, follow the canonical one-shot ownership contract.

Choose the tool's home

  • Put a reusable engine/editor policy in assets/scripting/tools/<name>.rhai. The authored scripting.source.classify startup policy admits this source as a callable library; it is still a Rhai tool, not a Rust vehicle implementation. Other .rhai files, including tests and scenarios, are loaded only by an explicit scene/runtime request or the CLI test path. In an external Twin session, verify admission with ListToolLibraries after /api/ready; a policy-layer handoff must re-admit standard tools when the classifier returns. Startup admission, Bevy source publication, and runtime preparation are ordered. The runtime keeps the current admitted sources and closes script execution while the required classifier is temporarily unavailable during a policy replacement.
  • Put a Twin-specific builder, component lint, or requirement helper in <twin>/tools/<name>.rhai. It is persisted with that Twin and must not leak into unrelated Twins. Persisted library names are portable single file stems; Windows device names, reserved punctuation and trailing dots/spaces are rejected on every host. Literal #, %, spaces and Unicode are supported; runtime discovery uses typed asset paths to preserve their spelling.
  • Edit an existing Twin .rhai asset through the source Editor: open its Twin-relative path with OpenTwinSource, edit the buffer, and persist it with SaveSourceText. Use Save & Update when the source needs to be reloaded. The save command only accepts a registered Twin and a file already open in that Editor; do not patch a loaded source file behind its buffer.
  • Put a one-off mission sequence in a scenario, not a tool library. Use author-scenario.
  • Put continuous control equations in Modelica and generic substrate in Rust. A missing generic typed USD, physics, projection, or solver capability is a capability report, not permission to add a model-specific Rust path.

Name the library after its reusable boundary (assembly_builder, component_requirements), and name functions by intent: *_plan, *_report, *_lint, *_test, or *_query. Avoid names that encode an implementation detail or a temporary failure.

Separate the four responsibilities

Keep these responsibilities distinct even when they live in one small file:

  1. Plan — pure calculation of a typed operation list from explicit inputs. A plan must not call cmd, mutate a document, mutate ECS, or repair a failed result. It accepts the exact doc_id, edit_target, paths, and generation needed by its caller.
  2. Apply — the caller sends the reviewed plan to the existing document owner, normally assembly_edit::batch or the proposal/review/commit flow. A domain tool may provide a thin apply convenience only if it still routes through that owner and exposes the acknowledgement and new generation.
  3. Inspect/lint — read-only queries over composed USD or live runtime state. Return structured facts, errors, warnings, and an ok value. A lint must never hide a missing prim, invent a default, or modify the model to make itself pass.
  4. Test — an authored Rhai observer that samples the live model and emits one bounded verdict. Keep component tests separate from assembly integration tests; use the shared auto_tests.rhai assertions rather than private copies.

The normal authoring shape is:

text
inspect exact target and generation
  -> pure component/assembly plan
  -> typed document batch or reviewed proposal
  -> projection/readback
  -> screenshot in the same headful session
  -> component lint/test
  -> assembly integration test
  -> save through the document owner

For the common post-edit checkpoint, compose the built-in editor_workflow::after_edit(doc) helper after a reviewed apply/commit. It keeps inspect, current projection, document lint, and optional authored save in one explicit result; authored autosave is disabled unless the Twin explicitly sets usd.editor_autosave = true. For physics scene evidence, compose physics_acceptance instead of adding one-off threshold code to every test. It reads existing runtime facts and leaves solver policy in Rust.

Native value boundary

Use the common engine's native Vec3/Quat values for repeated geometry, pose, and control math. They are the simulator's bevy::math::DVec3 and DQuat, registered once by lunco-scripting-rhai-world; do not define tuple/vector helpers in a tool library. world_pos3, world_forward3, and world_rotation_quat keep the hot path native, and vadd/vsub/vscale/ vcross/vdot/vlen/norm_squared/vnorm/qrot dispatch to Rust for native operands. Constructors and quaternion/Euler conversions reject non-finite or degenerate values with a script error.

Use [x, y, z]/[x, y, z, w] only when a standard USD literal, JSON command or query parameter, telemetry payload, or legacy scenario requires the interchange representation. Call vec3_array/quat_array explicitly at that boundary. The bridge accepts native vectors in cmd, query, and set and lowers them once; unknown custom values must be rejected, never stringified or changed into null. Rhai's built-in scalar math (sin, cos, exp, sqrt, atan(x, y), and related functions) is already Rust-backed, so do not shadow those names in a tool.

For reusable mechanical/CAD policy, compose assets/scripting/tools/mechanical_relations.rhai instead of adding a vehicle-specific checker. Pass native vectors and an explicit tolerance; keep the returned residual/evidence record attached to the caller's SysML requirement or verification identity. The library covers distance, coincidence, plane distance, under/clearance, parallel/perpendicular, collinear/coplanar, mirroring, and plane/axis symmetry, and remains reloadable Rhai policy.

Use the shared Rust boundary functions for dynamic values: f64_from for the permissive numeric edge, f64_only for settings that must be authored as f64, and array_is/map_is/string_is plus native vector predicates for shape checks. Use sysml_model_is, sysml_quantity_is, and sysml_enum_is for SysML wrapper values. Do not compare type_of(value) strings for ordinary numeric, array, map, string, or SysML-wrapper dispatch. Keep semantic strings for paths, qualified names, relation labels, and enum literals only.

Keep complex Rhai plans readable to the compiler as well as to reviewers. Extract long compound validation conditions and large record construction into named predicates and constructors instead of one deeply nested expression. For UsdGeomMesh edits, keep points and topology as numeric arrays until the schema boundary, then use assembly_builder::mesh_points_update_plan or assembly_builder::mesh_geometry_update_plan. These return ordinary SetAttribute operations and preserve the rest of the composed mesh contract; only the USD attribute's canonical literal is serialized as text.

Resolve a numerical profile from numerical_settings.rhai once per report or solve. Keep length, angle, scalar, time, and solver tolerances as distinct fields. A tool may use a runtime numerical setting for algorithm policy, but a normative requirement tolerance must remain sourced from SysML and appear in the evidence.

Generic parameter edits

Use assembly_builder::parameter_plan(edit_target, path, parameters) for a vehicle-independent parameter update. Each entry is { name, type_name, value }, where value is the canonical USD literal. The function only validates the exact path and unique typed fields and returns SetAttribute operations. Submit those operations with assembly_edit::batch or the proposal/review/commit flow.

The Inspector's Apply action lowers to the same ApplyUsdOps boundary. Rhai may choose which parameters to expose and validate cross-field relationships, but it must not add a second writer, infer targets by name, or encode vehicle policy in a reusable core tool. Modelica parameter meaning and lifecycle stay with the Modelica declaration/compiler; an instance override remains a USD inputs: edit.

AI-readable assembly authoring

For an exact composed prim, call assembly_builder::authoring_context(doc, path, edit_target) before planning. It returns the document generation and resolved edit target together with the prim, topology, collision envelope, exact mount sockets/occupancy, plug frames, and a small authored-affordance list. Treat every returned path and generation as a checkpoint; do not infer a socket, component, or parent from a leaf name.

Use assembly_builder::place_or_attach_plan to keep generated intent dry: attach_component returns a reviewed AttachSpec for the existing generic owner, while realign_existing_mount returns ordinary typed USD operations. After the user or agent reviews the plan, submit .spec through assembly_edit::attach_component or .ops through assembly_edit::propose/review_session/commit_proposal. Do not put this workflow in Rust or create an AI-only writer; Rhai supplies the policy and the existing USD owners supply validation and journalling.

For Editor-driven authoring, add assembly_builder::selected_authoring_context(preview) as the first discovery call. It accepts () for the focused preview or an explicit hidden preview id and fails unless exactly one current, unambiguous prim is selected. It returns the selection identity and generation alongside the normal authoring_context; do not replace those exact values with a display name. Use functional_frame_catalog(doc, edit_target, root_path) to enumerate authored functional frames and align_frames_plan(...) to compute a dry source-frame-to-target-frame placement. Keep the same-parent and rigid-stack constraints visible in the tool result, and send only the returned typed ops through the existing review/journal path.

For a reusable component recipe, compose the existing libraries with ordinary Rhai imports through component_editor::update_context or component_editor::selected_update_context. Its update_plan is a thin facade over assembly_builder::component_bundle_update_plan; keep the bundle recipe in the owning Twin/model package, return a dry plan, and let assembly_edit own proposal, review, commit, generation checks, and journalling. Do not add a Rust component registry or infer a recipe from USD child names.

Model-authoring facades

For a new assembly or scene, prefer the generic model_authoring library. It keeps the workflow in Rhai while reusing the existing typed USD owners:

  • model_context(doc, root, edit_target) reads the exact composed subtree and returns paths, references, variants, components, frames, mounts, bodies, joints, colliders, ports, generation, and available actions.
  • readiness_report(doc, root, edit_target, policy) combines only the checks requested for topology, physicality, mounts, connections, controls, and runtime. Missing sections are not_requested; failed lookups are errors.
  • scene_recipe(doc, edit_target, recipe, parent_generation) returns dry typed USD ops for references, terrain, cameras, and initial state, plus explicit hand-offs for waypoint_editor routes and assembly_edit::attach_program programs.
  • Connections source drops use the same typed program lowering and USD journal. diagram.drop.plan chooses parent/name from immutable source facts; its Rhai policy never reads source bytes or authors USD directly. Models-palette drag contracts retain explicitly declared ports. Browser .mo/.rhai drops do not infer ports; inspect InspectConnectionDiagram program facets and then author their port contract through the document tools.
  • port_graph(doc, root, edit_target) discovers standard USD inputs:/outputs:/connectors: endpoints and composed connections. wiring_plan(doc, edit_target, root, connections, parent_generation) validates direction and type and returns typed SetConnection ops.
  • publish_component(doc, root, edit_target, output, provenance) validates a standalone kind = "component" root, defaultPrim, schemas, references, and provenance, then returns the normal metadata ops and explicit Save-As command. Review/apply through assembly_edit; provenance remains a caller-owned manifest or standard assetInfo, not a new LunCo schema.

When testing a reusable tool or linter behavior, put the authored fixture in assets/scenes/tests/ and the observer in assets/scenarios/tests/. Exercise the production command/query surface and assert the returned facts in Rhai; do not copy a large USDA string or an observable policy assertion into a Rust unit test. Keep Rust coverage only for a generic mechanism that the public Rhai surface cannot reach.

Show full SKILL.md (920 more words)Show less
Measurement evidence

Use the built-in authoring_measurements library for reusable dimensional requirements instead of adding a model-specific validator or Rust geometry policy. requirement_report(doc, requirements) evaluates every explicit distance or collision extent rule through QueryUsdPrim and retains the exact document, paths, frame, units, expected value, tolerance, method, and source. Its checks list is the complete execution record; findings contains only failed or unavailable rules. Missing subjects, missing collision bounds, stale document projections, and unsupported units must remain unavailable or failed, never a passing default. Put the positive and negative behavior in a production Rhai scene test when a live stage is required.

Pass the exact document id, edit target, and generation returned by the read. These facades do not identify parts by vehicle name, write USDA directly, or hide missing references, endpoints, mounts, or runtime evidence.

Use an existing tool first

Before creating a library, query the live surface with DiscoverSchema, ListToolLibraries, and GetToolLibrary. Search the existing assets/scripting/tools/ sources and the relevant Twin tools/ directory. Prefer composing assembly_edit, assembly_builder, assembly_audit, assembly_ui, nurbs, or an existing generic prelude helper. A new tool is justified when it adds a reusable contract, a missing generic operation composition, or a repeatable requirement/report boundary—not when it merely shortens one call site or hides a rejected command.

For a new component, create its requirement contract and test alongside its tool. The assembly tool may orchestrate components, but it must not duplicate their internal geometry or silently become the only place their requirements are checked.

Register and call a tool

Edit the .rhai source normally, then register the source in the existing session:

json
{
  "type": "ExecuteCommand",
  "command": "RegisterToolLibrary",
  "params": { "name": "component_builder", "source": "..." }
}

With an active Twin this command persists the source to <twin>/tools/ and publishes the named module. On the next normal engine-maintenance pass the module is callable as component_builder::function(...); no Rust rebuild is needed for Rhai source changes.

Tool dependencies use Rhai's normal import syntax and load when referenced:

rhai
import "assembly_edit" as assembly_edit;

The registration command validates the candidate against the production Rhai engine (prelude, host verbs, asset imports, and current tool registry) before persistence. Missing tools and import cycles are reported as registration errors; do not copy a dependency into another library or add a Rust dispatcher.

Verify all three layers, in order:

  1. RegisterToolLibrary acknowledged the exact name and source.
  2. ListToolLibraries/GetToolLibrary show the expected backend and function surface.
  3. A minimal call succeeds from the actual execution context (RunRhai for a one-shot check or RunScenario for a persistent hook).

For interaction tools, verify the registered scope as well as callability. Pass the captured Twin flow owner through RunRhaiToolHook.owner_twin_id when the UI flow belongs to a Twin. Include an authored replacement case that queues a call, closes its Twin, and proves a same-name tool in the replacement Twin receives no old call. Keep application-tool lifetime checks separate from Twin-flow checks.

Discovery is not invocation proof. If the name is listed but a call reports Module not found, first allow the same process one update/maintenance pass and confirm the active Twin scope. If it still fails, record it as a bridge capability gap with the command response and do not work around it by pasting the library into every scenario or by adding Rust-specific dispatch.

Keep one existing production process for live work. A second binary launch is not a tool test. For a user-visible assembly, the process must remain headful; use RunRhai/RunScenario against that process and capture the focused Editor preview after the typed operation commits.

Live USD rules

.rhai source may be edited and hot-registered. .usda source must not be hand-edited for a live Editor task. Do not use sed, a generated USDA replacement, SetDocumentSource, a raw file writer, or direct ECS mutation to create or repair geometry. Build typed UsdOp plans and let the document owner maintain transforms, journal entries, undo/redo, projection, and save output.

Use the exact doc_id, edit_target, absolute prim paths, and inspected parent_gen. Group facts that must change together into one atomic batch or reviewed proposal. Let standard schemas own standard concepts; if the typed surface cannot author a required reference list, variant set/block, metadata, or inherited-prim deletion, report the missing generic Rust capability instead of faking it with hidden duplicate geometry or a compatibility alias.

A successful command acknowledgement is not visual proof. After projection, query the composed prims and capture/inspect a project-local screenshot. A preflight parse or lint is not runtime proof, and a screenshot is not physics proof. Keep these evidence classes separate in the handover.

Tool quality gate

Before handing off a library, verify:

  • it compiles and is callable after RegisterToolLibrary in the already-running production process; a separate luncosim --validate invocation is not runtime evidence for a live tool;
  • its public functions have explicit inputs, units, return shapes, and () or structured error behavior for unavailable data;
  • repeated calls are deterministic and either idempotent or explicitly reject an already-complete topology;
  • it uses canonical USD paths and root-qualified lunco:///twin:// asset references, never name-prefix discovery or local FreeCAD authority;
  • it uses standard USD schemas and typed operations, with no hidden placeholders standing in for deleted parts;
  • its lints are read-only and its tests assert that data was measured, not only that a hook happened to run;
  • component tests and assembly tests run in the same requested live session;
  • public/reference-backed values are labelled separately from Twin assumptions;
  • any missing Rust capability is documented with evidence, impact, and the proper generic owner.

If registration can persist a source while compilation/callability is still unknown, treat that as a Rust UX gap: the command should fail atomically or return structured compile diagnostics and a callable-engine readiness state.

© LunCoSim, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/author-rhai-tool of LunCoSim/lunco-sim.

  • SKILL.md
  • references/tool-authoring-contract.md

Open the folder on GitHubat commit 4c48dd0

Compare with similar skills

Author Rhai Tool next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Author Rhai Tool compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Author Rhai Tool this skillLunCoSim/lunco-sim107—~5.2kAutomated safety check: PassApache-2.0
Minimizing Ty Ecosystem Changesastral-sh/ruff50k—~4.6kAutomated safety check: PassMIT
Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop5.4k—~2.2kAutomated safety check: PassMIT
Babysit PR To Pass CIsgl-project/sglang37k2 repos~3kAutomated safety check: PassApache-2.0
Rust Best Practicesfarm-fe/farm5.6k3 repos~1.1kAutomated safety check: PassMIT
Summarise Ecosystem Resultsastral-sh/ruff50k—~2.2kAutomated safety check: PassMIT

Similar skills

  • Official

    A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…

    50k GitHub stars~4.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.

    5.4k GitHub stars~2.2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Babysit PR To Pass CI

    sgl-project/sglang

    Start and persistently pursue a goal to babysit an SGLang pull request until selected GitHub Actions workflows pass on the latest PR head.

    37k GitHub starsUsed in 2 repos~3k tokens
    DevelopmentAuto-check passed
  • Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.

    5.6k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Official

    A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…

    50k GitHub stars~2.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Go Pedantry

    chromedp/chromedp

    This skill should be used when the user is writing Go code and needs guidance on Go-specific pedantry: error wrapping with fmt.Errorf and %w, interface design (accept interfaces return structs)…

    13k GitHub stars~3.7k tokensUpdated today
    DevelopmentAuto-check passed

More from LunCoSim/lunco-sim

All 40 skills in this repo
  • Nightly Changelog

    LunCoSim/lunco-sim

    Generate concise LunCoSim nightly GitHub release notes with platform downloads, installation guidance, an AI-agent mission prompt, and a changelog link.

    107 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Build or repair a reusable scene component through a live LunCoSim Editor session.

    107 GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Assembly Quality

    LunCoSim/lunco-sim

    Build or review a componentized LunCoSim USD assembly with a realistic, dimensionally checkable presentation.

    107 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Author Rhai Tests

    LunCoSim/lunco-sim

    Author and review LunCoSim behavioral, asset-backed, component, mission, visual, and requirements-verification tests.

    107 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Author Tutorial

    LunCoSim/lunco-sim

    Author an interactive tutorial, guided lesson, onboarding flow, coach-mark tour, or objectives checklist in LunCoSim.

    107 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Capability Discovery

    LunCoSim/lunco-sim

    Find existing LunCoSim capabilities before declaring a feature missing, unsupported, or impossible.

    107 GitHub stars~2.9k tokensUpdated today
    Auto-check passed

Categories

Questions about Author Rhai Tool

What does Author Rhai Tool do?

Create, extend, register, or debug a reusable LunCoSim Rhai tool library for live USD authoring, component linting, inspection, or test support. Author Rhai Tool is an agent skill from LunCoSim/lunco-sim. Create, extend, register, or debug a reusable LunCoSim Rhai tool library for live USD authoring, component linting, inspection, or test support.

When should I use Author Rhai Tool?

Author Rhai Tool fits situations like: A task needs a new name::function(...) tool; A typed USD plan builder; A read-only requirement report; A same-session tool registration.

How do I install Author Rhai Tool in Claude Code?

Run `npx skills add LunCoSim/lunco-sim --skill author-rhai-tool -a claude-code`. Or copy the skill folder (skills/author-rhai-tool in LunCoSim/lunco-sim) into .claude/skills/author-rhai-tool in your project. Claude Code loads it when a task matches its description.

How do I install Author Rhai Tool in Codex?

Run `npx skills add LunCoSim/lunco-sim --skill author-rhai-tool -a codex`. Or copy the skill folder (skills/author-rhai-tool in LunCoSim/lunco-sim) into .agents/skills/author-rhai-tool in your project. Codex loads it when a task matches its description.

Can I use Author Rhai Tool in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LunCoSim/lunco-sim --skill author-rhai-tool -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/author-rhai-tool, .gemini/skills/author-rhai-tool, .github/skills/author-rhai-tool and .opencode/skills/author-rhai-tool in your project.

What does Author Rhai Tool need to run?

Going by SKILL.md and its folder, Author Rhai Tool needs the command-line tools its instructions call (kind).

Does Author Rhai Tool access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Author Rhai Tool safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Author Rhai Tool use?

Author Rhai Tool is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Author Rhai Tool use?

About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.

What are the alternatives to Author Rhai Tool?

Skills that share tags, products or a category with Author Rhai Tool: Minimizing Ty Ecosystem Changes (astral-sh/ruff, 50k stars), Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.4k stars), Babysit PR To Pass CI (sgl-project/sglang, 37k stars) and Rust Best Practices (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Author Rhai Tool?

LunCoSim (a GitHub organization) maintains it in LunCoSim/lunco-sim, which has 107 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 11, 2026.

Source: LunCoSim/lunco-sim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.