[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DKZY2SWS79FDFB8418NXV9":3,"skill-same:01M6DKZY2SWS79FDFB8418NXV9":138},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":14,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6DKZY2SWS79FDFB8418NXV9","ibrobot-inference-verify",null,"Unified inference runtime verification on host and board. Use when users mention \"inference verification\", \"推理验证\", \"mock test\", \"ROS mock\", \"perception test\", \"policy test\", \"ACT test\", \"RAM++ test\", \"SAM2 test\", \"SigLIP2 test\", \"OM test\", \"Torch NPU test\", \"板端验证\", \"本机验证\", \"use_sim true\", \"platform mock\", \"model_service test\", \"typed service test\", or need to verify that the unified inference runtime (ModelRuntimeHandle, ModelSession, RuntimeAssembly) works end-to-end through the ROS pipeline. Covers host CPU\u002FCUDA Torch policy and perception models, board Ascend OM models, and board Torch NPU.","wuxiaoqiang12\u002FRoboFrame","wuxiaoqiang12","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F39110174?v=4","01M6DKVJQ1FKB4X6YN4DH555Z6","XiaoqiangWu","01M6DKVK48AX7WXAH6A08FHW8X",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"inference","ibrobot inference verify","verify","robot","policy","host","v3","end","tests","platform","runtime","local","manifest","default","use","pi","ask","model","access","pipeline","2026-11-10 10:12:30",false,"---\nname: ibrobot-inference-verify\ndescription: >-\n  Unified inference runtime verification on host and board. Use when users mention\n  \"inference verification\", \"推理验证\", \"mock test\", \"ROS mock\", \"perception test\",\n  \"policy test\", \"ACT test\", \"RAM++ test\", \"SAM2 test\", \"SigLIP2 test\", \"OM test\",\n  \"Torch NPU test\", \"板端验证\", \"本机验证\", \"use_sim true\", \"platform mock\",\n  \"model_service test\", \"typed service test\", or need to verify that the unified\n  inference runtime (ModelRuntimeHandle, ModelSession, RuntimeAssembly) works\n  end-to-end through the ROS pipeline. Covers host CPU\u002FCUDA Torch policy and\n  perception models, board Ascend OM models, and board Torch NPU.\nlicense: Apache-2.0\ncompatibility: >-\n  Requires IB_Robot workspace with .shrc_local, ROS 2 Humble overlay, LeRobot\n  patch stack applied, and model bundles under models\u002F. Board tests require SSH\n  access to an Ascend board: default ssh OPi_20T (Ascend 310B); when it is\n  unreachable, ask the user for the access method of their 310B (Orange Pi) or\n  310P (AI Station) board and the IB_Robot path on it. Perception ROS service\n  tests require model bundles with v3 manifest and adapter.json containing\n  interface\u002Fmodel_type fields.\n---\n\n# IB-Robot Inference Runtime Verification\n\nEnd-to-end verification of the unified inference runtime through the ROS pipeline\non both host (CPU\u002FCUDA Torch) and board (Ascend 310B OM, Torch NPU).\n\n## When to Use\n\n- After native runtime or inference_service code changes that affect\n  `ModelSession`, `ModelRuntimeHandle`, `RuntimeAssembly`, `SessionBuilderRegistry`,\n  or the policy\u002Fperception pipeline.\n- Before merging a PR that touches `inference_service`, `perception_service`,\n  `voice_tts_service`, `voice_asr_service`, or `manipulation_service`.\n- When a user asks to \"验证推理\", \"test inference\", \"跑一下 mock\", or\n  \"board inference test\".\n- After LeRobot patch stack changes that affect policy loading or preprocessing.\n\n## Hard Constraints\n\n- Always `source .shrc_local` before any command (same as `ibrobot-env`).\n- Use a **fresh `ROS_DOMAIN_ID`** per run (e.g., 93–99) to avoid stale DDS\n  action-server discovery from previous launches.\n- Never commit files under `models\u002F` — that directory is `.gitignore`-d.\n- Commit only `src\u002F` changes; use `git add \u003Cspecific-paths>`, never `git add .`.\n- Board operations go through `ibrobot-launch`; SSH via `ssh OPi_20T`\n  by default. If unreachable, resolve access via \"Board Access Resolution\".\n\n## Board Access Resolution\n\nBoard tiers (5–7) run on an Ascend NPU development board. Resolve the board\ntarget in this order:\n\n1. **Default**: probe the preset target once with\n   `ssh -o ConnectTimeout=5 OPi_20T true` (Ascend 310B, openEuler Embedded\n   aarch64). Treat timeout, name resolution failure, or connection refusal as\n   unreachable.\n2. **Fallback**: when `OPi_20T` is unreachable, use the **ask-user tool**\n   (interactive question prompt) to request two things from the user:\n   - how to access their Ascend board — either a 310B board\n     (Orange Pi \u002F 香橙派) or a 310P board (AI Station) — e.g. an SSH alias,\n     a host\u002FIP with port and username, or a ready-to-use login command;\n   - the absolute path of the IB_Robot workspace on that board.\n3. Substitute the answers for `ssh OPi_20T` and `\u002FIB_Robot` in every board\n   command below. Never guess hosts, ports, credentials, or board paths;\n   probe a user-provided alias once before running verification commands on it.\n\n## Verification Matrix\n\n| Tier | Scope | Method | Platform |\n|------|-------|--------|----------|\n| 1 | Unit & contract tests | `pytest` | Host |\n| 2 | ROS overlay build | `.\u002Fscripts\u002Fbuild.sh --clean` | Host |\n| 3 | Policy ROS mock (ACT) | `ros2 launch ... use_sim:=true platform:=mock` | Host CPU |\n| 4 | Perception ROS typed service | `ros2 launch` + `ros2 service call` | Host CPU |\n| 5 | Board OM script | Python script via SSH | OPi_20T 310B |\n| 6 | Board OM ROS mock | `ros2 launch` on board | OPi_20T 310B |\n| 7 | Board Torch NPU (optional) | Python script via SSH | OPi_20T 310B NPU |\n\nNot every PR needs all tiers. Use the table below to pick tiers.\n\n## Tier Selection Guide\n\n| Changed code | Required tiers |\n|--------------|----------------|\n| `model_sessions\u002F`, `unified_runtime\u002F`, `pipeline\u002F` | 1, 2, 3 |\n| `perception_service\u002F`, `model_service_plugins.py` | 1, 2, 4 |\n| `voice_tts_service\u002F`, `voice_asr_service\u002F` | 1, 2, 4b |\n| `manipulation_service\u002F` | 1, 2 |\n| `backends\u002F`, `runtime_composition.py` | 1, 2, 3 |\n| LeRobot patch stack | 1, 3, 5 |\n| Any `inference_service` change | 1, 2, 3, 5 |\n\n## Core Workflow\n\n1. **Tier 1 — Unit tests**: `pytest -q src\u002Finference_service\u002Ftests`\n2. **Tier 2 — Build**: `.\u002Fscripts\u002Fbuild.sh --clean` (never raw `colcon build`)\n3. **Tier 3 — Policy mock**: generate YAML with\n   `scripts\u002Fgenerate_verify_yaml.py policy`, launch with\n   `scripts\u002Frun_policy_mock.sh` (zsh), check `RESULT=PASS`\n   (`action_dispatcher` reports `First inference received`)\n4. **Tier 4 — Perception service**: generate YAML with\n   `scripts\u002Fgenerate_verify_yaml.py perception`, launch + call each typed\n   service via `scripts\u002Frun_perception_services.sh` (launch and calls must\n   stay in one shell invocation)\n4b. **Tier 4b — Speech models**: fullsubnet via\n   `scripts\u002Frun_fullsubnet.sh` (streaming pipeline, topic-based evidence) +\n   `scripts\u002Fbench_fullsubnet.py`; zipvoice via `scripts\u002Frun_zipvoice.sh`\n   (typed service). See `references\u002Fhost.md` Tier 4b for prerequisites.\n5. **Tier 5 — Board OM**: SSH to the resolved board target (default `OPi_20T`,\n   see \"Board Access Resolution\"), run OM script per model\n6. **Tier 6 — Board ROS mock**: Launch ROS mock on board, call typed services\n\n## Skill Scripts\n\n| Script | Purpose |\n|--------|---------|\n| `scripts\u002Fgenerate_verify_yaml.py` | Generate mock YAML for policy \u002F perception tiers; auto-resolves the deployment key from each bundle manifest (`--device cpu\\|cuda`) |\n| `scripts\u002Frun_policy_mock.sh` | zsh: launch policy mock, poll for `First inference received`, tear down; prints `RESULT=PASS\u002FTIMEOUT\u002FFAIL` |\n| `scripts\u002Frun_perception_services.sh` | zsh: launch perception mock, wait for all endpoints, run the caller, tear down |\n| `scripts\u002Fcall_perception_services.py` | Call siglip2 \u002F ram_plus \u002F sam2 typed services with a synthetic image (handles stamp matching and response layouts) |\n| `scripts\u002Fmake_speech_wav.py` | Build a real-speech 6ch 16k wav (LibriSpeech via HF hub + Silero pre-scoring; synthetic audio fails VAD) |\n| `scripts\u002Frun_fullsubnet.sh` | zsh: speech_direction wav-replay run (cpu\u002Fcuda config generated inline); pass = degraded=False + direction messages |\n| `scripts\u002Fbench_fullsubnet.py` | Per-hop fb\u002Fsb latency for the stateful torch executor (node timing logs are suppressed) |\n| `scripts\u002Frun_zipvoice.sh` | zsh: typed `\u002Fvoice_tts\u002Fsynthesize` run; cuda mode flips providers (restored on exit) + mounts torch CUDA libs + nvidia-smi proof |\n| `scripts\u002Fcall_tts.py` | SynthesizeSpeech caller with segment details |\n| `scripts\u002Frun_board_tier6.sh` | POSIX sh: board ROS mock orchestration (launch + typed service calls + teardown) |\n\nHarness rules: run shell scripts with **zsh** (bash + `set -u` breaks\n`.shrc_local` sourcing) and keep launch + verification in one shell\ninvocation. Detail: `references\u002Fhost.md` and\n`references\u002Ftroubleshooting.md`.\n\n## Internal References\n\n| Purpose | Reference |\n|---------|-----------|\n| Host verification commands (tiers 1–4): pytest, build, mock YAML, service call scripts | `references\u002Fhost.md` |\n| Board verification commands (tiers 5–6): SSH, OM scripts, board ROS mock | `references\u002Fboard.md` |\n| Pass\u002Ffail criteria, known issues, troubleshooting (DDS stale, adapter.json, batch dim, harness pitfalls) | `references\u002Ftroubleshooting.md` |\n","# IB-Robot Inference Runtime Verification\n\nEnd-to-end verification of the unified inference runtime through the ROS pipeline\non both host (CPU\u002FCUDA Torch) and board (Ascend 310B OM, Torch NPU).\n\n## When to Use\n\n- After native runtime or inference_service code changes that affect\n  `ModelSession`, `ModelRuntimeHandle`, `RuntimeAssembly`, `SessionBuilderRegistry`,\n  or the policy\u002Fperception pipeline.\n- Before merging a PR that touches `inference_service`, `perception_service`,\n  `voice_tts_service`, `voice_asr_service`, or `manipulation_service`.\n- When a user asks to \"验证推理\", \"test inference\", \"跑一下 mock\", or\n  \"board inference test\".\n- After LeRobot patch stack changes that affect policy loading or preprocessing.\n\n## Hard Constraints\n\n- Always `source .shrc_local` before any command (same as `ibrobot-env`).\n- Use a **fresh `ROS_DOMAIN_ID`** per run (e.g., 93–99) to avoid stale DDS\n  action-server discovery from previous launches.\n- Never commit files under `models\u002F` — that directory is `.gitignore`-d.\n- Commit only `src\u002F` changes; use `git add \u003Cspecific-paths>`, never `git add .`.\n- Board operations go through `ibrobot-launch`; SSH via `ssh OPi_20T`\n  by default. If unreachable, resolve access via \"Board Access Resolution\".\n\n## Board Access Resolution\n\nBoard tiers (5–7) run on an Ascend NPU development board. Resolve the board\ntarget in this order:\n\n1. **Default**: probe the preset target once with\n   `ssh -o ConnectTimeout=5 OPi_20T true` (Ascend 310B, openEuler Embedded\n   aarch64). Treat timeout, name resolution failure, or connection refusal as\n   unreachable.\n2. **Fallback**: when `OPi_20T` is unreachable, use the **ask-user tool**\n   (interactive question prompt) to request two things from the user:\n   - how to access their Ascend board — either a 310B board\n     (Orange Pi \u002F 香橙派) or a 310P board (AI Station) — e.g. an SSH alias,\n     a host\u002FIP with port and username, or a ready-to-use login command;\n   - the absolute path of the IB_Robot workspace on that board.\n3. Substitute the answers for `ssh OPi_20T` and `\u002FIB_Robot` in every board\n   command below. Never guess hosts, ports, credentials, or board paths;\n   probe a user-provided alias once before running verification commands on it.\n\n## Verification Matrix\n\n| Tier | Scope | Method | Platform |\n|------|-------|--------|----------|\n| 1 | Unit & contract tests | `pytest` | Host |\n| 2 | ROS overlay build | `.\u002Fscripts\u002Fbuild.sh --clean` | Host |\n| 3 | Policy ROS mock (ACT) | `ros2 launch ... use_sim:=true platform:=mock` | Host CPU |\n| 4 | Perception ROS typed service | `ros2 launch` + `ros2 service call` | Host CPU |\n| 5 | Board OM script | Python script via SSH | OPi_20T 310B |\n| 6 | Board OM ROS mock | `ros2 launch` on board | OPi_20T 310B |\n| 7 | Board Torch NPU (optional) | Python script via SSH | OPi_20T 310B NPU |\n\nNot every PR needs all tiers. Use the table below to pick tiers.\n\n## Tier Selection Guide\n\n| Changed code | Required tiers |\n|--------------|----------------|\n| `model_sessions\u002F`, `unified_runtime\u002F`, `pipeline\u002F` | 1, 2, 3 |\n| `perception_service\u002F`, `model_service_plugins.py` | 1, 2, 4 |\n| `voice_tts_service\u002F`, `voice_asr_service\u002F` | 1, 2, 4b |\n| `manipulation_service\u002F` | 1, 2 |\n| `backends\u002F`, `runtime_composition.py` | 1, 2, 3 |\n| LeRobot patch stack | 1, 3, 5 |\n| Any `inference_service` change | 1, 2, 3, 5 |\n\n## Core Workflow\n\n1. **Tier 1 — Unit tests**: `pytest -q src\u002Finference_service\u002Ftests`\n2. **Tier 2 — Build**: `.\u002Fscripts\u002Fbuild.sh --clean` (never raw `colcon build`)\n3. **Tier 3 — Policy mock**: generate YAML with\n   `scripts\u002Fgenerate_verify_yaml.py policy`, launch with\n   `scripts\u002Frun_policy_mock.sh` (zsh), check `RESULT=PASS`\n   (`action_dispatcher` reports `First inference received`)\n4. **Tier 4 — Perception service**: generate YAML with\n   `scripts\u002Fgenerate_verify_yaml.py perception`, launch + call each typed\n   service via `scripts\u002Frun_perception_services.sh` (launch and calls must\n   stay in one shell invocation)\n4b. **Tier 4b — Speech models**: fullsubnet via\n   `scripts\u002Frun_fullsubnet.sh` (streaming pipeline, topic-based evidence) +\n   `scripts\u002Fbench_fullsubnet.py`; zipvoice via `scripts\u002Frun_zipvoice.sh`\n   (typed service). See `references\u002Fhost.md` Tier 4b for prerequisites.\n5. **Tier 5 — Board OM**: SSH to the resolved board target (default `OPi_20T`,\n   see \"Board Access Resolution\"), run OM script per model\n6. **Tier 6 — Board ROS mock**: Launch ROS mock on board, call typed services\n\n## Skill Scripts\n\n| Script | Purpose |\n|--------|---------|\n| `scripts\u002Fgenerate_verify_yaml.py` | Generate mock YAML for policy \u002F perception tiers; auto-resolves the deployment key from each bundle manifest (`--device cpu\\|cuda`) |\n| `scripts\u002Frun_policy_mock.sh` | zsh: launch policy mock, poll for `First inference received`, tear down; prints `RESULT=PASS\u002FTIMEOUT\u002FFAIL` |\n| `scripts\u002Frun_perception_services.sh` | zsh: launch perception mock, wait for all endpoints, run the caller, tear down |\n| `scripts\u002Fcall_perception_services.py` | Call siglip2 \u002F ram_plus \u002F sam2 typed services with a synthetic image (handles stamp matching and response layouts) |\n| `scripts\u002Fmake_speech_wav.py` | Build a real-speech 6ch 16k wav (LibriSpeech via HF hub + Silero pre-scoring; synthetic audio fails VAD) |\n| `scripts\u002Frun_fullsubnet.sh` | zsh: speech_direction wav-replay run (cpu\u002Fcuda config generated inline); pass = degraded=False + direction messages |\n| `scripts\u002Fbench_fullsubnet.py` | Per-hop fb\u002Fsb latency for the stateful torch executor (node timing logs are suppressed) |\n| `scripts\u002Frun_zipvoice.sh` | zsh: typed `\u002Fvoice_tts\u002Fsynthesize` run; cuda mode flips providers (restored on exit) + mounts torch CUDA libs + nvidia-smi proof |\n| `scripts\u002Fcall_tts.py` | SynthesizeSpeech caller with segment details |\n| `scripts\u002Frun_board_tier6.sh` | POSIX sh: board ROS mock orchestration (launch + typed service calls + teardown) |\n\nHarness rules: run shell scripts with **zsh** (bash + `set -u` breaks\n`.shrc_local` sourcing) and keep launch + verification in one shell\ninvocation. Detail: `references\u002Fhost.md` and\n`references\u002Ftroubleshooting.md`.\n\n## Internal References\n\n| Purpose | Reference |\n|---------|-----------|\n| Host verification commands (tiers 1–4): pytest, build, mock YAML, service call scripts | `references\u002Fhost.md` |\n| Board verification commands (tiers 5–6): SSH, OM scripts, board ROS mock | `references\u002Fboard.md` |\n| Pass\u002Ffail criteria, known issues, troubleshooting (DDS stale, adapter.json, batch dim, harness pitfalls) | `references\u002Ftroubleshooting.md` |\n",{"name":5,"license":15,"description":7,"compatibility":44},"Requires IB_Robot workspace with .shrc_local, ROS 2 Humble overlay, LeRobot patch stack applied, and model bundles under models\u002F. Board tests require SSH access to an Ascend board: default ssh OPi_20T (Ascend 310B); when it is unreachable, ask the user for the access method of their 310B (Orange Pi) or 310P (AI Station) board and the IB_Robot path on it. Perception ROS service tests require model bundles with v3 manifest and adapter.json containing interface\u002Fmodel_type fields.","master","acea31b54732d4bf7769f0cb5a285874cf5cd5b6",".agents\u002Fskills\u002Fibrobot-inference-verify","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12","Postgraduate student in HIT","2026-11-10 13:35:38",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add wuxiaoqiang12\u002FRoboFrame --skill ibrobot-inference-verify",{"tool":58,"command":59},"bunx","bunx skills add wuxiaoqiang12\u002FRoboFrame --skill ibrobot-inference-verify",{"tool":61,"command":62},"pnpm","pnpm dlx skills add wuxiaoqiang12\u002FRoboFrame --skill ibrobot-inference-verify","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002FSKILL.md",true,[66,72,76,80,86,90,94,98,102,106,110,114,118,122,126,130,134],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fboard.md","REFERENCE","参考文档",7536,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Freferences\u002Fboard.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fhost.md",7322,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Freferences\u002Fhost.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Ftroubleshooting.md",11679,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Freferences\u002Ftroubleshooting.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"run.sh","SCRIPT","脚本",3498,"https:\u002F\u002Fgithub.com\u002Fcateyephotos\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills.pre-symlink-1776435493\u002Fops-docker\u002Frun.sh",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"sanity.sh",1098,"https:\u002F\u002Fgithub.com\u002Fcateyephotos\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills.pre-symlink-1776435493\u002Fops-docker\u002Fsanity.sh",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"scripts\u002Fbench_fullsubnet.py",1616,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Fbench_fullsubnet.py",{"path":95,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Fcall_perception_services.py",4853,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Fcall_perception_services.py",{"path":99,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Fcall_tts.py",1675,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Fcall_tts.py",{"path":103,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":104,"sourceHtmlUrl":105},"scripts\u002Fgenerate_verify_yaml.py",6397,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Fgenerate_verify_yaml.py",{"path":107,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":108,"sourceHtmlUrl":109},"scripts\u002Fmake_speech_wav.py",2523,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Fmake_speech_wav.py",{"path":111,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":112,"sourceHtmlUrl":113},"scripts\u002Fprune.sh",1679,"https:\u002F\u002Fgithub.com\u002Fcateyephotos\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills.pre-symlink-1776435493\u002Fops-docker\u002Fscripts\u002Fprune.sh",{"path":115,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":116,"sourceHtmlUrl":117},"scripts\u002Fredeploy.sh",2318,"https:\u002F\u002Fgithub.com\u002Fcateyephotos\u002Fagent-skills\u002Fblob\u002Fmain\u002Fskills.pre-symlink-1776435493\u002Fops-docker\u002Fscripts\u002Fredeploy.sh",{"path":119,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":120,"sourceHtmlUrl":121},"scripts\u002Frun_board_tier6.sh",1572,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Frun_board_tier6.sh",{"path":123,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":124,"sourceHtmlUrl":125},"scripts\u002Frun_fullsubnet.sh",3145,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Frun_fullsubnet.sh",{"path":127,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":128,"sourceHtmlUrl":129},"scripts\u002Frun_perception_services.sh",1792,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Frun_perception_services.sh",{"path":131,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":132,"sourceHtmlUrl":133},"scripts\u002Frun_policy_mock.sh",1152,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Frun_policy_mock.sh",{"path":135,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":136,"sourceHtmlUrl":137},"scripts\u002Frun_zipvoice.sh",3443,"https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fibrobot-inference-verify\u002Fscripts\u002Frun_zipvoice.sh",[139,154,176,194,206,224],{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":143,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":39},"01M6DKX5BCR5T7NWBR1Q06RFCV","atomgit-review-resolution","AtomGit 评审意见处理工具。当用户需要“修复PR评审意见”、“处理review comments”、“apply fixes”、“reply to review”、“回复评论”、“resolve review discussions”、“闭环评审流程”或基于未解决评论继续推进 PR 时使用。只要目标是本仓库在 AtomGit 上的 review comments \u002F discussions，默认优先使用本 skill，而不是 GitHub 默认能力。","MIT","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fatomgit-review-resolution\u002FSKILL.md",[],[147,148,149,150,151,152,153],"atomgit review resolution","resolution","review","github","pr","resolve review","reply",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":143,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":39},"01M6DKWWGM0Z485KAHW2RE9E85","atomgit-pr","AtomGit PR 工作流工具。当用户需要在本仓库或 AtomGit 上“创建PR”、“更新PR描述”、“同步PR标题\u002F正文”、“生成PR摘要”、“create pull request”、“open merge request”、“update PR description”、“generate PR summary”或围绕 PR 管理动作工作时调用。它负责 PR 资源的创建和维护，不负责通用代码 review；只要目标是本仓库的 PR \u002F merge request 管理，默认优先使用本 skill，而不是 GitHub 默认能力。","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fatomgit-pr\u002FSKILL.md",[],[161,151,149,150,162,163,164,165,166,167,168,169,170,171,172,173,174,175],"atomgit pr","create pull request","merge","update pr","pull request","create","generate","update","pr description","pull","pr summary","open","生成","summary","update pr description",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":143,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":187,"publishedAt":39},"01M6DKWQX05R12MQBJARMWVW84","atomgit-pr-review","AtomGit PR 评审工具。当用户需要在本仓库或 AtomGit 上“代码审查”、“PR review”、“review pull request”、“审阅PR”、“帮我看看这个PR”、“检查这个PR有没有问题”、“检查Bug”、“logic check”、“获取完整review上下文”、“提交检视意见”或分析指定 PR 的改动与已有评论时使用。只要目标是本仓库的 PR review，默认优先使用本 skill，而不是 GitHub 默认 review 能力。","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fatomgit-pr-review\u002FSKILL.md",[182],{"categoryNo":183,"categoryName":184,"taxonomyType":185,"taxonomyTypeDesc":186},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[149,188,151,189,190,191,150,165,170,192,193],"atomgit pr review","pr review","logic","code review","check","review pull request",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":143,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":39},"01M6DKWHNC71RR9EEQ80H37Z05","atomgit-pr-architecture-review","AtomGit PR 架构评审工具。当用户需要“架构审查PR”、“review architecture compliance”、“检查架构规范”、“审阅PR架构”、“SSOT 合规性检查”、“契约驱动检查”或对指定 PR 做架构维度扫描并提交检视意见时调用。只要目标是本仓库的 PR 架构评审，默认优先使用本 skill，而不是 GitHub 默认 review 能力。","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fatomgit-pr-architecture-review\u002FSKILL.md",[],[201,202,151,203,149,204,150,205],"atomgit pr architecture review","architecture review","architecture","review architecture","compliance",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":143,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":39},"01M6DKWAE9R5N08DC6KW9Q0MBZ","atomgit-issue","AtomGit Issue 工作流工具。当用户需要在本仓库或 AtomGit 上“创建Issue”、“查看Issue详情”、“更新Issue”、“关闭\u002F重开Issue”、“create issue”、“fetch issue info”、“update issue”、“report bug”、“feature request”或围绕 Issue 做任何创建\u002F读取\u002F更新动作时调用。只要目标是本仓库的 Issue，默认优先使用本 skill，而不是 GitHub 默认能力。","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fatomgit-issue\u002FSKILL.md",[],[213,214,215,216,217,218,219,220,221,222,168,166,150,223],"atomgit issue","issue","report bug","fetch","info","feature request","feature","create issue","update issue","report","bug",{"skillNo":225,"name":226,"nameZh":6,"description":227,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":143,"licenseFileUrl":6,"sourceHtmlUrl":228,"categories":229,"keywords":230,"publishedAt":39},"01M6DKW3K3R9NZGM2TC30QSBNG","atomgit-collaboration","AtomGit 协作路由工具。当用户在 IB_Robot 仓库中提到“PR”、“merge request”、“Issue”、“review”、“comment”、“discussion”、“帮我看看这个 PR”、“看看 #123”、“处理一下评论”、“同步一下 AtomGit 上的协作状态”、“帮我跟进这个合并请求”等泛化协作请求，但没有明确说明是创建、更新、评审、架构审查还是修复评论时调用。此 skill 不直接执行业务动作，而是先识别用户真实意图，再路由到 atomgit-pr、atomgit-issue、atomgit-pr-review、atomgit-pr-architecture-review 或 atomgit-review-resolution。若用户未明确指定 GitHub，则默认优先按 AtomGit 协作处理。","https:\u002F\u002Fgithub.com\u002Fwuxiaoqiang12\u002FRoboFrame\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fatomgit-collaboration\u002FSKILL.md",[],[231,232,151,203,163,150,233,148,149,22,214],"collaboration","atomgit collaboration","协作"]