{
  "schemaVersion": "1.0",
  "item": {
    "slug": "json-render-table",
    "name": "Json Render Table",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/sorphwer/json-render-table",
    "canonicalUrl": "https://clawhub.ai/sorphwer/json-render-table",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/json-render-table",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=json-render-table",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "agents/openai.yaml",
      "references/compact-table-spec.template.json",
      "references/compact-table-template.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": "json-render-table",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T15:06:13.001Z",
      "expiresAt": "2026-05-11T15:06:13.001Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=json-render-table",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=json-render-table",
        "contentDisposition": "attachment; filename=\"json-render-table-0.2.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "json-render-table"
      },
      "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/json-render-table"
    },
    "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/json-render-table",
    "agentPageUrl": "https://openagent3.xyz/skills/json-render-table/agent",
    "manifestUrl": "https://openagent3.xyz/skills/json-render-table/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/json-render-table/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": "Overview",
        "body": "Render generic structured data into compact table images using json-render-cli components (Column, Row, Container, Text, Badge).\nUse this skill for non-ticket table use cases."
      },
      {
        "title": "Workflow",
        "body": "Ensure json-render is available. If missing, run npm i -g json-render-cli; if Chromium is missing, run npx playwright install chromium.\nDefine target columns and row schema for the current dataset.\nGenerate message JSON in memory from the table template.\nPass config via process substitution (-c <(...)) to avoid temporary config files.\nSet screenshot.fullPage=true when row count or line wrapping is variable.\nTune viewport width/height to the current content footprint before final render, and avoid oversized fixed --size.\nRender PNG and return output path (or Base64 only when explicitly requested).\nTheme mode is configured with theme.mode; use system by default, or force light / dark when needed."
      },
      {
        "title": "Agent Coordination",
        "body": "Prefer rendering in the current (main) agent when the image must be delivered in the same turn.\nDelegate rendering to a sub-agent only when output-path handoff is explicit and deterministic.\nKeep rendered PNG files intact in sub-agent execution; do not delete or move them there.\nPerform garbage collection only in the main agent, and only after delivery succeeds."
      },
      {
        "title": "Model Routing",
        "body": "If the current assistant model is high-cost (for example, Opus-class), route simple deterministic rendering to a lower-cost fast model (for example, gemini3flash) only when Agent Coordination rules can be enforced; otherwise render in the current main agent."
      },
      {
        "title": "Use Case Selection",
        "body": "Generic table: use references/compact-table-template.md.\nTicket-focused table: use json-render-ticket-table.\nInformation cards (KPI/compare/summary): use json-render-info-cards.\nAnnouncement/hero cards: use json-render-announcement-cards.\nFlow/timeline summaries: use json-render-flow-summary."
      },
      {
        "title": "Build And Render",
        "body": "Use references/compact-table-template.md.\nTreat the included template as an executable starter and customize columns and widths per dataset.\n\nDefault style:\n\nNo title area\nCompact header + body\nEdge-to-edge screenshot\nStable column widths\nBottom rows remain visible (screenshot.fullPage=true)"
      },
      {
        "title": "Layout Rules",
        "body": "Define columns with Row + Container and explicit widths.\nKeep spacing compact and deterministic.\nUse Badge only for categorical status-like fields.\nResize the widest column first when content overflows.\nKeep viewport width close to the sum of column widths and avoid large horizontal slack.\nStart from a compact viewport height and expand only when clipping appears."
      },
      {
        "title": "Output Rules",
        "body": "Prefer -o /tmp/<name>.png for image delivery.\nUse -o stdout only when caller explicitly asks for Base64.\nAvoid temporary JSON files unless explicitly requested.\nIf a sub-agent renders the PNG, return path only and skip cleanup in that sub-agent.\nRun final PNG cleanup only in the main agent after image delivery."
      },
      {
        "title": "Troubleshooting",
        "body": "If Chromium is missing, run: npx playwright install chromium.\nIf rendering is too wide, reduce wide columns or font size.\nIf left/right whitespace is too large, decrease viewport width or topic column width and rerender.\nIf top/bottom whitespace is too large, decrease viewport height and rerender.\nIf bottom rows are clipped, enable screenshot.fullPage=true."
      }
    ],
    "body": "JSON Render Table\nOverview\n\nRender generic structured data into compact table images using json-render-cli components (Column, Row, Container, Text, Badge). Use this skill for non-ticket table use cases.\n\nWorkflow\nEnsure json-render is available. If missing, run npm i -g json-render-cli; if Chromium is missing, run npx playwright install chromium.\nDefine target columns and row schema for the current dataset.\nGenerate message JSON in memory from the table template.\nPass config via process substitution (-c <(...)) to avoid temporary config files.\nSet screenshot.fullPage=true when row count or line wrapping is variable.\nTune viewport width/height to the current content footprint before final render, and avoid oversized fixed --size.\nRender PNG and return output path (or Base64 only when explicitly requested).\nTheme mode is configured with theme.mode; use system by default, or force light / dark when needed.\nAgent Coordination\nPrefer rendering in the current (main) agent when the image must be delivered in the same turn.\nDelegate rendering to a sub-agent only when output-path handoff is explicit and deterministic.\nKeep rendered PNG files intact in sub-agent execution; do not delete or move them there.\nPerform garbage collection only in the main agent, and only after delivery succeeds.\nModel Routing\nIf the current assistant model is high-cost (for example, Opus-class), route simple deterministic rendering to a lower-cost fast model (for example, gemini3flash) only when Agent Coordination rules can be enforced; otherwise render in the current main agent.\nUse Case Selection\nGeneric table: use references/compact-table-template.md.\nTicket-focused table: use json-render-ticket-table.\nInformation cards (KPI/compare/summary): use json-render-info-cards.\nAnnouncement/hero cards: use json-render-announcement-cards.\nFlow/timeline summaries: use json-render-flow-summary.\nBuild And Render\n\nUse references/compact-table-template.md. Treat the included template as an executable starter and customize columns and widths per dataset.\n\nDefault style:\n\nNo title area\nCompact header + body\nEdge-to-edge screenshot\nStable column widths\nBottom rows remain visible (screenshot.fullPage=true)\nLayout Rules\nDefine columns with Row + Container and explicit widths.\nKeep spacing compact and deterministic.\nUse Badge only for categorical status-like fields.\nResize the widest column first when content overflows.\nKeep viewport width close to the sum of column widths and avoid large horizontal slack.\nStart from a compact viewport height and expand only when clipping appears.\nOutput Rules\nPrefer -o /tmp/<name>.png for image delivery.\nUse -o stdout only when caller explicitly asks for Base64.\nAvoid temporary JSON files unless explicitly requested.\nIf a sub-agent renders the PNG, return path only and skip cleanup in that sub-agent.\nRun final PNG cleanup only in the main agent after image delivery.\nTroubleshooting\nIf Chromium is missing, run: npx playwright install chromium.\nIf rendering is too wide, reduce wide columns or font size.\nIf left/right whitespace is too large, decrease viewport width or topic column width and rerender.\nIf top/bottom whitespace is too large, decrease viewport height and rerender.\nIf bottom rows are clipped, enable screenshot.fullPage=true."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/sorphwer/json-render-table",
    "publisherUrl": "https://clawhub.ai/sorphwer/json-render-table",
    "owner": "sorphwer",
    "version": "0.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/json-render-table",
    "downloadUrl": "https://openagent3.xyz/downloads/json-render-table",
    "agentUrl": "https://openagent3.xyz/skills/json-render-table/agent",
    "manifestUrl": "https://openagent3.xyz/skills/json-render-table/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/json-render-table/agent.md"
  }
}