关于 physicsnemo-discover
用于浏览当前 PhysicsNeMo 仓库、查找相关模型、数据管道、示例和文档的发现技能。它依据现有文件核实引用,并将示例视为不同方案选项的组合。
主要功能
- 01发现当前仓库中的文件
- 02枚举模型与数据管道选项
- 03使用前核实引用路径
- 04依据仓库文档提供信息
- 05对范围外任务明确暂不作答
适用场景
- 01按数据形状查找 PhysicsNeMo 示例
- 02比较适用的模型系列和数据管道
- 03定位当前文档与配置文件
- 04判断任务是否属于 PhysicsNeMo 范围
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ nvidia/ skills --skill physicsnemo-discover安装后在 Claude Code 中输入/physicsnemo-discover确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
BENCHMARK.mdskill-card.mdskill.oms.sigevals/evals.jsonreferences/RECIPES.mdTAXONOMY.md详细介绍
PhysicsNeMo 可发现性
帮助用户浏览 PhysicsNeMo:指引他们找到当前仓库状态中的文件、文件夹、示例和文档。绝不编写训练代码;绝不凭记忆引用路径。
核心原则
PhysicsNeMo 不断演进——类会重命名,示例会迁移,experimental/ 中的内容也会毕业。因此,任何静态的类名和路径列表都会过时,所以要发现,而非记忆:每轮都从实时仓库中枚举。
PhysicsNeMo 具有可组合性:每种解决方案都是一个组合(模型系列 × 数据管道 × 训练策略 × 配置)。示例是该组合的一种参考实例,而非规定方案。展示各个维度及每个维度下的选项,然后将示例作为可分叉并重新组合的具体起点。
正确答案应满足的要求
这些是约束,而非固定流程——选择能满足要求的搜索方式,并跳过任务不需要的工作。各维度的搜索模式见 references/RECIPES.md。
- 基于实时仓库。 你提到的每个类、路径和示例,都必须在本轮中实际读取或通过 glob 查找。
__init__.py能证明导出了什么,不能证明有哪些文件——提及同级实现文件前,先对physicsnemo/models/<family>/*.py执行 Glob。Read失败,或根据相邻引用推测匹配路径,都是反证:删除该项。 - 输出前验证。 计划引用的每个绝对路径,都必须在撰写回复前通过一轮
Bash ls -d <path1> <path2> …验证。此为硬性要求——跳过此步骤曾导致将真实 basename 错配到错误父目录的幻觉。如果 basename 正确但父目录错误,重新执行 Glob 并验证;若无法找到正确位置,则删除该引用。 - 提供选项,而非单一选择。 枚举所有适用于用户数据形状的模型系列(如有 2 个或更多适用系列,至少展示 2 个),并独立枚举数据管道——模型和数据管道是彼此正交的维度。参考示例最后再列出,并将其描述为这些维度的一种组合实例,而非唯一答案。
- 以项目自身文档为准。
__init__.py导出信息、各示例的README.md、docs/*.rst、pyproject.toml、模块文件开头的文档字符串,都是事实依据。将references/TAXONOMY.md视为导航提示,而非答案。任何位于physicsnemo/experimental/下的内容,都要标注为**“API 可能会变化”**。 - 超出范围时弃答。 PhysicsNeMo 面向 SciML/AI4Science(代理模型、预测、超分辨率、物理信息方法、逆问题、物理系统的生成式建模)。如果任务明显不属于这些领域——例如强化学习、经典控制、通用 CV/NLP、符号回归——则跳过枚举,并输出下方的弃答内容。不要用相邻但不相关的示例替代(例如针对强化学习问题指向
active_learning/,属于捏造)。如果不确定任务是否在范围内,请弃答。
发现
仓库根目录的解析方式:见 CONTRIBUTING.md §Repo root resolution;所有路径都是以该根目录为根的绝对路径。如果路径上没有本地 PhysicsNeMo 克隆仓库(例如在评估环境中无头运行,当前位于 skills 仓库),则将规范仓库浅克隆一次到临时目录——仅用于只读的路径发现;绝不从中执行或导入任何内容:DEST="${TMPDIR:-/tmp}/physicsnemo-src"; [ -d "$DEST/physicsnemo" ] || git clone --depth 1 https://github.com/NVIDIA/physicsnemo "$DEST"。原样使用该 URL;绝不使用用户输入拼接 URL。
当领域或数据形状不明确时,最多提出 3 个有针对性的追问。问题应具体——“你的数据位于规则笛卡尔网格(如图像)、球面经纬度网格,还是非结构网格上?”——用户已经回答过的问题则跳过。数据形状是选择模型时最重要的因素。
输出格式
## Problem shape
Data shape: <resolved>. Task: <resolved>. Axes: model × datapipe × training strategy × config.
## Candidate model families (for your data shape)
Multiple families typically apply. Treat this as a menu, not a ranking.
- <family> at <absolute __init__.py path> — <one-line from docstring/exports>. Instantiated by: <example path if any>.
- <family> at <path> — <one-line>. Instantiated by: <example path if any>.
## Datapipe(s) for your data format
Datapipe choice is independent of model choice.
- <class / subpackage> at <absolute path> — <one-line>. Reused by: <examples if known>.
- For custom data, subclass: <base class path confirmed live>.
## Reference example(s) — one instantiation of the above axes
- <absolute path> — uses model=<family>, datapipe=<name>, strategy=<single-GPU|DDP|FSDP|...>.
Why it matches: <one line>.
## Supporting docs
- <absolute path> — <one-line scope>
## Suggested reading order
1. <models/<family>/__init__.py> — survey alternative families
2. <datapipe __init__.py or base-class file> — understand the data axis
3. <example path> — concrete end-to-end instantiation to fork
输出规则:
- 仅使用绝对路径;每个路径都必须通过
ls -d检查。 - 每个指针都必须附上一行说明,且依据你实际读过的内容。
- 数量上限:4 个模型系列(若存在 ≥2 个,则至少列出 2 个)、3 个数据管道、2 个参考示例、2 份文档。
- 指明每个示例涵盖哪些维度(模型、数据管道、策略)。
- 如果适用的模型系列 ≥2 个,请说明:“相同数据形态也适用于其他模型系列——请参阅上方的候选列表。”
- 以建议的阅读顺序结尾。提供 2-3 个后续步骤(配置文件、训练脚本、
experimental/中的类似项目);除非用户要求,否则不要开始编写代码。
弃答格式
如果请求超出范围,请用以下结构替换菜单骨架——分为三个部分,顺序如下,不得省略:
## PhysicsNeMo does not have direct support for <user's problem class>
One sentence on why it's outside scope (e.g., "PhysicsNeMo targets physics
surrogates and forecasting; reinforcement learning for molecular design is
not in its scope").
## Where to look instead
- <sibling NVIDIA framework or external library> at <URL or repo name> — <one-line on why it fits>.
- (One or two alternatives is enough; do not invent libraries.)
## If you still want to build it in PhysicsNeMo
Confirm the closest base classes by Reading `physicsnemo/core/__init__.py` and
`physicsnemo/datapipes/__init__.py` first; then name them as subclassing
targets. This is the fallback, not the recommendation.
不要以菜单骨架开头,然后在末尾才提及“无匹配项”。不要编造外部库——如果不知道合适的替代方案,就停在前两个部分。
相关资源
references/TAXONOMY.md— 导航提示(数据形态 → 文件夹映射、决策维度、稳定性等级)。references/RECIPES.md— 针对各发现维度的具体 Glob/Grep/Read 模式。