{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cancorteaw-app",
    "name": "Cancorteaw App",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/cancorleone/cancorteaw-app",
    "canonicalUrl": "https://clawhub.ai/cancorleone/cancorteaw-app",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/cancorteaw-app",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cancorteaw-app",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "skill.json"
    ],
    "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/cancorteaw-app"
    },
    "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/cancorteaw-app",
    "agentPageUrl": "https://openagent3.xyz/skills/cancorteaw-app/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cancorteaw-app/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cancorteaw-app/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": "cancorteaw-app",
        "body": "Local Expo / React Native app builder runner for my OpenClaw server.\n\nThis skill is a controlled runner that only executes an allowlisted script:\n/home/patron/apps/_bin/appctl\nand that script is restricted to operate under:\n/home/patron/apps/<project>."
      },
      {
        "title": "What it does",
        "body": "This skill wraps appctl to provide a safe, repeatable workflow:\n\nCreate a new Expo app scaffold under /home/patron/apps/<name>\nAdd a screen file under /home/patron/apps/<name>/app/<Screen>.tsx\nStart a web preview (expo start --web) bound to 127.0.0.1 on a chosen port\nCheck status of the preview process"
      },
      {
        "title": "1) Create a new app",
        "body": "Command:\n\nnew <name>\n\nExample:\n\nnew demoapp\n\nResult:\n\nCreates /home/patron/apps/demoapp\nInitializes git (best-effort)\nUses npx create-expo-app in non-interactive mode"
      },
      {
        "title": "2) Add a screen",
        "body": "Command:\n\nadd-screen <name> <screenName> <title>\n\nExample:\n\nadd-screen demoapp Settings \"Settings\"\n\nResult:\n\nWrites: /home/patron/apps/demoapp/app/Settings.tsx\nMakes a git commit (best-effort)"
      },
      {
        "title": "3) Start web preview",
        "body": "Command:\n\npreview <name>\n\nEnvironment:\n\nEXPO_PORT (optional): override preview port\nDefault: 19006\n\nExample:\n\npreview demoapp\nEXPO_PORT=19010 preview demoapp\n\nResult:\n\nStarts npx expo start --web --port <port>\nWrites logs to: /home/patron/apps/_logs/<name>.preview.log\nWrites pid to: /home/patron/apps/_state/<name>.pid\nWrites port to: /home/patron/apps/_state/<name>.port"
      },
      {
        "title": "4) Status",
        "body": "Command:\n\nstatus <name>\n\nExample:\n\nstatus demoapp\n\nResult:\n\nPrints RUNNING with URL if process is alive\nOtherwise prints STOPPED"
      },
      {
        "title": "Safety / Guardrails",
        "body": "The runner is allowlisted: only node, npm, npx, git, bash, python3 can be invoked.\nAll project paths are constrained to /home/patron/apps.\nPreview binds to 127.0.0.1 (loopback). Expose it externally only via explicit SSH tunnel if desired.\nTelemetry is disabled for Expo in preview (EXPO_NO_TELEMETRY=1)."
      },
      {
        "title": "Troubleshooting",
        "body": "If preview says running but page doesn’t load: check the log file in /home/patron/apps/_logs/.\nIf a port is busy: set EXPO_PORT to a free port and re-run preview.\nTo stop preview: kill $(cat /home/patron/apps/_state/<name>.pid) (if pid exists)."
      }
    ],
    "body": "cancorteaw-app\n\nLocal Expo / React Native app builder runner for my OpenClaw server.\n\nThis skill is a controlled runner that only executes an allowlisted script: /home/patron/apps/_bin/appctl\nand that script is restricted to operate under: /home/patron/apps/<project>.\n\nWhat it does\n\nThis skill wraps appctl to provide a safe, repeatable workflow:\n\nCreate a new Expo app scaffold under /home/patron/apps/<name>\nAdd a screen file under /home/patron/apps/<name>/app/<Screen>.tsx\nStart a web preview (expo start --web) bound to 127.0.0.1 on a chosen port\nCheck status of the preview process\nCommands\n1) Create a new app\n\nCommand:\n\nnew <name>\n\nExample:\n\nnew demoapp\n\nResult:\n\nCreates /home/patron/apps/demoapp\nInitializes git (best-effort)\nUses npx create-expo-app in non-interactive mode\n2) Add a screen\n\nCommand:\n\nadd-screen <name> <screenName> <title>\n\nExample:\n\nadd-screen demoapp Settings \"Settings\"\n\nResult:\n\nWrites: /home/patron/apps/demoapp/app/Settings.tsx\nMakes a git commit (best-effort)\n3) Start web preview\n\nCommand:\n\npreview <name>\n\nEnvironment:\n\nEXPO_PORT (optional): override preview port\nDefault: 19006\n\nExample:\n\npreview demoapp\nEXPO_PORT=19010 preview demoapp\n\nResult:\n\nStarts npx expo start --web --port <port>\nWrites logs to: /home/patron/apps/_logs/<name>.preview.log\nWrites pid to: /home/patron/apps/_state/<name>.pid\nWrites port to: /home/patron/apps/_state/<name>.port\n4) Status\n\nCommand:\n\nstatus <name>\n\nExample:\n\nstatus demoapp\n\nResult:\n\nPrints RUNNING with URL if process is alive\nOtherwise prints STOPPED\nSafety / Guardrails\nThe runner is allowlisted: only node, npm, npx, git, bash, python3 can be invoked.\nAll project paths are constrained to /home/patron/apps.\nPreview binds to 127.0.0.1 (loopback). Expose it externally only via explicit SSH tunnel if desired.\nTelemetry is disabled for Expo in preview (EXPO_NO_TELEMETRY=1).\nTroubleshooting\nIf preview says running but page doesn’t load: check the log file in /home/patron/apps/_logs/.\nIf a port is busy: set EXPO_PORT to a free port and re-run preview.\nTo stop preview: kill $(cat /home/patron/apps/_state/<name>.pid) (if pid exists)."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cancorleone/cancorteaw-app",
    "publisherUrl": "https://clawhub.ai/cancorleone/cancorteaw-app",
    "owner": "cancorleone",
    "version": "0.1.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cancorteaw-app",
    "downloadUrl": "https://openagent3.xyz/downloads/cancorteaw-app",
    "agentUrl": "https://openagent3.xyz/skills/cancorteaw-app/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cancorteaw-app/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cancorteaw-app/agent.md"
  }
}