{
  "product": "GNIZDO",
  "version": "1.4",
  "product_model": "detection-first inventory evidence and operational conclusion layer",
  "canonical_api_origin": "https://api.gnizdo.space",
  "skills": [
    {
      "id": "inventory-drift-monitoring",
      "name": "Inventory evidence review",
      "summary": "Read channel-reported inventory evidence and review mismatches, stale evidence, missing data, price/currency differences, and changes without treating GNIZDO as an automatic sync engine.",
      "supported_channels": [
        "woocommerce",
        "etsy",
        "shopify"
      ],
      "supported_channels_semantics": "Runtime-supported platforms. Merchant connectability is represented separately.",
      "merchant_connectable_channels": [
        "woocommerce",
        "etsy"
      ],
      "detection_kinds": [
        "stock_mismatch",
        "price_mismatch",
        "channel_freshness_risk",
        "data_missing",
        "currency_mismatch"
      ],
      "state_axes": {
        "catalog_trust": [
          "unverified",
          "trusted",
          "stale"
        ],
        "connection": [
          "connected",
          "auth_failed",
          "connection_lost",
          "unknown"
        ],
        "sync": [
          "idle",
          "queued",
          "running",
          "failed",
          "failed_to_start"
        ]
      },
      "identity": {
        "candidate_discovery": "deterministic exact SKU/title evidence",
        "proof": "explicit user confirmation or fail-closed automatic confirmation by exact valid GTIN or exact unique SKU with no conflicting GTIN",
        "comparison_requires_confirmed_identity": true,
        "automatic_confirmation_rules": [
          "auto_gtin_exact_v1",
          "auto_sku_exact_unique_v1"
        ],
        "provenance_read_model": "mapping_basis.source; automatic confirmations also expose immutable mapping_basis.evidence"
      },
      "boundaries": [
        "No aggregate channel-health verdict across catalog_trust, connection, and sync.",
        "No canonical oversell_risk detector or prediction.",
        "No automatic cross-channel synchronization or remediation.",
        "No claim of physical shelf or warehouse stock truth."
      ],
      "channels": [
        {
          "code": "woocommerce",
          "status": "supported",
          "supported": true,
          "connectable": true,
          "read": true,
          "write": true,
          "write_semantics": "explicit capability-gated per-item stock/price actions",
          "automatic_sync": false,
          "auth": "woocommerce_wc_auth",
          "stage": "ga"
        },
        {
          "code": "etsy",
          "status": "supported",
          "supported": true,
          "connectable": true,
          "read": true,
          "write": false,
          "auth": "oauth",
          "stage": "ga"
        },
        {
          "code": "shopify",
          "status": "supported",
          "supported": true,
          "connectable": false,
          "read": true,
          "write": false,
          "auth": "oauth",
          "stage": "runtime_ready",
          "connectability_gate": "published/configured Shopify App Store listing"
        },
        {
          "code": "ebay",
          "status": "planned",
          "supported": false,
          "connectable": false,
          "read": false,
          "write": false,
          "auth": null,
          "stage": "planned"
        }
      ],
      "resources": {
        "homepage": "https://gnizdo.space/",
        "llms": "https://gnizdo.space/llms.txt",
        "api_catalog": "https://api.gnizdo.space/.well-known/api-catalog",
        "openapi": "https://api.gnizdo.space/api/v1/openapi.yaml",
        "health": "https://api.gnizdo.space/api/v1/health",
        "sample_report": "https://gnizdo.space/sample-report/"
      }
    }
  ]
}
