[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RYZC5PYJPA9F8A60RYK5F":3,"skill-same:01M71RYZC5PYJPA9F8A60RYK5F":78},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M71RYZC5PYJPA9F8A60RYK5F","k8s-triage",null,"Diagnose an unhealthy Kubernetes workload — pods crash-looping, deployments not ready, services not reachable. The triage decision playbook — confirm context, get evidence, classify the failure, propose one safe next action. Use whenever the user mentions kubernetes, k8s, kubectl, pods, deployments, namespaces, or attaches a kubectl error.","blouargant\u002Fomnis","blouargant","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5691896?v=4","01M71RWETBTYXSMT6FFC4Q7HPW","Bertrand Louargant","01M71RWEV3G47S696JYH8EA7W2",0,"MIT","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fk8s-triage\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"triage","k8s triage","k8s","next","kubernetes","one","namespaces","error","diagnosis","classify","diagnose","get","services","deployments","ready","evidence","use","decision","coordination","playbook","2026-11-10 13:02:02",false,"---\nname: k8s-triage\ndescription: Diagnose an unhealthy Kubernetes workload — pods crash-looping, deployments not ready, services not reachable. The triage decision playbook — confirm context, get evidence, classify the failure, propose one safe next action. Use whenever the user mentions kubernetes, k8s, kubectl, pods, deployments, namespaces, or attaches a kubectl error.\nmetadata:\n  author: blouargant@chapsvision.com\n  tags: \"kubernetes, triage, diagnosis, coordination, playbook\"\n---\n\n# Kubernetes Triage\n\nThis skill is the *decision playbook* for any K8s incident: confirm the\ncontext, get the evidence, classify the failure, and propose ONE safe next\naction. It is about **deciding**, not about the mechanics of gathering\nevidence — those live in the `k8s-investigation` skill.\n\n- **In a squad** you coordinate: delegate the read-only evidence gathering to\n  the **k8s_investigator** (which follows `k8s-investigation`), classify from\n  the brief it returns, and delegate any change to the **k8s_editor** and any\n  leftover sweep to the **k8s_cleaner**.\n- **Standalone** (single agent, no squad) you do it yourself: load\n  `k8s-investigation` for the read-only snapshot mechanics and run them, then\n  come back here to classify and decide.\n\n## Procedure\n\n1. **Confirm the cluster context.** Run `kubectl config current-context`\n   (or the MCP equivalent) and quote it back to the user before doing\n   anything else. If you ask the user to pick a context, thread that choice\n   as `--context=\u003Cctx>` on every command and **pass it in the task you\n   delegate** to the k8s_investigator\u002Feditor\u002Fcleaner so they reuse it — never\n   `kubectl config use-context` (it rewrites the shared kubeconfig and forces\n   a fresh approval in each sub-agent).\n2. **Locate the workload.** Ask for namespace + name if not provided.\n3. **Gather evidence (read-only).** Get a compact, cited snapshot of the\n   workload's state — deployment\u002Fpod status, the most recent unhealthy pod's\n   `describe`, its previous-container logs, and recent namespace events. In a\n   squad, delegate this to the **k8s_investigator**, name the\n   `k8s-investigation` skill and the chosen `--context=\u003Cctx>` (add\n   `k8s-log-investigation` when the failure is log-heavy). Standalone, load\n   `k8s-investigation` and run its snapshot yourself. Never conclude from\n   assumptions when a `kubectl` read can confirm.\n4. **Classify the failure** into one of:\n   - image \u002F pull\n   - scheduling (resource, taint, affinity)\n   - probe (liveness \u002F readiness)\n   - configuration (env, secret, configmap)\n   - network (service, dns, network policy)\n   - permission (RBAC, PSP \u002F PSA)\n   - application (crashes after startup)\n5. **Propose ONE next action** — never a multi-step mitigation in the\n   first message. Always a dry-run first when possible (`--dry-run=server`).\n   Delegate the change to the **k8s_editor** (which follows `k8s-modification`)\n   and any ephemeral-leftover sweep to the **k8s_cleaner** (`k8s-cleanup`).\n\n## Hard rules\n\n1. **Priority 1 (safety).** Never `kubectl delete` without explicit user\n   confirmation.\n2. **Priority 2 (production guardrails).** Never modify production\n   namespaces (`prod`, `prd`, `production`, or any context containing\n   `prod`) without an explicit user override.\n3. **Priority 3 (access boundaries).** If RBAC denies a read, escalate —\n   do not retry with a different account.\n","# Kubernetes Triage\n\nThis skill is the *decision playbook* for any K8s incident: confirm the\ncontext, get the evidence, classify the failure, and propose ONE safe next\naction. It is about **deciding**, not about the mechanics of gathering\nevidence — those live in the `k8s-investigation` skill.\n\n- **In a squad** you coordinate: delegate the read-only evidence gathering to\n  the **k8s_investigator** (which follows `k8s-investigation`), classify from\n  the brief it returns, and delegate any change to the **k8s_editor** and any\n  leftover sweep to the **k8s_cleaner**.\n- **Standalone** (single agent, no squad) you do it yourself: load\n  `k8s-investigation` for the read-only snapshot mechanics and run them, then\n  come back here to classify and decide.\n\n## Procedure\n\n1. **Confirm the cluster context.** Run `kubectl config current-context`\n   (or the MCP equivalent) and quote it back to the user before doing\n   anything else. If you ask the user to pick a context, thread that choice\n   as `--context=\u003Cctx>` on every command and **pass it in the task you\n   delegate** to the k8s_investigator\u002Feditor\u002Fcleaner so they reuse it — never\n   `kubectl config use-context` (it rewrites the shared kubeconfig and forces\n   a fresh approval in each sub-agent).\n2. **Locate the workload.** Ask for namespace + name if not provided.\n3. **Gather evidence (read-only).** Get a compact, cited snapshot of the\n   workload's state — deployment\u002Fpod status, the most recent unhealthy pod's\n   `describe`, its previous-container logs, and recent namespace events. In a\n   squad, delegate this to the **k8s_investigator**, name the\n   `k8s-investigation` skill and the chosen `--context=\u003Cctx>` (add\n   `k8s-log-investigation` when the failure is log-heavy). Standalone, load\n   `k8s-investigation` and run its snapshot yourself. Never conclude from\n   assumptions when a `kubectl` read can confirm.\n4. **Classify the failure** into one of:\n   - image \u002F pull\n   - scheduling (resource, taint, affinity)\n   - probe (liveness \u002F readiness)\n   - configuration (env, secret, configmap)\n   - network (service, dns, network policy)\n   - permission (RBAC, PSP \u002F PSA)\n   - application (crashes after startup)\n5. **Propose ONE next action** — never a multi-step mitigation in the\n   first message. Always a dry-run first when possible (`--dry-run=server`).\n   Delegate the change to the **k8s_editor** (which follows `k8s-modification`)\n   and any ephemeral-leftover sweep to the **k8s_cleaner** (`k8s-cleanup`).\n\n## Hard rules\n\n1. **Priority 1 (safety).** Never `kubectl delete` without explicit user\n   confirmation.\n2. **Priority 2 (production guardrails).** Never modify production\n   namespaces (`prod`, `prd`, `production`, or any context containing\n   `prod`) without an explicit user override.\n3. **Priority 3 (access boundaries).** If RBAC denies a read, escalate —\n   do not retry with a different account.\n",{"name":5,"metadata":49,"description":7},{"tags":50,"author":51},"kubernetes, triage, diagnosis, coordination, playbook","blouargant@chapsvision.com","develop","c9440489468f6bbafc65e9a10811428ac0ef2619","registry\u002Fskills\u002Fk8s-triage","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis","https:\u002F\u002Fgithub.com\u002Fblouargant","2026-11-10 16:30:07",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add blouargant\u002Fomnis --skill k8s-triage",{"tool":64,"command":65},"bunx","bunx skills add blouargant\u002Fomnis --skill k8s-triage",{"tool":67,"command":68},"pnpm","pnpm dlx skills add blouargant\u002Fomnis --skill k8s-triage","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fk8s-triage\u002FSKILL.md",true,[72],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"permissions.json","REFERENCE","参考文档",1213,"https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fk8s-triage\u002Fpermissions.json",[79,107,127,154,176,207],{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":88,"publishedAt":44},"01M71RZKQ64WTDCV48Z4Y071FA","skill-creator","Create or update a skill playbook (SKILL.md) for the agent. Use when the user wants to create a new skill, add a skill, define a new agent capability, update an existing skill, edit a skill, refine a skill playbook, or specialise the agent for a new domain.","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fskill-creator\u002FSKILL.md",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[89,90,91,92,93,94,95,40,96,97,98,99,100,43,101,102,103,104,105,106],"skill creator","creator","new agent","domain","for","new","define","Existing","when","create","update","refine","edit","a skill","new skill","add","user","existing skill",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":44},"01M71RZJ15NMV6FXBZD1AQF3K7","review","Review a body of work (source code, configuration, documents, infra manifests, …) for correctness, clarity, and obvious risks. Use this skill whenever the user asks for a review, audit or critique.","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Freview\u002FSKILL.md",[],[109,114,115,116,117,93,118,40,119,120,121,122,123,124,125,126,105],"infra","work","critique","audit","clarity","body","source","manifests","documents","configuration","correctness","code","source code",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":136,"publishedAt":44},"01M71RZFP8KJEANYXAH6AX68G0","pdf","Fallback PDF text extractor using pdftotext (poppler). Use ONLY when the preferred `liteparse` skill is unavailable or for a quick plain-text dump of a simple text PDF — for the best PDF parsing (scanned, multi-column, layout-heavy, or non-PDF formats) prefer the `liteparse` skill.","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fpdf\u002FSKILL.md",[133],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[137,138,139,140,141,142,143,144,93,145,146,147,148,149,40,150,97,151,152,153],"PDF","text","multi","quick","simple","parsing","pdf text extractor","layout","liteparse","plain-text","column","only","formats","pdftotext","plain","pdf parsing","file",{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":162,"publishedAt":44},"01M71RZDAHNX7JC52P5HH5XPEG","pandoc","This skill should be used when converting documents between formats (Markdown, DOCX, PDF, HTML, LaTeX, etc.) using pandoc. Use for format conversion, document generation, and preparing markdown for Google Docs or other word processors.","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fpandoc\u002FSKILL.md",[160,161],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":86,"categoryName":87,"taxonomyType":21,"taxonomyTypeDesc":22},[156,163,137,164,93,165,40,166,122,97,167,168,169,170,171,172,149,173,174,175],"docx","Word","document generation","document","conversion","generation","markdown","format","google","google docs","docs","html","LaTeX",{"skillNo":177,"name":145,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":193,"publishedAt":44},"01M71RZ7PSG17ES4CQWA6860F5","Preferred local parser for extracting text from PDFs, images, and scanned\u002Flayout-heavy documents (OCR, screenshots, complex PDFs) — far better than pdftotext. Use this FIRST for any PDF, image, or OCR text-extraction or conversion task. NOTE for Office documents (DOCX, PPTX, XLSX, ODT) — for plain text extraction prefer the `pandoc` skill, which needs no LibreOffice; only use LiteParse for Office docs when you need its layout\u002FOCR\u002Fscreenshot output. The `pdf` skill (pdftotext) is only a fallback for when LiteParse cannot be installed.","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fliteparse\u002FSKILL.md",[181,182,185,188],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":183,"categoryName":184,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":186,"categoryName":187,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":189,"categoryName":190,"taxonomyType":191,"taxonomyTypeDesc":192},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[145,194,195,196,163,197,137,198,199,200,201,202,203,148,150,122,97,204,205,206],"images","app","ocr","which","pptx","extracting","xlsx","managed","local","pipx","image","you","needs",{"skillNo":208,"name":209,"nameZh":6,"description":210,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":211,"categories":212,"keywords":213,"publishedAt":44},"01M71RZ2Y9KY94NRBV4WMH73G5","linux-admin","Safely make a change to a Linux workstation — install\u002Fremove packages, manage systemd services and timers, edit and validate configuration files, manage users\u002Fpermissions and networking. Detect the distro and package manager, determine whether the target is package-managed or hand-maintained, preview or simulate every change, back up configs before editing, and prefer the package manager and drop-in overrides so the host stays consistent and secure. Use whenever a change to the local Linux host is required (install, remove, enable, disable, start, stop, edit a config, add a user, change permissions or networking).","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Flinux-admin\u002FSKILL.md",[],[214,215,216,217,218,219,220,221,222,201,202,223,224,225,226,227,228,229,230,231],"linux","linux admin","admin","back","workstation","package manager","pacman","remove","up","systemd services","files","host","drop","preview","hand","permissions","packages","change"]