[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RYNNP48YGP94YK4PRMC2R":3,"skill-same:01M71RYNNP48YGP94YK4PRMC2R":67},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":14,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M71RYNNP48YGP94YK4PRMC2R","k8s-log-investigation",null,"Investigate Kubernetes pod logs efficiently when logs are large. Use whenever the user mentions kubernetes, k8s, pod logs, errors, warnings, exceptions, crash loops, or asks to diagnose logs without dumping everything.","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-log-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],"investigation","log","k8s","k8s log investigation","kubernetes","diagnose","logs","playbook","investigate","user","use","crash","loops","errors","when","2026-11-10 13:02:02",false,"---\nname: k8s-log-investigation\ndescription: Investigate Kubernetes pod logs efficiently when logs are large. Use whenever the user mentions kubernetes, k8s, pod logs, errors, warnings, exceptions, crash loops, or asks to diagnose logs without dumping everything.\nmetadata:\n  author: blouargant@chapsvision.com\n  tags: \"kubernetes, logs, investigation, playbook\"\n---\n\n# Kubernetes Log Investigation\n\nUse this skill to triage pod logs with a token-efficient workflow:\nfind anchor log lines that match high-signal problem patterns first, then\nexpand around those anchors, and only\nfetch full logs as a last resort.\n\n## When to use it\n\n- The user asks to investigate Kubernetes logs.\n- Logs may be very large and expensive to retrieve in full.\n- The goal is to find actionable errors quickly.\n\n## Procedure\n\n### Phase 1: Scope and pod selection\n\n1. **Confirm scope first.** Identify cluster context, namespace, workload,\n   and time window. Ask for missing values before pulling logs.\n2. **Pick target pods.** Prefer the newest unhealthy pod(s) from the\n   workload selector. If multiple replicas fail, sample one or two first.\n3. **Start with a narrow log window.** Pull only a recent slice (for\n   example `--tail=200` and optionally `--since=10m`).\n\n### Phase 2: Anchor search\n\n4. **Search for anchors, do not dump all logs.** Treat anchors as log lines\n   matching high-signal problem patterns (case-insensitive), for example:\n   - `error|warn|warning|fatal|panic|exception|traceback`\n   - `failed|failure|timeout|timed out|refused|unavailable`\n   - `oomkilled|backoff|crashloop|segfault`\n\n### Phase 3: Anchor expansion and lifecycle correlation\n\n5. **Expand around anchors with small context.** For each interesting\n   match, expand with `grep -A 5 -B 5` (or equivalent). Keep the first\n   expansion small.\n6. **Iterate context size gradually.** If needed, increase to `-A 20 -B 20`,\n   then `-A 50 -B 50` for the same anchor. Do not jump to full logs early.\n7. **Correlate with container lifecycle.** If restart\u002Fcrash behavior is\n   present, check previous container logs (`--previous`) and compare with\n   current logs.\n\n### Phase 4: If anchors are missing\n\n8. **Widen carefully and retry anchor search.** Increase tail\u002Fsince window\n   and repeat Phase 2 before considering full logs.\n9. **Last resort only: retrieve complete logs.** Pull full logs only when\n   anchor search and progressive widening fail to produce clues.\n\n### Phase 5: Report\n\n10. **Report findings succinctly.** Provide top anchors, short surrounding\n    excerpts, likely root cause category, and the smallest next action.\n\n## Suggested command patterns\n\nUse `Bash` with `kubectl` and shell pipes, or equivalent MCP read-only log\ncalls, while preserving the same strategy.\n\n```bash\n# Current logs, narrow window\nkubectl logs -n \u003Cns> \u003Cpod> --tail=200 --since=10m\n\n# Anchor search\nkubectl logs -n \u003Cns> \u003Cpod> --tail=2000 --since=30m | \\\n  grep -Ei 'error|warn|warning|fatal|panic|exception|failed|timeout|refused|oomkilled|crashloop'\n\n# Small contextual expansion around a specific anchor term\nkubectl logs -n \u003Cns> \u003Cpod> --tail=4000 --since=1h | \\\n  grep -Ein -A 5 -B 5 'timeout|connection refused|panic'\n\n# Previous container logs for crash loops\nkubectl logs -n \u003Cns> \u003Cpod> --previous --tail=500\n```\n\n## Hard rules\n\n- Never fetch full logs first when the stream can be sampled and searched.\n- Never run destructive Kubernetes commands during log investigation.\n- Never include secrets\u002Ftokens found in logs in the final response; redact.\n- If access is denied, report the permission boundary instead of retrying\n  with guessed credentials.\n\n## Output rule\n\nAlways finish with a single line: `Result: ok | needs-attention | blocked`.\n","# Kubernetes Log Investigation\n\nUse this skill to triage pod logs with a token-efficient workflow:\nfind anchor log lines that match high-signal problem patterns first, then\nexpand around those anchors, and only\nfetch full logs as a last resort.\n\n## When to use it\n\n- The user asks to investigate Kubernetes logs.\n- Logs may be very large and expensive to retrieve in full.\n- The goal is to find actionable errors quickly.\n\n## Procedure\n\n### Phase 1: Scope and pod selection\n\n1. **Confirm scope first.** Identify cluster context, namespace, workload,\n   and time window. Ask for missing values before pulling logs.\n2. **Pick target pods.** Prefer the newest unhealthy pod(s) from the\n   workload selector. If multiple replicas fail, sample one or two first.\n3. **Start with a narrow log window.** Pull only a recent slice (for\n   example `--tail=200` and optionally `--since=10m`).\n\n### Phase 2: Anchor search\n\n4. **Search for anchors, do not dump all logs.** Treat anchors as log lines\n   matching high-signal problem patterns (case-insensitive), for example:\n   - `error|warn|warning|fatal|panic|exception|traceback`\n   - `failed|failure|timeout|timed out|refused|unavailable`\n   - `oomkilled|backoff|crashloop|segfault`\n\n### Phase 3: Anchor expansion and lifecycle correlation\n\n5. **Expand around anchors with small context.** For each interesting\n   match, expand with `grep -A 5 -B 5` (or equivalent). Keep the first\n   expansion small.\n6. **Iterate context size gradually.** If needed, increase to `-A 20 -B 20`,\n   then `-A 50 -B 50` for the same anchor. Do not jump to full logs early.\n7. **Correlate with container lifecycle.** If restart\u002Fcrash behavior is\n   present, check previous container logs (`--previous`) and compare with\n   current logs.\n\n### Phase 4: If anchors are missing\n\n8. **Widen carefully and retry anchor search.** Increase tail\u002Fsince window\n   and repeat Phase 2 before considering full logs.\n9. **Last resort only: retrieve complete logs.** Pull full logs only when\n   anchor search and progressive widening fail to produce clues.\n\n### Phase 5: Report\n\n10. **Report findings succinctly.** Provide top anchors, short surrounding\n    excerpts, likely root cause category, and the smallest next action.\n\n## Suggested command patterns\n\nUse `Bash` with `kubectl` and shell pipes, or equivalent MCP read-only log\ncalls, while preserving the same strategy.\n\n```bash\n# Current logs, narrow window\nkubectl logs -n \u003Cns> \u003Cpod> --tail=200 --since=10m\n\n# Anchor search\nkubectl logs -n \u003Cns> \u003Cpod> --tail=2000 --since=30m | \\\n  grep -Ei 'error|warn|warning|fatal|panic|exception|failed|timeout|refused|oomkilled|crashloop'\n\n# Small contextual expansion around a specific anchor term\nkubectl logs -n \u003Cns> \u003Cpod> --tail=4000 --since=1h | \\\n  grep -Ein -A 5 -B 5 'timeout|connection refused|panic'\n\n# Previous container logs for crash loops\nkubectl logs -n \u003Cns> \u003Cpod> --previous --tail=500\n```\n\n## Hard rules\n\n- Never fetch full logs first when the stream can be sampled and searched.\n- Never run destructive Kubernetes commands during log investigation.\n- Never include secrets\u002Ftokens found in logs in the final response; redact.\n- If access is denied, report the permission boundary instead of retrying\n  with guessed credentials.\n\n## Output rule\n\nAlways finish with a single line: `Result: ok | needs-attention | blocked`.\n",{"name":5,"metadata":44,"description":7},{"tags":45,"author":46},"kubernetes, logs, investigation, playbook","blouargant@chapsvision.com","develop","c9440489468f6bbafc65e9a10811428ac0ef2619","registry\u002Fskills\u002Fk8s-log-investigation","https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis","https:\u002F\u002Fgithub.com\u002Fblouargant","2026-11-10 16:30:07",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add blouargant\u002Fomnis --skill k8s-log-investigation",{"tool":59,"command":60},"bunx","bunx skills add blouargant\u002Fomnis --skill k8s-log-investigation",{"tool":62,"command":63},"pnpm","pnpm dlx skills add blouargant\u002Fomnis --skill k8s-log-investigation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fblouargant\u002Fomnis\u002Fblob\u002Fdevelop\u002Fregistry\u002Fskills\u002Fk8s-log-investigation\u002FSKILL.md",true,[],[68,94,114,141,163,194],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":77,"publishedAt":39},"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",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[78,79,80,81,82,83,84,34,85,38,86,87,88,31,89,90,91,92,33,93],"skill creator","creator","new agent","domain","for","new","define","Existing","create","update","refine","edit","a skill","new skill","add","existing skill",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":39},"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",[],[96,101,102,103,104,82,105,34,106,107,108,109,110,111,112,113,33],"infra","work","critique","audit","clarity","body","source","manifests","documents","configuration","correctness","code","source code",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":123,"publishedAt":39},"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",[120],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[124,125,126,127,128,129,130,131,82,132,133,134,135,136,34,137,38,138,139,140],"PDF","text","multi","quick","simple","parsing","pdf text extractor","layout","liteparse","plain-text","column","only","formats","pdftotext","plain","pdf parsing","file",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":149,"publishedAt":39},"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",[147,148],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":75,"categoryName":76,"taxonomyType":21,"taxonomyTypeDesc":22},[143,150,124,151,82,152,34,153,109,38,154,155,156,157,158,159,136,160,161,162],"docx","Word","document generation","document","conversion","generation","markdown","format","google","google docs","docs","html","LaTeX",{"skillNo":164,"name":132,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":180,"publishedAt":39},"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",[168,169,172,175],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":170,"categoryName":171,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":173,"categoryName":174,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":176,"categoryName":177,"taxonomyType":178,"taxonomyTypeDesc":179},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[132,181,182,183,150,184,124,185,186,187,188,189,190,135,137,109,38,191,192,193],"images","app","ocr","which","pptx","extracting","xlsx","managed","local","pipx","image","you","needs",{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":39},"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",[],[201,202,203,204,205,206,207,208,209,188,189,210,211,212,213,214,215,216,217,218],"linux","linux admin","admin","back","workstation","package manager","pacman","remove","up","systemd services","files","host","drop","preview","hand","permissions","packages","change"]