{
  "schemaVersion": "1.0",
  "item": {
    "slug": "yapi",
    "name": "yapi",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/leeguooooo/yapi",
    "canonicalUrl": "https://clawhub.ai/leeguooooo/yapi",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/yapi",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=yapi",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.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",
      "slug": "yapi",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T23:39:13.981Z",
      "expiresAt": "2026-05-08T23:39:13.981Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=yapi",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=yapi",
        "contentDisposition": "attachment; filename=\"yapi-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "yapi"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/yapi"
    },
    "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/yapi",
    "agentPageUrl": "https://openagent3.xyz/skills/yapi/agent",
    "manifestUrl": "https://openagent3.xyz/skills/yapi/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/yapi/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": "Command policy",
        "body": "Prefer yapi command. If missing, fallback to one-shot npx without forcing global install:\n\nyapi -h\n# fallback:\nnpx -y @leeguoo/yapi-mcp -h\n\nIn command examples below, yapi can be replaced by npx -y @leeguoo/yapi-mcp."
      },
      {
        "title": "Quick workflow",
        "body": "If user gives a YApi URL, verify it belongs to configured base_url.\nConfirm auth (yapi whoami), then run yapi login only when needed.\nResolve target by api_id / keyword / category.\nFetch raw JSON first, then summarize: method, path, headers, params, body, response schema/examples.\nFor docs sync tasks, do --dry-run first, then real sync."
      },
      {
        "title": "URL detection",
        "body": "Read configured base_url from ~/.yapi/config.toml.\n\nrg -n \"^base_url\\\\s*=\" ~/.yapi/config.toml\n\nIf URL origin matches base_url, extract IDs from path:\n\n/project/123/... -> project_id=123\n.../api/456 -> api_id=456\n.../api/cat_789 -> catid=789\n\n\nPrefer direct lookup when api_id exists:\n\nyapi --path /api/interface/get --query id=<api_id>"
      },
      {
        "title": "Common commands",
        "body": "# version/help\nyapi --version\nyapi -h\n\n# auth\nyapi whoami\nyapi login\n\n# search / fetch\nyapi search --q keyword --project-id 310\nyapi --path /api/interface/get --query id=123\nyapi --path /api/interface/list_cat --query catid=123\n\nConfig cache locations:\n\nConfig: ~/.yapi/config.toml\nAuth cache: ~/.yapi-mcp/auth-*.json"
      },
      {
        "title": "Docs sync",
        "body": "Binding mode (recommended):\n\nyapi docs-sync bind add --name projectA --dir docs/release-notes --project-id 267 --catid 3667\nyapi docs-sync --binding projectA --dry-run\nyapi docs-sync --binding projectA\n\nNotes:\n\nBinding file: .yapi/docs-sync.json\nMapping outputs: .yapi/docs-sync.links.json, .yapi/docs-sync.projects.json, .yapi/docs-sync.deployments.json\nDefault behavior syncs changed files only; use --force for full sync.\nCompatible with directory .yapi.json config as fallback (without binding).\nMermaid/PlantUML/Graphviz/D2 rendering depends on local tool availability; missing tools do not block basic sync."
      },
      {
        "title": "Interface creation guardrails",
        "body": "Always set req_body_type (use json if unsure) and provide res_body (prefer JSON Schema) when creating/updating interfaces.\nPut structured request/response fields in req_* / res_body, not only in free-text desc/markdown."
      }
    ],
    "body": "YApi interface docs\nCommand policy\n\nPrefer yapi command. If missing, fallback to one-shot npx without forcing global install:\n\nyapi -h\n# fallback:\nnpx -y @leeguoo/yapi-mcp -h\n\n\nIn command examples below, yapi can be replaced by npx -y @leeguoo/yapi-mcp.\n\nQuick workflow\nIf user gives a YApi URL, verify it belongs to configured base_url.\nConfirm auth (yapi whoami), then run yapi login only when needed.\nResolve target by api_id / keyword / category.\nFetch raw JSON first, then summarize: method, path, headers, params, body, response schema/examples.\nFor docs sync tasks, do --dry-run first, then real sync.\nURL detection\nRead configured base_url from ~/.yapi/config.toml.\nrg -n \"^base_url\\\\s*=\" ~/.yapi/config.toml\n\nIf URL origin matches base_url, extract IDs from path:\n/project/123/... -> project_id=123\n.../api/456 -> api_id=456\n.../api/cat_789 -> catid=789\nPrefer direct lookup when api_id exists:\nyapi --path /api/interface/get --query id=<api_id>\n\nCommon commands\n# version/help\nyapi --version\nyapi -h\n\n# auth\nyapi whoami\nyapi login\n\n# search / fetch\nyapi search --q keyword --project-id 310\nyapi --path /api/interface/get --query id=123\nyapi --path /api/interface/list_cat --query catid=123\n\n\nConfig cache locations:\n\nConfig: ~/.yapi/config.toml\nAuth cache: ~/.yapi-mcp/auth-*.json\nDocs sync\n\nBinding mode (recommended):\n\nyapi docs-sync bind add --name projectA --dir docs/release-notes --project-id 267 --catid 3667\nyapi docs-sync --binding projectA --dry-run\nyapi docs-sync --binding projectA\n\n\nNotes:\n\nBinding file: .yapi/docs-sync.json\nMapping outputs: .yapi/docs-sync.links.json, .yapi/docs-sync.projects.json, .yapi/docs-sync.deployments.json\nDefault behavior syncs changed files only; use --force for full sync.\nCompatible with directory .yapi.json config as fallback (without binding).\nMermaid/PlantUML/Graphviz/D2 rendering depends on local tool availability; missing tools do not block basic sync.\nInterface creation guardrails\nAlways set req_body_type (use json if unsure) and provide res_body (prefer JSON Schema) when creating/updating interfaces.\nPut structured request/response fields in req_* / res_body, not only in free-text desc/markdown."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/leeguooooo/yapi",
    "publisherUrl": "https://clawhub.ai/leeguooooo/yapi",
    "owner": "leeguooooo",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/yapi",
    "downloadUrl": "https://openagent3.xyz/downloads/yapi",
    "agentUrl": "https://openagent3.xyz/skills/yapi/agent",
    "manifestUrl": "https://openagent3.xyz/skills/yapi/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/yapi/agent.md"
  }
}