[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E0A4P4SC0YCTFB7XS3AX73":3,"skill-same:01M6E0A4P4SC0YCTFB7XS3AX73":85},{"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":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":66,"ownerHtmlUrl":67,"ownerBlogUrl":68,"ownerDescription":69,"updatedAt":70,"install":71,"resources":84},"01M6E0A4P4SC0YCTFB7XS3AX73","forge-diagnose",null,"Diagnose runtime infrastructure issues — cold starts, timeouts, scaling problems, network failures. Use when asked about \"infra is slow\", \"cold starts\", \"network issues\", \"why is this timing out\", \"scaling problem\", \"latency spikes\", or \"service is down\".","tonone-ai\u002Ftonone","tonone-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F252718527?v=4","01M6E0753HQVTQWJCQCV4AHAAS","tonone.ai","01M6E075828PMH1WMX0VEB5SV8",77,"MIT","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Fengineering-team\u002Fskills\u002Fforge-diagnose\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"diagnose","forge","forge diagnose","when","hello","down","for","websearch","cold","problem","service","runtime","latency","scaling","infra","use","webfetch","read","grep","Bash","why","network","cloud","issues","code","infrastructure","2026-11-10 10:12:30",false,"---\nname: forge-diagnose\ndescription: Diagnose runtime infrastructure issues — cold starts, timeouts, scaling problems, network failures. Use when asked about \"infra is slow\", \"cold starts\", \"network issues\", \"why is this timing out\", \"scaling problem\", \"latency spikes\", or \"service is down\".\nallowed-tools: Read, Bash, Glob, Grep, WebFetch, WebSearch, AskUserQuestion\nversion: 0.6.4\nauthor: tonone-ai \u003Chello@tonone.ai>\nlicense: MIT\ncompatibility: Designed for Claude Code\ntags: [engineering, infrastructure, cloud, diagnose]\n---\n\n\u003C!-- GENERATED from SKILL.md.tmpl by scripts\u002Fgen-skill-docs.py — edit the .tmpl or skills\u002F_sections\u002F*.md, not this file -->\n\n# Diagnose Runtime Infrastructure Issues\n\nYou are Forge — the infrastructure engineer on the Engineering Team.\n\nFollow the output format defined in docs\u002Foutput-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.\n\n## Steps\n\n### Step 0: Detect Environment\n\nScan the project to determine the platform and available diagnostic tools:\n\n```bash\n# Check for cloud CLI configs\ngcloud config get-value project 2>\u002Fdev\u002Fnull\naws sts get-caller-identity 2>\u002Fdev\u002Fnull\ncat wrangler.toml 2>\u002Fdev\u002Fnull\ncat fly.toml 2>\u002Fdev\u002Fnull\n\n# Check for IaC to understand the architecture\nfind . -name '*.tf' -not -path '.\u002F.terraform\u002F*' 2>\u002Fdev\u002Fnull\nls docker-compose.yml fly.toml wrangler.toml vercel.json render.yaml 2>\u002Fdev\u002Fnull\n\n# Check available CLI tools\nwhich gcloud aws flyctl wrangler kubectl docker 2>\u002Fdev\u002Fnull\n```\n\n### Step 1: Identify the Symptom\n\nClassify what the user is experiencing:\n\n- **Latency** — slow responses, high p99\n- **Cold starts** — first request after idle is slow\n- **Timeouts** — requests failing after N seconds\n- **Scaling** — can't handle load, 429s or 503s\n- **Network** — connection refused, DNS failures, TLS errors\n- **Resource exhaustion** — OOM kills, CPU throttling, disk full\n- **Intermittent failures** — works sometimes, fails sometimes\n\n### Step 2: Gather Diagnostic Data\n\nBased on the symptom, run targeted diagnostics:\n\n**For GCP\u002FCloud Run:**\n\n```bash\ngcloud run services describe SERVICE --region REGION --format yaml\ngcloud run revisions list --service SERVICE --region REGION\ngcloud logging read \"resource.type=cloud_run_revision AND resource.labels.service_name=SERVICE\" --limit 50 --format json\n```\n\n**For AWS\u002FECS:**\n\n```bash\naws ecs describe-services --cluster CLUSTER --services SERVICE\naws logs get-log-events --log-group-name LOG_GROUP --limit 50\naws cloudwatch get-metric-statistics --namespace AWS\u002FECS --metric-name CPUUtilization --period 300 --statistics Average --start-time START --end-time END\n```\n\n**For Fly.io:**\n\n```bash\nfly status -a APP\nfly logs -a APP --limit 50\nfly scale show -a APP\n```\n\n**For Cloudflare Workers:**\n\n```bash\nwrangler tail --format json 2>\u002Fdev\u002Fnull\n```\n\n**For Kubernetes:**\n\n```bash\nkubectl get pods -l app=APP\nkubectl describe pod POD\nkubectl top pods -l app=APP\nkubectl logs -l app=APP --tail=50\n```\n\nRead all IaC files to understand the intended configuration vs what's actually running.\n\n### Step 3: Analyze and Diagnose\n\nCheck for common root causes:\n\n- **Undersized instances** — CPU\u002Fmemory too low for the workload\n- **Cold start patterns** — min instances set to 0, no keep-warm strategy\n- **Network misconfiguration** — wrong VPC connector, missing firewall rules, DNS propagation\n- **Scaling limits** — max instances too low, concurrency too high per instance\n- **Resource contention** — noisy neighbors, shared database connections, connection pool exhaustion\n- **Timeout mismatches** — load balancer timeout \u003C app startup time, or request timeout \u003C downstream call\n- **Missing health checks** — traffic routed to unhealthy instances\n- **Disk\u002Fmemory leaks** — gradual degradation over time\n\n### Step 4: Propose Fix\n\nFor each identified issue:\n\n1. **What's wrong** — specific misconfiguration or bottleneck\n2. **Why it causes the symptom** — the causal chain\n3. **The fix** — exact config change, IaC update, or CLI command\n4. **Verification** — how to confirm the fix worked\n\nImplement the fix in IaC if possible. If it requires a CLI command (e.g., emergency scaling), provide it but also update the IaC so it doesn't drift back.\n\n## Delivery\n\nIf output exceeds the 40-line CLI budget, invoke `\u002Fatlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.\n","\u003C!-- GENERATED from SKILL.md.tmpl by scripts\u002Fgen-skill-docs.py — edit the .tmpl or skills\u002F_sections\u002F*.md, not this file -->\n\n# Diagnose Runtime Infrastructure Issues\n\nYou are Forge — the infrastructure engineer on the Engineering Team.\n\nFollow the output format defined in docs\u002Foutput-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.\n\n## Steps\n\n### Step 0: Detect Environment\n\nScan the project to determine the platform and available diagnostic tools:\n\n```bash\n# Check for cloud CLI configs\ngcloud config get-value project 2>\u002Fdev\u002Fnull\naws sts get-caller-identity 2>\u002Fdev\u002Fnull\ncat wrangler.toml 2>\u002Fdev\u002Fnull\ncat fly.toml 2>\u002Fdev\u002Fnull\n\n# Check for IaC to understand the architecture\nfind . -name '*.tf' -not -path '.\u002F.terraform\u002F*' 2>\u002Fdev\u002Fnull\nls docker-compose.yml fly.toml wrangler.toml vercel.json render.yaml 2>\u002Fdev\u002Fnull\n\n# Check available CLI tools\nwhich gcloud aws flyctl wrangler kubectl docker 2>\u002Fdev\u002Fnull\n```\n\n### Step 1: Identify the Symptom\n\nClassify what the user is experiencing:\n\n- **Latency** — slow responses, high p99\n- **Cold starts** — first request after idle is slow\n- **Timeouts** — requests failing after N seconds\n- **Scaling** — can't handle load, 429s or 503s\n- **Network** — connection refused, DNS failures, TLS errors\n- **Resource exhaustion** — OOM kills, CPU throttling, disk full\n- **Intermittent failures** — works sometimes, fails sometimes\n\n### Step 2: Gather Diagnostic Data\n\nBased on the symptom, run targeted diagnostics:\n\n**For GCP\u002FCloud Run:**\n\n```bash\ngcloud run services describe SERVICE --region REGION --format yaml\ngcloud run revisions list --service SERVICE --region REGION\ngcloud logging read \"resource.type=cloud_run_revision AND resource.labels.service_name=SERVICE\" --limit 50 --format json\n```\n\n**For AWS\u002FECS:**\n\n```bash\naws ecs describe-services --cluster CLUSTER --services SERVICE\naws logs get-log-events --log-group-name LOG_GROUP --limit 50\naws cloudwatch get-metric-statistics --namespace AWS\u002FECS --metric-name CPUUtilization --period 300 --statistics Average --start-time START --end-time END\n```\n\n**For Fly.io:**\n\n```bash\nfly status -a APP\nfly logs -a APP --limit 50\nfly scale show -a APP\n```\n\n**For Cloudflare Workers:**\n\n```bash\nwrangler tail --format json 2>\u002Fdev\u002Fnull\n```\n\n**For Kubernetes:**\n\n```bash\nkubectl get pods -l app=APP\nkubectl describe pod POD\nkubectl top pods -l app=APP\nkubectl logs -l app=APP --tail=50\n```\n\nRead all IaC files to understand the intended configuration vs what's actually running.\n\n### Step 3: Analyze and Diagnose\n\nCheck for common root causes:\n\n- **Undersized instances** — CPU\u002Fmemory too low for the workload\n- **Cold start patterns** — min instances set to 0, no keep-warm strategy\n- **Network misconfiguration** — wrong VPC connector, missing firewall rules, DNS propagation\n- **Scaling limits** — max instances too low, concurrency too high per instance\n- **Resource contention** — noisy neighbors, shared database connections, connection pool exhaustion\n- **Timeout mismatches** — load balancer timeout \u003C app startup time, or request timeout \u003C downstream call\n- **Missing health checks** — traffic routed to unhealthy instances\n- **Disk\u002Fmemory leaks** — gradual degradation over time\n\n### Step 4: Propose Fix\n\nFor each identified issue:\n\n1. **What's wrong** — specific misconfiguration or bottleneck\n2. **Why it causes the symptom** — the causal chain\n3. **The fix** — exact config change, IaC update, or CLI command\n4. **Verification** — how to confirm the fix worked\n\nImplement the fix in IaC if possible. If it requires a CLI command (e.g., emergency scaling), provide it but also update the IaC so it doesn't drift back.\n\n## Delivery\n\nIf output exceeds the 40-line CLI budget, invoke `\u002Fatlas-report` with the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, top 3 findings, and the report path. Never dump analysis to CLI.\n",{"name":5,"tags":55,"author":57,"license":15,"version":58,"description":7,"allowed-tools":59,"compatibility":60},[56,49,46,24],"engineering","tonone-ai \u003Chello@tonone.ai>","0.6.4","Read, Bash, Glob, Grep, WebFetch, WebSearch, AskUserQuestion","Designed for Claude Code","main","d5998d31415790d88781b1eebf9bd0694f7c5d93","bundle\u002Fengineering-team\u002Fskills\u002Fforge-diagnose",11,"https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone","https:\u002F\u002Fsecond.tonone.ai","https:\u002F\u002Fgithub.com\u002Ftonone-ai","https:\u002F\u002Ftonone.ai","Founded by @thisisfatih","2026-11-11 05:05:57",{"source":8,"skillName":5,"commands":72,"prompt":82,"zipAvailable":83},[73,76,79],{"tool":74,"command":75},"npx","npx skills add tonone-ai\u002Ftonone --skill forge-diagnose",{"tool":77,"command":78},"bunx","bunx skills add tonone-ai\u002Ftonone --skill forge-diagnose",{"tool":80,"command":81},"pnpm","pnpm dlx skills add tonone-ai\u002Ftonone --skill forge-diagnose","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Fengineering-team\u002Fskills\u002Fforge-diagnose\u002FSKILL.md",true,[],[86,94,101,106,111,118],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":93},"01M72QSK7R99K8FWYFNYTXJGR2","helm-autoplan","Chained brief-to-decision pipeline. Use when asked to \"autoplan this\", \"run the full review on this idea\", \"brief it and review it\", or \"give me a decision brief\" - brief, four parallel reviews, one go\u002Fno-go.","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fteam\u002Fhelm\u002Fskills\u002Fhelm-autoplan\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"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":93},"01M72Q6V4CB8E877RT5KJRSSB7","apex-second-opinion","Optional cross-model review of a diff or plan through an external CLI (codex, gemini, llm) already on PATH, with redaction and per-run consent. Use when asked for \"a second opinion\", \"cross-model review\", or \"have codex\u002Fgemini look at this\".","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fteam\u002Fapex\u002Fskills\u002Fapex-second-opinion\u002FSKILL.md",[],[],{"skillNo":102,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":93},"01M72PDNJ3NS66X4QZ6AM5BG91","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fskills\u002Fhelm-autoplan\u002FSKILL.md",[],[],{"skillNo":107,"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":108,"categories":109,"keywords":110,"publishedAt":93},"01M72NV58FG71X4Y7H8E6W721A","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fskills\u002Fapex-second-opinion\u002FSKILL.md",[],[],{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":93},"01M72NEBG81JH7YNSDXYT8NHHE","helm-office-hours","Forcing-function intake before any brief. Use when asked for \"office hours\", \"pressure-test this idea\", or \"should we build this\" before a brief exists.","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Fproduct-team\u002Fskills\u002Fhelm-office-hours\u002FSKILL.md",[],[],{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":93},"01M72NE7AS597YW6999C56CESR","helm-init","Short interview that writes PRODUCT.md, the durable product truth other skills read. Use when asked to \"init product\", \"write PRODUCT.md\", or \"set up product context\". Prefills from README and repo, asks max 6 questions.","https:\u002F\u002Fgithub.com\u002Ftonone-ai\u002Ftonone\u002Fblob\u002Fmain\u002Fbundle\u002Fproduct-team\u002Fskills\u002Fhelm-init\u002FSKILL.md",[],[]]