Agent skill

Capability Discovery

by LunCoSim in LunCoSim/lunco-sim

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

Apache-2.0Auto-check passed

Install Capability Discovery

skills CLI
$ npx skills add LunCoSim/lunco-sim --skill capability-discovery -a claude-code

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

GitHub CLI
$ gh skill install LunCoSim/lunco-sim capability-discovery --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/capability-discovery .claude/skills/capability-discovery && 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
capability-discovery
GitHub stars
107
Token cost
~2.9k tokens
SKILL.md length
1,426 words
Files
1
Skills in repo
40
Repo updated
First seen
Licence
Apache-2.0

At a glance

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

  • Works in 5 steps: Start from the current checkout → Trace the authoritative owner → Know the format boundary → …
  • A request sounds like a gap
  • SKILL.md covers 1. Start from the current…, 2. Trace the authoritative owner, 3. Know the format boundary and 4. Use dynamic Rhai tools when…, plus 3 more sections
  • Calls rg, curl and jq

What it does

Capability Discovery is an agent skill from LunCoSim/lunco-sim. Find existing LunCoSim capabilities before declaring a feature missing, unsupported, or impossible. Use when a request sounds like a gap, a command or UI action is hard to locate, a build or runtime error suggests an API is absent, or an agent is about to propose a new mechanism or fallback.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Collaborative Multiphysics Cosimulator For Space Missions 🌎🚀🌚. The licence is Apache-2.0.

When your agent uses it

  • A request sounds like a gap
  • UI action is hard to locate
  • Runtime error suggests an API is absent
  • An agent is about to propose a new mechanism

Example prompts

  • “/capability-discovery”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Start from the current checkout
  2. Trace the authoritative owner
  3. Know the format boundary
  4. Use dynamic Rhai tools when the capability is policy
  5. Follow the normal development cycle

What it can do on your machine

Read from SKILL.md and the folder at commit d1c6f00. 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:

    • rg
    • curl
    • jq
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use curl and git, which can reach the network depending on how they are called.

    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

Capability Discovery loads about 2.9k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 1,426 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~2.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 d1c6f00, republished under its Apache-2.0 licence (© LunCoSim). 1,426 words, ~2,882 tokens.

