onescience-cli skill
✓ 인증됨명령어 우선순위에 따라 실행 채널을 자동으로 선택하여 원격 SSH 또는 SLURM 환경에서 OneScience 하위 명령어를 실행합니다.
- GitHub 스타
- 24
- 파일
- 4
- 마지막 커밋
- 2026년 11월 12일
- 라이선스
- MIT
- 허용된 도구
- —
onescience-cli skill은 무엇을 하나요?
onescience-cli은(는) agent skill입니다. 명령어 우선순위에 따라 실행 채널을 자동으로 선택하여 원격 SSH 또는 SLURM 환경에서 OneScience 하위 명령어를 실행합니다.
skill의 SKILL.md에서 생성된 요약입니다.
onescience-cli skill 정보
원격 SSH 또는 SLURM 환경에서 OneScience 하위 명령어를 실행하는 것이 이 SKILL의 주요 기능입니다. OneScience CLI에서 지원하는 모든 명령어를 실행하기 위한 통합 엔트리 포인트 역할을 하며, 명령어의 우선순위 레벨에 따라 적절한 실행 채널을 자동으로 결정합니다. 시스템은 성능 최적화를 위해 작업을 lightweight, normal, 또는 compute 레벨로 분류합니다.
에이전트가 이 SKILL을 로드하면 discovery, precheck, execution의 3단계 프로세스를 따릅니다. Lightweight 명령어는 환경 조사 및 점검을 건너뛰는 패스트 트랙을 사용하며, compute 레벨 명령어는 전체 하드웨어 감지 및 compute 노드 검증 과정을 거칩니다. 환경이 준비되지 않았거나 compute 노드가 필요한 경우, 이 SKILL은 각각 onescience-installer 또는 onescience-runtime에 작업을 위임합니다. 실행 결과, 명령어 출력, 그리고 원격 디렉토리의 동기화된 로그를 로컬 환경으로 가져옵니다.
agent가 수행할 수 있는 작업
- 1원격 SSH 연결 관리SSH 설정 및 identity 파일을 사용하여 원격 호스트를 자동으로 탐색하고 연결할 수 있습니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
onescience-cli skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 onescience-cli skill 설치
/plugin marketplace add onescience-ai/OneSkills /plugin install oneskills@oneskills
Claude Code에 onescience-cli skill 설치
~/.claude/skills/onescience-cli/SKILL.md
$ npx degit onescience-ai/OneSkills/skills/onescience-cli ~/.claude/skills/onescience-cliClaude Code (project)에 onescience-cli skill 설치
.claude/skills/onescience-cli/SKILL.md
$ npx degit onescience-ai/OneSkills/skills/onescience-cli .claude/skills/onescience-cliCodex에 onescience-cli skill 설치
~/.agents/skills/onescience-cli/SKILL.md
$ npx degit onescience-ai/OneSkills/skills/onescience-cli ~/.agents/skills/onescience-cliGemini CLI에 onescience-cli skill 설치
~/.gemini/skills/onescience-cli/SKILL.md
$ npx degit onescience-ai/OneSkills/skills/onescience-cli ~/.gemini/skills/onescience-cliClaude.ai에 onescience-cli skill 설치
npx degit onescience-ai/OneSkills/skills/onescience-cli onescience-cli && zip -r onescience-cli.zip onescience-cli # claude.ai → Customize → Skills → + → Create skill → Upload a skill → onescience-cli.zip
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 보안 감사는 아닙니다. 에이전트가 실행하기 전에 스크립트를 읽어 보세요. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능onescience-ai/oneskills/skills/onescience-cli is public and reachablegithub.com/onescience-ai/oneskills/tree/HEAD/skills/onescien ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit 2026-11-12github.com/onescience-ai/oneskills/commits ↗통과
- 스크립트에 다운로드 후 실행이나 자격 증명 탈취가 없음No scripts in the skill folder통과
- SKILL.md에 숨겨진 지침 없음No override phrases, safeguard switches, credential requests or hidden charactersgithub.com/onescience-ai/oneskills/blob/HEAD/skills/onescien ↗통과
- 사전 허용 도구가 제한됨No pre-approved tools; the agent asks before using onegithub.com/onescience-ai/oneskills/blob/HEAD/skills/onescien ↗통과
- SKILL.md가 Agent Skills 형식을 따름the description does not say when to use the skillgithub.com/onescience-ai/oneskills/blob/HEAD/skills/onescien ↗결함 발견
SKILL.md
GitHub에서 보기输入获取方式
本技能支持两种输入方式:
- 上下文 handoff(默认):从调用方传入的
step_handoff获取任务信息。 - 文件 handoff(autonomous_mode):从
.onescience/handoff/step_{step_id}.yaml读取任务信息。执行后,将结果写入.onescience/handoff/step_{step_id}_result.yaml。
启动时优先检查 .onescience/handoff/ 目录是否存在对应的交接文件;若存在则使用文件模式,否则使用上下文模式。
文件交接格式参见 skills/onescience-orchestrator/references/file_handoff_contract.md。
OneScience CLI 技能
本技能根目录: 与当前 SKILL.md 同目录。资产路径均按本技能根目录解析,不按当前工作目录猜测。
需要环境检测与远程连接细则时,读取 ./references/cli_rules.md。
需要可渲染命令模板时,读取 ./references/cli_flow.md。
1. 职责与边界
本技能是在远端环境执行任意 onescience 命令的统一入口。onescience 命令需预先安装,本技能不检查或安装 onescience 工具。本技能不限制子命令范围,任何 onescience 支持的子命令均可透传执行。
负责:
- 执行
discover -> precheck(先检查计算节点 → 再检查环境)-> execute运行闭环 - 根据命令级别(lightweight/normal/compute)自动选择执行通道
- 轻量命令(help/list/info/config)走快速通道,跳过环境探测与检查
- 消费
execution_mode、access_mode、execution_channel、hardware_profile - 连接远端环境(参照
onescience-installer的主机发现与连接方式) - 环境检查:确认当前 shell 在计算节点上、环境已加载
- 调用
onescience命令执行用户请求的子命令 - 返回执行结果与状态
不负责:
- 安装或修复 OneScience 完整环境(由
onescience-installer负责) - 安装或修复
onescience工具 - 计算节点申请与 SLURM 作业提交(由
onescience-runtime负责) - 修改远端代码、配置或依赖
- 安装系统级组件或驱动
- 深度诊断训练/测试失败的业务原因
- 决定当前命令步骤之外的后续业务 executor 或全局工作流下一阶段
2. 固定阶段
| 阶段 | 触发条件 | 目标 | 关键输出 |
|---|---|---|---|
discover |
每次执行 | 命令级别判定 + 连接远端环境,收集运行目标与环境事实 | execution_mode、hardware_profile、remote_access_info、command_level |
precheck |
非 lightweight 级别 | 检查环境是否满足运行条件(先计算节点 → 再环境) | env_ready、on_compute_node、precheck_outcome |
execute |
precheck 通过或 lightweight 快速通道 | 通过 onescience 命令执行用户请求的子命令 |
onescience_command、execution_state、output |
三阶段按顺序推进,每阶段向用户实时汇报当前步骤。lightweight 级别跳过 precheck 直接进入 execute 快速通道。
precheck 发现不在计算节点时,交由 onescience-runtime 通过 sbatch 提交作业处理。precheck 发现环境未加载时,提示调用 onescience-installer。
CLI 只允许在当前命令步骤内进行这些显式委托:onescience-runtime 用于计算节点申请 / 提交 / 运行治理,onescience-installer 用于环境初始化。除这两类窄委托外,CLI 不得自行决定其他 downstream 业务技能;若后续问题超出 CLI 当前命令执行边界,必须返回 onescience-orchestrator 决策。
3. Discover 阶段
3.1 消费上游信息
优先消费:
skills/onescience-runtime/assets/execution_profiles.jsonskills/onescience-runtime/assets/backend_specs.json- 上游传递的
hardware_profile、execution_mode、access_mode
3.2 执行域判定
若上游未给出可靠 execution_mode,用 cli_flow.md 的 §0 判定当前 shell 是否已在目标环境中。
IN_CONTAINER=yes:视为local_slurm,当前 shell 即为执行目标IN_CONTAINER=no:视为remote_slurm,必须先完成主机发现
3.2a 命令级别判定
根据 cli_rules.md §0.1 规则判定当前命令级别:
| 级别 | 包含命令 |
|---|---|
lightweight |
help, --version, list, info, config show/get |
normal |
log, status, upgrade, remock, config set |
compute |
bench 及所有训练/推理/评估命令 |
lightweight→ 跳过 §1 环境探测和 §3 环境检查,走快速通道normal→ 跳过 §1 环境探测和 §2 计算节点判定,执行 §3 环境检查compute→ 执行完整三阶段
3.3 主机发现(remote_slurm)
参照 onescience-installer 的主机发现流程:
- 读取
onescience.json的runtime.remote - 读取
~/.ssh/config - 仍缺
user、host/hostname、port、identity_file中任一项时,只询问缺失项 - 多个 Host 候选时,只询问选哪一个
Host 别名优先:当 ~/.ssh/config 中存在配置完整的 Host 条目时,使用 {ssh_host_alias} 替代完整的 -p -i user@host 参数。
3.4 §1 远端环境探测(硬件探测)
仅对 compute 级别执行:lightweight 和 normal 级别跳过本节。
执行命令:
remote_slurm:执行cli_flow.md的§1local_slurm:执行cli_flow.md的§1b
探测内容:
- NVIDIA GPU 检测(
nvidia-smi) - AMD DCU 检测(
hipcc) - 工具包目录检测(
/opt/dtk-*、/opt/rocm*、/usr/local/cuda*) - 设备文件检测(
/dev/kfd) - 模块环境检测(
module avail)
实时汇报:🔄 正在执行 §1 远端环境探测...
4. Precheck 阶段
命令级别决定跳过哪些检查步骤:
| 级别 | §2 计算节点判定 | §3 环境加载检查 |
|---|---|---|
lightweight |
跳过 | 跳过(走快速通道) |
normal |
跳过 | 执行 |
compute |
执行 | 执行 |
4.1 §2 计算节点判定(第一步)
仅对 compute 级别执行。
执行命令:
remote_slurm:执行cli_flow.md的§2远端判定local_slurm:执行cli_flow.md的§2就地判定
检查内容:
SLURM_NODEID:检查是否已设置SLURM_JOB_ID:检查是否已设置SLURM_JOB_NODELIST:检查是否已设置SLURM_NTASKS:检查是否已设置SLURM_CLUSTER_NAME:检查是否已设置hostname:获取当前主机名scontrol show node:尝试获取节点信息
实时汇报:📋 正在执行 §2 计算节点判定...
不在计算节点时:调用 onescience-runtime 技能,通过 sbatch 提交作业到计算节点执行。
4.2 §3 环境加载检查(第二步)
对 normal 和 compute 级别执行。
执行命令:
remote_slurm:执行cli_flow.md的§3远端检查local_slurm:执行cli_flow.md的§3就地检查
检查内容:
- Conda 环境列表:检查
onescience311是否存在 - 当前激活环境:检查
$CONDA_DEFAULT_ENV是否为onescience311 - 已加载模块:检查
module list输出 - OneScience 包:检查
python -c "import onescience; print(onescience.__version__)"是否成功
实时汇报:📋 正在执行 §3 环境加载检查...
不满足条件时:调用 onescience-installer 技能完成环境初始化。
5. Execute 阶段
5.1 onescience 命令
命令形式为:
onescience {onescience_subcommand} {onescience_args}
其中 {onescience_subcommand} 是用户请求的子命令,{onescience_args} 是子命令后的附加参数。
5.2 模板选择
根据命令级别和执行模式选择模板:
| 级别 | remote_slurm | local_slurm |
|---|---|---|
| lightweight | §5 快速执行通道 |
§5 就地 |
| normal | §6 普通执行命令 |
§6 就地 |
| compute | §4 通用执行命令 |
§7 通用执行命令 |
快速通道(lightweight)特点:
- 跳过环境探测、计算节点判定、环境加载检查
- 直接执行 onescience 命令
- 无需设置 WORLD_SIZE/MASTER_ADDR/MASTER_PORT 等环境变量
- 无需切换工作目录
普通通道(normal)特点:
- 跳过环境探测和计算节点判定
- 已确认环境就绪,直接执行
计算通道(compute)特点:
- 完整三阶段流程
- 需要确认在计算节点上
- 需要设置完整的训练环境变量
5.3 执行方式
remote_slurm:通过 SSH 在远端执行onescience命令- lightweight:直接在远端执行(登录节点即可)
- normal:直接在远端执行(登录节点即可)
- compute:需在计算节点上执行;不在时通过
onescience-runtime的 sbatch 提交作业
local_slurm:在当前计算节点上直接执行onescience命令
5.4 日志与输出管理
日志路径:
- 远端日志目录:
{remote_work_dir}/.onescience/cli_logs - 远端输出目录:
{remote_work_dir}/.onescience/output
日志同步:
remote_slurm:执行完成后通过scp同步日志到本地.onescience/cli_logs/local_slurm:直接复制到本地.onescience/cli_logs/
输出展示:
- 执行日志路径(远端 + 本地)
- 输出文件列表
- 关键指标(如训练 loss、准确率等)
6. 用户交互
只在以下情况询问用户:
- 主机发现后仍缺 SSH 四元组中的字段
- 多个 Host 候选需要择一
- 不在计算节点上(compute 级别),建议交由
onescience-runtime通过 sbatch 提交作业 - 环境未加载(env_not_ready),建议调用
onescience-installer
7. 最终输出
每次阶段汇报或执行完成时,直接向用户展示以下内容,无需用户再次询问:
快速通道输出(lightweight 级别)
🚀 快速通道:跳过环境探测与检查,直接执行
📋 目标主机:{hostname}
📋 命令级别:lightweight
🚀 execute:正在执行 onescience {onescience_subcommand} {onescience_args}...
📊 输出结果:
{output}
📊 执行状态:{execution_state}
📊 退出码:{exit_code}
标准通道输出(normal / compute 级别)
🔄 discover:正在连接远端环境...
📋 目标主机:{hostname}
📋 硬件类型:{required_backend_id}
📋 执行模式:{execution_mode}
🔄 precheck:正在检查环境...
📋 计算节点状态:{on_compute_node}
📋 环境加载状态:{env_ready}
🚀 execute:正在执行 onescience {onescience_subcommand} {onescience_args}...
📊 输出结果:
{output}
📊 执行状态:{execution_state}
📊 退出码:{exit_code}
📂 日志路径:{log_path}
失败时输出错误诊断
❌ 执行失败
📋 错误类型:{error_category}
📋 错误信息:{error_message}
📋 建议:{suggested_action}
📊 退出码:{exit_code}
错误类型说明
| 错误类型 | 说明 |
|---|---|
command_not_found |
onescience 命令未找到 |
permission_denied |
权限不足 |
missing_config |
配置文件缺失 |
missing_data |
数据文件缺失 |
out_of_memory |
内存不足 |
network_error |
网络错误 |
cli_error |
onescience 命令执行错误 |
ssh_failure |
SSH 连接失败 |
8. 跨技能调用与验证
8.1 调用 onescience-installer 后的验证
验证流程:
- 等待
onescience-installer返回verify_state=verified - 重新执行 §3 环境加载检查
- 确认
env_ready=true后才进入 execute - 若仍为
false,输出:❌ 环境安装失败 📋 建议:手动检查环境或联系管理员
8.2 调用 onescience-runtime 后的状态跟踪
状态跟踪流程:
- 调用 runtime 提交 sbatch 作业
- 消费 runtime 返回的提交状态、日志引用与执行结果
- 若 runtime 返回的是继续等待 / 恢复当前命令步骤所需的信息,则在 CLI 当前命令上下文内继续完成展示
- 若 runtime 返回的阻断或下一动作已超出 CLI 当前命令边界,则返回
onescience-orchestrator决策
CLI 不应在 runtime 已接管提交 / 状态 / 日志治理后,再自行扩展为 runtime 管理器(例如直接轮询 squeue 代替 runtime 的状态治理职责)。
9. 参考文件
| 文件 | 用途 |
|---|---|
./references/cli_flow.md |
可渲染命令模板(§0–§7) |
./references/cli_rules.md |
discover / precheck / execute 细则,含命令分级、快速通道和 Host Key 容错 |
skills/onescience-installer/SKILL.md |
环境初始化委托给 onescience-installer 技能处理 |
skills/onescience-runtime/SKILL.md |
计算节点申请与作业提交委托给 onescience-runtime 技能处理 |
이 스킬의 파일
4onescience-cli skill 질문
Claude Code에 onescience-cli skill을 어떻게 설치하나요?
npx degit onescience-ai/OneSkills/skills/onescience-cli ~/.claude/skills/onescience-cli를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
onescience-cli skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
onescience-cli SKILL의 역할은 무엇인가요?
명령어 레벨 결정 및 원격 실행 채널 선택을 포함하여 OneScience 명령어의 스케줄링과 실행을 담당합니다.
명령어 레벨에 따라 어떻게 처리하나요?
명령어를 lightweight, normal, compute 레벨로 분류하여 환경 감지 및 사전 점검(precheck) 단계를 건너뛸지 여부를 결정합니다.
환경이 제대로 로드되지 않으면 어떻게 되나요?
환경 초기화를 완료하기 위해 onescience-installer SKILL을 호출하도록 안내합니다.
명령어를 compute 노드에서 실행해야 하는데 현재 login 노드에 있다면 어떻게 되나요?
sbatch를 통해 작업을 제출할 수 있도록 onescience-runtime SKILL에 작업을 위임합니다.