[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RYJFFRYKFX48NWGHJ9490":3,"skill-same:01M71RYJFFRYKFX48NWGHJ9490":72},{"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},"01M71RYJFFRYKFX48NWGHJ9490","k8s-investigation",null,"Gather read-only evidence about an unhealthy Kubernetes workload — the snapshot mechanics (get\u002Fdescribe\u002Flogs\u002Fevents) that back a triage. Use whenever you need to collect cited kubectl evidence for a pod\u002Fdeployment\u002Fservice before diagnosing it, without mutating the cluster.","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-investigation\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],"k8s investigation","investigation","k8s","get","gather","for","read-only","you","about","cluster","mechanics","kubernetes","back","evidence","only","use","read","logs","collect","deployment","2026-11-10 13:02:02",false,"---\nname: k8s-investigation\ndescription: Gather read-only evidence about an unhealthy Kubernetes workload — the snapshot mechanics (get\u002Fdescribe\u002Flogs\u002Fevents) that back a triage. Use whenever you need to collect cited kubectl evidence for a pod\u002Fdeployment\u002Fservice before diagnosing it, without mutating the cluster.\nmetadata:\n  author: blouargant@chapsvision.com\n  tags: \"kubernetes, investigation, evidence, kubectl, read-only, playbook\"\n---\n\n# Kubernetes Investigation\n\nThis skill is the *read-only evidence-gathering* procedure that backs a\ntriage. It is the mechanics half of a K8s incident: how to snapshot a\nworkload's state efficiently and report a compact, cited brief. The\n**decision** half — classifying the failure and proposing a fix — lives in\nthe `k8s-triage` skill. This skill **never mutates the cluster**.\n\nIt assumes either:\n\n- a `kubectl` binary is reachable through the `Bash` tool, **or**\n- a Kubernetes MCP server is mounted (preferred — it gives structured\n  output and respects permissions).\n\nIf neither `kubectl` nor Kubernetes MCP is available, stop command-based\ninvestigation and ask the user for manual evidence (for example:\n`kubectl get` output, `describe pod`, recent events, and the last 200 log\nlines).\n\n## Procedure\n\n1. **Confirm the cluster context.** If the caller (leader or user) named a\n   target context, thread it as `--context=\u003Cctx>` on **every** `kubectl`\n   command below and quote it back. Otherwise run `kubectl config\n   current-context` (or the MCP equivalent) and quote that. **Never run\n   `kubectl config use-context`** — it rewrites the shared kubeconfig default\n   and disturbs other sessions; the per-command `--context=\u003Cctx>` flag is\n   read-only, needs no approval, and is scoped to this investigation.\n2. **Locate the workload.** Namespace + name + selector. Ask if unknown.\n3. **Snapshot the state.** In one batch of read-only calls (prefix each with\n   `--context=\u003Cctx>` when a target context was chosen):\n   - `kubectl get deploy\u002Fsts\u002Fds \u003Cname> -n \u003Cns> -o wide`\n   - `kubectl get pods -n \u003Cns> -l \u003Cselector> -o wide`\n   - `kubectl describe pod \u003Cpod>` (the most recent unhealthy one)\n   - `kubectl logs \u003Cpod> --previous --tail=200`\n   - relevant `kubectl get events -n \u003Cns> --sort-by=.lastTimestamp | tail`\n\n   Bound output: use `-o jsonpath`\u002F`grep`, `--since`\u002F`--tail` and label\n   selectors rather than dumping whole streams.\n4. **Report a compact evidence brief, not a raw dump:** findings, the exact\n   commands run and the decisive output excerpts (pod phase, restart count,\n   container state\u002Freason, last event, probe failures, image-pull errors,\n   OOMKilled, …), your confidence, and any open questions. Quote only the\n   lines that matter. Do not classify or propose a fix — that is the\n   triage\u002Fleader step.\n\n## When logs get large\n\nIf the investigation becomes log-heavy (log output exceeds about 5,000 lines\nor ~5 MB, no clear anchors after scanning at least 2,000 recent lines, or the\nsame pod restarts 3+ times within 30 minutes), load `k8s-log-investigation`\nand follow its token-efficient anchor-first workflow.\n\n## Read boundary\n\n1. **Never mutate.** No `apply`, `delete`, `scale`, `edit`, `patch`,\n   `rollout`, `cordon`, `drain`, `replace`, or write-`exec`. If a fix needs a\n   mutation, list it under \"recommended actions\" for the caller to decide —\n   do not execute it.\n2. **Access boundaries.** If RBAC denies a read, escalate — do not retry with\n   a different account.\n","# Kubernetes Investigation\n\nThis skill is the *read-only evidence-gathering* procedure that backs a\ntriage. It is the mechanics half of a K8s incident: how to snapshot a\nworkload's state efficiently and report a compact, cited brief. The\n**decision** half — classifying the failure and proposing a fix — lives in\nthe `k8s-triage` skill. This skill **never mutates the cluster**.\n\nIt assumes either:\n\n- a `kubectl` binary is reachable through the `Bash` tool, **or**\n- a Kubernetes MCP server is mounted (preferred — it gives structured\n  output and respects permissions).\n\nIf neither `kubectl` nor Kubernetes MCP is available, stop command-based\ninvestigation and ask the user for manual evidence (for example:\n`kubectl get` output, `describe pod`, recent events, and the last 200 log\nlines).\n\n## Procedure\n\n1. **Confirm the cluster context.** If the caller (leader or user) named a\n   target context, thread it as `--context=\u003Cctx>` on **every** `kubectl`\n   command below and quote it back. Otherwise run `kubectl config\n   current-context` (or the MCP equivalent) and quote that. **Never run\n   `kubectl config use-context`** — it rewrites the shared kubeconfig default\n   and disturbs other sessions; the per-command `--context=\u003Cctx>` flag is\n   read-only, needs no approval, and is scoped to this investigation.\n2. **Locate the workload.** Namespace + name + selector. Ask if unknown.\n3. **Snapshot the state.** In one batch of read-only calls (prefix each with\n   `--context=\u003Cctx>` when a target context was chosen):\n   - `kubectl get deploy\u002Fsts\u002Fds \u003Cname> -n \u003Cns> -o wide`\n   - `kubectl get pods -n \u003Cns> -l \u003Cselector> -o wide`\n   - `kubectl describe pod \u003Cpod>` (the most recent unhealthy one)\n   - `kubectl logs \u003Cpod> --previous --tail=200`\n   - relevant `kubectl get events -n \u003Cns> --sort-by=.lastTimestamp | tail`\n\n   Bound output: use `-o jsonpath`\u002F`grep`, `--since`\u002F`--tail` and label\n   selectors rather than dumping whole streams.\n4. **Report a compact evidence brief, not a raw dump:** findings, the exact\n   commands run and the decisive output excerpts (pod phase, restart count,\n   container state\u002Freason, last event, probe failures, image-pull errors,\n   OOMKilled, …), your confidence, and any open questions. Quote only the\n   lines that matter. Do not classify or propose a fix — that is the\n   triage\u002Fleader step.\n\n## When logs get large\n\nIf the investigation becomes log-heavy (log output exceeds about 5,000 lines\nor ~5 MB, no clear anchors after scanning at least 2,000 recent lines, or the\nsame pod restarts 3+ times within 30 minutes), load `k8s-log-investigation`\nand follow its token-efficient anchor-first workflow.\n\n## Read boundary\n\n1. **Never mutate.** No `apply`, `delete`, `scale`, `edit`, `patch`,\n   `rollout`, `cordon`, `drain`, `replace`, or write-`exec`. If a fix needs a\n   mutation, list it under \"recommended actions\" for the caller to decide —\n   do not execute it.\n2. **Access boundaries.** If RBAC denies a read, escalate — do not retry with\n   a different account.\n",{"name":5,"metadata":49,"description":7},{"tags":50,"author":51},"kubernetes, investigation, evidence, kubectl, read-only, playbook","blouargant@chapsvision.com","develop","c9440489468f6bbafc65e9a10811428ac0ef2619","registry\u002Fskills\u002Fk8s-investigation","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-investigation",{"tool":64,"command":65},"bunx","bunx skills add blouargant\u002Fomnis --skill k8s-investigation",{"tool":67,"command":68},"pnpm","pnpm dlx skills add blouargant\u002Fomnis --skill k8s-investigation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fk8s-investigation\u002FSKILL.md",true,[],[73,101,121,147,169,199],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":82,"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",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[83,84,85,86,29,87,88,39,89,90,91,92,93,94,95,96,97,98,99,100],"skill creator","creator","new agent","domain","new","define","Existing","when","create","update","refine","playbook","edit","a skill","new skill","add","user","existing skill",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"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",[],[103,108,109,110,111,29,112,39,113,114,115,116,117,118,119,120,99],"infra","work","critique","audit","clarity","body","source","manifests","documents","configuration","correctness","code","source code",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":130,"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",[127],{"categoryNo":128,"categoryName":129,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[131,132,133,134,135,136,137,138,29,139,140,141,38,142,39,143,90,144,145,146],"PDF","text","multi","quick","simple","parsing","pdf text extractor","layout","liteparse","plain-text","column","formats","pdftotext","plain","pdf parsing","file",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":155,"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",[153,154],{"categoryNo":128,"categoryName":129,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},[149,156,131,157,29,158,39,159,116,90,160,161,162,163,164,165,142,166,167,168],"docx","Word","document generation","document","conversion","generation","markdown","format","google","google docs","docs","html","LaTeX",{"skillNo":170,"name":139,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":186,"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",[174,175,178,181],{"categoryNo":128,"categoryName":129,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":176,"categoryName":177,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":179,"categoryName":180,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":182,"categoryName":183,"taxonomyType":184,"taxonomyTypeDesc":185},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[139,187,188,189,156,190,131,191,192,193,194,195,196,38,143,116,90,197,31,198],"images","app","ocr","which","pptx","extracting","xlsx","managed","local","pipx","image","needs",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":205,"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",[],[206,207,208,36,209,210,211,212,213,194,195,214,215,216,217,218,219,220,221,222],"linux","linux admin","admin","workstation","package manager","pacman","remove","up","systemd services","files","host","drop","preview","hand","permissions","packages","change"]