{
  "schemaVersion": "1.0",
  "item": {
    "slug": "web-hosting",
    "name": "Web Hosting",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/h4gen/web-hosting",
    "canonicalUrl": "https://clawhub.ai/h4gen/web-hosting",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/web-hosting",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=web-hosting",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/inspected-skills.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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/web-hosting"
    },
    "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/web-hosting",
    "agentPageUrl": "https://openagent3.xyz/skills/web-hosting/agent",
    "manifestUrl": "https://openagent3.xyz/skills/web-hosting/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/web-hosting/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": "Take a local codebase or static site and publish it to a production URL with minimal DevOps friction.\n\nPrimary outcomes:\n\nrepository created and synced,\ndeployment triggered,\nlive URL verified,\ncustom-domain path documented when requested.\n\nThis is an orchestration skill. It does not guarantee uptime/SLA by itself."
      },
      {
        "title": "Required Installed Skills",
        "body": "Core:\n\ngithub-api (inspected latest: 1.0.3)\nOne deploy path:\n\nvercel (inspected latest: 1.0.1), or\nnetlify (inspected latest: 1.0.0)\n\nOptional:\n\ndomain-dns-ops (inspected latest: 1.0.0, environment-specific)\napi-gateway (inspected latest: 1.0.29)\n\nInstall/update:\n\nnpx -y clawhub@latest install github-api\nnpx -y clawhub@latest install vercel\nnpx -y clawhub@latest install netlify\nnpx -y clawhub@latest install domain-dns-ops\nnpx -y clawhub@latest install api-gateway\nnpx -y clawhub@latest update --all\n\nVerify:\n\nnpx -y clawhub@latest list\n\nImportant name mapping:\n\nIf user says /netlifly, map it to /netlify."
      },
      {
        "title": "Required Credentials",
        "body": "Mandatory:\n\nMATON_API_KEY (required for github-api, and for api-gateway routes)\n\nProvider/CLI auth (at least one deploy path):\n\nVercel path: logged in vercel login or VERCEL_TOKEN\nNetlify path: logged in netlify login or NETLIFY_AUTH_TOKEN\n\nOptional (custom infra through api-gateway):\n\nactive app-specific OAuth connection in Maton control plane (ctrl.maton.ai)\n\nPreflight:\n\necho \"$MATON_API_KEY\" | wc -c\necho \"$VERCEL_TOKEN$NETLIFY_AUTH_TOKEN\" | wc -c\n\nMandatory behavior:\n\nNever fail silently on missing keys/tokens.\nAlways return MissingAPIKeys (or missing auth) with blocked stages.\nContinue with non-blocked stages and mark output as Partial when needed."
      },
      {
        "title": "Inputs the LM Must Collect First",
        "body": "project_path\nrepo_name\nrepo_visibility (private or public)\ndeploy_target (vercel or netlify)\nframework_hint (optional)\ncustom_domain (optional)\ndomain_provider (optional; Cloudflare/Namecheap/etc.)\ninfra_mode (frontend-static, fullstack-managed, vps-server)\n\nDo not run deployment before deploy target and visibility are explicit."
      },
      {
        "title": "github-api",
        "body": "Use for repository bootstrap and remote sync setup:\n\ncreate repository (user/org),\nconfigure visibility,\nstore remote URL metadata for subsequent push/deploy linkage.\n\nOperational constraints from inspected skill:\n\nrequires MATON_API_KEY\nuses Maton-managed OAuth connections\nmissing/invalid key leads to auth errors"
      },
      {
        "title": "vercel",
        "body": "Use for managed frontend/fullstack deploy path:\n\nlink project,\ntrigger deploy (vercel / vercel --prod),\ninspect deployment and domain status,\nmanage domain attachments when needed."
      },
      {
        "title": "netlify",
        "body": "Use as alternative managed deploy path:\n\nsite create/link/init,\nCI/CD setup from GitHub,\nmanual or prod deploy,\nenvironment variable and domain/dns capabilities."
      },
      {
        "title": "domain-dns-ops",
        "body": "Use only when environment matches its assumptions.\n\nImportant limitation from inspected skill:\n\nthis skill is documented as environment-specific (\"for Peter\", source of truth in ~/Projects/manager).\nif that source context does not exist, do not assume it is portable."
      },
      {
        "title": "api-gateway",
        "body": "Use for optional infra/API-managed operations when connected apps exist.\n\nOperational constraints from inspected skill:\n\nrequires MATON_API_KEY\nrequires active app-specific connection per target service\n400 indicates missing app connection\n401 indicates missing/invalid Maton key\n\nCapability disclosure:\n\ninspected list clearly includes Netlify and many SaaS apps.\nDigitalOcean/AWS are not explicitly listed as native app names in the inspected api-gateway skill index.\ntreat VPS/server provisioning via gateway as conditional, not guaranteed."
      },
      {
        "title": "Canonical Causal Signal Chain",
        "body": "Code Audit\n\nscan project root for framework markers:\n\npackage.json, next.config.*, vite.config.*, index.html, dist/, build/\n\n\nclassify project type (Next.js, Vite, static HTML, other)\ndetermine default build and publish path\n\nGit Inception\n\ninitialize git if needed,\ncreate remote repository via github-api,\nset origin, commit, and push branch.\n\nInfrastructure Gate\n\npresent hosting recommendation based on project type:\n\nVercel/Netlify for frontend-managed deploy,\ncustom infra path only if supported connections exist.\n\nRequired gate format:\n\nInfraGateStatus: available or blocked\nReason: missing auth / missing connection / unsupported provider\nAction: exact next step\n\nIf user asks about provider signup/offers:\n\nprovide neutral official onboarding links only.\n\nDeployment Trigger\n\nVercel path: run vercel link (if needed), then deploy (vercel --prod).\nNetlify path: create/link/init and deploy (netlify deploy --prod).\n\nStatus Monitoring\n\npoll deploy status/logs until final state:\n\nReady/success -> proceed,\nfailure -> return build error summary + remediation actions.\n\nDomain Wiring\n\nif custom domain requested:\n\nattach domain in provider (Vercel/Netlify),\noutput required DNS records,\nverify DNS propagation and HTTPS readiness.\n\nOutput\n\nreturn live URL,\nreturn domain instructions,\nreturn CI/CD update path (future pushes redeploy automatically)."
      },
      {
        "title": "Output Contract",
        "body": "Always return:\n\nProjectDetection\n\ndetected framework\nbuild/publish assumptions\n\n\n\nRepoStatus\n\nrepository URL\ndefault branch\npush status\n\n\n\nInfraGateStatus\n\nprovider selected\ngate status\nblockers and actions\n\n\n\nDeploymentStatus\n\nlive URL\ndeploy ID/reference\nfinal state (ready or failed)\n\n\n\nCustomDomainPlan\n\nrequired DNS records\nwhere to set them\nverification checklist\n\n\n\nNextActions\n\nexact command/portal steps if anything remains manual"
      },
      {
        "title": "Quality Gates",
        "body": "Before final output, verify:\n\nframework detection based on actual files (not guesswork)\nremote repo exists and push path is valid\ndeployment URL resolves and status is successful\ncustom domain records are explicit and provider-correct\nall missing credentials/connections are disclosed\n\nIf any gate fails, return Needs Revision with concrete missing dependencies or errors."
      },
      {
        "title": "Failure Handling",
        "body": "Missing MATON_API_KEY: return MissingAPIKeys, skip github-api/api-gateway stages.\nMissing Vercel/Netlify auth: return missing auth state and provide exact login/token setup steps.\nGit push rejected: keep deployment blocked, return upstream remote/auth error and retry commands.\nDeploy build failed: return build log summary and required fixes.\nMissing domain control: return live platform URL and park custom-domain steps as pending.\nUnsupported VPS provider path in gateway: disclose limitation and provide managed-hosting fallback."
      },
      {
        "title": "Guardrails",
        "body": "Never claim deployment success without a reachable URL.\nNever claim custom domain is active before DNS + HTTPS checks pass.\nNever hide provider limitations or auth blockers.\nKeep recommendations bounded to inspected, available integrations."
      }
    ],
    "body": "Purpose\n\nTake a local codebase or static site and publish it to a production URL with minimal DevOps friction.\n\nPrimary outcomes:\n\nrepository created and synced,\ndeployment triggered,\nlive URL verified,\ncustom-domain path documented when requested.\n\nThis is an orchestration skill. It does not guarantee uptime/SLA by itself.\n\nRequired Installed Skills\n\nCore:\n\ngithub-api (inspected latest: 1.0.3)\nOne deploy path:\nvercel (inspected latest: 1.0.1), or\nnetlify (inspected latest: 1.0.0)\n\nOptional:\n\ndomain-dns-ops (inspected latest: 1.0.0, environment-specific)\napi-gateway (inspected latest: 1.0.29)\n\nInstall/update:\n\nnpx -y clawhub@latest install github-api\nnpx -y clawhub@latest install vercel\nnpx -y clawhub@latest install netlify\nnpx -y clawhub@latest install domain-dns-ops\nnpx -y clawhub@latest install api-gateway\nnpx -y clawhub@latest update --all\n\n\nVerify:\n\nnpx -y clawhub@latest list\n\n\nImportant name mapping:\n\nIf user says /netlifly, map it to /netlify.\nRequired Credentials\n\nMandatory:\n\nMATON_API_KEY (required for github-api, and for api-gateway routes)\n\nProvider/CLI auth (at least one deploy path):\n\nVercel path: logged in vercel login or VERCEL_TOKEN\nNetlify path: logged in netlify login or NETLIFY_AUTH_TOKEN\n\nOptional (custom infra through api-gateway):\n\nactive app-specific OAuth connection in Maton control plane (ctrl.maton.ai)\n\nPreflight:\n\necho \"$MATON_API_KEY\" | wc -c\necho \"$VERCEL_TOKEN$NETLIFY_AUTH_TOKEN\" | wc -c\n\n\nMandatory behavior:\n\nNever fail silently on missing keys/tokens.\nAlways return MissingAPIKeys (or missing auth) with blocked stages.\nContinue with non-blocked stages and mark output as Partial when needed.\nInputs the LM Must Collect First\nproject_path\nrepo_name\nrepo_visibility (private or public)\ndeploy_target (vercel or netlify)\nframework_hint (optional)\ncustom_domain (optional)\ndomain_provider (optional; Cloudflare/Namecheap/etc.)\ninfra_mode (frontend-static, fullstack-managed, vps-server)\n\nDo not run deployment before deploy target and visibility are explicit.\n\nTool Responsibilities\ngithub-api\n\nUse for repository bootstrap and remote sync setup:\n\ncreate repository (user/org),\nconfigure visibility,\nstore remote URL metadata for subsequent push/deploy linkage.\n\nOperational constraints from inspected skill:\n\nrequires MATON_API_KEY\nuses Maton-managed OAuth connections\nmissing/invalid key leads to auth errors\nvercel\n\nUse for managed frontend/fullstack deploy path:\n\nlink project,\ntrigger deploy (vercel / vercel --prod),\ninspect deployment and domain status,\nmanage domain attachments when needed.\nnetlify\n\nUse as alternative managed deploy path:\n\nsite create/link/init,\nCI/CD setup from GitHub,\nmanual or prod deploy,\nenvironment variable and domain/dns capabilities.\ndomain-dns-ops\n\nUse only when environment matches its assumptions.\n\nImportant limitation from inspected skill:\n\nthis skill is documented as environment-specific (\"for Peter\", source of truth in ~/Projects/manager).\nif that source context does not exist, do not assume it is portable.\napi-gateway\n\nUse for optional infra/API-managed operations when connected apps exist.\n\nOperational constraints from inspected skill:\n\nrequires MATON_API_KEY\nrequires active app-specific connection per target service\n400 indicates missing app connection\n401 indicates missing/invalid Maton key\n\nCapability disclosure:\n\ninspected list clearly includes Netlify and many SaaS apps.\nDigitalOcean/AWS are not explicitly listed as native app names in the inspected api-gateway skill index.\ntreat VPS/server provisioning via gateway as conditional, not guaranteed.\nCanonical Causal Signal Chain\nCode Audit\nscan project root for framework markers:\npackage.json, next.config.*, vite.config.*, index.html, dist/, build/\nclassify project type (Next.js, Vite, static HTML, other)\ndetermine default build and publish path\nGit Inception\ninitialize git if needed,\ncreate remote repository via github-api,\nset origin, commit, and push branch.\nInfrastructure Gate\npresent hosting recommendation based on project type:\nVercel/Netlify for frontend-managed deploy,\ncustom infra path only if supported connections exist.\n\nRequired gate format:\n\nInfraGateStatus: available or blocked\nReason: missing auth / missing connection / unsupported provider\nAction: exact next step\n\nIf user asks about provider signup/offers:\n\nprovide neutral official onboarding links only.\nDeployment Trigger\nVercel path: run vercel link (if needed), then deploy (vercel --prod).\nNetlify path: create/link/init and deploy (netlify deploy --prod).\nStatus Monitoring\npoll deploy status/logs until final state:\nReady/success -> proceed,\nfailure -> return build error summary + remediation actions.\nDomain Wiring\nif custom domain requested:\nattach domain in provider (Vercel/Netlify),\noutput required DNS records,\nverify DNS propagation and HTTPS readiness.\nOutput\nreturn live URL,\nreturn domain instructions,\nreturn CI/CD update path (future pushes redeploy automatically).\nOutput Contract\n\nAlways return:\n\nProjectDetection\n\ndetected framework\nbuild/publish assumptions\n\nRepoStatus\n\nrepository URL\ndefault branch\npush status\n\nInfraGateStatus\n\nprovider selected\ngate status\nblockers and actions\n\nDeploymentStatus\n\nlive URL\ndeploy ID/reference\nfinal state (ready or failed)\n\nCustomDomainPlan\n\nrequired DNS records\nwhere to set them\nverification checklist\n\nNextActions\n\nexact command/portal steps if anything remains manual\nQuality Gates\n\nBefore final output, verify:\n\nframework detection based on actual files (not guesswork)\nremote repo exists and push path is valid\ndeployment URL resolves and status is successful\ncustom domain records are explicit and provider-correct\nall missing credentials/connections are disclosed\n\nIf any gate fails, return Needs Revision with concrete missing dependencies or errors.\n\nFailure Handling\nMissing MATON_API_KEY: return MissingAPIKeys, skip github-api/api-gateway stages.\nMissing Vercel/Netlify auth: return missing auth state and provide exact login/token setup steps.\nGit push rejected: keep deployment blocked, return upstream remote/auth error and retry commands.\nDeploy build failed: return build log summary and required fixes.\nMissing domain control: return live platform URL and park custom-domain steps as pending.\nUnsupported VPS provider path in gateway: disclose limitation and provide managed-hosting fallback.\nGuardrails\nNever claim deployment success without a reachable URL.\nNever claim custom domain is active before DNS + HTTPS checks pass.\nNever hide provider limitations or auth blockers.\nKeep recommendations bounded to inspected, available integrations."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/h4gen/web-hosting",
    "publisherUrl": "https://clawhub.ai/h4gen/web-hosting",
    "owner": "h4gen",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/web-hosting",
    "downloadUrl": "https://openagent3.xyz/downloads/web-hosting",
    "agentUrl": "https://openagent3.xyz/skills/web-hosting/agent",
    "manifestUrl": "https://openagent3.xyz/skills/web-hosting/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/web-hosting/agent.md"
  }
}