{
  "schemaVersion": "1.0",
  "item": {
    "slug": "linux-service-triage",
    "name": "Linux & service basics",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/KOwl64/linux-service-triage",
    "canonicalUrl": "https://clawhub.ai/KOwl64/linux-service-triage",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/linux-service-triage",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=linux-service-triage",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/triage-commands.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/linux-service-triage"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/linux-service-triage",
    "agentPageUrl": "https://openagent3.xyz/skills/linux-service-triage/agent",
    "manifestUrl": "https://openagent3.xyz/skills/linux-service-triage/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/linux-service-triage/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "PURPOSE",
        "body": "Diagnoses common Linux service issues using logs, systemd/PM2, file permissions, Nginx reverse proxy checks, and DNS sanity checks."
      },
      {
        "title": "WHEN TO USE",
        "body": "TRIGGERS:\n\nShow me why this service is failing using logs, then give the exact fix commands.\nRestart this app cleanly and confirm it is listening on the right port.\nFix the permissions on this folder so the service can read and write safely.\nSet up Nginx reverse proxy for this port and verify DNS and TLS are sane.\nCreate a systemd service for this script and make it survive reboots.\n\n\nDO NOT USE WHEN…\n\nYou need kernel debugging or deep performance profiling.\nYou want to exploit systems or bypass access controls."
      },
      {
        "title": "INPUTS",
        "body": "REQUIRED:\n\nService type: systemd unit name or PM2 process name.\nObserved symptom: error message, status output, or logs (pasted by user).\n\n\nOPTIONAL:\n\nNginx config snippet, domain name, expected upstream port.\nFilesystem paths used by the service.\n\n\nEXAMPLES:\n\nsystemctl status myapp output + journalctl excerpt\nNginx server block + domain + upstream port"
      },
      {
        "title": "OUTPUTS",
        "body": "Default: triage report (likely cause, evidence from logs, minimal fix plan).\nIf explicitly requested and safe: exact shell commands to apply the fix.\nSuccess = service runs, listens on expected port, and reverse proxy/DNS path is correct."
      },
      {
        "title": "WORKFLOW",
        "body": "Confirm scope and safety:\n\nidentify service name and whether changes are permitted.\n\n\nGather evidence:\n\nstatus output + recent logs (see references/triage-commands.md).\n\n\nClassify failure:\n\nconfig error, dependency missing, permission denied, port conflict, upstream unreachable, DNS mismatch.\n\n\nPropose minimal fix + verification steps.\nValidate network path (if web service):\n\napp listens → Nginx proxies → DNS resolves → (TLS sanity if applicable).\n\n\nProvide restart/reload plan and confirm health checks.\nSTOP AND ASK THE USER if:\n\nlogs/status output are missing,\nactions require privileged access not confirmed,\nTLS/cert management is required but setup is unknown."
      },
      {
        "title": "OUTPUT FORMAT",
        "body": "TRIAGE REPORT\n- Symptom:\n- Evidence (what you provided):\n- Most likely cause:\n- Fix plan (minimal steps):\n- Exact commands (ONLY if user approved changes):\n- Verification:\n- Rollback:"
      },
      {
        "title": "SAFETY & EDGE CASES",
        "body": "Read-only by default: diagnose from provided outputs; do not assume you can run commands.\nAvoid destructive changes; require explicit confirmation for anything risky.\nPrefer nginx -t before reload and verify ports with ss."
      },
      {
        "title": "EXAMPLES",
        "body": "Input: “journal shows permission denied on /var/app/uploads.”\nOutput: path permission analysis + safe chown/chmod plan + verification.\n\n\nInput: “App works locally but domain returns 502.”\nOutput: upstream port checks + nginx error log interpretation + proxy_pass fix plan."
      }
    ],
    "body": "Linux & service basics: logs, systemd/PM2, permissions, Nginx reverse proxy, DNS checks\nPURPOSE\n\nDiagnoses common Linux service issues using logs, systemd/PM2, file permissions, Nginx reverse proxy checks, and DNS sanity checks.\n\nWHEN TO USE\nTRIGGERS:\nShow me why this service is failing using logs, then give the exact fix commands.\nRestart this app cleanly and confirm it is listening on the right port.\nFix the permissions on this folder so the service can read and write safely.\nSet up Nginx reverse proxy for this port and verify DNS and TLS are sane.\nCreate a systemd service for this script and make it survive reboots.\nDO NOT USE WHEN…\nYou need kernel debugging or deep performance profiling.\nYou want to exploit systems or bypass access controls.\nINPUTS\nREQUIRED:\nService type: systemd unit name or PM2 process name.\nObserved symptom: error message, status output, or logs (pasted by user).\nOPTIONAL:\nNginx config snippet, domain name, expected upstream port.\nFilesystem paths used by the service.\nEXAMPLES:\nsystemctl status myapp output + journalctl excerpt\nNginx server block + domain + upstream port\nOUTPUTS\nDefault: triage report (likely cause, evidence from logs, minimal fix plan).\nIf explicitly requested and safe: exact shell commands to apply the fix. Success = service runs, listens on expected port, and reverse proxy/DNS path is correct.\nWORKFLOW\nConfirm scope and safety:\nidentify service name and whether changes are permitted.\nGather evidence:\nstatus output + recent logs (see references/triage-commands.md).\nClassify failure:\nconfig error, dependency missing, permission denied, port conflict, upstream unreachable, DNS mismatch.\nPropose minimal fix + verification steps.\nValidate network path (if web service):\napp listens → Nginx proxies → DNS resolves → (TLS sanity if applicable).\nProvide restart/reload plan and confirm health checks.\nSTOP AND ASK THE USER if:\nlogs/status output are missing,\nactions require privileged access not confirmed,\nTLS/cert management is required but setup is unknown.\nOUTPUT FORMAT\nTRIAGE REPORT\n- Symptom:\n- Evidence (what you provided):\n- Most likely cause:\n- Fix plan (minimal steps):\n- Exact commands (ONLY if user approved changes):\n- Verification:\n- Rollback:\n\nSAFETY & EDGE CASES\nRead-only by default: diagnose from provided outputs; do not assume you can run commands.\nAvoid destructive changes; require explicit confirmation for anything risky.\nPrefer nginx -t before reload and verify ports with ss.\nEXAMPLES\n\nInput: “journal shows permission denied on /var/app/uploads.”\nOutput: path permission analysis + safe chown/chmod plan + verification.\n\nInput: “App works locally but domain returns 502.”\nOutput: upstream port checks + nginx error log interpretation + proxy_pass fix plan."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/KOwl64/linux-service-triage",
    "publisherUrl": "https://clawhub.ai/KOwl64/linux-service-triage",
    "owner": "KOwl64",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/linux-service-triage",
    "downloadUrl": "https://openagent3.xyz/downloads/linux-service-triage",
    "agentUrl": "https://openagent3.xyz/skills/linux-service-triage/agent",
    "manifestUrl": "https://openagent3.xyz/skills/linux-service-triage/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/linux-service-triage/agent.md"
  }
}