Download SKILL.mdSave it as .claude/skills/capability-discovery/SKILL.md (or your agent's skills folder).
name
capability-discovery
description
Find existing LunCoSim capabilities before declaring a feature missing, unsupported, or impossible. Use when a request sounds like a gap, a command or UI action is hard to locate, a build or runtime error suggests an API is absent, or an agent is about to propose a new mechanism or fallback.

Discover LunCoSim capabilities

Use this runbook before writing “LunCoSim cannot do X”, “X is not implemented”, or adding a replacement mechanism. A failed first search is not evidence of absence: the capability may be named after its owner, exposed only through a registration, available in a skill, or implemented in a different format.

1. Start from the current checkout

Confirm the worktree, branch, and dirty state. Treat old reports, another worktree, a stale binary, and a failed build as leads rather than current capability evidence. Preserve unrelated changes.

Translate the request into several search terms: the user's phrase, the likely architecture noun, a probable crate or schema, and a command/query/tool name. Then search generated-output-free paths:

bash
rg -n -i --glob '!target/**' '<terms>' \
  AGENTS.md skills docs specs crates assets scripts
rg -n -i --glob '!target/**' '<symbol|schema|command|query>' \
  skills docs crates assets scripts

Read only the routed material, but always begin with:

If the first vocabulary is empty, search synonyms, the owning domain, standard USD schema/property names, and likely Command, query, observer, registration, or Rhai tool names. Do not conclude from one README, one crate, or one failed symbol lookup.

2. Trace the authoritative owner

For each promising result, follow the complete path:

text
format or authored asset
  -> loader/composer/parser
  -> owner and registration
  -> public caller/API/query/command
  -> runtime projection or execution
  -> test, example, or acceptance evidence

Check the maintained dependency when the question concerns OpenUSD, Bevy, Avian, Modelica/Rumoca, wgpu, or another library. Search Cargo features and registration macros as well as function names. A source file without a registration or caller is not the same as a usable capability; a missing name in one crate is not proof that the capability is absent.

For live behavior, use the production binary and its API. Start a rebuilt $LUNCOSIM_BIN with an explicit free --api PORT, then use:

bash
curl -s http://127.0.0.1:PORT/api/commands/schema | jq .
curl -s -X POST http://127.0.0.1:PORT/api/commands \
  -H 'content-type: application/json' \
  -d '{"type":"DiscoverSchema"}' | jq .

Use ListEntities, ScriptingCatalog, ListToolLibraries, GetToolLibrary, and the relevant typed query/command to verify a live surface. --validate proves parsing/preflight only; it does not prove runtime behavior. Use a production authored scene test, API verdict, or headful visual capture when that is what the requested capability requires.

3. Know the format boundary

Choose the format whose owner already matches the requested fact:

Format or layerUse it forDo not use it for
twin.tomlTwin identity and active default stageequations or mission policy
USD (.usda, composed stage)parts, identity, transforms, variants, materials, topology, typed ports, connections, and authored physicscontinuous integration or scenario sequencing
Modelica (.mo)continuous equations, state, energy balance, and solved outputsUSD traversal or mission policy
Rhai (.rhai)events, commands, sequencing, policy, authored tests, and reusable toolscontinuous dynamics or a second engine core
Rust cratesgeneric engine mechanisms, projection, scheduling, and hot pathsmodel-specific names, hidden policy, or a duplicate authoring API
WGSLshader stages and visual computationsimulation state ownership
runtime HTML/CSS-like UITwin-authored presentation and semantic UI actionsdirect mutation of domain state
API JSON / MCPtransport of typed commands, queries, and discoverya second persistent domain format

A composed USD stage is data; it does not by itself execute Modelica, Rhai, physics, or rendering. Standard USD schemas and properties own authored facts before a custom lunco: field is considered. Asset identity and storage use the existing asset resolver and @lunco://...@ references.

4. Use dynamic Rhai tools when the capability is policy

LunCoSim can gain reusable authoring, inspection, lint, and test behavior without a Rust rebuild. Before creating a tool, query DiscoverSchema, ListToolLibraries, and GetToolLibrary, then search:

  • shared libraries in assets/scripting/tools/;
  • Twin-scoped libraries in <twin>/tools/;
  • prelude helpers and the relevant author-rhai-tool skill;
  • docs/scripting-guide.md and its tool-library section.

Compose or minimally extend an existing library when possible. Use a new library only for a reusable contract, missing generic operation composition, or repeatable report/test boundary. Keep one owner: a tool may choose policy and produce typed plans, but USD/document owners apply edits, Rust owns generic engine mechanisms, and Modelica owns continuous equations. A one-off mission belongs in a scenario, not a shared tool.

The normal dynamic-tool cycle is:

text
edit .rhai
  -> RegisterToolLibrary { name, source }
  -> ListToolLibraries / GetToolLibrary
  -> minimal RunRhai or RunScenario call
  -> authored scene test or runtime evidence

Registration validates the source in the production Rhai engine and, with an active Twin, persists it in the Twin tool directory. Tool/source changes do not need a Rust rebuild; Rust observers, command types, schemas, and projection changes do. Discovery is not invocation proof: verify the exact function from the actual execution context.

5. Follow the normal development cycle

Use this sequence for a capability request or implementation:

  1. Frame the intent. Define the observable result, format/domain, and evidence needed. Choose the primary skill from skills/README.md.
  2. Discover before designing. Search skills/docs, then owner source, registrations/callers, maintained dependencies, assets, and live API surfaces. Record the existing mechanism or the bounded gap.
  3. Establish a baseline. Reproduce the current behavior with the narrowest relevant test, production binary, API call, or visual capture.
  4. Change the owner. Extend the existing mechanism in its authoritative layer. Keep policy in Rhai, authored identity/topology in USD, equations in Modelica, and generic engine work in Rust.
  5. Validate the smallest sufficient path. Use --validate for asset preflight, the owning Rust target for low-level mechanisms, authored Rhai scene tests for observable behavior, and the production luncosim binary for runtime/visual evidence. Reuse valid evidence when inputs are unchanged.
  6. Review integration. Search callers, docs, skills, registrations, tests, and examples for stale names. Check git diff --check; remove retired paths, shims, fallbacks, and duplicate owners.
  7. Hand off. Report exact files/symbols, commands, revision, evidence type, and remaining blockers. For non-trivial LunCoSim work, keep the Trello card in the correct lifecycle state and do not claim acceptance without observed evidence.
Show full SKILL.md (519 more words)Show less

Bounded answers to common questions

“I cannot find the feature. Is it missing?”

Not yet established. Search the routed skills and docs, trace the owner and registration, search alternate vocabulary and maintained dependencies, then check the live API or production test when applicable. Report what was searched.

“The API command or UI action is not in the source file I opened.”

Use DiscoverSchema; commands and providers self-register and may be owned by another plugin or adapter crate. Trace the registration and public caller before adding a new command or UI path.

“The docs say one thing and runtime does another.”

Verify the current branch, build the production binary from that checkout, and prefer current source plus observed registration/runtime evidence. Update the canonical documentation in the same change; do not preserve two contradictory contracts.

“Can I add a quick Rust workaround?”

Only if the missing piece is a generic engine mechanism that cannot be composed through an existing authored/API surface. First check the relevant skill, standard USD owner, existing Rhai tool, and maintained dependency. Do not add a model-specific Rust path, compatibility alias, silent fallback, or second owner.

“Do I need a rebuild?”

Usually not for authored .rhai scenarios/tools or WGSL shader source when the existing reload surface covers the change. A new Rust command, observer, projection path, schema, or dependency requires a focused rebuild and a replacement production session. Use API Exit before replacing a session.

“Which file format should I use?”

Use the ownership table above and the existing authoring skill. If the fact is scene identity/topology, start in USD; if it is continuous state, Modelica; if it is mission policy or an authored verdict, Rhai. Keep API JSON as transport, not as a new source of truth.

“Does --validate prove that it works?”

No. It proves asset parsing, resolution, and authored preflight/lints. Runtime behavior needs a production scene test, API observation, or visual evidence.

“Where should the test go?”

Put behavior and policy assertions in assets/scenarios/tests/*.rhai and run them through the production scene-test binary. Reserve Rust tests for generic mechanisms that the public Rhai/API surface cannot observe, such as parsing, serialization, schema/composition, or pure lowering/math.

“When may I say ‘impossible’?”

Only after the relevant current owner, registrations/callers, maintained dependency, and runtime surface have been checked and a concrete contract, dependency, platform, or permission limit is demonstrated. Otherwise say “not found in the searched scope”, “implemented but unwired”, “not verified”, or “externally blocked”, with the evidence.

Result categories

Every discovery report should use one of these bounded outcomes:

  • Found and usable: exact path, symbol, command/query, tool, or workflow.
  • Implemented but unwired: owner exists; name the missing registration, feature, caller, asset reference, or runtime integration.
  • Present elsewhere: exact branch, commit, worktree, or version mismatch.
  • Not found in the searched scope: list paths, terms, owner, and evidence checked; do not generalize to the whole product.
  • Externally blocked: exact dependency, platform, permission, or environment error, plus the owner that would resolve it.

Link the relevant skill and documentation in the handoff. If discovery finds an existing capability, switch to that capability's implementation or usage skill instead of creating a parallel mechanism.

© 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

Just SKILL.md in skills/capability-discovery of LunCoSim/lunco-sim.

Open the folder on GitHubat commit d1c6f00

Compare with similar skills

Capability Discovery 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.

Capability Discovery compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Capability Discovery this skillLunCoSim/lunco-sim107—~2.9kAutomated safety check: PassApache-2.0
Product Capabilityaffaan-m/ECC276k2 repos~1.1kAutomated safety check: PassMIT
Artifact Capabilitiesasgeirtj/system_prompts_leaks69k—~4.3kAutomated safety check: PassCC0-1.0
Product Capabilityaffaan-m/ECC276k—~439Automated safety check: PassMIT
Declarative Agentsgithub/awesome-copilot40k1 repos~1.2kAutomated safety check: PassMIT
Capability Creatorholaboss-ai/holaOS11k—~385Automated safety check: PassCustom licence

Similar skills

  • Product Capability

    affaan-m/ECC

    Translate PRD intent, roadmap asks, or product discussions into an implementation-ready capability plan that exposes constraints, invariants, interfaces, and unresolved decisions before…

    276k GitHub starsUsed in 2 repos~1.1k tokens
    Product & Project ManagementAuto-check passed
  • Artifact Capabilities

    asgeirtj/system_prompts_leaks

    Runtime capabilities a published Artifact page can be granted — behavior static HTML cannot provide on its own, such as the page reading live or connected data, remembering what people do on it (a…

    69k GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Product Capability

    affaan-m/ECC

    将PRD意图、路线图需求或产品讨论转化为可实施的方案计划,在开始多服务工作之前暴露约束、不变性、接口和未解决的决策。当用户需要ECC原生的PRD到SRS通道,而不是模糊的规划文本时使用。

    276k GitHub stars~439 tokensUpdated 4 days ago
    Product & Project ManagementAuto-check passed
  • Declarative Agents

    github/awesome-copilot

    Official

    Complete development kit for Microsoft 365 Copilot declarative agents with three comprehensive workflows (basic, advanced, validation), TypeSpec support, and Microsoft 365 Agents Toolkit integration

    40k GitHub starsUsed in 1 repo~1.2k tokens
    Documents & OfficeAuto-check passed
  • Capability Creator

    holaboss-ai/holaOS

    Bundles one or more existing skills and the integrations they need into a single named, installable capability.

    11k GitHub stars~385 tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • MCP Create Declarative Agent

    github/awesome-copilot

    Official

    Skill converted from mcp-create-declarative-agent.prompt.md. An agent skill from github/awesome-copilot.

    40k GitHub starsUsed in 1 repo~2k tokens
    Agent WorkflowsAuto-check: notes

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 Rhai Tool

    LunCoSim/lunco-sim

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

    107 GitHub stars~5.2k 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

Questions about Capability Discovery

What does Capability Discovery do?

Find existing LunCoSim capabilities before declaring a feature missing, unsupported, or impossible. Capability Discovery is an agent skill from LunCoSim/lunco-sim. Find existing LunCoSim capabilities before declaring a feature missing, unsupported, or impossible.

When should I use Capability Discovery?

Capability Discovery fits situations like: A request sounds like a gap; UI action is hard to locate; runtime error suggests an API is absent; an agent is about to propose a new mechanism.

How do I install Capability Discovery in Claude Code?

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

How do I install Capability Discovery in Codex?

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

Can I use Capability Discovery 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 capability-discovery -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/capability-discovery, .gemini/skills/capability-discovery, .github/skills/capability-discovery and .opencode/skills/capability-discovery in your project.

What does Capability Discovery need to run?

Going by SKILL.md and its folder, Capability Discovery needs the command-line tools its instructions call (rg, curl, jq and git).

Does Capability Discovery access the network?

SKILL.md contains no URLs. Its commands use curl and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Capability Discovery 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 Capability Discovery use?

Capability Discovery 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 Capability Discovery use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Capability Discovery?

Skills that share tags, products or a category with Capability Discovery: Product Capability (affaan-m/ECC, 276k stars), Artifact Capabilities (asgeirtj/system_prompts_leaks, 69k stars), Product Capability (affaan-m/ECC, 276k stars) and Declarative Agents (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Capability Discovery?

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 9, 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.