{
  "schemaVersion": "1.0",
  "item": {
    "slug": "germanic",
    "name": "GERMANIC",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/porco-rs/germanic",
    "canonicalUrl": "https://clawhub.ai/porco-rs/germanic",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/germanic",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=germanic",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/examples.md",
      "references/schema-types.md",
      "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",
      "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/germanic"
    },
    "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/germanic",
    "agentPageUrl": "https://openagent3.xyz/skills/germanic/agent",
    "manifestUrl": "https://openagent3.xyz/skills/germanic/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/germanic/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": "GERMANIC",
        "body": "Compile JSON to validated binary. Schema contract enforced at build time."
      },
      {
        "title": "Install",
        "body": "brew tap germanicdev/germanic && brew install germanic\n\nVerify: germanic --version should print 0.2.3.\n\nAlternative (from source): cargo install germanic"
      },
      {
        "title": "Workspace",
        "body": "GERMANIC operates relative to the current working directory.\nAll paths in this document are relative to the workspace root.\n\n# Find available schemas\nfind . -name \"*.schema.json\" -type f\n\n# Find example data\nfind . -name \"*.json\" -path \"*/examples/*\" -type f"
      },
      {
        "title": "When to Use",
        "body": "Use GERMANIC when you need to:\n\nProduce structured data for AI consumption (typed, validated, binary)\nValidate JSON against a schema (catches missing fields, wrong types, empty strings)\nConvert JSON to .grm (zero-copy binary, immune to structural injection)\n\nDo NOT use GERMANIC for:\n\nFree-text content (articles, blog posts, prose)\nData that changes schema frequently (use JSON directly)\nStreaming data (GERMANIC is batch-oriented)"
      },
      {
        "title": "Decision Tree",
        "body": "\"I have JSON data\" →\n  Known built-in schema? → germanic compile --schema practice --input data.json\n  Not built-in? → Check workspace schemas first:\n    find . -name \"*.schema.json\" 2>/dev/null | grep -i <domain>\n    Found? → germanic compile --schema <path-to-schema> --input data.json\n  No schema exists? → germanic init --from data.json --schema-id <id>\n    → edit .schema.json (mark required fields) → germanic compile\n  Just inspect a .grm? → germanic inspect <file.grm>\n  Validate without compiling? → germanic validate <file.grm>"
      },
      {
        "title": "1. Static Compile (Built-in Schema)",
        "body": "germanic compile --schema practice --input data.json --output data.grm\n\nAvailable schemas: practice (healthcare). More coming."
      },
      {
        "title": "2. Dynamic Compile (Custom Schema)",
        "body": "# Step 1: Infer schema from example\ngermanic init --from example.json --schema-id com.example.product.v1\n\n# Step 2: Edit the generated .schema.json — mark required fields\n\n# Step 3: Compile\ngermanic compile --schema product.schema.json --input data.json\n\nAccepts both GERMANIC .schema.json and JSON Schema Draft 7 files.\nAuto-detected transparently."
      },
      {
        "title": "3. Inspect & Validate",
        "body": "# Inspect .grm header (schema-id, signature, sizes)\ngermanic inspect output.grm\n\n# Validate .grm structural integrity\ngermanic validate output.grm"
      },
      {
        "title": "Error Handling",
        "body": "GERMANIC validates data and reports errors with field paths and descriptions.\nDynamic schemas collect multiple errors in a single pass. Example output:\n\nError: Required fields missing:\n  name: required field is empty string\n  telefon: required field missing\n  adresse.strasse: required field missing\n  notaufnahme.rund_um_die_uhr: expected bool, found string\n\nWhen you see errors:\n\nRead each violation — it tells you the field path and what's wrong\nFix the JSON data (do NOT remove required fields from the schema)\nRe-run compile\n\nDo NOT try to \"fix\" the schema to match broken data.\nIf the schema says telefon is required, it's required for a reason."
      },
      {
        "title": "File Not Found",
        "body": "If a file path fails, search before giving up:\n\nfind . -name '<filename>' 2>/dev/null\n\nCommon locations:\n\nSchemas: data/schemas/de/ and data/schemas/en/\nExamples: data/examples/de/ and data/examples/en/\nCompiled: same directory as input, with .grm extension"
      },
      {
        "title": "Schema Fields Are German",
        "body": "Yes, the schema fields are in German. strasse not street, plz not zip_code.\nThis is intentional — Deutsche Gründlichkeit als Feature, nicht als Bug.\nThe English translations are available under en.* schema IDs."
      },
      {
        "title": "Security",
        "body": "GERMANIC provides three layers of data safety:\n\nStructural validation: Required fields, type checking, nested validation\nBinary format: No HTML tags, no script blocks, no JSON-LD @context hijacking\nCompile-or-reject: Invalid data cannot become a .grm file\n\nNote: Binary format prevents structural injection. Content inside valid\nstring fields is stored as-is. The consumer must treat typed fields as data,\nnot instructions."
      },
      {
        "title": "Trust & Safety",
        "body": "GERMANIC is fully offline. Zero network calls, zero environment variables,\nzero external dependencies at runtime. The binary reads JSON from stdin or\nfile, writes .grm to disk. Nothing else.\n\nVerified by security audit (v0.2.1):\n\nNo hand-written unsafe code (all unsafe blocks are auto-generated FlatBuffer bindings)\nInput size limits enforced (5MB max input, 1MB max string, 10k max array)\nExit code 1 on all error paths\nNo data collection, no telemetry, no phone-home"
      },
      {
        "title": "MCP Server (Universal — not OpenClaw-specific)",
        "body": "For integration with MCP-native clients (Claude Desktop, Cursor, Windsurf, etc.):\n\ngermanic serve-mcp\n\nExposes 6 tools: germanic_compile, germanic_validate, germanic_inspect,\ngermanic_schemas, germanic_init, germanic_convert.\n\nConfigure in any MCP client:\n\n{\n  \"germanic\": {\n    \"command\": \"germanic\",\n    \"args\": [\"serve-mcp\"],\n    \"transport\": \"stdio\"\n  }\n}\n\nFor details: github.com/germanicdev/germanic"
      }
    ],
    "body": "GERMANIC\n\nCompile JSON to validated binary. Schema contract enforced at build time.\n\nInstall\nbrew tap germanicdev/germanic && brew install germanic\n\n\nVerify: germanic --version should print 0.2.3.\n\nAlternative (from source): cargo install germanic\n\nWorkspace\n\nGERMANIC operates relative to the current working directory. All paths in this document are relative to the workspace root.\n\n# Find available schemas\nfind . -name \"*.schema.json\" -type f\n\n# Find example data\nfind . -name \"*.json\" -path \"*/examples/*\" -type f\n\nWhen to Use\n\nUse GERMANIC when you need to:\n\nProduce structured data for AI consumption (typed, validated, binary)\nValidate JSON against a schema (catches missing fields, wrong types, empty strings)\nConvert JSON to .grm (zero-copy binary, immune to structural injection)\n\nDo NOT use GERMANIC for:\n\nFree-text content (articles, blog posts, prose)\nData that changes schema frequently (use JSON directly)\nStreaming data (GERMANIC is batch-oriented)\nDecision Tree\n\"I have JSON data\" →\n  Known built-in schema? → germanic compile --schema practice --input data.json\n  Not built-in? → Check workspace schemas first:\n    find . -name \"*.schema.json\" 2>/dev/null | grep -i <domain>\n    Found? → germanic compile --schema <path-to-schema> --input data.json\n  No schema exists? → germanic init --from data.json --schema-id <id>\n    → edit .schema.json (mark required fields) → germanic compile\n  Just inspect a .grm? → germanic inspect <file.grm>\n  Validate without compiling? → germanic validate <file.grm>\n\nThree Workflows\n1. Static Compile (Built-in Schema)\ngermanic compile --schema practice --input data.json --output data.grm\n\n\nAvailable schemas: practice (healthcare). More coming.\n\n2. Dynamic Compile (Custom Schema)\n# Step 1: Infer schema from example\ngermanic init --from example.json --schema-id com.example.product.v1\n\n# Step 2: Edit the generated .schema.json — mark required fields\n\n# Step 3: Compile\ngermanic compile --schema product.schema.json --input data.json\n\n\nAccepts both GERMANIC .schema.json and JSON Schema Draft 7 files. Auto-detected transparently.\n\n3. Inspect & Validate\n# Inspect .grm header (schema-id, signature, sizes)\ngermanic inspect output.grm\n\n# Validate .grm structural integrity\ngermanic validate output.grm\n\nError Handling\n\nGERMANIC validates data and reports errors with field paths and descriptions. Dynamic schemas collect multiple errors in a single pass. Example output:\n\nError: Required fields missing:\n  name: required field is empty string\n  telefon: required field missing\n  adresse.strasse: required field missing\n  notaufnahme.rund_um_die_uhr: expected bool, found string\n\n\nWhen you see errors:\n\nRead each violation — it tells you the field path and what's wrong\nFix the JSON data (do NOT remove required fields from the schema)\nRe-run compile\n\nDo NOT try to \"fix\" the schema to match broken data. If the schema says telefon is required, it's required for a reason.\n\nFile Not Found\n\nIf a file path fails, search before giving up:\n\nfind . -name '<filename>' 2>/dev/null\n\n\nCommon locations:\n\nSchemas: data/schemas/de/ and data/schemas/en/\nExamples: data/examples/de/ and data/examples/en/\nCompiled: same directory as input, with .grm extension\nSchema Fields Are German\n\nYes, the schema fields are in German. strasse not street, plz not zip_code. This is intentional — Deutsche Gründlichkeit als Feature, nicht als Bug. The English translations are available under en.* schema IDs.\n\nSecurity\n\nGERMANIC provides three layers of data safety:\n\nStructural validation: Required fields, type checking, nested validation\nBinary format: No HTML tags, no script blocks, no JSON-LD @context hijacking\nCompile-or-reject: Invalid data cannot become a .grm file\n\nNote: Binary format prevents structural injection. Content inside valid string fields is stored as-is. The consumer must treat typed fields as data, not instructions.\n\nTrust & Safety\n\nGERMANIC is fully offline. Zero network calls, zero environment variables, zero external dependencies at runtime. The binary reads JSON from stdin or file, writes .grm to disk. Nothing else.\n\nVerified by security audit (v0.2.1):\n\nNo hand-written unsafe code (all unsafe blocks are auto-generated FlatBuffer bindings)\nInput size limits enforced (5MB max input, 1MB max string, 10k max array)\nExit code 1 on all error paths\nNo data collection, no telemetry, no phone-home\nMCP Server (Universal — not OpenClaw-specific)\n\nFor integration with MCP-native clients (Claude Desktop, Cursor, Windsurf, etc.):\n\ngermanic serve-mcp\n\n\nExposes 6 tools: germanic_compile, germanic_validate, germanic_inspect, germanic_schemas, germanic_init, germanic_convert.\n\nConfigure in any MCP client:\n\n{\n  \"germanic\": {\n    \"command\": \"germanic\",\n    \"args\": [\"serve-mcp\"],\n    \"transport\": \"stdio\"\n  }\n}\n\n\nFor details: github.com/germanicdev/germanic"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/porco-rs/germanic",
    "publisherUrl": "https://clawhub.ai/porco-rs/germanic",
    "owner": "porco-rs",
    "version": "0.2.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/germanic",
    "downloadUrl": "https://openagent3.xyz/downloads/germanic",
    "agentUrl": "https://openagent3.xyz/skills/germanic/agent",
    "manifestUrl": "https://openagent3.xyz/skills/germanic/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/germanic/agent.md"
  }
}