[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7CPAFGWR4P39PDVR7CEC4PH":3,"skill-same:01M7CPAFGWR4P39PDVR7CEC4PH":53},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M7CPAFGWR4P39PDVR7CEC4PH","dynamo-troubleshoot",null,"Diagnose failed or unhealthy Dynamo deployments. Use when pods, model-cache jobs, PVCs, workers, frontend\u002Frouter health, endpoints, or benchmark jobs fail; use recipe-runner\u002Frouter-starter before this for normal bring-up.","om-scogo\u002Fskillsh-scraper","om-scogo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160466840?v=4","01M79AWB6DFVCQ7RK70CS34B96","Om Achrekar","01M79AWB6ZM9SKR8KDH1WSSM22",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fnvidia-skills\u002Fdynamo-troubleshoot\u002Fskills\u002Fdynamo-troubleshoot\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: dynamo-troubleshoot\ndescription: Diagnose failed or unhealthy Dynamo deployments. Use when pods, model-cache jobs, PVCs, workers, frontend\u002Frouter health, endpoints, or benchmark jobs fail; use recipe-runner\u002Frouter-starter before this for normal bring-up.\nlicense: Apache-2.0\nmetadata:\n  author: Dan Gil \u003Cdagil@nvidia.com>\n  tags:\n    - dynamo\n    - kubernetes\n    - troubleshooting\n    - day-2\n---\n\n# Dynamo Troubleshoot\n\n\u003C!--\nSPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\nSPDX-License-Identifier: CC-BY-4.0\n-->\n\n## Purpose\n\nTurn a Dynamo failure into a clear problem class, strongest signal, and next\naction. Start with read-only evidence, avoid secrets, and fix one layer at a\ntime.\n\n## Prerequisites\n\n- Python 3.10+ on the operator machine.\n- `kubectl` configured with read access to the target namespace.\n- Permission to read pods, events, jobs, PVCs, and `DynamoGraphDeployment` resources (NOT secrets).\n- Network reachability to the cluster API server.\n\n## Instructions\n\n### 1. Collect A Read-Only Bundle\n\nRun:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py \\\n  --namespace \"${NAMESPACE}\"\n```\n\nIf the user names a deployment, include it:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py \\\n  --namespace \"${NAMESPACE}\" \\\n  --deployment-name \u003Cdeployment-name>\n```\n\nDo not collect Kubernetes secrets. Do not print Hugging Face tokens.\n\n### 2. Classify The Failure\n\nUse `references\u002Ffailure-decision-tree.md` and classify into one primary bucket:\n\n- cluster\u002Fplatform\n- namespace\u002Fsecret\n- model cache\u002FPVC\u002Fdownload\n- image pull\u002Fruntime image\n- GPU scheduling\u002Fresources\n- operator\u002FDynamoGraphDeployment reconciliation\n- frontend\u002Frouter\n- worker\u002Fbackend\n- endpoint\u002FAPI\n- benchmark\u002Fperf job\n\n### 3. Debug Top Down\n\nCheck in this order:\n\n1. namespace, storage class, GPU nodes, and HF secret existence\n2. PVC and model-download job\n3. `DynamoGraphDeployment` status and events\n4. pod status, `describe pod`, and container logs\n5. frontend service and port-forward\n6. `\u002Fv1\u002Fmodels`\n7. `\u002Fv1\u002Fchat\u002Fcompletions`\n8. benchmark job only after endpoint smoke test passes\n\n### 4. Fix One Layer At A Time\n\nPrefer the smallest reversible change:\n\n- create missing namespace or HF secret\n- patch `storageClassName`\n- patch image tag or image pull secret\n- reduce GPU request only if the recipe can still be valid\n- switch KV router to approximate mode only if workers do not publish events\n- restart failed jobs after fixing the underlying config\n\nAfter each fix, rerun the relevant readiness check before moving deeper.\n\n## Available Scripts\n\n| Script | Purpose | Arguments |\n|---|---|---|\n| `scripts\u002Fcollect_dynamo_debug_bundle.py` | Collect a read-only debug bundle (pods, events, jobs, PVCs, CR status) | `--namespace`, `--deployment-name`, `--output-dir` |\n\nInvoke via the agentskills.io `run_script()` protocol:\n\n```python\nrun_script(\"scripts\u002Fcollect_dynamo_debug_bundle.py\", args=[\"--namespace\", \"dynamo-demo\"])\n```\n\n## Examples\n\nCollect everything in a namespace for triage:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py --namespace dynamo-demo\n```\n\nScope to a single failing deployment:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py \\\n  --namespace dynamo-demo \\\n  --deployment-name qwen-vllm-disagg\n```\n\nEquivalent through the agent protocol:\n\n```python\nrun_script(\"scripts\u002Fcollect_dynamo_debug_bundle.py\", args=[\"--namespace\", \"dynamo-demo\", \"--deployment-name\", \"qwen-vllm-disagg\"])\n```\n\n## Output Contract\n\nReturn:\n\n- problem class\n- evidence checked\n- strongest signal\n- likely cause\n- exact next command or patch\n- what was ruled out\n- whether it is safe to continue deployment or benchmarking\n\n## Limitations\n\n- Read-only. Never mutates the cluster; remediation commands are returned, not executed.\n- Will not collect secrets or print Hugging Face tokens; some failure modes (auth) may need user-side inspection.\n- Bundle size grows with deployment size; on very large namespaces, scope with `--deployment-name`.\n- Does not validate disagg transport — use `dynamo-interconnect-check` for that.\n\n## Troubleshooting\n\n| Symptom | Likely cause | Next step |\n|---|---|---|\n| `kubectl` returns Forbidden on events\u002Fpods | Service account lacks read RBAC | Ask operator for read-only role binding on the namespace |\n| Bundle missing `DynamoGraphDeployment` status | Operator not installed or different namespace | Verify `dynamo-platform` operator is installed and watching the namespace |\n| Model-download job in `Pending` | PVC unbound or HF secret missing | Fix PVC binding or create the named HF secret, then rerun the job |\n| Worker pods `CrashLoopBackOff` | Image\u002Fruntime mismatch or GPU not available | Inspect container logs; check `nvidia.com\u002Fgpu` allocatable on nodes |\n\n## Benchmark\n\nSee `BENCHMARK.md` for the NVCARPS-EVAL performance report (auto-generated by the NVSkills CI pipeline). To refresh, re-run `\u002Fnvskills-ci` on an upstream PR touching this skill.\n\n## References\n\n- Read `references\u002Ffailure-decision-tree.md` for bucket-specific checks.\n- Use `scripts\u002Fcollect_dynamo_debug_bundle.py` for read-only bundle collection.\n","# Dynamo Troubleshoot\n\n\u003C!--\nSPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.\nSPDX-License-Identifier: CC-BY-4.0\n-->\n\n## Purpose\n\nTurn a Dynamo failure into a clear problem class, strongest signal, and next\naction. Start with read-only evidence, avoid secrets, and fix one layer at a\ntime.\n\n## Prerequisites\n\n- Python 3.10+ on the operator machine.\n- `kubectl` configured with read access to the target namespace.\n- Permission to read pods, events, jobs, PVCs, and `DynamoGraphDeployment` resources (NOT secrets).\n- Network reachability to the cluster API server.\n\n## Instructions\n\n### 1. Collect A Read-Only Bundle\n\nRun:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py \\\n  --namespace \"${NAMESPACE}\"\n```\n\nIf the user names a deployment, include it:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py \\\n  --namespace \"${NAMESPACE}\" \\\n  --deployment-name \u003Cdeployment-name>\n```\n\nDo not collect Kubernetes secrets. Do not print Hugging Face tokens.\n\n### 2. Classify The Failure\n\nUse `references\u002Ffailure-decision-tree.md` and classify into one primary bucket:\n\n- cluster\u002Fplatform\n- namespace\u002Fsecret\n- model cache\u002FPVC\u002Fdownload\n- image pull\u002Fruntime image\n- GPU scheduling\u002Fresources\n- operator\u002FDynamoGraphDeployment reconciliation\n- frontend\u002Frouter\n- worker\u002Fbackend\n- endpoint\u002FAPI\n- benchmark\u002Fperf job\n\n### 3. Debug Top Down\n\nCheck in this order:\n\n1. namespace, storage class, GPU nodes, and HF secret existence\n2. PVC and model-download job\n3. `DynamoGraphDeployment` status and events\n4. pod status, `describe pod`, and container logs\n5. frontend service and port-forward\n6. `\u002Fv1\u002Fmodels`\n7. `\u002Fv1\u002Fchat\u002Fcompletions`\n8. benchmark job only after endpoint smoke test passes\n\n### 4. Fix One Layer At A Time\n\nPrefer the smallest reversible change:\n\n- create missing namespace or HF secret\n- patch `storageClassName`\n- patch image tag or image pull secret\n- reduce GPU request only if the recipe can still be valid\n- switch KV router to approximate mode only if workers do not publish events\n- restart failed jobs after fixing the underlying config\n\nAfter each fix, rerun the relevant readiness check before moving deeper.\n\n## Available Scripts\n\n| Script | Purpose | Arguments |\n|---|---|---|\n| `scripts\u002Fcollect_dynamo_debug_bundle.py` | Collect a read-only debug bundle (pods, events, jobs, PVCs, CR status) | `--namespace`, `--deployment-name`, `--output-dir` |\n\nInvoke via the agentskills.io `run_script()` protocol:\n\n```python\nrun_script(\"scripts\u002Fcollect_dynamo_debug_bundle.py\", args=[\"--namespace\", \"dynamo-demo\"])\n```\n\n## Examples\n\nCollect everything in a namespace for triage:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py --namespace dynamo-demo\n```\n\nScope to a single failing deployment:\n\n```bash\npython3 scripts\u002Fcollect_dynamo_debug_bundle.py \\\n  --namespace dynamo-demo \\\n  --deployment-name qwen-vllm-disagg\n```\n\nEquivalent through the agent protocol:\n\n```python\nrun_script(\"scripts\u002Fcollect_dynamo_debug_bundle.py\", args=[\"--namespace\", \"dynamo-demo\", \"--deployment-name\", \"qwen-vllm-disagg\"])\n```\n\n## Output Contract\n\nReturn:\n\n- problem class\n- evidence checked\n- strongest signal\n- likely cause\n- exact next command or patch\n- what was ruled out\n- whether it is safe to continue deployment or benchmarking\n\n## Limitations\n\n- Read-only. Never mutates the cluster; remediation commands are returned, not executed.\n- Will not collect secrets or print Hugging Face tokens; some failure modes (auth) may need user-side inspection.\n- Bundle size grows with deployment size; on very large namespaces, scope with `--deployment-name`.\n- Does not validate disagg transport — use `dynamo-interconnect-check` for that.\n\n## Troubleshooting\n\n| Symptom | Likely cause | Next step |\n|---|---|---|\n| `kubectl` returns Forbidden on events\u002Fpods | Service account lacks read RBAC | Ask operator for read-only role binding on the namespace |\n| Bundle missing `DynamoGraphDeployment` status | Operator not installed or different namespace | Verify `dynamo-platform` operator is installed and watching the namespace |\n| Model-download job in `Pending` | PVC unbound or HF secret missing | Fix PVC binding or create the named HF secret, then rerun the job |\n| Worker pods `CrashLoopBackOff` | Image\u002Fruntime mismatch or GPU not available | Inspect container logs; check `nvidia.com\u002Fgpu` allocatable on nodes |\n\n## Benchmark\n\nSee `BENCHMARK.md` for the NVCARPS-EVAL performance report (auto-generated by the NVSkills CI pipeline). To refresh, re-run `\u002Fnvskills-ci` on an upstream PR touching this skill.\n\n## References\n\n- Read `references\u002Ffailure-decision-tree.md` for bucket-specific checks.\n- Use `scripts\u002Fcollect_dynamo_debug_bundle.py` for read-only bundle collection.\n",{"name":5,"license":15,"metadata":24,"description":7},{"tags":25,"author":30},[26,27,28,29],"dynamo","kubernetes","troubleshooting","day-2","Dan Gil \u003Cdagil@nvidia.com>","main","8859218955d9504cd18b59e7892100718039d3b4","data\u002Fskills\u002Fnvidia-skills\u002Fdynamo-troubleshoot\u002Fskills\u002Fdynamo-troubleshoot",1,"https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper","https:\u002F\u002Fgithub.com\u002Fom-scogo","SDE-1 @ Scogo ","2026-07-18 12:22:46",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add om-scogo\u002Fskillsh-scraper --skill dynamo-troubleshoot",{"tool":45,"command":46},"bunx","bunx skills add om-scogo\u002Fskillsh-scraper --skill dynamo-troubleshoot",{"tool":48,"command":49},"pnpm","pnpm dlx skills add om-scogo\u002Fskillsh-scraper --skill dynamo-troubleshoot","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fnvidia-skills\u002Fdynamo-troubleshoot\u002Fskills\u002Fdynamo-troubleshoot\u002FSKILL.md",true,[],[54,62,67,74,79,86],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":58,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":19},"01M7D6MC9FAAEV4CMNYX8W7JTG","arxiv-search","Search arXiv physics, math, and computer science preprints using natural language queries. Powered by Valyu semantic search.","MIT","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002Fskills\u002Farxiv-search\u002FSKILL.md",[],[],{"skillNo":63,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":58,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M7D6M85CKKN87TA98VCQV4H7","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002FSkill.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":58,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":19},"01M7D4ZTCS4DR3CE4JY06X84T2","working-with-legacy-code","Safely change and test untested codebases using Feathers' \"Working Effectively with Legacy Code\". Use when the user mentions \"legacy code\", \"no tests\", \"untested codebase\", \"how do I test this\", \"seams\", \"characterization tests\", \"golden master\", \"sprout method\", \"afraid to change this code\", \"monster method\", \"dependency breaking\", or \"inherited a messy codebase\". Also trigger when changing code without tests safely, getting a class under test when constructors, statics, or singletons block it, adding features to tangled modules, or planning incremental test coverage for an old codebase. Covers the legacy-code change algorithm, seams, characterization tests, sprout\u002Fwrap, and dependency-breaking techniques. For refactoring code that already has tests, see refactoring-patterns. For day-to-day code quality, see clean-code.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002Fworking-with-legacy-code\u002FSKILL.md",[],[],{"skillNo":75,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":58,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":19},"01M7D4ZHZKJD2RSNGAF63V14P4","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002FSkill.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":58,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":19},"01M7D4ZB4CJBFW5JE67CPH2QRV","web-typography","Select, pair, and implement typefaces for web projects. Use when the user mentions \"font pairing\", \"which typeface\", \"line height\", \"responsive typography\", \"web font loading\", \"type hierarchy\", \"variable fonts\", \"FOUT\u002FFOIT\", \"typographic scale\", or \"the text is hard to read\". Also trigger when choosing between system fonts and web fonts, optimizing font-loading performance, or designing readable long-form content. Covers readability evaluation, CSS implementation, and performance optimization. For overall UI design systems, see refactoring-ui. For dramatic typographic experiences, see top-design.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002Fweb-typography\u002FSKILL.md",[],[],{"skillNo":87,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":58,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M7D4Z4MVYVY3NMJ18BNV6WNA","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002FSkill.md",[],[]]